3fe20b3aec5e26d90b0d9ee7b5faf48ec8c45c1b
[motion-next.git] / server / services / agi / index.js
1 const a1028_0x54ed=['./mailRpc','util','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','mxCell','continueAt','name','[ERROR]\x20%s','context','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','toJson','result','calleridname','extension','[LICENSE]','source','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','./vertices','[LICENSE]\x20CHANNELS:\x20UNLIMITED','variables','getLicense','xml2json','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','moment','mxGraphModel','close','isArray','vertex','sync','traverseBFS','production','substring','arg_1','then','start','response','resolve','./rpc','agicommand','lodash','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','indexOf','agi_','[LICENSE]\x20VOICE\x20IS\x20DISABLED','evtHangup','isUndefined','addVertex','agicommand\x20not\x20found','Project\x20%s\x20not\x20found','agi','finally','callerid','port','[%s]\x20%s','toString','undefined','clear','root','priority','stringify','dnid','./server','connection','maxRetry','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','catch','uniqueid','getSquareProject','callysquare','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','error','hangup','Project\x20%s\x20not\x20published','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','joinAt','defaults','stack','../../config/logger','debug','message','omit','length','../../config/license/util','info','format'];(function(_0x1b1626,_0x54eded){const _0xe99d8f=function(_0x1b34ec){while(--_0x1b34ec){_0x1b1626['push'](_0x1b1626['shift']());}};_0xe99d8f(++_0x54eded);}(a1028_0x54ed,0x145));const a1028_0xe99d=function(_0x1b1626,_0x54eded){_0x1b1626=_0x1b1626-0x0;let _0xe99d8f=a1028_0x54ed[_0x1b1626];return _0xe99d8f;};const _0xd0e354=a1028_0xe99d;'use strict';require('../../globals');const parser=require(_0xd0e354('0x29')),_=require(_0xd0e354('0x3b')),util=require(_0xd0e354('0x14')),moment=require(_0xd0e354('0x2b')),config=require('../../config/environment'),logger=require(_0xd0e354('0xb'))('agi'),utilLicense=require(_0xd0e354('0x10')),rpc=require(_0xd0e354('0x39')),mailRpc=require(_0xd0e354('0x13')),Graph=require('./graph'),Vertices=require(_0xd0e354('0x25')),AGI_CODE_SUCCESS=0xc8,AGI_RESULT_ERROR=-0x1;config[_0xd0e354('0x45')]=_[_0xd0e354('0x9')](config[_0xd0e354('0x45')],{'ip':'127.0.0.1','port':0x11dd});async function connectionHandler(_0x1b34ec){const _0x4a20c4=_0xd0e354;try{await setChannelVariables(_0x1b34ec),await agiHandler(_0x1b34ec);}catch(_0x308585){logger[_0x4a20c4('0x4')](_0x308585[_0x4a20c4('0xa')]);}}function listeningHandler(){const _0x1ff7d1=_0xd0e354;console['log'](_0x1ff7d1('0x1c'),config['agi'][_0x1ff7d1('0x48')]),logger[_0x1ff7d1('0x11')](util['format'](_0x1ff7d1('0x54'),config[_0x1ff7d1('0x45')]['ip'],config[_0x1ff7d1('0x45')][_0x1ff7d1('0x48')]));}function errorHandler(_0x43b412){const _0x3d3aa3=_0xd0e354;_0x43b412&&_0x43b412[_0x3d3aa3('0x18')]&&_0x43b412[_0x3d3aa3('0xd')]?logger[_0x3d3aa3('0x4')](util[_0x3d3aa3('0x12')](_0x3d3aa3('0x49'),_0x43b412[_0x3d3aa3('0x18')],_0x43b412[_0x3d3aa3('0xd')])):logger[_0x3d3aa3('0x4')](util[_0x3d3aa3('0x12')](_0x3d3aa3('0x19'),_0x43b412[_0x3d3aa3('0xa')]));}function closeHandler(){const _0x56fec9=_0xd0e354;logger[_0x56fec9('0x11')](util[_0x56fec9('0x12')](_0x56fec9('0x1b'),this['arg_1'],this[_0x56fec9('0x20')],this[_0x56fec9('0x47')],this[_0x56fec9('0x50')],this[_0x56fec9('0x0')]));try{createSquareReport(this);}catch(_0x3ad063){logger['error'](_0x3ad063[_0x56fec9('0xa')]);}}function timeoutHandler(){const _0x1790a2=_0xd0e354;logger['info'](util[_0x1790a2('0x12')](_0x1790a2('0x1d'),this['arg_1'],this[_0x1790a2('0x20')],this['callerid'],this[_0x1790a2('0x50')],this[_0x1790a2('0x0')]));}function hangupHandler(){const _0x57eb9d=_0xd0e354;logger[_0x57eb9d('0x11')](util[_0x57eb9d('0x12')](_0x57eb9d('0x15'),this['arg_1'],this['calleridname'],this[_0x57eb9d('0x47')],this[_0x57eb9d('0x50')],this[_0x57eb9d('0x0')])),this[_0x57eb9d('0x40')]=!![];}function getRoot(_0x16680c){const _0x4ef251=_0xd0e354;return parser[_0x4ef251('0x1e')](_0x16680c,{'object':!![]})[_0x4ef251('0x2c')][_0x4ef251('0x4d')];}function addVertex(_0xa274e9,_0x572fbc,_0x9d45d){const _0x452ff7=_0xd0e354;_0x572fbc[_0x452ff7('0x3a')]=_0x9d45d,typeof _0x572fbc['retry']!=='undefined'&&(_0x572fbc[_0x452ff7('0x53')]=parseInt(_0x572fbc['retry'],0xa)),_0xa274e9[_0x452ff7('0x42')](_[_0x452ff7('0xe')](_0x572fbc,_0x452ff7('0x16')));}function initGraph(_0xe6a4a9,_0x19ef03){const _0x2df05f=_0xd0e354,_0x16db91=new Graph();for(const _0x3a99e7 in _0xe6a4a9){if(typeof _0xe6a4a9[_0x3a99e7]!==_0x2df05f('0x4b')){if(_[_0x2df05f('0x2e')](_0xe6a4a9[_0x3a99e7]))for(let _0x255015=0x0;_0x255015<_0xe6a4a9[_0x3a99e7][_0x2df05f('0xf')];_0x255015+=0x1){addVertex(_0x16db91,_0xe6a4a9[_0x3a99e7][_0x255015],_0x3a99e7);}else addVertex(_0x16db91,_0xe6a4a9[_0x3a99e7],_0x3a99e7);}}for(let _0x423843=0x0;_0x423843<_0x19ef03['length'];_0x423843+=0x1){_0x19ef03[_0x423843]['source']&&_0x19ef03[_0x423843]['target']&&_0x16db91['addEdge'](_0x19ef03[_0x423843][_0x2df05f('0x23')],_0x19ef03[_0x423843]['target'],_0x19ef03[_0x423843]['value']);}return _0x16db91;}function getSquareProject(_0x23ff16,_0x3564ff){const _0x2a10c7=_0xd0e354;rpc[_0x2a10c7('0x1')](_0x23ff16)[_0x2a10c7('0x35')](function(_0x3d7c2d){_0x3564ff(null,_0x3d7c2d);})['catch'](function(_0x5a5d1d){_0x3564ff(null,_0x5a5d1d);});}function createSquareReport(_0x14d050,_0x45fdca){const _0x23aae9=_0xd0e354;rpc['createSquareReport'](_0x14d050)[_0x23aae9('0x35')](function(_0x20a467){_0x45fdca&&_0x45fdca(null,_0x20a467);})[_0x23aae9('0x55')](function(_0x29aab1){_0x45fdca&&_0x45fdca(null,_0x29aab1);});}async function setChannelVariables(_0x1a6657){const _0x1248a8=_0xd0e354;for(const _0x18fce2 in _0x1a6657){typeof _0x1a6657[_0x18fce2]!=='undefined'&&(_0x18fce2[_0x1248a8('0x3d')](_0x1248a8('0x3e'))===0x0&&(_0x1a6657[_0x18fce2[_0x1248a8('0x33')](0x4)]=_0x1a6657[_0x18fce2],delete _0x1a6657[_0x18fce2]));}return Promise[_0x1248a8('0x38')](_0x1a6657);}function getLogFromObject(_0x4deeb5){return util['inspect'](_0x4deeb5,{'showHidden':![],'depth':null});}async function agiHandler(_0xef2d25){const _0x722b01=_0xd0e354;let _0x489844,_0x18c406,_0x74d038,_0x3529a2;logger[_0x722b01('0xc')](_0x722b01('0x27'),JSON[_0x722b01('0x4f')](_0xef2d25,null,0x2)),logger['info'](util[_0x722b01('0x12')](_0x722b01('0x2a'),_0xef2d25[_0x722b01('0x34')],_0xef2d25['calleridname'],_0xef2d25[_0x722b01('0x47')],_0xef2d25[_0x722b01('0x50')],_0xef2d25['uniqueid'])),_0xef2d25['on'](_0x722b01('0x4'),errorHandler),_0xef2d25['on']('close',closeHandler),_0xef2d25['on']('timeout',timeoutHandler),_0xef2d25[_0x722b01('0x40')]=![],_0xef2d25['on'](_0x722b01('0x5'),hangupHandler);const _0x459af9=getSquareProject[_0x722b01('0x30')](null,_0xef2d25['arg_1']);return _0x459af9?_0x459af9[_0x722b01('0x32')]?(_0x489844=getRoot(_0x459af9[_0x722b01('0x32')]),_0x489844&&_0x489844[_0x722b01('0x36')]&&(logger[_0x722b01('0xc')]('root',JSON['stringify'](_0x489844,null,0x2)),_0xef2d25[_0x722b01('0x8')]=moment()[_0x722b01('0x12')]('YYYY-MM-DD\x20HH:mm:ss'),_0x18c406=initGraph(_[_0x722b01('0xe')](_0x489844,_0x722b01('0x16')),_0x489844[_0x722b01('0x16')]),_0x74d038=new Vertices(_0xef2d25,rpc,mailRpc),logger[_0x722b01('0x11')](util['format'](_0x722b01('0x24'),_0xef2d25[_0x722b01('0x34')],_0xef2d25[_0x722b01('0x20')],_0xef2d25['callerid'],_0xef2d25['dnid'],_0xef2d25[_0x722b01('0x0')])),_0x18c406['traverseBFS'](_0x489844[_0x722b01('0x36')]['id'],function(_0x50e8d0){const _0x2e2d5b=_0x722b01;try{_0x50e8d0=_0x74d038[_0x2e2d5b('0x4c')](_0x50e8d0),logger[_0x2e2d5b('0xc')](_0x2e2d5b('0x2f'),JSON[_0x2e2d5b('0x4f')](_0x50e8d0,null,0x2));if(_0x50e8d0[_0x2e2d5b('0x3a')]==='gotoc')return logger[_0x2e2d5b('0x11')]('gotoc\x20block\x20stop\x20traverse\x20BFS'),_0xef2d25[_0x2e2d5b('0x1a')]=_0x50e8d0[_0x2e2d5b('0x1a')]||_0xef2d25[_0x2e2d5b('0x1a')],_0xef2d25[_0x2e2d5b('0x21')]=_0x50e8d0['extension'],_0xef2d25[_0x2e2d5b('0x4e')]=_0x50e8d0[_0x2e2d5b('0x4e')]?_0x50e8d0[_0x2e2d5b('0x4e')]-0x1:0x1,null;else return _0x50e8d0&&_0x74d038[_0x50e8d0[_0x2e2d5b('0x3a')]]?(_0x3529a2=_0x74d038[_0x50e8d0[_0x2e2d5b('0x3a')]](_0x50e8d0),logger['info'](_0x2e2d5b('0x37'),JSON[_0x2e2d5b('0x4f')](_0x3529a2,null,0x2)),_0x3529a2&&_0x3529a2['code']===AGI_CODE_SUCCESS&&_0x3529a2['result']!==AGI_RESULT_ERROR&&!_0xef2d25['evtHangup']?(logger['debug']('response',getLogFromObject(_0x3529a2)),_[_0x2e2d5b('0x41')](_0x3529a2[_0x2e2d5b('0x1f')])?null:_0x3529a2[_0x2e2d5b('0x1f')][_0x2e2d5b('0x4a')]()):(logger[_0x2e2d5b('0x4')](_0x2e2d5b('0x37'),getLogFromObject(_0x3529a2)),null)):(logger['error'](_0x2e2d5b('0x43')),null);}catch(_0x3869a9){return logger[_0x2e2d5b('0x4')](_0x3869a9[_0x2e2d5b('0xa')]),null;}}),_0x489844[_0x722b01('0x46')]&&(logger[_0x722b01('0x11')](util[_0x722b01('0x12')](_0x722b01('0x7'),_0xef2d25[_0x722b01('0x34')],_0xef2d25[_0x722b01('0x20')],_0xef2d25['callerid'],_0xef2d25[_0x722b01('0x50')],_0xef2d25[_0x722b01('0x0')])),_0x18c406[_0x722b01('0x31')](_0x489844[_0x722b01('0x46')]['id'],function(_0x59fce2){const _0x208fcf=_0x722b01;try{return _0x59fce2=_0x74d038[_0x208fcf('0x4c')](_0x59fce2),logger[_0x208fcf('0xc')](_0x208fcf('0x2f'),JSON[_0x208fcf('0x4f')](_0x59fce2,null,0x2)),_0x59fce2&&_0x74d038[_0x59fce2[_0x208fcf('0x3a')]]?(_0x3529a2=_0x74d038[_0x59fce2['agicommand']](_0x59fce2),_0x3529a2?(logger['debug'](_0x208fcf('0x37'),getLogFromObject(_0x3529a2)),_[_0x208fcf('0x41')](_0x3529a2[_0x208fcf('0x1f')])?null:_0x3529a2[_0x208fcf('0x1f')][_0x208fcf('0x4a')]()):(logger[_0x208fcf('0x4')](_0x208fcf('0x37'),getLogFromObject(_0x3529a2)),null)):(logger[_0x208fcf('0x4')](_0x208fcf('0x43')),null);}catch(_0x9b85d5){return logger[_0x208fcf('0x4')](_0x9b85d5['stack']),null;}})),logger[_0x722b01('0x11')](util[_0x722b01('0x12')](_0x722b01('0x3'),_0xef2d25['arg_1'],_0xef2d25[_0x722b01('0x20')],_0xef2d25[_0x722b01('0x47')],_0xef2d25[_0x722b01('0x50')],_0xef2d25[_0x722b01('0x0')])),logger[_0x722b01('0x11')](util['format'](_0x722b01('0x3c'),_0xef2d25[_0x722b01('0x1a')],_0xef2d25[_0x722b01('0x21')],parseInt(_0xef2d25[_0x722b01('0x4e')],0xa)+0x1)),_0xef2d25[_0x722b01('0x17')](_0xef2d25['context'],_0xef2d25[_0x722b01('0x21')],parseInt(_0xef2d25[_0x722b01('0x4e')],0xa)+0x1),_0xef2d25[_0x722b01('0x2d')]())):(logger[_0x722b01('0x4')](util['format'](_0x722b01('0x6'),_0xef2d25[_0x722b01('0x34')])),_0xef2d25[_0x722b01('0x17')](_0xef2d25[_0x722b01('0x1a')],_0xef2d25[_0x722b01('0x21')],parseInt(_0xef2d25[_0x722b01('0x4e')],0xa)+0x1),_0xef2d25[_0x722b01('0x2d')]()):(logger[_0x722b01('0x4')](util[_0x722b01('0x12')](_0x722b01('0x44'),_0xef2d25[_0x722b01('0x34')])),_0xef2d25[_0x722b01('0x17')](_0xef2d25[_0x722b01('0x1a')],_0xef2d25[_0x722b01('0x21')],parseInt(_0xef2d25[_0x722b01('0x4e')],0xa)+0x1),_0xef2d25['close']()),Promise[_0x722b01('0x38')]();}function main(){const _0x2cf4bf=_0xd0e354;let _0x1b2af1;return utilLicense[_0x2cf4bf('0x28')]()[_0x2cf4bf('0x35')](function(_0x5b3f5b){const _0x2cea98=_0x2cf4bf;_0x5b3f5b&&(_0x5b3f5b['voice']?_0x5b3f5b['callysquare']&&_0x5b3f5b[_0x2cea98('0x2')]>0x0?(logger['info'](util[_0x2cea98('0x12')]('[LICENSE]\x20CHANNELS:\x20%s',_0x5b3f5b[_0x2cea98('0x2')])),_0x1b2af1=_0x5b3f5b[_0x2cea98('0x2')]):logger['info'](_0x2cea98('0x26')):(logger[_0x2cea98('0x11')](_0x2cea98('0x3f')),_0x1b2af1=-0x1));})[_0x2cf4bf('0x55')](function(_0x1cf048){const _0x1390ec=_0x2cf4bf;logger[_0x1390ec('0x4')](_0x1390ec('0x22'),_0x1cf048[_0x1390ec('0xa')]);})[_0x2cf4bf('0x46')](function(){const _0x270b3a=_0x2cf4bf,_0x4f08f6=require(_0x270b3a('0x51'))(config['agi'][_0x270b3a('0x48')],config[_0x270b3a('0x45')]['ip'],_0x1b2af1);_0x4f08f6['on'](_0x270b3a('0x4'),errorHandler),_0x4f08f6['on']('listening',listeningHandler),_0x4f08f6['on'](_0x270b3a('0x52'),connectionHandler),_0x4f08f6['on'](_0x270b3a('0x2d'),closeHandler);});}main();