Built motion from commit d5e4af8c.|2.6.23
[motion2.git] / server / services / agi / channel.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 _0x0703=['sync','prototype','ANSWER','getData','beep','format','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','setVariable','isBoolean','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20DIGITS\x20%s\x20%s','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','setExtension','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','wav','BEEP','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','520\x20End\x20of\x20proper','no\x20code','replace','result=','substr','indexOf','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','function','write','destroy','inherits','sendRequest'];(function(_0x476bf4,_0x2a3755){var _0x788ffe=function(_0x13fa11){while(--_0x13fa11){_0x476bf4['push'](_0x476bf4['shift']());}};_0x788ffe(++_0x2a3755);}(_0x0703,0xc0));var _0x3070=function(_0x128a79,_0x19f331){_0x128a79=_0x128a79-0x0;var _0x2ff426=_0x0703[_0x128a79];return _0x2ff426;};'use strict';var util=require(_0x3070('0x0'));var _=require(_0x3070('0x1'));var EventEmitter=require(_0x3070('0x2'))[_0x3070('0x3')];var AGIReply=require(_0x3070('0x4'));var AGIError=require(_0x3070('0x5'));function AGIChannel(_0x4ab1d4){var _0x579bb1=this,_0x1736e5=new AGIReply(),_0x5f4b06=![],_0x240844={};EventEmitter[_0x3070('0x6')](_0x579bb1);_0x4ab1d4[_0x3070('0x7')](_0x3070('0x8'));_0x4ab1d4[_0x3070('0x9')](0x8*0x3c*0x3c*0x3e8);_0x1736e5[_0x3070('0x7')]('utf8');_0x1736e5['on'](_0x3070('0xa'),function(_0xf3a45f){for(var _0x2fb8bf in _0xf3a45f){_0x579bb1[_0x2fb8bf]=_0xf3a45f[_0x2fb8bf];}_0x579bb1[_0x3070('0xb')](_0x3070('0xc'));});_0x1736e5['on'](_0x3070('0xd'),function(_0x3394b1){if(_0x3394b1[_0x3070('0xe')]()==_0x3070('0xf')){_0x579bb1[_0x3070('0xb')](_0x3070('0xf'));return;}if(_0x3394b1[_0x3070('0x10')](0x0,0xb)==_0x3070('0x11')){_0x5f4b06=!![];}if(_0x5f4b06){_0x240844['rx']+=_0x3394b1+'\x0a';if(_0x3394b1['search'](_0x3070('0x12'))!=-0x1){_0x5f4b06=![];}}else{_0x240844['rx']=_0x3394b1;}if(_0x5f4b06){return;}if(typeof _0x240844['cb']=='function'){var _0x49e797=_0x240844['rx'][_0x3070('0x10')](0x0,0x3),_0x22277c=null,_0x4a80ab=null;_0x49e797=parseInt(_0x49e797);if(isNaN(_0x49e797)){_0x240844['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x3070('0x13')});return;}if(_0x49e797!=0xc8){_0x240844['cb'](null,{'code':_0x49e797,'result':-0x1,'extra':'KO'});return;}_0x22277c=_0x240844['rx'][_0x3070('0x10')](0x4)[_0x3070('0x14')](_0x3070('0x15'),'');if(_0x22277c['indexOf']('\x20')!=-0x1){_0x22277c=_0x22277c[_0x3070('0x16')](0x0,_0x22277c[_0x3070('0x17')]('\x20'));}if(_['startsWith'](_0x22277c,'-1')){_0x22277c=parseInt(_0x22277c);}_0x4a80ab=_0x240844['rx']['split']('\x20');if(_0x4a80ab[_0x3070('0x18')]==0x3){_0x4a80ab=_0x4a80ab[0x2][_0x3070('0x10')](0x1,_0x4a80ab[0x2][_0x3070('0x18')]-0x1);}else if(_0x4a80ab[_0x3070('0x18')]>0x3){var _0x766377=/\((.+)\)/;var _0x3641ec=_0x240844['rx'][_0x3070('0x19')](_0x766377);if(_0x3641ec){_0x4a80ab=_0x3641ec[0x1];}else{_0x4a80ab=null;}}else{_0x4a80ab=null;}_0x240844['cb'](null,{'code':_0x49e797,'result':_0x22277c,'extra':_0x4a80ab});}});_0x4ab1d4['on'](_0x3070('0x1a'),function(_0x4564fc){_0x579bb1[_0x3070('0xb')](_0x3070('0x1a'),new AGIError('E_AGI_SOCKET_ERROR',_0x4564fc[_0x3070('0x1b')]));});_0x4ab1d4['on']('close',function(){_0x579bb1[_0x3070('0xb')](_0x3070('0x1c'),new AGIError(_0x3070('0x1d')));});_0x4ab1d4['on'](_0x3070('0x1e'),function(){_0x579bb1[_0x3070('0xb')](_0x3070('0x1e'),new AGIError(_0x3070('0x1f')));_0x4ab1d4['destroy']();});_0x4ab1d4[_0x3070('0x20')](_0x1736e5);this[_0x3070('0x21')]=function(_0x13452c,_0x39735d){var _0x13452c=_0x13452c||'',_0x39735d=typeof _0x39735d==_0x3070('0x22')?_0x39735d:new Function();_0x240844={'tx':_0x13452c,'rx':'','cb':_0x39735d};_0x4ab1d4[_0x3070('0x23')](_0x13452c+'\x0a');},this[_0x3070('0x1c')]=function(){_0x4ab1d4[_0x3070('0x24')]();};}util[_0x3070('0x25')](AGIChannel,EventEmitter);AGIChannel['prototype'][_0x3070('0x26')]=function(_0x530198){return this[_0x3070('0x21')][_0x3070('0x27')](this,_0x530198);};AGIChannel[_0x3070('0x28')]['answer']=function(){return this[_0x3070('0x26')](_0x3070('0x29'));};AGIChannel[_0x3070('0x28')][_0x3070('0x2a')]=function(_0x853abb,_0xe826d9,_0x2def9d){_0x853abb=_0x853abb===undefined?_0x3070('0x2b'):_0x853abb;_0xe826d9=_0xe826d9===undefined?'5':_0xe826d9;_0x2def9d=_0x2def9d===undefined?'1':_0x2def9d;return this[_0x3070('0x26')](util[_0x3070('0x2c')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x853abb,_0xe826d9*0x3e8,_0x2def9d));};AGIChannel[_0x3070('0x28')][_0x3070('0x2d')]=function(_0x1ffb6a){_0x1ffb6a=_0x1ffb6a||_0x3070('0x2e');return this[_0x3070('0x26')](util[_0x3070('0x2c')](_0x3070('0x2f'),_0x1ffb6a));};AGIChannel[_0x3070('0x28')][_0x3070('0x30')]=function(_0x359ca2,_0x134709){if(_['isArray'](_0x134709)){return this[_0x3070('0x26')](util[_0x3070('0x2c')](_0x3070('0x31'),_0x359ca2,_0x134709[_0x3070('0x32')](',')));}return this['sendRequest'](util[_0x3070('0x2c')]('EXEC\x20%s\x20%s',_0x359ca2,_0x134709));};AGIChannel[_0x3070('0x28')][_0x3070('0x33')]=function(_0x34d973){return this[_0x3070('0x26')](util[_0x3070('0x2c')](_0x3070('0x34'),_0x34d973));};AGIChannel[_0x3070('0x28')]['setExtension']=function(_0xcdd8c8){return this[_0x3070('0x26')](util[_0x3070('0x2c')](_0x3070('0x35'),_0xcdd8c8));};AGIChannel[_0x3070('0x28')][_0x3070('0x36')]=function(_0x23e7cc){return this[_0x3070('0x26')](util[_0x3070('0x2c')](_0x3070('0x37'),_0x23e7cc));};AGIChannel[_0x3070('0x28')]['hangup']=function(){return this[_0x3070('0x26')]('HANGUP');};AGIChannel['prototype'][_0x3070('0x38')]=function(_0x222de6,_0x123ba6){var _0x19b4cf=_[_0x3070('0x39')](_0x123ba6)||_['isNumber'](_0x123ba6)?_0x123ba6[_0x3070('0x3a')]():_0x123ba6;return this[_0x3070('0x26')](util[_0x3070('0x2c')](_0x3070('0x3b'),_0x222de6,_0x19b4cf?_0x19b4cf[_0x3070('0x3a')]()[_0x3070('0x14')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x3070('0x3c')]=function(_0x3cb314,_0x4ba627){return this[_0x3070('0x26')](util['format']('SAY\x20NUMBER\x20%s\x20%s',_0x3cb314,_0x4ba627));};AGIChannel[_0x3070('0x28')]['sayDigits']=function(_0x1a31e3,_0x861e63){return this['sendRequest'](util[_0x3070('0x2c')](_0x3070('0x3d'),_0x1a31e3,_0x861e63));};AGIChannel[_0x3070('0x28')]['sayPhonetic']=function(_0x55f16c,_0x10ba8b){return this['sendRequest'](util[_0x3070('0x2c')](_0x3070('0x3e'),_0x55f16c,_0x10ba8b));};AGIChannel['prototype'][_0x3070('0x3f')]=function(_0xcf737f,_0x2944b1,_0x3155ee){_0x2944b1=_0x2944b1||this['extension'];_0x3155ee=_0x3155ee||0x1;this['setContext'](_0xcf737f);this[_0x3070('0x40')](_0x2944b1);this[_0x3070('0x36')](_0x3155ee);return this['noop'](util[_0x3070('0x2c')](_0x3070('0x41'),_0xcf737f,_0x2944b1,_0x3155ee));};AGIChannel['prototype']['getVariable']=function(_0xc49e8e){return this[_0x3070('0x26')](util[_0x3070('0x2c')](_0x3070('0x42'),_0xc49e8e));};AGIChannel[_0x3070('0x28')]['recordFile']=function(_0x3034f1,_0x241f0a,_0x5a25d7,_0x365c4e,_0x7b99fe,_0x4c590c){_0x241f0a=_0x241f0a||_0x3070('0x43');_0x5a25d7=_0x5a25d7||'';_0x365c4e=_0x365c4e===undefined?-0x1:_0x365c4e==='-1'?-0x1:_0x365c4e*0x3e8;_0x7b99fe=_0x7b99fe===undefined?'':'s='+_0x7b99fe;_0x4c590c=_0x4c590c?_0x3070('0x44'):'';return this['sendRequest'](util[_0x3070('0x2c')]('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x3034f1,_0x241f0a,_0x5a25d7,_0x365c4e,_0x4c590c,_0x7b99fe));};AGIChannel[_0x3070('0x28')][_0x3070('0x45')]=function(_0x209ba2,_0xbf0d1e){_0xbf0d1e=_0xbf0d1e||'';return this['sendRequest'](util['format'](_0x3070('0x46'),_0x209ba2,_0xbf0d1e));};AGIChannel['prototype'][_0x3070('0x47')]=function(_0x3abee0){return this[_0x3070('0x30')](_0x3070('0x48'),_0x3abee0);};AGIChannel[_0x3070('0x28')][_0x3070('0x49')]=function(_0x3cd497){return this[_0x3070('0x30')]('WAIT',_0x3cd497);};AGIChannel['prototype'][_0x3070('0x1a')]=function(_0x1b5294,_0x28299a){this[_0x3070('0x2d')](util[_0x3070('0x2c')](_0x3070('0x4a'),_0x1b5294['id'],_0x1b5294[_0x3070('0x4b')],_0x28299a));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x3070('0x4c')]=AGIChannel;