Built motion from commit (unavailable).|2.5.31
[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 _0xaa51=['status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','destroy','sendStatus','stack','name','index','map','Network','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','filter','merge','options','include','findAll','rows','show','includeAll','create','sequelize','transaction','body','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','Reload','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','params','TURN','find','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x243f83,_0x54bfce){var _0x463bb6=function(_0x1d8586){while(--_0x1d8586){_0x243f83['push'](_0x243f83['shift']());}};_0x463bb6(++_0x54bfce);}(_0xaa51,0x18a));var _0x1aa5=function(_0x9bb3be,_0x38e231){_0x9bb3be=_0x9bb3be-0x0;var _0x195bbc=_0xaa51[_0x9bb3be];return _0x195bbc;};'use strict';var emlformat=require(_0x1aa5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1aa5('0x1'));var jsonpatch=require(_0x1aa5('0x2'));var rp=require(_0x1aa5('0x3'));var moment=require(_0x1aa5('0x4'));var BPromise=require(_0x1aa5('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x1aa5('0x6'));var sox=require(_0x1aa5('0x7'));var csv=require(_0x1aa5('0x8'));var ejs=require(_0x1aa5('0x9'));var fs=require('fs');var fs_extra=require(_0x1aa5('0xa'));var _=require('lodash');var squel=require(_0x1aa5('0xb'));var crypto=require(_0x1aa5('0xc'));var jsforce=require(_0x1aa5('0xd'));var deskjs=require(_0x1aa5('0xe'));var toCsv=require(_0x1aa5('0x8'));var querystring=require('querystring');var Papa=require(_0x1aa5('0xf'));var Redis=require(_0x1aa5('0x10'));var authService=require(_0x1aa5('0x11'));var qs=require(_0x1aa5('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1aa5('0x13'));var logger=require(_0x1aa5('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x1aa5('0x15'));var licenseUtil=require(_0x1aa5('0x16'));var db=require(_0x1aa5('0x17'))['db'];var jayson=require(_0x1aa5('0x18'));var client=jayson[_0x1aa5('0x19')]['http']({'port':0x232a});function respondWithRpcPromise(_0x64f56f,_0xfe98b0,_0x325c03,_0xc5afae){return new BPromise(function(_0x1c75db,_0x28e8db){var _0x2ba457=_0xc5afae||client;return _0x2ba457[_0x1aa5('0x1a')](_0x64f56f,_0x325c03)[_0x1aa5('0x1b')](function(_0x319406){logger[_0x1aa5('0x1c')](_0x1aa5('0x1d'),_0xfe98b0,_0x1aa5('0x1e'));logger['debug'](_0x1aa5('0x1f'),_0xfe98b0,_0x1aa5('0x1e'),JSON[_0x1aa5('0x20')](_0x319406));if(_0x319406['error']){if(_0x319406[_0x1aa5('0x21')][_0x1aa5('0x22')]===0x1f4){logger[_0x1aa5('0x21')]('Network,\x20%s,\x20%s',_0xfe98b0,_0x319406[_0x1aa5('0x21')][_0x1aa5('0x23')]);return _0x28e8db(_0x319406[_0x1aa5('0x21')][_0x1aa5('0x23')]);}logger['error'](_0x1aa5('0x1d'),_0xfe98b0,_0x319406[_0x1aa5('0x21')][_0x1aa5('0x23')]);return _0x1c75db(_0x319406[_0x1aa5('0x21')][_0x1aa5('0x23')]);}else{logger['info'](_0x1aa5('0x1d'),_0xfe98b0,_0x1aa5('0x1e'));_0x1c75db(_0x319406[_0x1aa5('0x24')][_0x1aa5('0x23')]);}})[_0x1aa5('0x25')](function(_0x4b9c79){logger[_0x1aa5('0x21')](_0x1aa5('0x1d'),_0xfe98b0,_0x4b9c79);_0x28e8db(_0x4b9c79);});});}function respondWithStatusCode(_0x3fb6fe,_0x34c124){_0x34c124=_0x34c124||0xcc;return function(_0x460759){if(_0x460759){return _0x3fb6fe['sendStatus'](_0x34c124);}return _0x3fb6fe[_0x1aa5('0x26')](_0x34c124)[_0x1aa5('0x27')]();};}function respondWithResult(_0x463753,_0x15b043){_0x15b043=_0x15b043||0xc8;return function(_0x54e85d){if(_0x54e85d){return _0x463753[_0x1aa5('0x26')](_0x15b043)[_0x1aa5('0x28')](_0x54e85d);}};}function respondWithFilteredResult(_0x50c3b1,_0x383969){return function(_0x561378){if(_0x561378){var _0x2d461a=typeof _0x383969[_0x1aa5('0x29')]===_0x1aa5('0x2a')&&typeof _0x383969['limit']===_0x1aa5('0x2a');var _0x41b549=_0x561378[_0x1aa5('0x2b')];var _0x578753=_0x2d461a?0x0:_0x383969[_0x1aa5('0x29')];var _0x562393=_0x2d461a?_0x561378[_0x1aa5('0x2b')]:_0x383969['offset']+_0x383969[_0x1aa5('0x2c')];var _0x243f89;if(_0x562393>=_0x41b549){_0x562393=_0x41b549;_0x243f89=0xc8;}else{_0x243f89=0xce;}_0x50c3b1['status'](_0x243f89);return _0x50c3b1['set'](_0x1aa5('0x2d'),_0x578753+'-'+_0x562393+'/'+_0x41b549)[_0x1aa5('0x28')](_0x561378);}return null;};}function patchUpdates(_0x73f0f4){return function(_0x47ae07){try{jsonpatch[_0x1aa5('0x2e')](_0x47ae07,_0x73f0f4,!![]);}catch(_0x1adfb4){return BPromise['reject'](_0x1adfb4);}return _0x47ae07[_0x1aa5('0x2f')]();};}function saveUpdates(_0xaf285a,_0x32101e){return function(_0x330a52){if(_0x330a52){return _0x330a52[_0x1aa5('0x30')](_0xaf285a)[_0x1aa5('0x1b')](function(_0x212ba4){return _0x212ba4;});}return null;};}function removeEntity(_0x138289,_0x355e5a){return function(_0x335590){if(_0x335590){return _0x335590[_0x1aa5('0x31')]()['then'](function(){_0x138289[_0x1aa5('0x26')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3b61a9,_0x463b02){return function(_0x56c5ad){if(!_0x56c5ad){_0x3b61a9[_0x1aa5('0x32')](0x194);}return _0x56c5ad;};}function handleError(_0x3b7891,_0x3b949c){_0x3b949c=_0x3b949c||0x1f4;return function(_0x117053){logger[_0x1aa5('0x21')](_0x117053[_0x1aa5('0x33')]);if(_0x117053[_0x1aa5('0x34')]){delete _0x117053[_0x1aa5('0x34')];}_0x3b7891[_0x1aa5('0x26')](_0x3b949c)['send'](_0x117053);};}exports[_0x1aa5('0x35')]=function(_0x365590,_0x134b7c){var _0x3d0545={},_0x307442={},_0xd40081={'count':0x0,'rows':[]};var _0x574aa0=_[_0x1aa5('0x36')](db[_0x1aa5('0x37')][_0x1aa5('0x38')],function(_0x26cde9){return{'name':_0x26cde9[_0x1aa5('0x39')],'type':_0x26cde9[_0x1aa5('0x3a')][_0x1aa5('0x3b')]};});_0x307442[_0x1aa5('0x3c')]=_[_0x1aa5('0x36')](_0x574aa0,'name');_0x307442['query']=_[_0x1aa5('0x3d')](_0x365590[_0x1aa5('0x3e')]);_0x307442[_0x1aa5('0x3f')]=_['intersection'](_0x307442['model'],_0x307442[_0x1aa5('0x3e')]);_0x3d0545[_0x1aa5('0x40')]=_[_0x1aa5('0x41')](_0x307442[_0x1aa5('0x3c')],qs[_0x1aa5('0x42')](_0x365590[_0x1aa5('0x3e')]['fields']));_0x3d0545['attributes']=_0x3d0545['attributes'][_0x1aa5('0x43')]?_0x3d0545[_0x1aa5('0x40')]:_0x307442[_0x1aa5('0x3c')];if(!_0x365590[_0x1aa5('0x3e')][_0x1aa5('0x44')](_0x1aa5('0x45'))){_0x3d0545[_0x1aa5('0x2c')]=qs['limit'](_0x365590[_0x1aa5('0x3e')][_0x1aa5('0x2c')]);_0x3d0545['offset']=qs['offset'](_0x365590['query'][_0x1aa5('0x29')]);}_0x3d0545[_0x1aa5('0x46')]=qs[_0x1aa5('0x47')](_0x365590[_0x1aa5('0x3e')][_0x1aa5('0x47')]);_0x3d0545['where']=qs['filters'](_[_0x1aa5('0x48')](_0x365590[_0x1aa5('0x3e')],_0x307442[_0x1aa5('0x3f')]),_0x574aa0);if(_0x365590[_0x1aa5('0x3e')]['filter']){_0x3d0545['where']=_['merge'](_0x3d0545[_0x1aa5('0x49')],{'$or':_[_0x1aa5('0x36')](_0x574aa0,function(_0x3aa78c){if(_0x3aa78c['type']!=='VIRTUAL'){var _0xbe1abe={};_0xbe1abe[_0x3aa78c[_0x1aa5('0x34')]]={'$like':'%'+_0x365590[_0x1aa5('0x3e')][_0x1aa5('0x4a')]+'%'};return _0xbe1abe;}})});}_0x3d0545=_[_0x1aa5('0x4b')]({},_0x3d0545,_0x365590[_0x1aa5('0x4c')]);var _0x42af49={'where':_0x3d0545[_0x1aa5('0x49')]};return db[_0x1aa5('0x37')][_0x1aa5('0x2b')](_0x42af49)[_0x1aa5('0x1b')](function(_0x5aaae7){_0xd40081['count']=_0x5aaae7;if(_0x365590[_0x1aa5('0x3e')]['includeAll']){_0x3d0545[_0x1aa5('0x4d')]=[{'all':!![]}];}return db[_0x1aa5('0x37')][_0x1aa5('0x4e')](_0x3d0545);})[_0x1aa5('0x1b')](function(_0x1b45f7){_0xd40081[_0x1aa5('0x4f')]=_0x1b45f7;return _0xd40081;})[_0x1aa5('0x1b')](respondWithFilteredResult(_0x134b7c,_0x3d0545))[_0x1aa5('0x25')](handleError(_0x134b7c,null));};exports[_0x1aa5('0x50')]=function(_0x306e93,_0x14d7e5){var _0x4e06eb={'raw':!![],'where':{'id':_0x306e93['params']['id']}},_0x2d4b4e={};_0x2d4b4e[_0x1aa5('0x3c')]=_['keys'](db[_0x1aa5('0x37')][_0x1aa5('0x38')]);_0x2d4b4e[_0x1aa5('0x3e')]=_['keys'](_0x306e93['query']);_0x2d4b4e[_0x1aa5('0x3f')]=_[_0x1aa5('0x41')](_0x2d4b4e[_0x1aa5('0x3c')],_0x2d4b4e[_0x1aa5('0x3e')]);_0x4e06eb[_0x1aa5('0x40')]=_[_0x1aa5('0x41')](_0x2d4b4e[_0x1aa5('0x3c')],qs[_0x1aa5('0x42')](_0x306e93[_0x1aa5('0x3e')]['fields']));_0x4e06eb[_0x1aa5('0x40')]=_0x4e06eb[_0x1aa5('0x40')][_0x1aa5('0x43')]?_0x4e06eb[_0x1aa5('0x40')]:_0x2d4b4e[_0x1aa5('0x3c')];if(_0x306e93[_0x1aa5('0x3e')][_0x1aa5('0x51')]){_0x4e06eb['include']=[{'all':!![]}];}_0x4e06eb=_['merge']({},_0x4e06eb,_0x306e93['options']);return db['Network']['find'](_0x4e06eb)[_0x1aa5('0x1b')](handleEntityNotFound(_0x14d7e5,null))[_0x1aa5('0x1b')](respondWithResult(_0x14d7e5,null))[_0x1aa5('0x25')](handleError(_0x14d7e5,null));};exports[_0x1aa5('0x52')]=function(_0x21f43a,_0x4d49e7,_0x4118a7){var _0x73df3f;return db[_0x1aa5('0x53')][_0x1aa5('0x54')](function(_0x49e375){return db[_0x1aa5('0x37')][_0x1aa5('0x52')](_0x21f43a[_0x1aa5('0x55')],{'raw':!![]})['then'](function(_0x5702ae){_0x73df3f=_0x5702ae;return db['Network'][_0x1aa5('0x4e')]({'where':{'type':_0x21f43a[_0x1aa5('0x55')]['type']},'raw':!![]});})[_0x1aa5('0x1b')](function(_0xb9b38b){if(_0x73df3f[_0x1aa5('0x3a')][_0x1aa5('0x56')]()==_0x1aa5('0x57')){var _0x5e5aae=fs[_0x1aa5('0x58')](path[_0x1aa5('0x59')](config[_0x1aa5('0x5a')],_0x1aa5('0x5b')),'utf8');var _0x33b25b=ejs[_0x1aa5('0x5c')](_0x5e5aae,{'networks':_0xb9b38b||[]});fs[_0x1aa5('0x5d')](_0x1aa5('0x5e'),_0x33b25b);return respondWithRpcPromise('Reload','create',{'module':_0x1aa5('0x5f')});}else if(_0x73df3f[_0x1aa5('0x3a')]['toUpperCase']()=='TURN'){var _0x37c2c7=fs['readFileSync'](path[_0x1aa5('0x59')](config[_0x1aa5('0x5a')],_0x1aa5('0x60')),_0x1aa5('0x61'));var _0x30b873=ejs[_0x1aa5('0x5c')](_0x37c2c7,{'networks':_0xb9b38b||[]});fs[_0x1aa5('0x5d')](_0x1aa5('0x62'),_0x30b873);return respondWithRpcPromise(_0x1aa5('0x63'),_0x1aa5('0x52'),{'module':_0x1aa5('0x5f')});}else{var _0x37700e=fs[_0x1aa5('0x58')](path[_0x1aa5('0x59')](config[_0x1aa5('0x5a')],_0x1aa5('0x64')),_0x1aa5('0x61'));var _0x443eca=ejs[_0x1aa5('0x5c')](_0x37700e,{'networks':_0xb9b38b||[]});fs[_0x1aa5('0x5d')](util[_0x1aa5('0x65')](_0x1aa5('0x66'),_0x21f43a[_0x1aa5('0x55')][_0x1aa5('0x3a')][_0x1aa5('0x67')]()),_0x443eca);return respondWithRpcPromise('Reload','create',{'module':_0x1aa5('0x68')});}return null;})[_0x1aa5('0x1b')](function(){return _0x73df3f;});})[_0x1aa5('0x1b')](respondWithResult(_0x4d49e7,0xc9))[_0x1aa5('0x25')](handleError(_0x4d49e7,null));};exports[_0x1aa5('0x30')]=function(_0x51f063,_0x2f19e0,_0x3aa76a){var _0x1ab551;return db[_0x1aa5('0x53')][_0x1aa5('0x54')](function(_0x192a8b){return db[_0x1aa5('0x37')]['find']({'where':{'id':_0x51f063[_0x1aa5('0x69')]['id']}})['then'](handleEntityNotFound(_0x2f19e0,null))[_0x1aa5('0x1b')](saveUpdates(_0x51f063[_0x1aa5('0x55')],null))[_0x1aa5('0x1b')](function(_0x9af699){if(_0x9af699){_0x1ab551=_0x9af699;return db[_0x1aa5('0x37')][_0x1aa5('0x4e')]({'where':{'type':_0x1ab551[_0x1aa5('0x3a')]},'raw':!![]});}return null;})[_0x1aa5('0x1b')](function(_0x5acf7e){if(_0x1ab551[_0x1aa5('0x3a')][_0x1aa5('0x56')]()==_0x1aa5('0x57')){var _0x1164b0=fs['readFileSync'](path[_0x1aa5('0x59')](config[_0x1aa5('0x5a')],'server/files/templates/stun_multiple.ejs'),_0x1aa5('0x61'));var _0x31e2ce=ejs[_0x1aa5('0x5c')](_0x1164b0,{'networks':_0x5acf7e||[]});fs[_0x1aa5('0x5d')](_0x1aa5('0x5e'),_0x31e2ce);return respondWithRpcPromise(_0x1aa5('0x63'),_0x1aa5('0x30'),{'module':_0x1aa5('0x5f')});}else if(_0x1ab551['type'][_0x1aa5('0x56')]()==_0x1aa5('0x6a')){var _0x22edf0=fs['readFileSync'](path[_0x1aa5('0x59')](config['root'],_0x1aa5('0x60')),_0x1aa5('0x61'));var _0x1d301f=ejs[_0x1aa5('0x5c')](_0x22edf0,{'networks':_0x5acf7e||[]});fs[_0x1aa5('0x5d')]('/etc/asterisk/turn_xcally.conf',_0x1d301f);return respondWithRpcPromise(_0x1aa5('0x63'),_0x1aa5('0x30'),{'module':_0x1aa5('0x5f')});}else{var _0x4cf822=fs['readFileSync'](path['join'](config[_0x1aa5('0x5a')],_0x1aa5('0x64')),'utf8');var _0x25431e=ejs['render'](_0x4cf822,{'networks':_0x5acf7e||[]});fs[_0x1aa5('0x5d')](util[_0x1aa5('0x65')](_0x1aa5('0x66'),_0x51f063['body']['type']['toLowerCase']()),_0x25431e);return respondWithRpcPromise(_0x1aa5('0x63'),_0x1aa5('0x30'),{'module':_0x1aa5('0x68')});}return null;})[_0x1aa5('0x1b')](function(_0x44aaff){if(_0x44aaff){return _0x1ab551;}return null;});})['then'](respondWithResult(_0x2f19e0,null))[_0x1aa5('0x25')](handleError(_0x2f19e0,null));};exports['destroy']=function(_0x3da151,_0x1de640,_0x495a6b){var _0x5d3844;return db[_0x1aa5('0x37')][_0x1aa5('0x6b')]({'where':{'id':_0x3da151[_0x1aa5('0x69')]['id']}})['then'](function(_0xf02d05){_0x5d3844=_0xf02d05;return _0xf02d05;})[_0x1aa5('0x1b')](handleEntityNotFound(_0x1de640,null))[_0x1aa5('0x1b')](removeEntity(_0x1de640,null))['then'](function(){if(_0x5d3844){return db['Network'][_0x1aa5('0x4e')]({'where':{'type':_0x5d3844[_0x1aa5('0x3a')]},'raw':!![]});}})['then'](function(_0x274d7a){if(_0x5d3844['type'][_0x1aa5('0x56')]()=='STUN'){var _0x2b4be9=fs[_0x1aa5('0x58')](path[_0x1aa5('0x59')](config['root'],_0x1aa5('0x5b')),_0x1aa5('0x61'));var _0x1b80d5=ejs[_0x1aa5('0x5c')](_0x2b4be9,{'networks':_0x274d7a||[]});fs[_0x1aa5('0x5d')](_0x1aa5('0x5e'),_0x1b80d5);return respondWithRpcPromise(_0x1aa5('0x63'),_0x1aa5('0x31'),{'module':_0x1aa5('0x5f')});}else if(_0x5d3844[_0x1aa5('0x3a')][_0x1aa5('0x56')]()=='TURN'){var _0x4edccb=fs[_0x1aa5('0x58')](path['join'](config[_0x1aa5('0x5a')],'server/files/templates/turn_multiple.ejs'),_0x1aa5('0x61'));var _0x413e1c=ejs[_0x1aa5('0x5c')](_0x4edccb,{'networks':_0x274d7a||[]});fs[_0x1aa5('0x5d')](_0x1aa5('0x62'),_0x413e1c);return respondWithRpcPromise(_0x1aa5('0x63'),_0x1aa5('0x31'),{'module':_0x1aa5('0x5f')});}else{var _0x2f3f10=fs['readFileSync'](path[_0x1aa5('0x59')](config[_0x1aa5('0x5a')],_0x1aa5('0x64')),'utf8');var _0x15f95b=ejs[_0x1aa5('0x5c')](_0x2f3f10,{'networks':_0x274d7a||[]});fs[_0x1aa5('0x5d')](util[_0x1aa5('0x65')](_0x1aa5('0x66'),_0x3da151[_0x1aa5('0x55')][_0x1aa5('0x3a')][_0x1aa5('0x67')]()),_0x15f95b);return respondWithRpcPromise(_0x1aa5('0x63'),_0x1aa5('0x31'),{'module':'chan_sip.so'});}return null;})[_0x1aa5('0x25')](handleError(_0x1de640,null));};