Built motion from commit b0a9a629.|2.6.33
[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 _0x4eb4=['./project','./events','EventEmitter','agi','projectUpdate','nextTick','error','stack','deleted','splice','push','production','log','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','info','format','host.docker.internal','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','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','createSquareReport','then','hasOwnProperty','indexOf','agi_','debug','variables','stringify','close','timeout','hangup','handleUnpublished','initialize','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','getAll','[LICENSE]','./server','listening','syncho','util','../../config/environment','../../config/logger','../../config/license/util','./rpc'];(function(_0x4b0726,_0x25640e){var _0x15f709=function(_0x5a2a9c){while(--_0x5a2a9c){_0x4b0726['push'](_0x4b0726['shift']());}};_0x15f709(++_0x25640e);}(_0x4eb4,0x11c));var _0x44eb=function(_0x284506,_0x191316){_0x284506=_0x284506-0x0;var _0x1e9ee5=_0x4eb4[_0x284506];return _0x1e9ee5;};'use strict';var _=require('lodash');var syncho=require(_0x44eb('0x0'));var util=require(_0x44eb('0x1'));var config=require(_0x44eb('0x2'));var logger=require(_0x44eb('0x3'))('agi');var utilLicense=require(_0x44eb('0x4'));var rpc=require(_0x44eb('0x5'));var Project=require(_0x44eb('0x6'));var AGIEmitter=require(_0x44eb('0x7'))[_0x44eb('0x8')];var projects=[];config[_0x44eb('0x9')]=_['defaults'](config[_0x44eb('0x9')],{'ip':'127.0.0.1','port':0x11dd});AGIEmitter['on'](_0x44eb('0xa'),projectUpdateHandler);function connectionHandler(_0x244809){process[_0x44eb('0xb')](function(){syncho(function(){try{setChannelVariables(_0x244809);agiHandler(_0x244809);}catch(_0x4a2b95){logger[_0x44eb('0xc')](_0x4a2b95[_0x44eb('0xd')]);}});});}function projectUpdateHandler(_0x43d867){try{var _0x4b6322=_['findIndex'](projects,['id',_0x43d867['id']]);if(_0x4b6322>-0x1){if(_0x43d867[_0x44eb('0xe')]===!![]){projects[_0x44eb('0xf')](_0x4b6322,0x1);}else{projects[_0x4b6322]=_0x43d867;}}else{projects[_0x44eb('0x10')](_0x43d867);}}catch(_0x4eb094){logger['error'](_0x4eb094[_0x44eb('0xd')]);}}function listeningHandler(){var _0x5b4e20=config['env']===_0x44eb('0x11')||![];console[_0x44eb('0x12')](_0x44eb('0x13'),config[_0x44eb('0x9')]['port']);logger[_0x44eb('0x14')](util[_0x44eb('0x15')]('[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d',_0x5b4e20?config[_0x44eb('0x9')]['ip']:_0x44eb('0x16'),config[_0x44eb('0x9')][_0x44eb('0x17')]));}function errorHandler(_0x12bf6c){if(_0x12bf6c&&_0x12bf6c[_0x44eb('0x18')]&&_0x12bf6c[_0x44eb('0x19')]){logger[_0x44eb('0xc')](util['format'](_0x44eb('0x1a'),_0x12bf6c['name'],_0x12bf6c['message']));}else{logger[_0x44eb('0xc')](util[_0x44eb('0x15')](_0x44eb('0x1b'),_0x12bf6c['stack']));}}function closeHandler(){logger[_0x44eb('0x14')](util[_0x44eb('0x15')](_0x44eb('0x1c'),this[_0x44eb('0x1d')],this[_0x44eb('0x1e')],this[_0x44eb('0x1f')],this[_0x44eb('0x20')],this[_0x44eb('0x21')]));try{createSquareReport(this);}catch(_0x82078f){logger['error'](_0x82078f['stack']);}}function timeoutHandler(){logger[_0x44eb('0x14')](util[_0x44eb('0x15')](_0x44eb('0x22'),this['arg_1'],this['calleridname'],this[_0x44eb('0x1f')],this['dnid'],this[_0x44eb('0x21')]));}function hangupHandler(){logger['info'](util[_0x44eb('0x15')](_0x44eb('0x23'),this[_0x44eb('0x1d')],this['calleridname'],this[_0x44eb('0x1f')],this['dnid'],this[_0x44eb('0x21')]));this['evtHangup']=!![];}function createSquareReport(_0x2c3e79,_0x4ec26a){rpc[_0x44eb('0x24')](_0x2c3e79)[_0x44eb('0x25')](function(_0xca9d45){if(_0x4ec26a){_0x4ec26a(null,_0xca9d45);}})['catch'](function(_0x4bbb56){if(_0x4ec26a){_0x4ec26a(null,_0x4bbb56);}});}function setChannelVariables(_0xe23cd8){for(var _0xc510c in _0xe23cd8){if(_0xe23cd8[_0x44eb('0x26')](_0xc510c)){if(_0xc510c[_0x44eb('0x27')](_0x44eb('0x28'))===0x0){_0xe23cd8[_0xc510c['substring'](0x4)]=_0xe23cd8[_0xc510c];delete _0xe23cd8[_0xc510c];}}}}function agiHandler(_0x2e850a){logger[_0x44eb('0x29')](_0x44eb('0x2a'),JSON[_0x44eb('0x2b')](_0x2e850a,null,0x2));logger[_0x44eb('0x14')](util[_0x44eb('0x15')]('[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x2e850a[_0x44eb('0x1d')],_0x2e850a[_0x44eb('0x1e')],_0x2e850a[_0x44eb('0x1f')],_0x2e850a[_0x44eb('0x20')],_0x2e850a['uniqueid']));_0x2e850a['on'](_0x44eb('0xc'),errorHandler);_0x2e850a['on'](_0x44eb('0x2c'),closeHandler);_0x2e850a['on'](_0x44eb('0x2d'),timeoutHandler);_0x2e850a['evtHangup']=![];_0x2e850a['on'](_0x44eb('0x2e'),hangupHandler);var _0x5e71c9=_['find'](projects,['name',_0x2e850a[_0x44eb('0x1d')]]);if(!_0x5e71c9)return Project['handleNotFound'](_0x2e850a);if(!_0x5e71c9[_0x44eb('0x11')])return Project[_0x44eb('0x2f')](_0x2e850a);return Project[_0x44eb('0x30')](_0x5e71c9,_0x2e850a);}function main(){var _0x333525;return utilLicense['getLicense']()[_0x44eb('0x25')](function(_0x5b7963){if(!_0x5b7963)return;if(_0x5b7963[_0x44eb('0x31')]){if(_0x5b7963[_0x44eb('0x32')]&&_0x5b7963['callysquare']>0x0){logger[_0x44eb('0x14')](util['format'](_0x44eb('0x33'),_0x5b7963['callysquare']));_0x333525=_0x5b7963[_0x44eb('0x32')];}else{logger[_0x44eb('0x14')](_0x44eb('0x34'));}}else{logger['info'](_0x44eb('0x35'));_0x333525=-0x1;}})[_0x44eb('0x25')](function(){return Project[_0x44eb('0x36')]();})[_0x44eb('0x25')](function(_0x2ba569){projects=_0x2ba569;return;})['catch'](function(_0xebbce3){logger[_0x44eb('0xc')](_0x44eb('0x37'),_0xebbce3[_0x44eb('0xd')]);})['finally'](function(){var _0x177fee=require(_0x44eb('0x38'))(config[_0x44eb('0x9')]['port'],config['agi']['ip'],_0x333525);_0x177fee['on'](_0x44eb('0xc'),errorHandler);_0x177fee['on'](_0x44eb('0x39'),listeningHandler);_0x177fee['on']('connection',connectionHandler);_0x177fee['on']('close',closeHandler);});}main();