Built motion from commit 3c2ce842.|2.6.31
[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 _0xd67a=['EventEmitter','127.0.0.1','nextTick','error','stack','deleted','splice','push','env','production','log','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','port','name','message','[%s]\x20%s','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','dnid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','then','catch','hasOwnProperty','indexOf','agi_','substring','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','find','handleNotFound','initialize','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20VOICE\x20IS\x20DISABLED','getAll','[LICENSE]','finally','./server','listening','connection','lodash','syncho','util','../../config/logger','agi','../../config/license/util','./rpc','./project'];(function(_0x52b21e,_0x546518){var _0x399fbb=function(_0x351cc9){while(--_0x351cc9){_0x52b21e['push'](_0x52b21e['shift']());}};_0x399fbb(++_0x546518);}(_0xd67a,0x74));var _0xad67=function(_0x46a003,_0x12d65e){_0x46a003=_0x46a003-0x0;var _0x11c836=_0xd67a[_0x46a003];return _0x11c836;};'use strict';var _=require(_0xad67('0x0'));var syncho=require(_0xad67('0x1'));var util=require(_0xad67('0x2'));var config=require('../../config/environment');var logger=require(_0xad67('0x3'))(_0xad67('0x4'));var utilLicense=require(_0xad67('0x5'));var rpc=require(_0xad67('0x6'));var Project=require(_0xad67('0x7'));var AGIEmitter=require('./events')[_0xad67('0x8')];var projects=[];config[_0xad67('0x4')]=_['defaults'](config[_0xad67('0x4')],{'ip':_0xad67('0x9'),'port':0x11dd});AGIEmitter['on']('projectUpdate',projectUpdateHandler);function connectionHandler(_0x4db5de){process[_0xad67('0xa')](function(){syncho(function(){try{setChannelVariables(_0x4db5de);agiHandler(_0x4db5de);}catch(_0x7285a8){logger[_0xad67('0xb')](_0x7285a8[_0xad67('0xc')]);}});});}function projectUpdateHandler(_0x37691d){try{var _0x17983f=_['findIndex'](projects,['id',_0x37691d['id']]);if(_0x17983f>-0x1){if(_0x37691d[_0xad67('0xd')]===!![]){projects[_0xad67('0xe')](_0x17983f,0x1);}else{projects[_0x17983f]=_0x37691d;}}else{projects[_0xad67('0xf')](_0x37691d);}}catch(_0x4f8f7d){logger[_0xad67('0xb')](_0x4f8f7d[_0xad67('0xc')]);}}function listeningHandler(){var _0x3c6594=config[_0xad67('0x10')]===_0xad67('0x11')||![];console[_0xad67('0x12')](_0xad67('0x13'),config[_0xad67('0x4')]['port']);logger[_0xad67('0x14')](util[_0xad67('0x15')](_0xad67('0x16'),_0x3c6594?config[_0xad67('0x4')]['ip']:'host.docker.internal',config['agi'][_0xad67('0x17')]));}function errorHandler(_0x46f1f6){if(_0x46f1f6&&_0x46f1f6[_0xad67('0x18')]&&_0x46f1f6[_0xad67('0x19')]){logger[_0xad67('0xb')](util['format'](_0xad67('0x1a'),_0x46f1f6[_0xad67('0x18')],_0x46f1f6[_0xad67('0x19')]));}else{logger[_0xad67('0xb')](util[_0xad67('0x15')](_0xad67('0x1b'),_0x46f1f6[_0xad67('0xc')]));}}function closeHandler(){logger['info'](util[_0xad67('0x15')](_0xad67('0x1c'),this[_0xad67('0x1d')],this[_0xad67('0x1e')],this[_0xad67('0x1f')],this['dnid'],this[_0xad67('0x20')]));try{createSquareReport(this);}catch(_0x310da4){logger[_0xad67('0xb')](_0x310da4[_0xad67('0xc')]);}}function timeoutHandler(){logger[_0xad67('0x14')](util[_0xad67('0x15')](_0xad67('0x21'),this[_0xad67('0x1d')],this[_0xad67('0x1e')],this[_0xad67('0x1f')],this[_0xad67('0x22')],this[_0xad67('0x20')]));}function hangupHandler(){logger['info'](util[_0xad67('0x15')](_0xad67('0x23'),this[_0xad67('0x1d')],this[_0xad67('0x1e')],this[_0xad67('0x1f')],this[_0xad67('0x22')],this['uniqueid']));this[_0xad67('0x24')]=!![];}function createSquareReport(_0xede747,_0x2a0a50){rpc['createSquareReport'](_0xede747)[_0xad67('0x25')](function(_0x2bafe5){if(_0x2a0a50){_0x2a0a50(null,_0x2bafe5);}})[_0xad67('0x26')](function(_0x2c12c9){if(_0x2a0a50){_0x2a0a50(null,_0x2c12c9);}});}function setChannelVariables(_0x51fe9e){for(var _0x36f8cd in _0x51fe9e){if(_0x51fe9e[_0xad67('0x27')](_0x36f8cd)){if(_0x36f8cd[_0xad67('0x28')](_0xad67('0x29'))===0x0){_0x51fe9e[_0x36f8cd[_0xad67('0x2a')](0x4)]=_0x51fe9e[_0x36f8cd];delete _0x51fe9e[_0x36f8cd];}}}}function agiHandler(_0x3fb9d4){logger['debug']('variables',JSON[_0xad67('0x2b')](_0x3fb9d4,null,0x2));logger[_0xad67('0x14')](util['format'](_0xad67('0x2c'),_0x3fb9d4['arg_1'],_0x3fb9d4['calleridname'],_0x3fb9d4[_0xad67('0x1f')],_0x3fb9d4[_0xad67('0x22')],_0x3fb9d4[_0xad67('0x20')]));_0x3fb9d4['on'](_0xad67('0xb'),errorHandler);_0x3fb9d4['on'](_0xad67('0x2d'),closeHandler);_0x3fb9d4['on'](_0xad67('0x2e'),timeoutHandler);_0x3fb9d4[_0xad67('0x24')]=![];_0x3fb9d4['on'](_0xad67('0x2f'),hangupHandler);var _0x332dbf=_[_0xad67('0x30')](projects,['name',_0x3fb9d4[_0xad67('0x1d')]]);if(!_0x332dbf)return Project[_0xad67('0x31')](_0x3fb9d4);if(!_0x332dbf[_0xad67('0x11')])return Project['handleUnpublished'](_0x3fb9d4);return Project[_0xad67('0x32')](_0x332dbf,_0x3fb9d4);}function main(){var _0x167eeb;return utilLicense[_0xad67('0x33')]()[_0xad67('0x25')](function(_0x3a7361){if(!_0x3a7361)return;if(_0x3a7361[_0xad67('0x34')]){if(_0x3a7361[_0xad67('0x35')]&&_0x3a7361['callysquare']>0x0){logger[_0xad67('0x14')](util[_0xad67('0x15')](_0xad67('0x36'),_0x3a7361[_0xad67('0x35')]));_0x167eeb=_0x3a7361[_0xad67('0x35')];}else{logger[_0xad67('0x14')]('[LICENSE]\x20CHANNELS:\x20UNLIMITED');}}else{logger[_0xad67('0x14')](_0xad67('0x37'));_0x167eeb=-0x1;}})['then'](function(){return Project[_0xad67('0x38')]();})[_0xad67('0x25')](function(_0x1f71ea){projects=_0x1f71ea;return;})[_0xad67('0x26')](function(_0x4bd476){logger[_0xad67('0xb')](_0xad67('0x39'),_0x4bd476[_0xad67('0xc')]);})[_0xad67('0x3a')](function(){var _0x54780c=require(_0xad67('0x3b'))(config[_0xad67('0x4')][_0xad67('0x17')],config[_0xad67('0x4')]['ip'],_0x167eeb);_0x54780c['on'](_0xad67('0xb'),errorHandler);_0x54780c['on'](_0xad67('0x3c'),listeningHandler);_0x54780c['on'](_0xad67('0x3d'),connectionHandler);_0x54780c['on'](_0xad67('0x2d'),closeHandler);});}main();