Built motion from commit (unavailable).|2.5.7
[motion2.git] / server / api / network / network.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x0d87=['server/files/templates/stun_multiple.ejs','server/files/templates/turn_multiple.ejs','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','request','then','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','end','status','count','offset','limit','set','Content-Range','json','reject','save','destroy','stack','name','map','Network','rawAttributes','type','key','model','keys','intersection','query','attributes','fields','length','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','create','sequelize','body','STUN','root','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','toUpperCase','TURN','readFileSync','/etc/asterisk/turn_xcally.conf','join','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','update'];(function(_0x55bd6d,_0x5d445c){var _0x1768a7=function(_0x18a68e){while(--_0x18a68e){_0x55bd6d['push'](_0x55bd6d['shift']());}};_0x1768a7(++_0x5d445c);}(_0x0d87,0x65));var _0x70d8=function(_0x1e34f1,_0x10c9e1){_0x1e34f1=_0x1e34f1-0x0;var _0x52c544=_0x0d87[_0x1e34f1];return _0x52c544;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x70d8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x70d8('0x1'));var jsonpatch=require(_0x70d8('0x2'));var rp=require(_0x70d8('0x3'));var moment=require(_0x70d8('0x4'));var BPromise=require(_0x70d8('0x5'));var Mustache=require('mustache');var util=require(_0x70d8('0x6'));var path=require('path');var sox=require(_0x70d8('0x7'));var csv=require(_0x70d8('0x8'));var ejs=require(_0x70d8('0x9'));var fs=require('fs');var _=require(_0x70d8('0xa'));var squel=require('squel');var crypto=require(_0x70d8('0xb'));var jsforce=require(_0x70d8('0xc'));var deskjs=require(_0x70d8('0xd'));var toCsv=require(_0x70d8('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x70d8('0xe'));var authService=require(_0x70d8('0xf'));var qs=require(_0x70d8('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x70d8('0x11'))(_0x70d8('0x12'));var utils=require(_0x70d8('0x13'));var config=require(_0x70d8('0x14'));var licenseUtil=require(_0x70d8('0x15'));var db=require(_0x70d8('0x16'))['db'];var jayson=require(_0x70d8('0x17'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3177c1,_0x13a6e1,_0x970eab,_0x5915d8){return new BPromise(function(_0x3a9eea,_0x2af7c8){var _0x55b1ba=_0x5915d8||client;return _0x55b1ba[_0x70d8('0x18')](_0x3177c1,_0x970eab)[_0x70d8('0x19')](function(_0x59a140){logger[_0x70d8('0x1a')](_0x70d8('0x1b'),_0x13a6e1,_0x70d8('0x1c'));logger['debug'](_0x70d8('0x1d'),_0x13a6e1,_0x70d8('0x1c'),JSON[_0x70d8('0x1e')](_0x59a140));if(_0x59a140[_0x70d8('0x1f')]){if(_0x59a140[_0x70d8('0x1f')]['code']===0x1f4){logger[_0x70d8('0x1f')](_0x70d8('0x1b'),_0x13a6e1,_0x59a140['error']['message']);return _0x2af7c8(_0x59a140[_0x70d8('0x1f')][_0x70d8('0x20')]);}logger['error'](_0x70d8('0x1b'),_0x13a6e1,_0x59a140[_0x70d8('0x1f')]['message']);return _0x3a9eea(_0x59a140[_0x70d8('0x1f')][_0x70d8('0x20')]);}else{logger[_0x70d8('0x1a')](_0x70d8('0x1b'),_0x13a6e1,_0x70d8('0x1c'));_0x3a9eea(_0x59a140[_0x70d8('0x21')][_0x70d8('0x20')]);}})[_0x70d8('0x22')](function(_0x1582db){logger['error'](_0x70d8('0x1b'),_0x13a6e1,_0x1582db);_0x2af7c8(_0x1582db);});});}function respondWithStatusCode(_0x1ef4f9,_0x5dc603){_0x5dc603=_0x5dc603||0xcc;return function(_0x149719){if(_0x149719){return _0x1ef4f9[_0x70d8('0x23')](_0x5dc603);}return _0x1ef4f9['status'](_0x5dc603)[_0x70d8('0x24')]();};}function respondWithResult(_0x12e0ed,_0x55ee06){_0x55ee06=_0x55ee06||0xc8;return function(_0x46fd31){if(_0x46fd31){return _0x12e0ed[_0x70d8('0x25')](_0x55ee06)['json'](_0x46fd31);}};}function respondWithFilteredResult(_0x34ce3b,_0x2294aa){return function(_0x17d627){if(_0x17d627){var _0xaa1f68=_0x17d627[_0x70d8('0x26')],_0x3238e8=_0x2294aa[_0x70d8('0x27')],_0x5718fd=_0x2294aa[_0x70d8('0x27')]+_0x2294aa[_0x70d8('0x28')],_0x4185d5;if(_0x5718fd>=_0xaa1f68){_0x5718fd=_0xaa1f68;_0x4185d5=0xc8;}else{_0x4185d5=0xce;}_0x34ce3b[_0x70d8('0x25')](_0x4185d5);return _0x34ce3b[_0x70d8('0x29')](_0x70d8('0x2a'),_0x3238e8+'-'+_0x5718fd+'/'+_0xaa1f68)[_0x70d8('0x2b')](_0x17d627);}return null;};}function patchUpdates(_0x301f06){return function(_0x2432f3){try{jsonpatch['apply'](_0x2432f3,_0x301f06,!![]);}catch(_0x458429){return BPromise[_0x70d8('0x2c')](_0x458429);}return _0x2432f3[_0x70d8('0x2d')]();};}function saveUpdates(_0x4b7df5,_0x5eff02){return function(_0x217fc7){if(_0x217fc7){return _0x217fc7['update'](_0x4b7df5)[_0x70d8('0x19')](function(_0x4e4786){return _0x4e4786;});}return null;};}function removeEntity(_0x39498a,_0x32b001){return function(_0x4bc479){if(_0x4bc479){return _0x4bc479[_0x70d8('0x2e')]()['then'](function(){_0x39498a['status'](0xcc)[_0x70d8('0x24')]();});}};}function handleEntityNotFound(_0x2dc4b7,_0x579157){return function(_0x14df5f){if(!_0x14df5f){_0x2dc4b7[_0x70d8('0x23')](0x194);}return _0x14df5f;};}function handleError(_0x5d5fda,_0x50dc5c){_0x50dc5c=_0x50dc5c||0x1f4;return function(_0x7fe6fb){logger['error'](_0x7fe6fb[_0x70d8('0x2f')]);if(_0x7fe6fb[_0x70d8('0x30')]){delete _0x7fe6fb['name'];}_0x5d5fda['status'](_0x50dc5c)['send'](_0x7fe6fb);};}exports['index']=function(_0x3915d6,_0x428e56){var _0xa036aa={},_0x596cc8={},_0x1387e2={'count':0x0,'rows':[]};var _0x1ac5ec=_[_0x70d8('0x31')](db[_0x70d8('0x32')][_0x70d8('0x33')],function(_0x5268d4){return{'name':_0x5268d4['fieldName'],'type':_0x5268d4[_0x70d8('0x34')][_0x70d8('0x35')]};});_0x596cc8[_0x70d8('0x36')]=_['map'](_0x1ac5ec,'name');_0x596cc8['query']=_[_0x70d8('0x37')](_0x3915d6['query']);_0x596cc8['filters']=_[_0x70d8('0x38')](_0x596cc8['model'],_0x596cc8[_0x70d8('0x39')]);_0xa036aa[_0x70d8('0x3a')]=_[_0x70d8('0x38')](_0x596cc8[_0x70d8('0x36')],qs[_0x70d8('0x3b')](_0x3915d6[_0x70d8('0x39')]['fields']));_0xa036aa[_0x70d8('0x3a')]=_0xa036aa[_0x70d8('0x3a')][_0x70d8('0x3c')]?_0xa036aa[_0x70d8('0x3a')]:_0x596cc8[_0x70d8('0x36')];if(!_0x3915d6[_0x70d8('0x39')]['hasOwnProperty'](_0x70d8('0x3d'))){_0xa036aa[_0x70d8('0x28')]=qs[_0x70d8('0x28')](_0x3915d6[_0x70d8('0x39')][_0x70d8('0x28')]);_0xa036aa['offset']=qs[_0x70d8('0x27')](_0x3915d6['query']['offset']);}_0xa036aa[_0x70d8('0x3e')]=qs[_0x70d8('0x3f')](_0x3915d6[_0x70d8('0x39')]['sort']);_0xa036aa[_0x70d8('0x40')]=qs[_0x70d8('0x41')](_['pick'](_0x3915d6[_0x70d8('0x39')],_0x596cc8[_0x70d8('0x41')]),_0x1ac5ec);if(_0x3915d6['query'][_0x70d8('0x42')]){_0xa036aa[_0x70d8('0x40')]=_[_0x70d8('0x43')](_0xa036aa['where'],{'$or':_['map'](_0x1ac5ec,function(_0x4943d3){if(_0x4943d3[_0x70d8('0x34')]!==_0x70d8('0x44')){var _0x10f1fb={};_0x10f1fb[_0x4943d3['name']]={'$like':'%'+_0x3915d6[_0x70d8('0x39')][_0x70d8('0x42')]+'%'};return _0x10f1fb;}})});}_0xa036aa=_[_0x70d8('0x43')]({},_0xa036aa,_0x3915d6[_0x70d8('0x45')]);var _0x555df8={'where':_0xa036aa[_0x70d8('0x40')]};return db[_0x70d8('0x32')][_0x70d8('0x26')](_0x555df8)[_0x70d8('0x19')](function(_0x57c5b3){_0x1387e2[_0x70d8('0x26')]=_0x57c5b3;if(_0x3915d6[_0x70d8('0x39')][_0x70d8('0x46')]){_0xa036aa[_0x70d8('0x47')]=[{'all':!![]}];}return db[_0x70d8('0x32')][_0x70d8('0x48')](_0xa036aa);})['then'](function(_0x24be50){_0x1387e2[_0x70d8('0x49')]=_0x24be50;return _0x1387e2;})[_0x70d8('0x19')](respondWithFilteredResult(_0x428e56,_0xa036aa))['catch'](handleError(_0x428e56,null));};exports['show']=function(_0x2bf526,_0x9b427){var _0x224026={'raw':!![],'where':{'id':_0x2bf526[_0x70d8('0x4a')]['id']}},_0x3b4b60={};_0x3b4b60[_0x70d8('0x36')]=_['keys'](db[_0x70d8('0x32')][_0x70d8('0x33')]);_0x3b4b60[_0x70d8('0x39')]=_[_0x70d8('0x37')](_0x2bf526[_0x70d8('0x39')]);_0x3b4b60[_0x70d8('0x41')]=_['intersection'](_0x3b4b60['model'],_0x3b4b60['query']);_0x224026[_0x70d8('0x3a')]=_[_0x70d8('0x38')](_0x3b4b60['model'],qs[_0x70d8('0x3b')](_0x2bf526[_0x70d8('0x39')]['fields']));_0x224026[_0x70d8('0x3a')]=_0x224026['attributes'][_0x70d8('0x3c')]?_0x224026[_0x70d8('0x3a')]:_0x3b4b60[_0x70d8('0x36')];if(_0x2bf526[_0x70d8('0x39')][_0x70d8('0x46')]){_0x224026[_0x70d8('0x47')]=[{'all':!![]}];}_0x224026=_[_0x70d8('0x43')]({},_0x224026,_0x2bf526[_0x70d8('0x45')]);return db[_0x70d8('0x32')]['find'](_0x224026)[_0x70d8('0x19')](handleEntityNotFound(_0x9b427,null))[_0x70d8('0x19')](respondWithResult(_0x9b427,null))[_0x70d8('0x22')](handleError(_0x9b427,null));};exports[_0x70d8('0x4b')]=function(_0x17116c,_0x3910ec,_0x12dd1d){var _0xfa23a4;return db[_0x70d8('0x4c')]['transaction'](function(_0x105152){return db[_0x70d8('0x32')][_0x70d8('0x4b')](_0x17116c[_0x70d8('0x4d')],{'raw':!![]})[_0x70d8('0x19')](function(_0x4bc48b){_0xfa23a4=_0x4bc48b;return db[_0x70d8('0x32')]['findAll']({'where':{'type':_0x17116c[_0x70d8('0x4d')][_0x70d8('0x34')]},'raw':!![]});})[_0x70d8('0x19')](function(_0x1afa34){if(_0xfa23a4['type']['toUpperCase']()==_0x70d8('0x4e')){var _0x483dad=fs['readFileSync'](path['join'](config[_0x70d8('0x4f')],'server/files/templates/stun_multiple.ejs'),_0x70d8('0x50'));var _0x533804=ejs[_0x70d8('0x51')](_0x483dad,{'networks':_0x1afa34||[]});fs[_0x70d8('0x52')](_0x70d8('0x53'),_0x533804);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x4b'),{'module':_0x70d8('0x55')});}else if(_0xfa23a4[_0x70d8('0x34')][_0x70d8('0x56')]()==_0x70d8('0x57')){var _0xc78cfe=fs[_0x70d8('0x58')](path['join'](config[_0x70d8('0x4f')],'server/files/templates/turn_multiple.ejs'),_0x70d8('0x50'));var _0x16c5e4=ejs[_0x70d8('0x51')](_0xc78cfe,{'networks':_0x1afa34||[]});fs[_0x70d8('0x52')](_0x70d8('0x59'),_0x16c5e4);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x4b'),{'module':_0x70d8('0x55')});}else{var _0x2b3e68=fs['readFileSync'](path[_0x70d8('0x5a')](config[_0x70d8('0x4f')],_0x70d8('0x5b')),_0x70d8('0x50'));var _0x29df4b=ejs[_0x70d8('0x51')](_0x2b3e68,{'networks':_0x1afa34||[]});fs[_0x70d8('0x52')](util[_0x70d8('0x5c')](_0x70d8('0x5d'),_0x17116c['body']['type'][_0x70d8('0x5e')]()),_0x29df4b);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x4b'),{'module':_0x70d8('0x5f')});}return null;})['then'](function(){return _0xfa23a4;});})[_0x70d8('0x19')](respondWithResult(_0x3910ec,0xc9))[_0x70d8('0x22')](handleError(_0x3910ec,null));};exports[_0x70d8('0x60')]=function(_0x1d8d37,_0x31b3bb,_0x3b5884){var _0x622683;return db[_0x70d8('0x4c')]['transaction'](function(_0x12a714){return db['Network']['find']({'where':{'id':_0x1d8d37[_0x70d8('0x4a')]['id']}})[_0x70d8('0x19')](handleEntityNotFound(_0x31b3bb,null))[_0x70d8('0x19')](saveUpdates(_0x1d8d37[_0x70d8('0x4d')],null))[_0x70d8('0x19')](function(_0x5a813b){if(_0x5a813b){_0x622683=_0x5a813b;return db[_0x70d8('0x32')]['findAll']({'where':{'type':_0x622683[_0x70d8('0x34')]},'raw':!![]});}return null;})['then'](function(_0x419f03){if(_0x622683[_0x70d8('0x34')]['toUpperCase']()==_0x70d8('0x4e')){var _0x17ed31=fs[_0x70d8('0x58')](path[_0x70d8('0x5a')](config[_0x70d8('0x4f')],_0x70d8('0x61')),_0x70d8('0x50'));var _0x4475fa=ejs[_0x70d8('0x51')](_0x17ed31,{'networks':_0x419f03||[]});fs[_0x70d8('0x52')]('/etc/asterisk/stun_xcally.conf',_0x4475fa);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x60'),{'module':_0x70d8('0x55')});}else if(_0x622683['type'][_0x70d8('0x56')]()==_0x70d8('0x57')){var _0x57a8dc=fs[_0x70d8('0x58')](path[_0x70d8('0x5a')](config['root'],'server/files/templates/turn_multiple.ejs'),_0x70d8('0x50'));var _0x259bd1=ejs[_0x70d8('0x51')](_0x57a8dc,{'networks':_0x419f03||[]});fs[_0x70d8('0x52')]('/etc/asterisk/turn_xcally.conf',_0x259bd1);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x60'),{'module':'res_stun_monitor.so'});}else{var _0x13500d=fs['readFileSync'](path[_0x70d8('0x5a')](config[_0x70d8('0x4f')],_0x70d8('0x5b')),_0x70d8('0x50'));var _0x1774aa=ejs[_0x70d8('0x51')](_0x13500d,{'networks':_0x419f03||[]});fs[_0x70d8('0x52')](util[_0x70d8('0x5c')](_0x70d8('0x5d'),_0x1d8d37['body']['type'][_0x70d8('0x5e')]()),_0x1774aa);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x60'),{'module':'chan_sip.so'});}return null;})[_0x70d8('0x19')](function(_0x1960c2){if(_0x1960c2){return _0x622683;}return null;});})['then'](respondWithResult(_0x31b3bb,null))[_0x70d8('0x22')](handleError(_0x31b3bb,null));};exports['destroy']=function(_0x324860,_0x124eb8,_0x5f45e2){var _0x5461a2;return db['Network']['find']({'where':{'id':_0x324860[_0x70d8('0x4a')]['id']}})['then'](function(_0x256720){_0x5461a2=_0x256720;return _0x256720;})[_0x70d8('0x19')](handleEntityNotFound(_0x124eb8,null))[_0x70d8('0x19')](removeEntity(_0x124eb8,null))[_0x70d8('0x19')](function(){if(_0x5461a2){return db[_0x70d8('0x32')][_0x70d8('0x48')]({'where':{'type':_0x5461a2['type']},'raw':!![]});}})[_0x70d8('0x19')](function(_0x182f01){if(_0x5461a2['type'][_0x70d8('0x56')]()=='STUN'){var _0xe15a44=fs[_0x70d8('0x58')](path['join'](config[_0x70d8('0x4f')],_0x70d8('0x61')),_0x70d8('0x50'));var _0x1f6e7b=ejs[_0x70d8('0x51')](_0xe15a44,{'networks':_0x182f01||[]});fs[_0x70d8('0x52')](_0x70d8('0x53'),_0x1f6e7b);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x2e'),{'module':'res_stun_monitor.so'});}else if(_0x5461a2[_0x70d8('0x34')][_0x70d8('0x56')]()==_0x70d8('0x57')){var _0x5d5d6f=fs['readFileSync'](path[_0x70d8('0x5a')](config[_0x70d8('0x4f')],_0x70d8('0x62')),'utf8');var _0x31ff65=ejs['render'](_0x5d5d6f,{'networks':_0x182f01||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x31ff65);return respondWithRpcPromise('Reload',_0x70d8('0x2e'),{'module':_0x70d8('0x55')});}else{var _0x534a51=fs[_0x70d8('0x58')](path[_0x70d8('0x5a')](config[_0x70d8('0x4f')],'server/files/templates/network.ejs'),_0x70d8('0x50'));var _0x4dafbf=ejs[_0x70d8('0x51')](_0x534a51,{'networks':_0x182f01||[]});fs[_0x70d8('0x52')](util[_0x70d8('0x5c')]('/etc/asterisk/sip_xcally_%s.conf',_0x324860['body'][_0x70d8('0x34')][_0x70d8('0x5e')]()),_0x4dafbf);return respondWithRpcPromise(_0x70d8('0x54'),_0x70d8('0x2e'),{'module':_0x70d8('0x5f')});}return null;})[_0x70d8('0x22')](handleError(_0x124eb8,null));};