Built motion from commit 87cd5f02.|2.5.48
[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 _0xcd4e=['then','info','Network,\x20%s,\x20%s','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','destroy','name','send','index','map','Network','rawAttributes','type','key','query','keys','intersection','model','attributes','length','order','sort','where','filters','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','fields','find','create','sequelize','transaction','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','utf8','/etc/asterisk/turn_xcally.conf','Reload','res_stun_monitor.so','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','body','update','TURN','server/files/templates/turn_multiple.ejs','format','toLowerCase','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','jayson/promise','client','http','request'];(function(_0x2abf9b,_0x2da2c2){var _0x1e0bac=function(_0x19db33){while(--_0x19db33){_0x2abf9b['push'](_0x2abf9b['shift']());}};_0x1e0bac(++_0x2da2c2);}(_0xcd4e,0x187));var _0xecd4=function(_0x5b7102,_0x5f1207){_0x5b7102=_0x5b7102-0x0;var _0x48412c=_0xcd4e[_0x5b7102];return _0x48412c;};'use strict';var emlformat=require(_0xecd4('0x0'));var rimraf=require(_0xecd4('0x1'));var zipdir=require(_0xecd4('0x2'));var jsonpatch=require(_0xecd4('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xecd4('0x4'));var Mustache=require(_0xecd4('0x5'));var util=require('util');var path=require(_0xecd4('0x6'));var sox=require('sox');var csv=require(_0xecd4('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xecd4('0x8'));var _=require(_0xecd4('0x9'));var squel=require(_0xecd4('0xa'));var crypto=require(_0xecd4('0xb'));var jsforce=require(_0xecd4('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xecd4('0x7'));var querystring=require(_0xecd4('0xd'));var Papa=require('papaparse');var Redis=require(_0xecd4('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xecd4('0xf'));var as=require(_0xecd4('0x10'));var hardwareService=require(_0xecd4('0x11'));var logger=require('../../config/logger')(_0xecd4('0x12'));var utils=require(_0xecd4('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xecd4('0x14'));var db=require('../../mysqldb')['db'];var jayson=require(_0xecd4('0x15'));var client=jayson[_0xecd4('0x16')][_0xecd4('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x15dcc9,_0x132d11,_0x521b59,_0x3645d1){return new BPromise(function(_0x21cb7b,_0x15dddc){var _0x23312a=_0x3645d1||client;return _0x23312a[_0xecd4('0x18')](_0x15dcc9,_0x521b59)[_0xecd4('0x19')](function(_0x2add6f){logger[_0xecd4('0x1a')](_0xecd4('0x1b'),_0x132d11,'request\x20sent');logger[_0xecd4('0x1c')](_0xecd4('0x1d'),_0x132d11,_0xecd4('0x1e'),JSON[_0xecd4('0x1f')](_0x2add6f));if(_0x2add6f[_0xecd4('0x20')]){if(_0x2add6f[_0xecd4('0x20')]['code']===0x1f4){logger[_0xecd4('0x20')]('Network,\x20%s,\x20%s',_0x132d11,_0x2add6f[_0xecd4('0x20')][_0xecd4('0x21')]);return _0x15dddc(_0x2add6f[_0xecd4('0x20')][_0xecd4('0x21')]);}logger[_0xecd4('0x20')](_0xecd4('0x1b'),_0x132d11,_0x2add6f[_0xecd4('0x20')][_0xecd4('0x21')]);return _0x21cb7b(_0x2add6f[_0xecd4('0x20')][_0xecd4('0x21')]);}else{logger[_0xecd4('0x1a')]('Network,\x20%s,\x20%s',_0x132d11,_0xecd4('0x1e'));_0x21cb7b(_0x2add6f[_0xecd4('0x22')][_0xecd4('0x21')]);}})['catch'](function(_0x13dce6){logger['error']('Network,\x20%s,\x20%s',_0x132d11,_0x13dce6);_0x15dddc(_0x13dce6);});});}function respondWithStatusCode(_0x2e5a0a,_0x11c791){_0x11c791=_0x11c791||0xcc;return function(_0x104507){if(_0x104507){return _0x2e5a0a[_0xecd4('0x23')](_0x11c791);}return _0x2e5a0a[_0xecd4('0x24')](_0x11c791)[_0xecd4('0x25')]();};}function respondWithResult(_0x5d21de,_0x2910e1){_0x2910e1=_0x2910e1||0xc8;return function(_0x38b6da){if(_0x38b6da){return _0x5d21de[_0xecd4('0x24')](_0x2910e1)['json'](_0x38b6da);}};}function respondWithFilteredResult(_0x2d0a43,_0x3941d4){return function(_0x3ccb67){if(_0x3ccb67){var _0x54435d=typeof _0x3941d4[_0xecd4('0x26')]===_0xecd4('0x27')&&typeof _0x3941d4['limit']===_0xecd4('0x27');var _0x5420c0=_0x3ccb67[_0xecd4('0x28')];var _0x40b76f=_0x54435d?0x0:_0x3941d4[_0xecd4('0x26')];var _0x5e509a=_0x54435d?_0x3ccb67[_0xecd4('0x28')]:_0x3941d4['offset']+_0x3941d4[_0xecd4('0x29')];var _0x45e57d;if(_0x5e509a>=_0x5420c0){_0x5e509a=_0x5420c0;_0x45e57d=0xc8;}else{_0x45e57d=0xce;}_0x2d0a43['status'](_0x45e57d);return _0x2d0a43[_0xecd4('0x2a')](_0xecd4('0x2b'),_0x40b76f+'-'+_0x5e509a+'/'+_0x5420c0)[_0xecd4('0x2c')](_0x3ccb67);}return null;};}function patchUpdates(_0x1b847b){return function(_0x5817ca){try{jsonpatch[_0xecd4('0x2d')](_0x5817ca,_0x1b847b,!![]);}catch(_0x47fd18){return BPromise[_0xecd4('0x2e')](_0x47fd18);}return _0x5817ca[_0xecd4('0x2f')]();};}function saveUpdates(_0x4d6ded,_0x23261a){return function(_0x134745){if(_0x134745){return _0x134745['update'](_0x4d6ded)[_0xecd4('0x19')](function(_0x13fc28){return _0x13fc28;});}return null;};}function removeEntity(_0x352d97,_0x8fbe30){return function(_0x4258b7){if(_0x4258b7){return _0x4258b7[_0xecd4('0x30')]()[_0xecd4('0x19')](function(){_0x352d97[_0xecd4('0x24')](0xcc)[_0xecd4('0x25')]();});}};}function handleEntityNotFound(_0x57746b,_0x1b3af8){return function(_0x1d2007){if(!_0x1d2007){_0x57746b[_0xecd4('0x23')](0x194);}return _0x1d2007;};}function handleError(_0x575af0,_0xe26a5b){_0xe26a5b=_0xe26a5b||0x1f4;return function(_0x2d87f4){logger['error'](_0x2d87f4['stack']);if(_0x2d87f4[_0xecd4('0x31')]){delete _0x2d87f4['name'];}_0x575af0['status'](_0xe26a5b)[_0xecd4('0x32')](_0x2d87f4);};}exports[_0xecd4('0x33')]=function(_0x2a5334,_0x4fe97e){var _0x4c357a={},_0x281177={},_0x11addb={'count':0x0,'rows':[]};var _0xe2775=_[_0xecd4('0x34')](db[_0xecd4('0x35')][_0xecd4('0x36')],function(_0x59e8b6){return{'name':_0x59e8b6['fieldName'],'type':_0x59e8b6[_0xecd4('0x37')][_0xecd4('0x38')]};});_0x281177['model']=_[_0xecd4('0x34')](_0xe2775,_0xecd4('0x31'));_0x281177[_0xecd4('0x39')]=_[_0xecd4('0x3a')](_0x2a5334['query']);_0x281177['filters']=_[_0xecd4('0x3b')](_0x281177[_0xecd4('0x3c')],_0x281177[_0xecd4('0x39')]);_0x4c357a[_0xecd4('0x3d')]=_[_0xecd4('0x3b')](_0x281177[_0xecd4('0x3c')],qs['fields'](_0x2a5334['query']['fields']));_0x4c357a[_0xecd4('0x3d')]=_0x4c357a['attributes'][_0xecd4('0x3e')]?_0x4c357a['attributes']:_0x281177[_0xecd4('0x3c')];if(!_0x2a5334[_0xecd4('0x39')]['hasOwnProperty']('nolimit')){_0x4c357a[_0xecd4('0x29')]=qs[_0xecd4('0x29')](_0x2a5334[_0xecd4('0x39')]['limit']);_0x4c357a[_0xecd4('0x26')]=qs[_0xecd4('0x26')](_0x2a5334[_0xecd4('0x39')]['offset']);}_0x4c357a[_0xecd4('0x3f')]=qs[_0xecd4('0x40')](_0x2a5334[_0xecd4('0x39')][_0xecd4('0x40')]);_0x4c357a[_0xecd4('0x41')]=qs[_0xecd4('0x42')](_['pick'](_0x2a5334[_0xecd4('0x39')],_0x281177[_0xecd4('0x42')]),_0xe2775);if(_0x2a5334[_0xecd4('0x39')]['filter']){_0x4c357a[_0xecd4('0x41')]=_[_0xecd4('0x43')](_0x4c357a['where'],{'$or':_[_0xecd4('0x34')](_0xe2775,function(_0x4c84cb){if(_0x4c84cb[_0xecd4('0x37')]!==_0xecd4('0x44')){var _0x22fc5e={};_0x22fc5e[_0x4c84cb[_0xecd4('0x31')]]={'$like':'%'+_0x2a5334[_0xecd4('0x39')][_0xecd4('0x45')]+'%'};return _0x22fc5e;}})});}_0x4c357a=_[_0xecd4('0x43')]({},_0x4c357a,_0x2a5334[_0xecd4('0x46')]);var _0x47fff8={'where':_0x4c357a['where']};return db[_0xecd4('0x35')][_0xecd4('0x28')](_0x47fff8)[_0xecd4('0x19')](function(_0xb4d432){_0x11addb[_0xecd4('0x28')]=_0xb4d432;if(_0x2a5334[_0xecd4('0x39')][_0xecd4('0x47')]){_0x4c357a[_0xecd4('0x48')]=[{'all':!![]}];}return db[_0xecd4('0x35')][_0xecd4('0x49')](_0x4c357a);})[_0xecd4('0x19')](function(_0x234b0a){_0x11addb['rows']=_0x234b0a;return _0x11addb;})['then'](respondWithFilteredResult(_0x4fe97e,_0x4c357a))[_0xecd4('0x4a')](handleError(_0x4fe97e,null));};exports[_0xecd4('0x4b')]=function(_0x52baf3,_0x211661){var _0x161ec3={'raw':!![],'where':{'id':_0x52baf3[_0xecd4('0x4c')]['id']}},_0x34d09a={};_0x34d09a[_0xecd4('0x3c')]=_[_0xecd4('0x3a')](db['Network']['rawAttributes']);_0x34d09a[_0xecd4('0x39')]=_[_0xecd4('0x3a')](_0x52baf3[_0xecd4('0x39')]);_0x34d09a[_0xecd4('0x42')]=_[_0xecd4('0x3b')](_0x34d09a['model'],_0x34d09a[_0xecd4('0x39')]);_0x161ec3[_0xecd4('0x3d')]=_[_0xecd4('0x3b')](_0x34d09a[_0xecd4('0x3c')],qs[_0xecd4('0x4d')](_0x52baf3['query']['fields']));_0x161ec3['attributes']=_0x161ec3['attributes'][_0xecd4('0x3e')]?_0x161ec3['attributes']:_0x34d09a[_0xecd4('0x3c')];if(_0x52baf3[_0xecd4('0x39')][_0xecd4('0x47')]){_0x161ec3[_0xecd4('0x48')]=[{'all':!![]}];}_0x161ec3=_['merge']({},_0x161ec3,_0x52baf3[_0xecd4('0x46')]);return db[_0xecd4('0x35')][_0xecd4('0x4e')](_0x161ec3)[_0xecd4('0x19')](handleEntityNotFound(_0x211661,null))[_0xecd4('0x19')](respondWithResult(_0x211661,null))[_0xecd4('0x4a')](handleError(_0x211661,null));};exports[_0xecd4('0x4f')]=function(_0x580d3b,_0x46cb1a,_0x547688){var _0x5c7fb2;return db[_0xecd4('0x50')][_0xecd4('0x51')](function(_0x207a0e){return db['Network'][_0xecd4('0x4f')](_0x580d3b['body'],{'raw':!![]})[_0xecd4('0x19')](function(_0x5f0ff3){_0x5c7fb2=_0x5f0ff3;return db[_0xecd4('0x35')][_0xecd4('0x49')]({'where':{'type':_0x580d3b['body']['type']},'raw':!![]});})[_0xecd4('0x19')](function(_0x4914f2){if(_0x5c7fb2[_0xecd4('0x37')][_0xecd4('0x52')]()==_0xecd4('0x53')){var _0x52ca85=fs[_0xecd4('0x54')](path[_0xecd4('0x55')](config[_0xecd4('0x56')],_0xecd4('0x57')),'utf8');var _0x354de9=ejs[_0xecd4('0x58')](_0x52ca85,{'networks':_0x4914f2||[]});fs[_0xecd4('0x59')](_0xecd4('0x5a'),_0x354de9);return respondWithRpcPromise('Reload',_0xecd4('0x4f'),{'module':'res_stun_monitor.so'});}else if(_0x5c7fb2[_0xecd4('0x37')][_0xecd4('0x52')]()=='TURN'){var _0x397340=fs[_0xecd4('0x54')](path[_0xecd4('0x55')](config[_0xecd4('0x56')],'server/files/templates/turn_multiple.ejs'),_0xecd4('0x5b'));var _0x429243=ejs['render'](_0x397340,{'networks':_0x4914f2||[]});fs[_0xecd4('0x59')](_0xecd4('0x5c'),_0x429243);return respondWithRpcPromise(_0xecd4('0x5d'),_0xecd4('0x4f'),{'module':_0xecd4('0x5e')});}else{var _0x3fb6b0=fs[_0xecd4('0x54')](path[_0xecd4('0x55')](config[_0xecd4('0x56')],_0xecd4('0x5f')),_0xecd4('0x5b'));var _0x26263c=ejs[_0xecd4('0x58')](_0x3fb6b0,{'networks':_0x4914f2||[]});fs['writeFileSync'](util['format'](_0xecd4('0x60'),_0x580d3b[_0xecd4('0x61')][_0xecd4('0x37')]['toLowerCase']()),_0x26263c);return respondWithRpcPromise(_0xecd4('0x5d'),_0xecd4('0x4f'),{'module':'chan_sip.so'});}return null;})['then'](function(){return _0x5c7fb2;});})[_0xecd4('0x19')](respondWithResult(_0x46cb1a,0xc9))[_0xecd4('0x4a')](handleError(_0x46cb1a,null));};exports[_0xecd4('0x62')]=function(_0x3cf280,_0x5b36b5,_0x299ea6){var _0x37f85f;return db[_0xecd4('0x50')][_0xecd4('0x51')](function(_0x1fe33a){return db[_0xecd4('0x35')]['find']({'where':{'id':_0x3cf280[_0xecd4('0x4c')]['id']}})[_0xecd4('0x19')](handleEntityNotFound(_0x5b36b5,null))[_0xecd4('0x19')](saveUpdates(_0x3cf280[_0xecd4('0x61')],null))[_0xecd4('0x19')](function(_0x363f8c){if(_0x363f8c){_0x37f85f=_0x363f8c;return db[_0xecd4('0x35')][_0xecd4('0x49')]({'where':{'type':_0x37f85f['type']},'raw':!![]});}return null;})[_0xecd4('0x19')](function(_0x465530){if(_0x37f85f[_0xecd4('0x37')][_0xecd4('0x52')]()=='STUN'){var _0x576d27=fs['readFileSync'](path[_0xecd4('0x55')](config[_0xecd4('0x56')],_0xecd4('0x57')),'utf8');var _0x440c98=ejs[_0xecd4('0x58')](_0x576d27,{'networks':_0x465530||[]});fs[_0xecd4('0x59')](_0xecd4('0x5a'),_0x440c98);return respondWithRpcPromise('Reload',_0xecd4('0x62'),{'module':_0xecd4('0x5e')});}else if(_0x37f85f[_0xecd4('0x37')][_0xecd4('0x52')]()==_0xecd4('0x63')){var _0x494b84=fs['readFileSync'](path[_0xecd4('0x55')](config['root'],_0xecd4('0x64')),'utf8');var _0xff32b9=ejs[_0xecd4('0x58')](_0x494b84,{'networks':_0x465530||[]});fs[_0xecd4('0x59')](_0xecd4('0x5c'),_0xff32b9);return respondWithRpcPromise(_0xecd4('0x5d'),_0xecd4('0x62'),{'module':'res_stun_monitor.so'});}else{var _0xb752e5=fs[_0xecd4('0x54')](path[_0xecd4('0x55')](config[_0xecd4('0x56')],_0xecd4('0x5f')),_0xecd4('0x5b'));var _0x56368a=ejs[_0xecd4('0x58')](_0xb752e5,{'networks':_0x465530||[]});fs[_0xecd4('0x59')](util[_0xecd4('0x65')]('/etc/asterisk/sip_xcally_%s.conf',_0x3cf280[_0xecd4('0x61')][_0xecd4('0x37')][_0xecd4('0x66')]()),_0x56368a);return respondWithRpcPromise(_0xecd4('0x5d'),_0xecd4('0x62'),{'module':_0xecd4('0x67')});}return null;})[_0xecd4('0x19')](function(_0x37a125){if(_0x37a125){return _0x37f85f;}return null;});})[_0xecd4('0x19')](respondWithResult(_0x5b36b5,null))[_0xecd4('0x4a')](handleError(_0x5b36b5,null));};exports[_0xecd4('0x30')]=function(_0x339bf3,_0x3a654a,_0x1358aa){var _0x36c75c;return db[_0xecd4('0x35')][_0xecd4('0x4e')]({'where':{'id':_0x339bf3[_0xecd4('0x4c')]['id']}})[_0xecd4('0x19')](function(_0x8ffd7){_0x36c75c=_0x8ffd7;return _0x8ffd7;})[_0xecd4('0x19')](handleEntityNotFound(_0x3a654a,null))[_0xecd4('0x19')](removeEntity(_0x3a654a,null))[_0xecd4('0x19')](function(){if(_0x36c75c){return db['Network'][_0xecd4('0x49')]({'where':{'type':_0x36c75c[_0xecd4('0x37')]},'raw':!![]});}})[_0xecd4('0x19')](function(_0x3782d7){if(_0x36c75c[_0xecd4('0x37')][_0xecd4('0x52')]()=='STUN'){var _0x51b6a2=fs[_0xecd4('0x54')](path[_0xecd4('0x55')](config[_0xecd4('0x56')],_0xecd4('0x57')),_0xecd4('0x5b'));var _0x5b3a6c=ejs[_0xecd4('0x58')](_0x51b6a2,{'networks':_0x3782d7||[]});fs[_0xecd4('0x59')](_0xecd4('0x5a'),_0x5b3a6c);return respondWithRpcPromise('Reload','destroy',{'module':'res_stun_monitor.so'});}else if(_0x36c75c['type'][_0xecd4('0x52')]()=='TURN'){var _0x216bc6=fs[_0xecd4('0x54')](path[_0xecd4('0x55')](config['root'],_0xecd4('0x64')),_0xecd4('0x5b'));var _0x838c6e=ejs[_0xecd4('0x58')](_0x216bc6,{'networks':_0x3782d7||[]});fs[_0xecd4('0x59')](_0xecd4('0x5c'),_0x838c6e);return respondWithRpcPromise('Reload','destroy',{'module':_0xecd4('0x5e')});}else{var _0x5cf7d5=fs[_0xecd4('0x54')](path[_0xecd4('0x55')](config[_0xecd4('0x56')],_0xecd4('0x5f')),_0xecd4('0x5b'));var _0x36e1f4=ejs[_0xecd4('0x58')](_0x5cf7d5,{'networks':_0x3782d7||[]});fs['writeFileSync'](util[_0xecd4('0x65')](_0xecd4('0x60'),_0x339bf3[_0xecd4('0x61')][_0xecd4('0x37')][_0xecd4('0x66')]()),_0x36e1f4);return respondWithRpcPromise(_0xecd4('0x5d'),_0xecd4('0x30'),{'module':_0xecd4('0x67')});}return null;})[_0xecd4('0x4a')](handleError(_0x3a654a,null));};