cde044dac2c5b153b726f96c61d7ab7feebe584b
[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 _0x122f=['hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','no\x20code','result=','indexOf','substr','startsWith','length','match','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','function','write','prototype','sendRequest','sync','answer','getData','beep','format','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','setExtension','setPriority','HANGUP','setVariable','isBoolean','isNumber','toString','replace','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','continueAt','extension','GOTO\x20%s\x20%s\x20%s','getVariable','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','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','util','lodash','events','./reply','./error','call','setEncoding','utf8','headers','emit','ready','line','toLowerCase'];(function(_0x52f159,_0x419d8a){var _0x156799=function(_0xf168e8){while(--_0xf168e8){_0x52f159['push'](_0x52f159['shift']());}};_0x156799(++_0x419d8a);}(_0x122f,0xd1));var _0xf122=function(_0x4f256c,_0x5f45bf){_0x4f256c=_0x4f256c-0x0;var _0x4d059d=_0x122f[_0x4f256c];return _0x4d059d;};'use strict';var util=require(_0xf122('0x0'));var _=require(_0xf122('0x1'));var EventEmitter=require(_0xf122('0x2'))['EventEmitter'];var AGIReply=require(_0xf122('0x3'));var AGIError=require(_0xf122('0x4'));function AGIChannel(_0x504d00){var _0x4cd3d5=this,_0x182b6a=new AGIReply(),_0x2a38e7=![],_0x4b39eb={};EventEmitter[_0xf122('0x5')](_0x4cd3d5);_0x504d00[_0xf122('0x6')]('utf8');_0x504d00['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x182b6a['setEncoding'](_0xf122('0x7'));_0x182b6a['on'](_0xf122('0x8'),function(_0x44f63f){for(var _0x2f1357 in _0x44f63f){_0x4cd3d5[_0x2f1357]=_0x44f63f[_0x2f1357];}_0x4cd3d5[_0xf122('0x9')](_0xf122('0xa'));});_0x182b6a['on'](_0xf122('0xb'),function(_0x4d4bed){if(_0x4d4bed[_0xf122('0xc')]()==_0xf122('0xd')){_0x4cd3d5['emit'](_0xf122('0xd'));return;}if(_0x4d4bed[_0xf122('0xe')](0x0,0xb)==_0xf122('0xf')){_0x2a38e7=!![];}if(_0x2a38e7){_0x4b39eb['rx']+=_0x4d4bed+'\x0a';if(_0x4d4bed[_0xf122('0x10')](_0xf122('0x11'))!=-0x1){_0x2a38e7=![];}}else{_0x4b39eb['rx']=_0x4d4bed;}if(_0x2a38e7){return;}if(typeof _0x4b39eb['cb']=='function'){var _0x22beb1=_0x4b39eb['rx'][_0xf122('0xe')](0x0,0x3),_0x57734f=null,_0x18b368=null;_0x22beb1=parseInt(_0x22beb1);if(isNaN(_0x22beb1)){_0x4b39eb['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xf122('0x12')});return;}if(_0x22beb1!=0xc8){_0x4b39eb['cb'](null,{'code':_0x22beb1,'result':-0x1,'extra':'KO'});return;}_0x57734f=_0x4b39eb['rx'][_0xf122('0xe')](0x4)['replace'](_0xf122('0x13'),'');if(_0x57734f[_0xf122('0x14')]('\x20')!=-0x1){_0x57734f=_0x57734f[_0xf122('0x15')](0x0,_0x57734f[_0xf122('0x14')]('\x20'));}if(_[_0xf122('0x16')](_0x57734f,'-1')){_0x57734f=parseInt(_0x57734f);}_0x18b368=_0x4b39eb['rx']['split']('\x20');if(_0x18b368[_0xf122('0x17')]==0x3){_0x18b368=_0x18b368[0x2]['substring'](0x1,_0x18b368[0x2][_0xf122('0x17')]-0x1);}else if(_0x18b368['length']>0x3){var _0x134dad=/\((.+)\)/;var _0x5a5b51=_0x4b39eb['rx'][_0xf122('0x18')](_0x134dad);if(_0x5a5b51){_0x18b368=_0x5a5b51[0x1];}else{_0x18b368=null;}}else{_0x18b368=null;}_0x4b39eb['cb'](null,{'code':_0x22beb1,'result':_0x57734f,'extra':_0x18b368});}});_0x504d00['on']('error',function(_0x570304){_0x4cd3d5[_0xf122('0x9')]('error',new AGIError(_0xf122('0x19'),_0x570304[_0xf122('0x1a')]));});_0x504d00['on'](_0xf122('0x1b'),function(){_0x4cd3d5['emit']('close',new AGIError(_0xf122('0x1c')));});_0x504d00['on'](_0xf122('0x1d'),function(){_0x4cd3d5['emit'](_0xf122('0x1d'),new AGIError(_0xf122('0x1e')));_0x504d00['destroy']();});_0x504d00[_0xf122('0x1f')](_0x182b6a);this[_0xf122('0x20')]=function(_0x3b8ddb,_0xe46ae5){var _0x3b8ddb=_0x3b8ddb||'',_0xe46ae5=typeof _0xe46ae5==_0xf122('0x21')?_0xe46ae5:new Function();_0x4b39eb={'tx':_0x3b8ddb,'rx':'','cb':_0xe46ae5};_0x504d00[_0xf122('0x22')](_0x3b8ddb+'\x0a');},this['close']=function(){_0x504d00['destroy']();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel[_0xf122('0x23')][_0xf122('0x24')]=function(_0x51476e){return this[_0xf122('0x20')][_0xf122('0x25')](this,_0x51476e);};AGIChannel[_0xf122('0x23')][_0xf122('0x26')]=function(){return this[_0xf122('0x24')]('ANSWER');};AGIChannel[_0xf122('0x23')][_0xf122('0x27')]=function(_0xd0214e,_0x139205,_0x3a336b){_0xd0214e=_0xd0214e===undefined?_0xf122('0x28'):_0xd0214e;_0x139205=_0x139205===undefined?'5':_0x139205;_0x3a336b=_0x3a336b===undefined?'1':_0x3a336b;return this[_0xf122('0x24')](util[_0xf122('0x29')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0xd0214e,_0x139205*0x3e8,_0x3a336b));};AGIChannel[_0xf122('0x23')][_0xf122('0x2a')]=function(_0x3a74ed){_0x3a74ed=_0x3a74ed||_0xf122('0x2b');return this[_0xf122('0x24')](util[_0xf122('0x29')](_0xf122('0x2c'),_0x3a74ed));};AGIChannel[_0xf122('0x23')][_0xf122('0x2d')]=function(_0x2ff4e7,_0x3f38ee){if(_[_0xf122('0x2e')](_0x3f38ee)){return this[_0xf122('0x24')](util[_0xf122('0x29')](_0xf122('0x2f'),_0x2ff4e7,_0x3f38ee['join'](',')));}return this[_0xf122('0x24')](util[_0xf122('0x29')](_0xf122('0x2f'),_0x2ff4e7,_0x3f38ee));};AGIChannel['prototype'][_0xf122('0x30')]=function(_0x35d519){return this[_0xf122('0x24')](util[_0xf122('0x29')](_0xf122('0x31'),_0x35d519));};AGIChannel[_0xf122('0x23')][_0xf122('0x32')]=function(_0x1de947){return this['sendRequest'](util[_0xf122('0x29')]('SET\x20EXTENSION\x20%s',_0x1de947));};AGIChannel[_0xf122('0x23')][_0xf122('0x33')]=function(_0x36cdb5){return this['sendRequest'](util[_0xf122('0x29')]('SET\x20PRIORITY\x20%s',_0x36cdb5));};AGIChannel[_0xf122('0x23')][_0xf122('0xd')]=function(){return this[_0xf122('0x24')](_0xf122('0x34'));};AGIChannel[_0xf122('0x23')][_0xf122('0x35')]=function(_0x4fe1a8,_0x50b334){var _0x74aea2=_[_0xf122('0x36')](_0x50b334)||_[_0xf122('0x37')](_0x50b334)?_0x50b334[_0xf122('0x38')]():_0x50b334;return this[_0xf122('0x24')](util['format']('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x4fe1a8,_0x74aea2?_0x74aea2[_0xf122('0x38')]()[_0xf122('0x39')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype']['sayNumber']=function(_0x496992,_0x287c8c){return this['sendRequest'](util[_0xf122('0x29')]('SAY\x20NUMBER\x20%s\x20%s',_0x496992,_0x287c8c));};AGIChannel[_0xf122('0x23')]['sayDigits']=function(_0x1c3533,_0x27e211){return this['sendRequest'](util[_0xf122('0x29')](_0xf122('0x3a'),_0x1c3533,_0x27e211));};AGIChannel[_0xf122('0x23')][_0xf122('0x3b')]=function(_0x3198ca,_0x691e41){return this[_0xf122('0x24')](util[_0xf122('0x29')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x3198ca,_0x691e41));};AGIChannel[_0xf122('0x23')][_0xf122('0x3c')]=function(_0x43d848,_0x50ae92,_0x5c5ec3){_0x50ae92=_0x50ae92||this[_0xf122('0x3d')];_0x5c5ec3=_0x5c5ec3||0x1;this[_0xf122('0x30')](_0x43d848);this[_0xf122('0x32')](_0x50ae92);this['setPriority'](_0x5c5ec3);return this[_0xf122('0x2a')](util['format'](_0xf122('0x3e'),_0x43d848,_0x50ae92,_0x5c5ec3));};AGIChannel[_0xf122('0x23')][_0xf122('0x3f')]=function(_0x5da017){return this[_0xf122('0x24')](util['format']('GET\x20VARIABLE\x20\x22%s\x22',_0x5da017));};AGIChannel['prototype']['recordFile']=function(_0x313dc1,_0x16c25f,_0x5c52e9,_0x40e501,_0x172819,_0x1166cb){_0x16c25f=_0x16c25f||_0xf122('0x40');_0x5c52e9=_0x5c52e9||'';_0x40e501=_0x40e501===undefined?-0x1:_0x40e501==='-1'?-0x1:_0x40e501*0x3e8;_0x172819=_0x172819===undefined?'':'s='+_0x172819;_0x1166cb=_0x1166cb?_0xf122('0x41'):'';return this[_0xf122('0x24')](util[_0xf122('0x29')](_0xf122('0x42'),_0x313dc1,_0x16c25f,_0x5c52e9,_0x40e501,_0x1166cb,_0x172819));};AGIChannel[_0xf122('0x23')][_0xf122('0x43')]=function(_0x504824,_0x385881){_0x385881=_0x385881||'';return this[_0xf122('0x24')](util[_0xf122('0x29')](_0xf122('0x44'),_0x504824,_0x385881));};AGIChannel[_0xf122('0x23')][_0xf122('0x45')]=function(_0x899ab8){return this[_0xf122('0x2d')](_0xf122('0x46'),_0x899ab8);};AGIChannel[_0xf122('0x23')]['wait']=function(_0x562849){return this[_0xf122('0x2d')](_0xf122('0x47'),_0x562849);};AGIChannel[_0xf122('0x23')]['error']=function(_0x2b62c5,_0x818aa){this[_0xf122('0x2a')](util['format'](_0xf122('0x48'),_0x2b62c5['id'],_0x2b62c5[_0xf122('0x49')],_0x818aa));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;