b3ff462795bbeddbd3696e3cb021467d9a5c3449
[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 _0xb9a7=['E_AGI_SOCKET_TIMEOUT','pipe','write','destroy','prototype','sendRequest','command','sync','answer','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','isArray','EXEC\x20%s\x20%s','join','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setContext','setExtension','GOTO\x20%s\x20%s\x20%s','getVariable','recordFile','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','agi','exec','wait','noop','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','ready','line','toLowerCase','hangup','520-Invalid','function','substring','no\x20code','replace','indexOf','startsWith','split','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout'];(function(_0x41a596,_0x9963c){var _0x48cad1=function(_0x48736e){while(--_0x48736e){_0x41a596['push'](_0x41a596['shift']());}};_0x48cad1(++_0x9963c);}(_0xb9a7,0x172));var _0x7b9a=function(_0x255d5b,_0x4f6f35){_0x255d5b=_0x255d5b-0x0;var _0x3e141a=_0xb9a7[_0x255d5b];return _0x3e141a;};'use strict';var util=require(_0x7b9a('0x0'));var _=require('lodash');var EventEmitter=require(_0x7b9a('0x1'))[_0x7b9a('0x2')];var AGIReply=require(_0x7b9a('0x3'));var AGIError=require(_0x7b9a('0x4'));function AGIChannel(_0x11e127){var _0x105930=this,_0x2528b2=new AGIReply(),_0x25d6eb=![],_0x400af1={};EventEmitter[_0x7b9a('0x5')](_0x105930);_0x11e127[_0x7b9a('0x6')](_0x7b9a('0x7'));_0x11e127[_0x7b9a('0x8')](0x8*0x3c*0x3c*0x3e8);_0x2528b2[_0x7b9a('0x6')](_0x7b9a('0x7'));_0x2528b2['on'](_0x7b9a('0x9'),function(_0x5a0e8b){for(var _0xaff1b7 in _0x5a0e8b){_0x105930[_0xaff1b7]=_0x5a0e8b[_0xaff1b7];}_0x105930[_0x7b9a('0xa')](_0x7b9a('0xb'));});_0x2528b2['on'](_0x7b9a('0xc'),function(_0x34af95){if(_0x34af95[_0x7b9a('0xd')]()==_0x7b9a('0xe')){_0x105930[_0x7b9a('0xa')](_0x7b9a('0xe'));return;}if(_0x34af95['substring'](0x0,0xb)==_0x7b9a('0xf')){_0x25d6eb=!![];}if(_0x25d6eb){_0x400af1['rx']+=_0x34af95+'\x0a';if(_0x34af95['search']('520\x20End\x20of\x20proper')!=-0x1){_0x25d6eb=![];}}else{_0x400af1['rx']=_0x34af95;}if(_0x25d6eb){return;}if(typeof _0x400af1['cb']==_0x7b9a('0x10')){var _0x1c5bcd=_0x400af1['rx'][_0x7b9a('0x11')](0x0,0x3),_0x339769=null,_0x293242=null;_0x1c5bcd=parseInt(_0x1c5bcd);if(isNaN(_0x1c5bcd)){_0x400af1['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x7b9a('0x12')});return;}if(_0x1c5bcd!=0xc8){_0x400af1['cb'](null,{'code':_0x1c5bcd,'result':-0x1,'extra':'KO'});return;}_0x339769=_0x400af1['rx'][_0x7b9a('0x11')](0x4)[_0x7b9a('0x13')]('result=','');if(_0x339769['indexOf']('\x20')!=-0x1){_0x339769=_0x339769['substr'](0x0,_0x339769[_0x7b9a('0x14')]('\x20'));}if(_[_0x7b9a('0x15')](_0x339769,'-1')){_0x339769=parseInt(_0x339769);}_0x293242=_0x400af1['rx'][_0x7b9a('0x16')]('\x20');if(_0x293242[_0x7b9a('0x17')]==0x3){_0x293242=_0x293242[0x2]['substring'](0x1,_0x293242[0x2][_0x7b9a('0x17')]-0x1);}else if(_0x293242['length']>0x3){var _0x405172=/\((.+)\)/;var _0x842475=_0x400af1['rx'][_0x7b9a('0x18')](_0x405172);if(_0x842475){_0x293242=_0x842475[0x1];}else{_0x293242=null;}}else{_0x293242=null;}_0x400af1['cb'](null,{'code':_0x1c5bcd,'result':_0x339769,'extra':_0x293242});}});_0x11e127['on']('error',function(_0xa8d93d){_0x105930[_0x7b9a('0xa')](_0x7b9a('0x19'),new AGIError('E_AGI_SOCKET_ERROR',_0xa8d93d[_0x7b9a('0x1a')]));});_0x11e127['on'](_0x7b9a('0x1b'),function(){_0x105930['emit']('close',new AGIError(_0x7b9a('0x1c')));});_0x11e127['on'](_0x7b9a('0x1d'),function(){_0x105930[_0x7b9a('0xa')](_0x7b9a('0x1d'),new AGIError(_0x7b9a('0x1e')));_0x11e127['destroy']();});_0x11e127[_0x7b9a('0x1f')](_0x2528b2);this['command']=function(_0x1cb0a6,_0x413180){var _0x1cb0a6=_0x1cb0a6||'',_0x413180=typeof _0x413180==_0x7b9a('0x10')?_0x413180:new Function();_0x400af1={'tx':_0x1cb0a6,'rx':'','cb':_0x413180};_0x11e127[_0x7b9a('0x20')](_0x1cb0a6+'\x0a');},this['close']=function(){_0x11e127[_0x7b9a('0x21')]();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x23')]=function(_0x28a484){return this[_0x7b9a('0x24')][_0x7b9a('0x25')](this,_0x28a484);};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x26')]=function(){return this[_0x7b9a('0x23')](_0x7b9a('0x27'));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x28')]=function(_0x365373,_0x346eab,_0x2c92d5){_0x365373=_0x365373===undefined?_0x7b9a('0x29'):_0x365373;_0x346eab=_0x346eab===undefined?'5':_0x346eab;_0x2c92d5=_0x2c92d5===undefined?'1':_0x2c92d5;return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')](_0x7b9a('0x2b'),_0x365373,_0x346eab*0x3e8,_0x2c92d5));};AGIChannel[_0x7b9a('0x22')]['noop']=function(_0x3916e7){_0x3916e7=_0x3916e7||_0x7b9a('0x2c');return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')](_0x7b9a('0x2d'),_0x3916e7));};AGIChannel['prototype']['exec']=function(_0x112dc1,_0x12db92){if(_[_0x7b9a('0x2e')](_0x12db92)){return this['sendRequest'](util[_0x7b9a('0x2a')](_0x7b9a('0x2f'),_0x112dc1,_0x12db92[_0x7b9a('0x30')](',')));}return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')](_0x7b9a('0x2f'),_0x112dc1,_0x12db92));};AGIChannel[_0x7b9a('0x22')]['setContext']=function(_0x188424){return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')]('SET\x20CONTEXT\x20%s',_0x188424));};AGIChannel[_0x7b9a('0x22')]['setExtension']=function(_0x4b4c2a){return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')](_0x7b9a('0x31'),_0x4b4c2a));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x32')]=function(_0x386f21){return this[_0x7b9a('0x23')](util['format'](_0x7b9a('0x33'),_0x386f21));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0xe')]=function(){return this[_0x7b9a('0x23')](_0x7b9a('0x34'));};AGIChannel['prototype']['setVariable']=function(_0x26f3ac,_0x5448a8){var _0x1c2f5b=_[_0x7b9a('0x35')](_0x5448a8)||_[_0x7b9a('0x36')](_0x5448a8)?_0x5448a8[_0x7b9a('0x37')]():_0x5448a8;return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')](_0x7b9a('0x38'),_0x26f3ac,_0x1c2f5b?_0x1c2f5b[_0x7b9a('0x37')]()[_0x7b9a('0x13')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x39')]=function(_0x4ef84c,_0x288067){return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')]('SAY\x20NUMBER\x20%s\x20%s',_0x4ef84c,_0x288067));};AGIChannel['prototype'][_0x7b9a('0x3a')]=function(_0x50fbf7,_0x333b76){return this[_0x7b9a('0x23')](util['format'](_0x7b9a('0x3b'),_0x50fbf7,_0x333b76));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x3c')]=function(_0x32a099,_0x16476a){return this[_0x7b9a('0x23')](util['format'](_0x7b9a('0x3d'),_0x32a099,_0x16476a));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x3e')]=function(_0x1097b6,_0xb5a85e,_0x2761f2){_0xb5a85e=_0xb5a85e||this[_0x7b9a('0x3f')];_0x2761f2=_0x2761f2||0x1;this[_0x7b9a('0x40')](_0x1097b6);this[_0x7b9a('0x41')](_0xb5a85e);this[_0x7b9a('0x32')](_0x2761f2);return this['noop'](util[_0x7b9a('0x2a')](_0x7b9a('0x42'),_0x1097b6,_0xb5a85e,_0x2761f2));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x43')]=function(_0x1ce24b){return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')]('GET\x20VARIABLE\x20\x22%s\x22',_0x1ce24b));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x44')]=function(_0x4fe8df,_0x59e772,_0x530fa1,_0x5f04fd,_0x2b618d,_0x1e841b){_0x59e772=_0x59e772||_0x7b9a('0x45');_0x530fa1=_0x530fa1||'';_0x5f04fd=_0x5f04fd===undefined?-0x1:_0x5f04fd==='-1'?-0x1:_0x5f04fd*0x3e8;_0x2b618d=_0x2b618d===undefined?'':'s='+_0x2b618d;_0x1e841b=_0x1e841b?_0x7b9a('0x46'):'';return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')](_0x7b9a('0x47'),_0x4fe8df,_0x59e772,_0x530fa1,_0x5f04fd,_0x1e841b,_0x2b618d));};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x48')]=function(_0x3b03bb,_0x1b6105){_0x1b6105=_0x1b6105||'';return this[_0x7b9a('0x23')](util[_0x7b9a('0x2a')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x3b03bb,_0x1b6105));};AGIChannel['prototype'][_0x7b9a('0x49')]=function(_0x5478c3){return this[_0x7b9a('0x4a')]('AGI',_0x5478c3);};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x4b')]=function(_0x5bf43f){return this[_0x7b9a('0x4a')]('WAIT',_0x5bf43f);};AGIChannel[_0x7b9a('0x22')][_0x7b9a('0x19')]=function(_0xd726b6,_0x26c00a){this[_0x7b9a('0x4c')](util[_0x7b9a('0x2a')](_0x7b9a('0x4d'),_0xd726b6['id'],_0xd726b6[_0x7b9a('0x4e')],_0x26c00a));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x7b9a('0x4f')]=AGIChannel;