Built motion from commit 911eb874.|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 _0x577b=['stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','handleNotFound','production','handleUnpublished','initialize','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','lodash','syncho','util','../../config/environment','../../config/logger','agi','../../config/license/util','./rpc','./project','./events','EventEmitter','127.0.0.1','nextTick','error','findIndex','deleted','splice','push','stack','env','log','info','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','host.docker.internal','port','message','format','[%s]\x20%s','name','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','callerid','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','createSquareReport','then','catch','hasOwnProperty','indexOf','agi_','substring','debug'];(function(_0x5b172d,_0x3b520e){var _0x5302b3=function(_0x5e22ab){while(--_0x5e22ab){_0x5b172d['push'](_0x5b172d['shift']());}};_0x5302b3(++_0x3b520e);}(_0x577b,0x8e));var _0xb577=function(_0x4b7895,_0x3c4f5d){_0x4b7895=_0x4b7895-0x0;var _0x264180=_0x577b[_0x4b7895];return _0x264180;};'use strict';var _=require(_0xb577('0x0'));var syncho=require(_0xb577('0x1'));var util=require(_0xb577('0x2'));var config=require(_0xb577('0x3'));var logger=require(_0xb577('0x4'))(_0xb577('0x5'));var utilLicense=require(_0xb577('0x6'));var rpc=require(_0xb577('0x7'));var Project=require(_0xb577('0x8'));var AGIEmitter=require(_0xb577('0x9'))[_0xb577('0xa')];var projects=[];config[_0xb577('0x5')]=_['defaults'](config[_0xb577('0x5')],{'ip':_0xb577('0xb'),'port':0x11dd});AGIEmitter['on']('projectUpdate',projectUpdateHandler);function connectionHandler(_0x46119a){process[_0xb577('0xc')](function(){syncho(function(){try{setChannelVariables(_0x46119a);agiHandler(_0x46119a);}catch(_0x4d80c4){logger[_0xb577('0xd')](_0x4d80c4['stack']);}});});}function projectUpdateHandler(_0x52b82c){try{var _0x355068=_[_0xb577('0xe')](projects,['id',_0x52b82c['id']]);if(_0x355068>-0x1){if(_0x52b82c[_0xb577('0xf')]===!![]){projects[_0xb577('0x10')](_0x355068,0x1);}else{projects[_0x355068]=_0x52b82c;}}else{projects[_0xb577('0x11')](_0x52b82c);}}catch(_0x3572d2){logger[_0xb577('0xd')](_0x3572d2[_0xb577('0x12')]);}}function listeningHandler(){var _0x81be82=config[_0xb577('0x13')]==='production'||![];console[_0xb577('0x14')]('Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!',config[_0xb577('0x5')]['port']);logger[_0xb577('0x15')](util['format'](_0xb577('0x16'),_0x81be82?config[_0xb577('0x5')]['ip']:_0xb577('0x17'),config[_0xb577('0x5')][_0xb577('0x18')]));}function errorHandler(_0x4a0878){if(_0x4a0878&&_0x4a0878['name']&&_0x4a0878[_0xb577('0x19')]){logger[_0xb577('0xd')](util[_0xb577('0x1a')](_0xb577('0x1b'),_0x4a0878[_0xb577('0x1c')],_0x4a0878[_0xb577('0x19')]));}else{logger[_0xb577('0xd')](util[_0xb577('0x1a')](_0xb577('0x1d'),_0x4a0878[_0xb577('0x12')]));}}function closeHandler(){logger[_0xb577('0x15')](util[_0xb577('0x1a')](_0xb577('0x1e'),this['arg_1'],this[_0xb577('0x1f')],this[_0xb577('0x20')],this[_0xb577('0x21')],this[_0xb577('0x22')]));try{createSquareReport(this);}catch(_0x34b9fe){logger[_0xb577('0xd')](_0x34b9fe['stack']);}}function timeoutHandler(){logger[_0xb577('0x15')](util['format'](_0xb577('0x23'),this[_0xb577('0x24')],this[_0xb577('0x1f')],this['callerid'],this[_0xb577('0x21')],this[_0xb577('0x22')]));}function hangupHandler(){logger['info'](util['format'](_0xb577('0x25'),this[_0xb577('0x24')],this[_0xb577('0x1f')],this[_0xb577('0x20')],this['dnid'],this['uniqueid']));this[_0xb577('0x26')]=!![];}function createSquareReport(_0x2ba8e6,_0x492bd4){rpc[_0xb577('0x27')](_0x2ba8e6)[_0xb577('0x28')](function(_0x45bc50){if(_0x492bd4){_0x492bd4(null,_0x45bc50);}})[_0xb577('0x29')](function(_0x2d54b4){if(_0x492bd4){_0x492bd4(null,_0x2d54b4);}});}function setChannelVariables(_0xe8253e){for(var _0x1d71aa in _0xe8253e){if(_0xe8253e[_0xb577('0x2a')](_0x1d71aa)){if(_0x1d71aa[_0xb577('0x2b')](_0xb577('0x2c'))===0x0){_0xe8253e[_0x1d71aa[_0xb577('0x2d')](0x4)]=_0xe8253e[_0x1d71aa];delete _0xe8253e[_0x1d71aa];}}}}function agiHandler(_0x313f8a){logger[_0xb577('0x2e')]('variables',JSON[_0xb577('0x2f')](_0x313f8a,null,0x2));logger['info'](util['format'](_0xb577('0x30'),_0x313f8a[_0xb577('0x24')],_0x313f8a['calleridname'],_0x313f8a[_0xb577('0x20')],_0x313f8a[_0xb577('0x21')],_0x313f8a[_0xb577('0x22')]));_0x313f8a['on'](_0xb577('0xd'),errorHandler);_0x313f8a['on'](_0xb577('0x31'),closeHandler);_0x313f8a['on'](_0xb577('0x32'),timeoutHandler);_0x313f8a[_0xb577('0x26')]=![];_0x313f8a['on'](_0xb577('0x33'),hangupHandler);var _0x5f3440=_['find'](projects,['name',_0x313f8a[_0xb577('0x24')]]);if(!_0x5f3440)return Project[_0xb577('0x34')](_0x313f8a);if(!_0x5f3440[_0xb577('0x35')])return Project[_0xb577('0x36')](_0x313f8a);return Project[_0xb577('0x37')](_0x5f3440,_0x313f8a);}function main(){var _0x5ca6e9;return utilLicense[_0xb577('0x38')]()[_0xb577('0x28')](function(_0x1c6f63){if(!_0x1c6f63)return;if(_0x1c6f63[_0xb577('0x39')]){if(_0x1c6f63[_0xb577('0x3a')]&&_0x1c6f63['callysquare']>0x0){logger[_0xb577('0x15')](util['format'](_0xb577('0x3b'),_0x1c6f63[_0xb577('0x3a')]));_0x5ca6e9=_0x1c6f63[_0xb577('0x3a')];}else{logger[_0xb577('0x15')]('[LICENSE]\x20CHANNELS:\x20UNLIMITED');}}else{logger[_0xb577('0x15')](_0xb577('0x3c'));_0x5ca6e9=-0x1;}})[_0xb577('0x28')](function(){return Project['getAll']();})[_0xb577('0x28')](function(_0x4651cc){projects=_0x4651cc;return;})['catch'](function(_0x55cad0){logger[_0xb577('0xd')](_0xb577('0x3d'),_0x55cad0[_0xb577('0x12')]);})['finally'](function(){var _0x50af75=require(_0xb577('0x3e'))(config[_0xb577('0x5')][_0xb577('0x18')],config[_0xb577('0x5')]['ip'],_0x5ca6e9);_0x50af75['on'](_0xb577('0xd'),errorHandler);_0x50af75['on']('listening',listeningHandler);_0x50af75['on']('connection',connectionHandler);_0x50af75['on']('close',closeHandler);});}main();