Built motion from commit (unavailable).|2.5.18
[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 _0x475c=['info','result','catch','sendStatus','end','count','offset','status','Content-Range','json','apply','save','update','destroy','name','send','index','map','rawAttributes','fieldName','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','filter','type','merge','options','Network','includeAll','findAll','rows','show','params','include','find','create','transaction','body','toUpperCase','STUN','readFileSync','root','server/files/templates/stun_multiple.ejs','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','join','server/files/templates/network.ejs','writeFileSync','toLowerCase','chan_sip.so','sequelize','server/files/templates/turn_multiple.ejs','format','/etc/asterisk/turn_xcally.conf','/etc/asterisk/sip_xcally_%s.conf','html-pdf','fast-json-patch','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','request','then','request\x20sent','debug','stringify','error','code','message','Network,\x20%s,\x20%s'];(function(_0x4d7858,_0x3a0f91){var _0x2508df=function(_0xffd68){while(--_0xffd68){_0x4d7858['push'](_0x4d7858['shift']());}};_0x2508df(++_0x3a0f91);}(_0x475c,0x181));var _0xc475=function(_0x27a27a,_0x7638d){_0x27a27a=_0x27a27a-0x0;var _0x421193=_0x475c[_0x27a27a];return _0x421193;};'use strict';var pdf=require(_0xc475('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xc475('0x1'));var rp=require('request-promise');var moment=require(_0xc475('0x2'));var BPromise=require(_0xc475('0x3'));var Mustache=require('mustache');var util=require(_0xc475('0x4'));var path=require(_0xc475('0x5'));var sox=require(_0xc475('0x6'));var csv=require('to-csv');var ejs=require(_0xc475('0x7'));var fs=require('fs');var _=require(_0xc475('0x8'));var squel=require(_0xc475('0x9'));var crypto=require(_0xc475('0xa'));var jsforce=require(_0xc475('0xb'));var deskjs=require(_0xc475('0xc'));var toCsv=require(_0xc475('0xd'));var querystring=require(_0xc475('0xe'));var Papa=require('papaparse');var Redis=require(_0xc475('0xf'));var authService=require(_0xc475('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xc475('0x11'));var hardwareService=require(_0xc475('0x12'));var logger=require(_0xc475('0x13'))('api');var utils=require(_0xc475('0x14'));var config=require(_0xc475('0x15'));var licenseUtil=require(_0xc475('0x16'));var db=require(_0xc475('0x17'))['db'];var jayson=require(_0xc475('0x18'));var client=jayson['client'][_0xc475('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x50ab40,_0x1163b2,_0x354489,_0x5e31ce){return new BPromise(function(_0x20a7fa,_0x3e3f69){var _0x2cd2c2=_0x5e31ce||client;return _0x2cd2c2[_0xc475('0x1a')](_0x50ab40,_0x354489)[_0xc475('0x1b')](function(_0x4d0454){logger['info']('Network,\x20%s,\x20%s',_0x1163b2,_0xc475('0x1c'));logger[_0xc475('0x1d')]('Network,\x20%s,\x20%s,\x20%s',_0x1163b2,_0xc475('0x1c'),JSON[_0xc475('0x1e')](_0x4d0454));if(_0x4d0454['error']){if(_0x4d0454[_0xc475('0x1f')][_0xc475('0x20')]===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x1163b2,_0x4d0454['error'][_0xc475('0x21')]);return _0x3e3f69(_0x4d0454[_0xc475('0x1f')]['message']);}logger[_0xc475('0x1f')](_0xc475('0x22'),_0x1163b2,_0x4d0454['error'][_0xc475('0x21')]);return _0x20a7fa(_0x4d0454['error'][_0xc475('0x21')]);}else{logger[_0xc475('0x23')](_0xc475('0x22'),_0x1163b2,_0xc475('0x1c'));_0x20a7fa(_0x4d0454[_0xc475('0x24')][_0xc475('0x21')]);}})[_0xc475('0x25')](function(_0x79e549){logger[_0xc475('0x1f')](_0xc475('0x22'),_0x1163b2,_0x79e549);_0x3e3f69(_0x79e549);});});}function respondWithStatusCode(_0x26f00f,_0xdcd220){_0xdcd220=_0xdcd220||0xcc;return function(_0x556c69){if(_0x556c69){return _0x26f00f[_0xc475('0x26')](_0xdcd220);}return _0x26f00f['status'](_0xdcd220)[_0xc475('0x27')]();};}function respondWithResult(_0x1e9c65,_0x54663e){_0x54663e=_0x54663e||0xc8;return function(_0x216aa6){if(_0x216aa6){return _0x1e9c65['status'](_0x54663e)['json'](_0x216aa6);}};}function respondWithFilteredResult(_0x40357e,_0x2f4388){return function(_0x58bbae){if(_0x58bbae){var _0x179831=_0x58bbae[_0xc475('0x28')],_0x10c281=_0x2f4388[_0xc475('0x29')],_0x2cbc0f=_0x2f4388[_0xc475('0x29')]+_0x2f4388['limit'],_0x353678;if(_0x2cbc0f>=_0x179831){_0x2cbc0f=_0x179831;_0x353678=0xc8;}else{_0x353678=0xce;}_0x40357e[_0xc475('0x2a')](_0x353678);return _0x40357e['set'](_0xc475('0x2b'),_0x10c281+'-'+_0x2cbc0f+'/'+_0x179831)[_0xc475('0x2c')](_0x58bbae);}return null;};}function patchUpdates(_0x3aeae8){return function(_0x5667ca){try{jsonpatch[_0xc475('0x2d')](_0x5667ca,_0x3aeae8,!![]);}catch(_0x476d41){return BPromise['reject'](_0x476d41);}return _0x5667ca[_0xc475('0x2e')]();};}function saveUpdates(_0x423825,_0x572044){return function(_0x4707af){if(_0x4707af){return _0x4707af[_0xc475('0x2f')](_0x423825)[_0xc475('0x1b')](function(_0x9756a1){return _0x9756a1;});}return null;};}function removeEntity(_0x3f15c,_0xc396d7){return function(_0x4ce557){if(_0x4ce557){return _0x4ce557[_0xc475('0x30')]()[_0xc475('0x1b')](function(){_0x3f15c['status'](0xcc)[_0xc475('0x27')]();});}};}function handleEntityNotFound(_0x438d8f,_0x5811df){return function(_0x3147f4){if(!_0x3147f4){_0x438d8f[_0xc475('0x26')](0x194);}return _0x3147f4;};}function handleError(_0x474e0b,_0x146fba){_0x146fba=_0x146fba||0x1f4;return function(_0x347c72){logger['error'](_0x347c72['stack']);if(_0x347c72[_0xc475('0x31')]){delete _0x347c72[_0xc475('0x31')];}_0x474e0b['status'](_0x146fba)[_0xc475('0x32')](_0x347c72);};}exports[_0xc475('0x33')]=function(_0x1d4402,_0x14123d){var _0x51ec43={},_0xead29f={},_0x11aff5={'count':0x0,'rows':[]};var _0x13515e=_[_0xc475('0x34')](db['Network'][_0xc475('0x35')],function(_0x896e65){return{'name':_0x896e65[_0xc475('0x36')],'type':_0x896e65['type']['key']};});_0xead29f['model']=_['map'](_0x13515e,_0xc475('0x31'));_0xead29f[_0xc475('0x37')]=_[_0xc475('0x38')](_0x1d4402[_0xc475('0x37')]);_0xead29f[_0xc475('0x39')]=_[_0xc475('0x3a')](_0xead29f[_0xc475('0x3b')],_0xead29f['query']);_0x51ec43[_0xc475('0x3c')]=_['intersection'](_0xead29f[_0xc475('0x3b')],qs[_0xc475('0x3d')](_0x1d4402[_0xc475('0x37')]['fields']));_0x51ec43['attributes']=_0x51ec43[_0xc475('0x3c')][_0xc475('0x3e')]?_0x51ec43[_0xc475('0x3c')]:_0xead29f[_0xc475('0x3b')];if(!_0x1d4402[_0xc475('0x37')][_0xc475('0x3f')]('nolimit')){_0x51ec43['limit']=qs[_0xc475('0x40')](_0x1d4402[_0xc475('0x37')][_0xc475('0x40')]);_0x51ec43[_0xc475('0x29')]=qs[_0xc475('0x29')](_0x1d4402[_0xc475('0x37')][_0xc475('0x29')]);}_0x51ec43[_0xc475('0x41')]=qs[_0xc475('0x42')](_0x1d4402['query'][_0xc475('0x42')]);_0x51ec43[_0xc475('0x43')]=qs['filters'](_[_0xc475('0x44')](_0x1d4402[_0xc475('0x37')],_0xead29f['filters']),_0x13515e);if(_0x1d4402['query'][_0xc475('0x45')]){_0x51ec43[_0xc475('0x43')]=_['merge'](_0x51ec43[_0xc475('0x43')],{'$or':_[_0xc475('0x34')](_0x13515e,function(_0x1965a1){if(_0x1965a1[_0xc475('0x46')]!=='VIRTUAL'){var _0x1d2dce={};_0x1d2dce[_0x1965a1[_0xc475('0x31')]]={'$like':'%'+_0x1d4402[_0xc475('0x37')][_0xc475('0x45')]+'%'};return _0x1d2dce;}})});}_0x51ec43=_[_0xc475('0x47')]({},_0x51ec43,_0x1d4402[_0xc475('0x48')]);var _0x132f1a={'where':_0x51ec43['where']};return db[_0xc475('0x49')][_0xc475('0x28')](_0x132f1a)['then'](function(_0x545e37){_0x11aff5[_0xc475('0x28')]=_0x545e37;if(_0x1d4402[_0xc475('0x37')][_0xc475('0x4a')]){_0x51ec43['include']=[{'all':!![]}];}return db['Network'][_0xc475('0x4b')](_0x51ec43);})['then'](function(_0x497063){_0x11aff5[_0xc475('0x4c')]=_0x497063;return _0x11aff5;})[_0xc475('0x1b')](respondWithFilteredResult(_0x14123d,_0x51ec43))[_0xc475('0x25')](handleError(_0x14123d,null));};exports[_0xc475('0x4d')]=function(_0x3af615,_0xb5f68f){var _0x3ed845={'raw':!![],'where':{'id':_0x3af615[_0xc475('0x4e')]['id']}},_0x257d56={};_0x257d56['model']=_['keys'](db[_0xc475('0x49')][_0xc475('0x35')]);_0x257d56[_0xc475('0x37')]=_[_0xc475('0x38')](_0x3af615[_0xc475('0x37')]);_0x257d56[_0xc475('0x39')]=_['intersection'](_0x257d56['model'],_0x257d56['query']);_0x3ed845[_0xc475('0x3c')]=_[_0xc475('0x3a')](_0x257d56[_0xc475('0x3b')],qs[_0xc475('0x3d')](_0x3af615[_0xc475('0x37')][_0xc475('0x3d')]));_0x3ed845['attributes']=_0x3ed845['attributes'][_0xc475('0x3e')]?_0x3ed845[_0xc475('0x3c')]:_0x257d56['model'];if(_0x3af615[_0xc475('0x37')]['includeAll']){_0x3ed845[_0xc475('0x4f')]=[{'all':!![]}];}_0x3ed845=_[_0xc475('0x47')]({},_0x3ed845,_0x3af615[_0xc475('0x48')]);return db[_0xc475('0x49')][_0xc475('0x50')](_0x3ed845)[_0xc475('0x1b')](handleEntityNotFound(_0xb5f68f,null))['then'](respondWithResult(_0xb5f68f,null))[_0xc475('0x25')](handleError(_0xb5f68f,null));};exports[_0xc475('0x51')]=function(_0x3985c3,_0x32f803,_0x21b5a4){var _0x708c7f;return db['sequelize'][_0xc475('0x52')](function(_0x538a17){return db[_0xc475('0x49')]['create'](_0x3985c3[_0xc475('0x53')],{'raw':!![]})[_0xc475('0x1b')](function(_0x379af8){_0x708c7f=_0x379af8;return db[_0xc475('0x49')][_0xc475('0x4b')]({'where':{'type':_0x3985c3['body'][_0xc475('0x46')]},'raw':!![]});})[_0xc475('0x1b')](function(_0x1a0862){if(_0x708c7f['type'][_0xc475('0x54')]()==_0xc475('0x55')){var _0x13363f=fs[_0xc475('0x56')](path['join'](config[_0xc475('0x57')],_0xc475('0x58')),_0xc475('0x59'));var _0x247486=ejs[_0xc475('0x5a')](_0x13363f,{'networks':_0x1a0862||[]});fs['writeFileSync'](_0xc475('0x5b'),_0x247486);return respondWithRpcPromise(_0xc475('0x5c'),_0xc475('0x51'),{'module':_0xc475('0x5d')});}else if(_0x708c7f[_0xc475('0x46')]['toUpperCase']()==_0xc475('0x5e')){var _0x3e48f6=fs[_0xc475('0x56')](path[_0xc475('0x5f')](config[_0xc475('0x57')],'server/files/templates/turn_multiple.ejs'),_0xc475('0x59'));var _0x4f1378=ejs[_0xc475('0x5a')](_0x3e48f6,{'networks':_0x1a0862||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x4f1378);return respondWithRpcPromise(_0xc475('0x5c'),'create',{'module':'res_stun_monitor.so'});}else{var _0x5210f0=fs[_0xc475('0x56')](path[_0xc475('0x5f')](config[_0xc475('0x57')],_0xc475('0x60')),_0xc475('0x59'));var _0x58d576=ejs[_0xc475('0x5a')](_0x5210f0,{'networks':_0x1a0862||[]});fs[_0xc475('0x61')](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x3985c3[_0xc475('0x53')][_0xc475('0x46')][_0xc475('0x62')]()),_0x58d576);return respondWithRpcPromise(_0xc475('0x5c'),_0xc475('0x51'),{'module':_0xc475('0x63')});}return null;})[_0xc475('0x1b')](function(){return _0x708c7f;});})[_0xc475('0x1b')](respondWithResult(_0x32f803,0xc9))[_0xc475('0x25')](handleError(_0x32f803,null));};exports[_0xc475('0x2f')]=function(_0x5b5301,_0x5be3fc,_0x26e595){var _0xddd318;return db[_0xc475('0x64')][_0xc475('0x52')](function(_0x206c1e){return db[_0xc475('0x49')][_0xc475('0x50')]({'where':{'id':_0x5b5301[_0xc475('0x4e')]['id']}})[_0xc475('0x1b')](handleEntityNotFound(_0x5be3fc,null))[_0xc475('0x1b')](saveUpdates(_0x5b5301[_0xc475('0x53')],null))[_0xc475('0x1b')](function(_0x425353){if(_0x425353){_0xddd318=_0x425353;return db[_0xc475('0x49')][_0xc475('0x4b')]({'where':{'type':_0xddd318[_0xc475('0x46')]},'raw':!![]});}return null;})[_0xc475('0x1b')](function(_0x32ad2a){if(_0xddd318[_0xc475('0x46')][_0xc475('0x54')]()==_0xc475('0x55')){var _0x43938d=fs['readFileSync'](path[_0xc475('0x5f')](config[_0xc475('0x57')],_0xc475('0x58')),'utf8');var _0x5dd57b=ejs['render'](_0x43938d,{'networks':_0x32ad2a||[]});fs[_0xc475('0x61')](_0xc475('0x5b'),_0x5dd57b);return respondWithRpcPromise(_0xc475('0x5c'),_0xc475('0x2f'),{'module':'res_stun_monitor.so'});}else if(_0xddd318[_0xc475('0x46')][_0xc475('0x54')]()==_0xc475('0x5e')){var _0x111d9f=fs[_0xc475('0x56')](path[_0xc475('0x5f')](config[_0xc475('0x57')],_0xc475('0x65')),_0xc475('0x59'));var _0x4fd690=ejs['render'](_0x111d9f,{'networks':_0x32ad2a||[]});fs[_0xc475('0x61')]('/etc/asterisk/turn_xcally.conf',_0x4fd690);return respondWithRpcPromise('Reload',_0xc475('0x2f'),{'module':_0xc475('0x5d')});}else{var _0x3be1a0=fs[_0xc475('0x56')](path['join'](config[_0xc475('0x57')],_0xc475('0x60')),'utf8');var _0x1add5f=ejs[_0xc475('0x5a')](_0x3be1a0,{'networks':_0x32ad2a||[]});fs[_0xc475('0x61')](util[_0xc475('0x66')]('/etc/asterisk/sip_xcally_%s.conf',_0x5b5301[_0xc475('0x53')][_0xc475('0x46')][_0xc475('0x62')]()),_0x1add5f);return respondWithRpcPromise(_0xc475('0x5c'),_0xc475('0x2f'),{'module':_0xc475('0x63')});}return null;})[_0xc475('0x1b')](function(_0x1f3589){if(_0x1f3589){return _0xddd318;}return null;});})[_0xc475('0x1b')](respondWithResult(_0x5be3fc,null))[_0xc475('0x25')](handleError(_0x5be3fc,null));};exports[_0xc475('0x30')]=function(_0x34bde6,_0x423881,_0x50a330){var _0x329dab;return db[_0xc475('0x49')][_0xc475('0x50')]({'where':{'id':_0x34bde6[_0xc475('0x4e')]['id']}})[_0xc475('0x1b')](function(_0x1b2848){_0x329dab=_0x1b2848;return _0x1b2848;})[_0xc475('0x1b')](handleEntityNotFound(_0x423881,null))[_0xc475('0x1b')](removeEntity(_0x423881,null))[_0xc475('0x1b')](function(){if(_0x329dab){return db['Network'][_0xc475('0x4b')]({'where':{'type':_0x329dab[_0xc475('0x46')]},'raw':!![]});}})[_0xc475('0x1b')](function(_0x31c98b){if(_0x329dab[_0xc475('0x46')][_0xc475('0x54')]()=='STUN'){var _0x48d4e2=fs[_0xc475('0x56')](path['join'](config[_0xc475('0x57')],'server/files/templates/stun_multiple.ejs'),_0xc475('0x59'));var _0x13fd4c=ejs[_0xc475('0x5a')](_0x48d4e2,{'networks':_0x31c98b||[]});fs[_0xc475('0x61')](_0xc475('0x5b'),_0x13fd4c);return respondWithRpcPromise(_0xc475('0x5c'),_0xc475('0x30'),{'module':_0xc475('0x5d')});}else if(_0x329dab['type']['toUpperCase']()==_0xc475('0x5e')){var _0xb2718c=fs[_0xc475('0x56')](path[_0xc475('0x5f')](config[_0xc475('0x57')],_0xc475('0x65')),_0xc475('0x59'));var _0x22db47=ejs[_0xc475('0x5a')](_0xb2718c,{'networks':_0x31c98b||[]});fs[_0xc475('0x61')](_0xc475('0x67'),_0x22db47);return respondWithRpcPromise(_0xc475('0x5c'),_0xc475('0x30'),{'module':_0xc475('0x5d')});}else{var _0x4be313=fs[_0xc475('0x56')](path['join'](config['root'],_0xc475('0x60')),_0xc475('0x59'));var _0x828c2f=ejs[_0xc475('0x5a')](_0x4be313,{'networks':_0x31c98b||[]});fs[_0xc475('0x61')](util[_0xc475('0x66')](_0xc475('0x68'),_0x34bde6['body']['type'][_0xc475('0x62')]()),_0x828c2f);return respondWithRpcPromise(_0xc475('0x5c'),_0xc475('0x30'),{'module':_0xc475('0x63')});}return null;})['catch'](handleError(_0x423881,null));};