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 _0x7a9a=['papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','limit','undefined','offset','count','set','json','then','stack','name','send','index','Network','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','include','sequelize','transaction','body','STUN','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','create','res_stun_monitor.so','toUpperCase','readFileSync','join','render','root','server/files/templates/network.ejs','toLowerCase','chan_sip.so','update','find','TURN','server/files/templates/turn_multiple.ejs','format','/etc/asterisk/sip_xcally_%s.conf','destroy','/etc/asterisk/turn_xcally.conf','eml-format','zip-dir','fast-json-patch','mustache','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring'];(function(_0x519627,_0x2503b8){var _0x145ead=function(_0x3cc806){while(--_0x3cc806){_0x519627['push'](_0x519627['shift']());}};_0x145ead(++_0x2503b8);}(_0x7a9a,0xcf));var _0xa7a9=function(_0x37f068,_0x414129){_0x37f068=_0x37f068-0x0;var _0x5cedf4=_0x7a9a[_0x37f068];return _0x5cedf4;};'use strict';var emlformat=require(_0xa7a9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa7a9('0x1'));var jsonpatch=require(_0xa7a9('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xa7a9('0x3'));var util=require('util');var path=require(_0xa7a9('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xa7a9('0x5'));var fs=require('fs');var fs_extra=require(_0xa7a9('0x6'));var _=require(_0xa7a9('0x7'));var squel=require(_0xa7a9('0x8'));var crypto=require(_0xa7a9('0x9'));var jsforce=require(_0xa7a9('0xa'));var deskjs=require(_0xa7a9('0xb'));var toCsv=require('to-csv');var querystring=require(_0xa7a9('0xc'));var Papa=require(_0xa7a9('0xd'));var Redis=require(_0xa7a9('0xe'));var authService=require(_0xa7a9('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa7a9('0x10'));var hardwareService=require(_0xa7a9('0x11'));var logger=require(_0xa7a9('0x12'))(_0xa7a9('0x13'));var utils=require(_0xa7a9('0x14'));var config=require(_0xa7a9('0x15'));var licenseUtil=require(_0xa7a9('0x16'));var db=require(_0xa7a9('0x17'))['db'];var jayson=require(_0xa7a9('0x18'));var client=jayson[_0xa7a9('0x19')][_0xa7a9('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0xe1cb2d,_0x31ef55,_0x598bd7,_0x1bbf4f){return new BPromise(function(_0x1ea324,_0x28520e){var _0x3e2593=_0x1bbf4f||client;return _0x3e2593[_0xa7a9('0x1b')](_0xe1cb2d,_0x598bd7)['then'](function(_0x1fa127){logger[_0xa7a9('0x1c')](_0xa7a9('0x1d'),_0x31ef55,_0xa7a9('0x1e'));logger[_0xa7a9('0x1f')](_0xa7a9('0x20'),_0x31ef55,_0xa7a9('0x1e'),JSON[_0xa7a9('0x21')](_0x1fa127));if(_0x1fa127[_0xa7a9('0x22')]){if(_0x1fa127[_0xa7a9('0x22')][_0xa7a9('0x23')]===0x1f4){logger[_0xa7a9('0x22')]('Network,\x20%s,\x20%s',_0x31ef55,_0x1fa127['error'][_0xa7a9('0x24')]);return _0x28520e(_0x1fa127[_0xa7a9('0x22')][_0xa7a9('0x24')]);}logger[_0xa7a9('0x22')](_0xa7a9('0x1d'),_0x31ef55,_0x1fa127['error'][_0xa7a9('0x24')]);return _0x1ea324(_0x1fa127[_0xa7a9('0x22')][_0xa7a9('0x24')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x31ef55,_0xa7a9('0x1e'));_0x1ea324(_0x1fa127[_0xa7a9('0x25')]['message']);}})['catch'](function(_0x3c4f35){logger[_0xa7a9('0x22')](_0xa7a9('0x1d'),_0x31ef55,_0x3c4f35);_0x28520e(_0x3c4f35);});});}function respondWithStatusCode(_0x80c3b,_0x17cb30){_0x17cb30=_0x17cb30||0xcc;return function(_0xd6d460){if(_0xd6d460){return _0x80c3b[_0xa7a9('0x26')](_0x17cb30);}return _0x80c3b[_0xa7a9('0x27')](_0x17cb30)[_0xa7a9('0x28')]();};}function respondWithResult(_0x185cb4,_0x4de5ef){_0x4de5ef=_0x4de5ef||0xc8;return function(_0x90e030){if(_0x90e030){return _0x185cb4[_0xa7a9('0x27')](_0x4de5ef)['json'](_0x90e030);}};}function respondWithFilteredResult(_0x56ba0c,_0xa46882){return function(_0x4b1092){if(_0x4b1092){var _0x5a7b44=typeof _0xa46882['offset']==='undefined'&&typeof _0xa46882[_0xa7a9('0x29')]===_0xa7a9('0x2a');var _0x206b1f=_0x4b1092['count'];var _0x3b54fa=_0x5a7b44?0x0:_0xa46882[_0xa7a9('0x2b')];var _0x4acc0e=_0x5a7b44?_0x4b1092[_0xa7a9('0x2c')]:_0xa46882['offset']+_0xa46882['limit'];var _0x5d9c07;if(_0x4acc0e>=_0x206b1f){_0x4acc0e=_0x206b1f;_0x5d9c07=0xc8;}else{_0x5d9c07=0xce;}_0x56ba0c[_0xa7a9('0x27')](_0x5d9c07);return _0x56ba0c[_0xa7a9('0x2d')]('Content-Range',_0x3b54fa+'-'+_0x4acc0e+'/'+_0x206b1f)[_0xa7a9('0x2e')](_0x4b1092);}return null;};}function patchUpdates(_0x8cc120){return function(_0x186f02){try{jsonpatch['apply'](_0x186f02,_0x8cc120,!![]);}catch(_0x11b2c6){return BPromise['reject'](_0x11b2c6);}return _0x186f02['save']();};}function saveUpdates(_0x280304,_0x2aea5b){return function(_0x413a90){if(_0x413a90){return _0x413a90['update'](_0x280304)[_0xa7a9('0x2f')](function(_0x1ff179){return _0x1ff179;});}return null;};}function removeEntity(_0x34043b,_0x23eeda){return function(_0xfb1f60){if(_0xfb1f60){return _0xfb1f60['destroy']()[_0xa7a9('0x2f')](function(){_0x34043b[_0xa7a9('0x27')](0xcc)[_0xa7a9('0x28')]();});}};}function handleEntityNotFound(_0x2ff109,_0x7ce2e3){return function(_0x1d42b5){if(!_0x1d42b5){_0x2ff109['sendStatus'](0x194);}return _0x1d42b5;};}function handleError(_0x412619,_0x47b95){_0x47b95=_0x47b95||0x1f4;return function(_0x1e3657){logger['error'](_0x1e3657[_0xa7a9('0x30')]);if(_0x1e3657[_0xa7a9('0x31')]){delete _0x1e3657[_0xa7a9('0x31')];}_0x412619[_0xa7a9('0x27')](_0x47b95)[_0xa7a9('0x32')](_0x1e3657);};}exports[_0xa7a9('0x33')]=function(_0x58305c,_0x2c31ef){var _0x480054={},_0xaceada={},_0x4bbb0e={'count':0x0,'rows':[]};var _0x39ff81=_['map'](db[_0xa7a9('0x34')][_0xa7a9('0x35')],function(_0x422e96){return{'name':_0x422e96[_0xa7a9('0x36')],'type':_0x422e96[_0xa7a9('0x37')][_0xa7a9('0x38')]};});_0xaceada['model']=_[_0xa7a9('0x39')](_0x39ff81,_0xa7a9('0x31'));_0xaceada[_0xa7a9('0x3a')]=_[_0xa7a9('0x3b')](_0x58305c[_0xa7a9('0x3a')]);_0xaceada[_0xa7a9('0x3c')]=_[_0xa7a9('0x3d')](_0xaceada['model'],_0xaceada[_0xa7a9('0x3a')]);_0x480054['attributes']=_[_0xa7a9('0x3d')](_0xaceada[_0xa7a9('0x3e')],qs['fields'](_0x58305c[_0xa7a9('0x3a')][_0xa7a9('0x3f')]));_0x480054[_0xa7a9('0x40')]=_0x480054[_0xa7a9('0x40')][_0xa7a9('0x41')]?_0x480054[_0xa7a9('0x40')]:_0xaceada[_0xa7a9('0x3e')];if(!_0x58305c[_0xa7a9('0x3a')][_0xa7a9('0x42')](_0xa7a9('0x43'))){_0x480054['limit']=qs['limit'](_0x58305c[_0xa7a9('0x3a')][_0xa7a9('0x29')]);_0x480054['offset']=qs[_0xa7a9('0x2b')](_0x58305c[_0xa7a9('0x3a')][_0xa7a9('0x2b')]);}_0x480054[_0xa7a9('0x44')]=qs[_0xa7a9('0x45')](_0x58305c[_0xa7a9('0x3a')][_0xa7a9('0x45')]);_0x480054[_0xa7a9('0x46')]=qs['filters'](_[_0xa7a9('0x47')](_0x58305c[_0xa7a9('0x3a')],_0xaceada['filters']),_0x39ff81);if(_0x58305c['query']['filter']){_0x480054[_0xa7a9('0x46')]=_[_0xa7a9('0x48')](_0x480054[_0xa7a9('0x46')],{'$or':_['map'](_0x39ff81,function(_0x290c4e){if(_0x290c4e[_0xa7a9('0x37')]!==_0xa7a9('0x49')){var _0x532c85={};_0x532c85[_0x290c4e[_0xa7a9('0x31')]]={'$like':'%'+_0x58305c['query'][_0xa7a9('0x4a')]+'%'};return _0x532c85;}})});}_0x480054=_[_0xa7a9('0x48')]({},_0x480054,_0x58305c[_0xa7a9('0x4b')]);var _0x47e132={'where':_0x480054[_0xa7a9('0x46')]};return db[_0xa7a9('0x34')][_0xa7a9('0x2c')](_0x47e132)[_0xa7a9('0x2f')](function(_0x3dee8e){_0x4bbb0e['count']=_0x3dee8e;if(_0x58305c[_0xa7a9('0x3a')][_0xa7a9('0x4c')]){_0x480054['include']=[{'all':!![]}];}return db['Network'][_0xa7a9('0x4d')](_0x480054);})[_0xa7a9('0x2f')](function(_0x51f4d5){_0x4bbb0e[_0xa7a9('0x4e')]=_0x51f4d5;return _0x4bbb0e;})['then'](respondWithFilteredResult(_0x2c31ef,_0x480054))[_0xa7a9('0x4f')](handleError(_0x2c31ef,null));};exports[_0xa7a9('0x50')]=function(_0x152d06,_0x5dd94c){var _0x35b30c={'raw':!![],'where':{'id':_0x152d06[_0xa7a9('0x51')]['id']}},_0x5274d1={};_0x5274d1[_0xa7a9('0x3e')]=_['keys'](db[_0xa7a9('0x34')]['rawAttributes']);_0x5274d1[_0xa7a9('0x3a')]=_[_0xa7a9('0x3b')](_0x152d06[_0xa7a9('0x3a')]);_0x5274d1['filters']=_[_0xa7a9('0x3d')](_0x5274d1[_0xa7a9('0x3e')],_0x5274d1[_0xa7a9('0x3a')]);_0x35b30c['attributes']=_[_0xa7a9('0x3d')](_0x5274d1[_0xa7a9('0x3e')],qs['fields'](_0x152d06[_0xa7a9('0x3a')][_0xa7a9('0x3f')]));_0x35b30c[_0xa7a9('0x40')]=_0x35b30c[_0xa7a9('0x40')][_0xa7a9('0x41')]?_0x35b30c[_0xa7a9('0x40')]:_0x5274d1[_0xa7a9('0x3e')];if(_0x152d06[_0xa7a9('0x3a')][_0xa7a9('0x4c')]){_0x35b30c[_0xa7a9('0x52')]=[{'all':!![]}];}_0x35b30c=_[_0xa7a9('0x48')]({},_0x35b30c,_0x152d06['options']);return db[_0xa7a9('0x34')]['find'](_0x35b30c)[_0xa7a9('0x2f')](handleEntityNotFound(_0x5dd94c,null))[_0xa7a9('0x2f')](respondWithResult(_0x5dd94c,null))[_0xa7a9('0x4f')](handleError(_0x5dd94c,null));};exports['create']=function(_0x3a22f2,_0x164cda,_0x119baa){var _0x4ea5ce;return db[_0xa7a9('0x53')][_0xa7a9('0x54')](function(_0x55e900){return db[_0xa7a9('0x34')]['create'](_0x3a22f2['body'],{'raw':!![]})[_0xa7a9('0x2f')](function(_0x21f8ea){_0x4ea5ce=_0x21f8ea;return db[_0xa7a9('0x34')]['findAll']({'where':{'type':_0x3a22f2[_0xa7a9('0x55')][_0xa7a9('0x37')]},'raw':!![]});})['then'](function(_0x3f9e49){if(_0x4ea5ce[_0xa7a9('0x37')]['toUpperCase']()==_0xa7a9('0x56')){var _0x562279=fs['readFileSync'](path['join'](config['root'],_0xa7a9('0x57')),_0xa7a9('0x58'));var _0x12958c=ejs['render'](_0x562279,{'networks':_0x3f9e49||[]});fs[_0xa7a9('0x59')](_0xa7a9('0x5a'),_0x12958c);return respondWithRpcPromise(_0xa7a9('0x5b'),_0xa7a9('0x5c'),{'module':_0xa7a9('0x5d')});}else if(_0x4ea5ce[_0xa7a9('0x37')][_0xa7a9('0x5e')]()=='TURN'){var _0x5ce481=fs[_0xa7a9('0x5f')](path[_0xa7a9('0x60')](config['root'],'server/files/templates/turn_multiple.ejs'),_0xa7a9('0x58'));var _0x5d22a5=ejs[_0xa7a9('0x61')](_0x5ce481,{'networks':_0x3f9e49||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x5d22a5);return respondWithRpcPromise(_0xa7a9('0x5b'),_0xa7a9('0x5c'),{'module':'res_stun_monitor.so'});}else{var _0xf00dc8=fs[_0xa7a9('0x5f')](path[_0xa7a9('0x60')](config[_0xa7a9('0x62')],_0xa7a9('0x63')),_0xa7a9('0x58'));var _0x128ab0=ejs[_0xa7a9('0x61')](_0xf00dc8,{'networks':_0x3f9e49||[]});fs[_0xa7a9('0x59')](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x3a22f2[_0xa7a9('0x55')][_0xa7a9('0x37')][_0xa7a9('0x64')]()),_0x128ab0);return respondWithRpcPromise('Reload',_0xa7a9('0x5c'),{'module':_0xa7a9('0x65')});}return null;})[_0xa7a9('0x2f')](function(){return _0x4ea5ce;});})[_0xa7a9('0x2f')](respondWithResult(_0x164cda,0xc9))[_0xa7a9('0x4f')](handleError(_0x164cda,null));};exports[_0xa7a9('0x66')]=function(_0x101ccb,_0x199c7f,_0x4b5ef7){var _0x4b9620;return db[_0xa7a9('0x53')][_0xa7a9('0x54')](function(_0x3ab486){return db[_0xa7a9('0x34')][_0xa7a9('0x67')]({'where':{'id':_0x101ccb['params']['id']}})[_0xa7a9('0x2f')](handleEntityNotFound(_0x199c7f,null))[_0xa7a9('0x2f')](saveUpdates(_0x101ccb[_0xa7a9('0x55')],null))[_0xa7a9('0x2f')](function(_0x24b114){if(_0x24b114){_0x4b9620=_0x24b114;return db[_0xa7a9('0x34')][_0xa7a9('0x4d')]({'where':{'type':_0x4b9620[_0xa7a9('0x37')]},'raw':!![]});}return null;})[_0xa7a9('0x2f')](function(_0x2a80c3){if(_0x4b9620[_0xa7a9('0x37')][_0xa7a9('0x5e')]()==_0xa7a9('0x56')){var _0x2d9d5c=fs[_0xa7a9('0x5f')](path[_0xa7a9('0x60')](config[_0xa7a9('0x62')],_0xa7a9('0x57')),_0xa7a9('0x58'));var _0x14f1e1=ejs['render'](_0x2d9d5c,{'networks':_0x2a80c3||[]});fs[_0xa7a9('0x59')](_0xa7a9('0x5a'),_0x14f1e1);return respondWithRpcPromise(_0xa7a9('0x5b'),_0xa7a9('0x66'),{'module':'res_stun_monitor.so'});}else if(_0x4b9620['type'][_0xa7a9('0x5e')]()==_0xa7a9('0x68')){var _0x4829cc=fs['readFileSync'](path[_0xa7a9('0x60')](config[_0xa7a9('0x62')],_0xa7a9('0x69')),_0xa7a9('0x58'));var _0x3666b1=ejs[_0xa7a9('0x61')](_0x4829cc,{'networks':_0x2a80c3||[]});fs[_0xa7a9('0x59')]('/etc/asterisk/turn_xcally.conf',_0x3666b1);return respondWithRpcPromise('Reload',_0xa7a9('0x66'),{'module':_0xa7a9('0x5d')});}else{var _0x139851=fs['readFileSync'](path[_0xa7a9('0x60')](config['root'],_0xa7a9('0x63')),_0xa7a9('0x58'));var _0x5b152e=ejs[_0xa7a9('0x61')](_0x139851,{'networks':_0x2a80c3||[]});fs[_0xa7a9('0x59')](util[_0xa7a9('0x6a')](_0xa7a9('0x6b'),_0x101ccb['body'][_0xa7a9('0x37')][_0xa7a9('0x64')]()),_0x5b152e);return respondWithRpcPromise('Reload',_0xa7a9('0x66'),{'module':_0xa7a9('0x65')});}return null;})[_0xa7a9('0x2f')](function(_0x320f38){if(_0x320f38){return _0x4b9620;}return null;});})['then'](respondWithResult(_0x199c7f,null))[_0xa7a9('0x4f')](handleError(_0x199c7f,null));};exports[_0xa7a9('0x6c')]=function(_0x4195c7,_0x2fa518,_0x1b0111){var _0x5d5027;return db['Network'][_0xa7a9('0x67')]({'where':{'id':_0x4195c7[_0xa7a9('0x51')]['id']}})[_0xa7a9('0x2f')](function(_0x33a255){_0x5d5027=_0x33a255;return _0x33a255;})[_0xa7a9('0x2f')](handleEntityNotFound(_0x2fa518,null))['then'](removeEntity(_0x2fa518,null))[_0xa7a9('0x2f')](function(){if(_0x5d5027){return db[_0xa7a9('0x34')][_0xa7a9('0x4d')]({'where':{'type':_0x5d5027[_0xa7a9('0x37')]},'raw':!![]});}})[_0xa7a9('0x2f')](function(_0x5b3550){if(_0x5d5027[_0xa7a9('0x37')][_0xa7a9('0x5e')]()==_0xa7a9('0x56')){var _0x28717e=fs[_0xa7a9('0x5f')](path[_0xa7a9('0x60')](config[_0xa7a9('0x62')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x15bff1=ejs[_0xa7a9('0x61')](_0x28717e,{'networks':_0x5b3550||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0x15bff1);return respondWithRpcPromise(_0xa7a9('0x5b'),_0xa7a9('0x6c'),{'module':_0xa7a9('0x5d')});}else if(_0x5d5027[_0xa7a9('0x37')][_0xa7a9('0x5e')]()==_0xa7a9('0x68')){var _0x762877=fs['readFileSync'](path[_0xa7a9('0x60')](config[_0xa7a9('0x62')],_0xa7a9('0x69')),'utf8');var _0x2ec65b=ejs[_0xa7a9('0x61')](_0x762877,{'networks':_0x5b3550||[]});fs[_0xa7a9('0x59')](_0xa7a9('0x6d'),_0x2ec65b);return respondWithRpcPromise('Reload',_0xa7a9('0x6c'),{'module':_0xa7a9('0x5d')});}else{var _0x481236=fs[_0xa7a9('0x5f')](path['join'](config['root'],'server/files/templates/network.ejs'),_0xa7a9('0x58'));var _0xdf7156=ejs[_0xa7a9('0x61')](_0x481236,{'networks':_0x5b3550||[]});fs[_0xa7a9('0x59')](util[_0xa7a9('0x6a')](_0xa7a9('0x6b'),_0x4195c7[_0xa7a9('0x55')][_0xa7a9('0x37')]['toLowerCase']()),_0xdf7156);return respondWithRpcPromise(_0xa7a9('0x5b'),'destroy',{'module':'chan_sip.so'});}return null;})[_0xa7a9('0x4f')](handleError(_0x2fa518,null));};