Built motion from commit (unavailable).|2.5.30
[motion2.git] / server / services / agi / index.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 _0x23f4=['variables','stringify','close','timeout','hangup','sync','start','joinAt','YYYY-MM-DD\x20HH:mm:ss','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','traverseBFS','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','isUndefined','result','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','Project\x20%s\x20not\x20published','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','lodash','moment','../../config/environment','../../config/logger','agi','../../config/license/util','./rpc','./mailRpc','./graph','./vertices','defaults','nextTick','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','port','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','[%s]\x20%s','error','[ERROR]\x20%s','stack','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','toJson','root','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','length','source','target','getSquareProject','then','catch','indexOf','agi_','substring','inspect','debug'];(function(_0x2cee34,_0x7e21a9){var _0x5a369e=function(_0x5114d1){while(--_0x5114d1){_0x2cee34['push'](_0x2cee34['shift']());}};_0x5a369e(++_0x7e21a9);}(_0x23f4,0x1ee));var _0x423f=function(_0x649810,_0x295dd7){_0x649810=_0x649810-0x0;var _0x194671=_0x23f4[_0x649810];return _0x194671;};'use strict';var parser=require('xml2json');var _=require(_0x423f('0x0'));var syncho=require('syncho');var util=require('util');var moment=require(_0x423f('0x1'));var config=require(_0x423f('0x2'));var logger=require(_0x423f('0x3'))(_0x423f('0x4'));var utilLicense=require(_0x423f('0x5'));var rpc=require(_0x423f('0x6'));var mailRpc=require(_0x423f('0x7'));var Graph=require(_0x423f('0x8'));var Vertices=require(_0x423f('0x9'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config['agi']=_[_0x423f('0xa')](config[_0x423f('0x4')],{'ip':'127.0.0.1','port':0x11dd});function connectionHandler(_0x727b4e){process[_0x423f('0xb')](function(){syncho(function(){try{setChannelVariables(_0x727b4e);agiHandler(_0x727b4e);}catch(_0xe4b068){logger['error'](_0xe4b068['stack']);}});});}function listeningHandler(){console['log'](_0x423f('0xc'),config['agi'][_0x423f('0xd')]);logger[_0x423f('0xe')](util[_0x423f('0xf')](_0x423f('0x10'),config['agi']['ip'],config[_0x423f('0x4')][_0x423f('0xd')]));}function errorHandler(_0x3b6a1c){if(_0x3b6a1c&&_0x3b6a1c[_0x423f('0x11')]&&_0x3b6a1c[_0x423f('0x12')]){logger['error'](util[_0x423f('0xf')](_0x423f('0x13'),_0x3b6a1c[_0x423f('0x11')],_0x3b6a1c[_0x423f('0x12')]));}else{logger[_0x423f('0x14')](util[_0x423f('0xf')](_0x423f('0x15'),_0x3b6a1c[_0x423f('0x16')]));}}function closeHandler(){logger[_0x423f('0xe')](util[_0x423f('0xf')](_0x423f('0x17'),this[_0x423f('0x18')],this[_0x423f('0x19')],this[_0x423f('0x1a')],this[_0x423f('0x1b')],this[_0x423f('0x1c')]));try{createSquareReport(this);}catch(_0x3fd56d){logger[_0x423f('0x14')](_0x3fd56d[_0x423f('0x16')]);}}function timeoutHandler(){logger['info'](util[_0x423f('0xf')]('[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',this['arg_1'],this[_0x423f('0x19')],this['callerid'],this[_0x423f('0x1b')],this[_0x423f('0x1c')]));}function hangupHandler(){logger['info'](util[_0x423f('0xf')](_0x423f('0x1d'),this['arg_1'],this[_0x423f('0x19')],this[_0x423f('0x1a')],this['dnid'],this[_0x423f('0x1c')]));this[_0x423f('0x1e')]=!![];}function getRoot(_0x568dcd){return parser[_0x423f('0x1f')](_0x568dcd,{'object':!![]})['mxGraphModel'][_0x423f('0x20')];}function addVertex(_0x3c942e,_0x4502ab,_0x3955a0){_0x4502ab[_0x423f('0x21')]=_0x3955a0;if(_0x4502ab[_0x423f('0x22')](_0x423f('0x23'))){_0x4502ab[_0x423f('0x24')]=parseInt(_0x4502ab[_0x423f('0x23')],0xa);}_0x3c942e[_0x423f('0x25')](_[_0x423f('0x26')](_0x4502ab,_0x423f('0x27')));}function initGraph(_0xb91ed8,_0x1f1747){var _0x4a98f2=new Graph();for(var _0x3308dd in _0xb91ed8){if(_0xb91ed8[_0x423f('0x22')](_0x3308dd)){if(_[_0x423f('0x28')](_0xb91ed8[_0x3308dd])){for(var _0x593f9d=0x0;_0x593f9d<_0xb91ed8[_0x3308dd]['length'];_0x593f9d+=0x1){addVertex(_0x4a98f2,_0xb91ed8[_0x3308dd][_0x593f9d],_0x3308dd);}}else{addVertex(_0x4a98f2,_0xb91ed8[_0x3308dd],_0x3308dd);}}}for(var _0x30a9bc=0x0;_0x30a9bc<_0x1f1747[_0x423f('0x29')];_0x30a9bc+=0x1){if(_0x1f1747[_0x30a9bc][_0x423f('0x2a')]&&_0x1f1747[_0x30a9bc]['target']){_0x4a98f2['addEdge'](_0x1f1747[_0x30a9bc][_0x423f('0x2a')],_0x1f1747[_0x30a9bc][_0x423f('0x2b')],_0x1f1747[_0x30a9bc]['value']);}}return _0x4a98f2;}function getSquareProject(_0x3cf4aa,_0x3cd80f){rpc[_0x423f('0x2c')](_0x3cf4aa)[_0x423f('0x2d')](function(_0x518c1e){_0x3cd80f(null,_0x518c1e);})[_0x423f('0x2e')](function(_0x332bbc){_0x3cd80f(null,_0x332bbc);});}function createSquareReport(_0x39c8ee,_0x15c0e8){rpc['createSquareReport'](_0x39c8ee)[_0x423f('0x2d')](function(_0x150846){if(_0x15c0e8){_0x15c0e8(null,_0x150846);}})[_0x423f('0x2e')](function(_0x8e7bcb){if(_0x15c0e8){_0x15c0e8(null,_0x8e7bcb);}});}function setChannelVariables(_0x341728){for(var _0x29fe71 in _0x341728){if(_0x341728[_0x423f('0x22')](_0x29fe71)){if(_0x29fe71[_0x423f('0x2f')](_0x423f('0x30'))===0x0){_0x341728[_0x29fe71[_0x423f('0x31')](0x4)]=_0x341728[_0x29fe71];delete _0x341728[_0x29fe71];}}}}function getLogFromObject(_0x525dbe){return util[_0x423f('0x32')](_0x525dbe,{'showHidden':![],'depth':null});}function agiHandler(_0x20377b){var _0xb4d704,_0x5d206d,_0x2017ae,_0x59fc7a,_0x228df0;logger[_0x423f('0x33')](_0x423f('0x34'),JSON[_0x423f('0x35')](_0x20377b,null,0x2));logger[_0x423f('0xe')](util['format']('[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x20377b[_0x423f('0x18')],_0x20377b[_0x423f('0x19')],_0x20377b[_0x423f('0x1a')],_0x20377b[_0x423f('0x1b')],_0x20377b[_0x423f('0x1c')]));_0x20377b['on'](_0x423f('0x14'),errorHandler);_0x20377b['on'](_0x423f('0x36'),closeHandler);_0x20377b['on'](_0x423f('0x37'),timeoutHandler);_0x20377b[_0x423f('0x1e')]=![];_0x20377b['on'](_0x423f('0x38'),hangupHandler);var _0x3aeb17=getSquareProject[_0x423f('0x39')](null,_0x20377b[_0x423f('0x18')]);if(_0x3aeb17){if(_0x3aeb17['production']){_0xb4d704=getRoot(_0x3aeb17['production']);if(_0xb4d704&&_0xb4d704[_0x423f('0x3a')]){logger[_0x423f('0x33')](_0x423f('0x20'),JSON[_0x423f('0x35')](_0xb4d704,null,0x2));_0x20377b[_0x423f('0x3b')]=moment()['format'](_0x423f('0x3c'));_0x5d206d=initGraph(_[_0x423f('0x26')](_0xb4d704,_0x423f('0x27')),_0xb4d704[_0x423f('0x27')]);_0x2017ae=new Vertices(_0x20377b,rpc,mailRpc);logger[_0x423f('0xe')](util[_0x423f('0xf')](_0x423f('0x3d'),_0x20377b[_0x423f('0x18')],_0x20377b[_0x423f('0x19')],_0x20377b[_0x423f('0x1a')],_0x20377b['dnid'],_0x20377b['uniqueid']));_0x5d206d[_0x423f('0x3e')](_0xb4d704[_0x423f('0x3a')]['id'],function(_0x81bd62){try{_0x81bd62=_0x2017ae[_0x423f('0x3f')](_0x81bd62);logger[_0x423f('0x33')](_0x423f('0x40'),JSON['stringify'](_0x81bd62,null,0x2));if(_0x81bd62[_0x423f('0x21')]===_0x423f('0x41')){logger[_0x423f('0xe')](_0x423f('0x42'));_0x20377b[_0x423f('0x43')]=_0x81bd62[_0x423f('0x43')]||_0x20377b[_0x423f('0x43')];_0x20377b[_0x423f('0x44')]=_0x81bd62['extension'];_0x20377b[_0x423f('0x45')]=_0x81bd62[_0x423f('0x45')]?_0x81bd62[_0x423f('0x45')]-0x1:0x1;return null;}else if(_0x81bd62&&_0x2017ae[_0x81bd62[_0x423f('0x21')]]){_0x228df0=_0x2017ae[_0x81bd62[_0x423f('0x21')]](_0x81bd62);logger[_0x423f('0xe')](_0x423f('0x46'),JSON[_0x423f('0x35')](_0x228df0,null,0x2));if(_0x228df0&&_0x228df0[_0x423f('0x47')]===AGI_CODE_SUCCESS&&_0x228df0['result']!==AGI_RESULT_ERROR&&!_0x20377b[_0x423f('0x1e')]){logger['debug'](_0x423f('0x46'),getLogFromObject(_0x228df0));return _[_0x423f('0x48')](_0x228df0[_0x423f('0x49')])?null:_0x228df0[_0x423f('0x49')][_0x423f('0x4a')]();}else{logger[_0x423f('0x14')](_0x423f('0x46'),getLogFromObject(_0x228df0));return null;}}else{logger[_0x423f('0x14')](_0x423f('0x4b'));return null;}}catch(_0x39f9b7){logger[_0x423f('0x14')](_0x39f9b7[_0x423f('0x16')]);return null;}});if(_0xb4d704[_0x423f('0x4c')]){logger[_0x423f('0xe')](util[_0x423f('0xf')](_0x423f('0x4d'),_0x20377b[_0x423f('0x18')],_0x20377b[_0x423f('0x19')],_0x20377b[_0x423f('0x1a')],_0x20377b[_0x423f('0x1b')],_0x20377b['uniqueid']));_0x5d206d[_0x423f('0x3e')](_0xb4d704['finally']['id'],function(_0x12f216){try{_0x12f216=_0x2017ae[_0x423f('0x3f')](_0x12f216);logger[_0x423f('0x33')](_0x423f('0x40'),JSON[_0x423f('0x35')](_0x12f216,null,0x2));if(_0x12f216&&_0x2017ae[_0x12f216[_0x423f('0x21')]]){_0x228df0=_0x2017ae[_0x12f216[_0x423f('0x21')]](_0x12f216);if(_0x228df0){logger[_0x423f('0x33')](_0x423f('0x46'),getLogFromObject(_0x228df0));return _[_0x423f('0x48')](_0x228df0[_0x423f('0x49')])?null:_0x228df0[_0x423f('0x49')]['toString']();}else{logger[_0x423f('0x14')](_0x423f('0x46'),getLogFromObject(_0x228df0));return null;}}else{logger['error'](_0x423f('0x4b'));return null;}}catch(_0x4866ac){logger[_0x423f('0x14')](_0x4866ac['stack']);return null;}});}logger['info'](util[_0x423f('0xf')](_0x423f('0x4e'),_0x20377b[_0x423f('0x18')],_0x20377b[_0x423f('0x19')],_0x20377b['callerid'],_0x20377b[_0x423f('0x1b')],_0x20377b['uniqueid']));logger[_0x423f('0xe')](util[_0x423f('0xf')](_0x423f('0x4f'),_0x20377b[_0x423f('0x43')],_0x20377b[_0x423f('0x44')],parseInt(_0x20377b[_0x423f('0x45')],0xa)+0x1));_0x20377b[_0x423f('0x50')](_0x20377b[_0x423f('0x43')],_0x20377b[_0x423f('0x44')],parseInt(_0x20377b['priority'],0xa)+0x1);_0x20377b[_0x423f('0x36')]();}}else{logger[_0x423f('0x14')](util['format'](_0x423f('0x51'),_0x20377b['arg_1']));_0x20377b[_0x423f('0x50')](_0x20377b[_0x423f('0x43')],_0x20377b[_0x423f('0x44')],parseInt(_0x20377b[_0x423f('0x45')],0xa)+0x1);_0x20377b[_0x423f('0x36')]();}}else{logger[_0x423f('0x14')](util['format']('Project\x20%s\x20not\x20found',_0x20377b[_0x423f('0x18')]));_0x20377b[_0x423f('0x50')](_0x20377b[_0x423f('0x43')],_0x20377b[_0x423f('0x44')],parseInt(_0x20377b[_0x423f('0x45')],0xa)+0x1);_0x20377b[_0x423f('0x36')]();}}function main(){var _0x2e8374;return utilLicense[_0x423f('0x52')]()[_0x423f('0x2d')](function(_0x5cec20){if(_0x5cec20){if(_0x5cec20[_0x423f('0x53')]){if(_0x5cec20[_0x423f('0x54')]&&_0x5cec20['callysquare']>0x0){logger[_0x423f('0xe')](util['format'](_0x423f('0x55'),_0x5cec20[_0x423f('0x54')]));_0x2e8374=_0x5cec20[_0x423f('0x54')];}else{logger['info']('[LICENSE]\x20CHANNELS:\x20UNLIMITED');}}else{logger[_0x423f('0xe')](_0x423f('0x56'));_0x2e8374=-0x1;}}})[_0x423f('0x2e')](function(_0x48bd34){logger[_0x423f('0x14')](_0x423f('0x57'),_0x48bd34[_0x423f('0x16')]);})[_0x423f('0x4c')](function(){var _0xc5f895=require(_0x423f('0x58'))(config[_0x423f('0x4')]['port'],config[_0x423f('0x4')]['ip'],_0x2e8374);_0xc5f895['on']('error',errorHandler);_0xc5f895['on'](_0x423f('0x59'),listeningHandler);_0xc5f895['on'](_0x423f('0x5a'),connectionHandler);_0xc5f895['on'](_0x423f('0x36'),closeHandler);});}main();