316612b76617f411045f5a6dfaa62a4f7832af22
[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 _0x14c5=['EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','setPriority','SET\x20PRIORITY\x20%s','isBoolean','isNumber','toString','replace','sayNumber','sayDigits','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','noop','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','WAIT','util','lodash','events','./reply','./error','call','setEncoding','setTimeout','utf8','headers','emit','ready','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','result=','indexOf','substr','split','length','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','write','inherits','prototype','sync','answer','sendRequest','ANSWER','getData','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec'];(function(_0x3486e9,_0xbcce8f){var _0x2f337f=function(_0x13d375){while(--_0x13d375){_0x3486e9['push'](_0x3486e9['shift']());}};_0x2f337f(++_0xbcce8f);}(_0x14c5,0x1de));var _0x514c=function(_0x3a4088,_0x43831f){_0x3a4088=_0x3a4088-0x0;var _0x3fe3fe=_0x14c5[_0x3a4088];return _0x3fe3fe;};'use strict';var util=require(_0x514c('0x0'));var _=require(_0x514c('0x1'));var EventEmitter=require(_0x514c('0x2'))['EventEmitter'];var AGIReply=require(_0x514c('0x3'));var AGIError=require(_0x514c('0x4'));function AGIChannel(_0x1606d4){var _0x46d3ec=this,_0x3ef672=new AGIReply(),_0x32e427=![],_0x3ff9b3={};EventEmitter[_0x514c('0x5')](_0x46d3ec);_0x1606d4[_0x514c('0x6')]('utf8');_0x1606d4[_0x514c('0x7')](0x8*0x3c*0x3c*0x3e8);_0x3ef672[_0x514c('0x6')](_0x514c('0x8'));_0x3ef672['on'](_0x514c('0x9'),function(_0x232143){for(var _0xfe0593 in _0x232143){_0x46d3ec[_0xfe0593]=_0x232143[_0xfe0593];}_0x46d3ec[_0x514c('0xa')](_0x514c('0xb'));});_0x3ef672['on']('line',function(_0x27ffde){if(_0x27ffde[_0x514c('0xc')]()==_0x514c('0xd')){_0x46d3ec[_0x514c('0xa')](_0x514c('0xd'));return;}if(_0x27ffde[_0x514c('0xe')](0x0,0xb)==_0x514c('0xf')){_0x32e427=!![];}if(_0x32e427){_0x3ff9b3['rx']+=_0x27ffde+'\x0a';if(_0x27ffde[_0x514c('0x10')](_0x514c('0x11'))!=-0x1){_0x32e427=![];}}else{_0x3ff9b3['rx']=_0x27ffde;}if(_0x32e427){return;}if(typeof _0x3ff9b3['cb']==_0x514c('0x12')){var _0x5ee1b6=_0x3ff9b3['rx'][_0x514c('0xe')](0x0,0x3),_0x168a84=null,_0x4c9af9=null;_0x5ee1b6=parseInt(_0x5ee1b6);if(isNaN(_0x5ee1b6)){_0x3ff9b3['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x514c('0x13')});return;}if(_0x5ee1b6!=0xc8){_0x3ff9b3['cb'](null,{'code':_0x5ee1b6,'result':-0x1,'extra':'KO'});return;}_0x168a84=_0x3ff9b3['rx'][_0x514c('0xe')](0x4)['replace'](_0x514c('0x14'),'');if(_0x168a84[_0x514c('0x15')]('\x20')!=-0x1){_0x168a84=_0x168a84[_0x514c('0x16')](0x0,_0x168a84[_0x514c('0x15')]('\x20'));}if(_['startsWith'](_0x168a84,'-1')){_0x168a84=parseInt(_0x168a84);}_0x4c9af9=_0x3ff9b3['rx'][_0x514c('0x17')]('\x20');if(_0x4c9af9[_0x514c('0x18')]==0x3){_0x4c9af9=_0x4c9af9[0x2][_0x514c('0xe')](0x1,_0x4c9af9[0x2][_0x514c('0x18')]-0x1);}else if(_0x4c9af9[_0x514c('0x18')]>0x3){var _0x3b246d=/\((.+)\)/;var _0x3f942d=_0x3ff9b3['rx']['match'](_0x3b246d);if(_0x3f942d){_0x4c9af9=_0x3f942d[0x1];}else{_0x4c9af9=null;}}else{_0x4c9af9=null;}_0x3ff9b3['cb'](null,{'code':_0x5ee1b6,'result':_0x168a84,'extra':_0x4c9af9});}});_0x1606d4['on'](_0x514c('0x19'),function(_0x23f6b7){_0x46d3ec[_0x514c('0xa')]('error',new AGIError(_0x514c('0x1a'),_0x23f6b7[_0x514c('0x1b')]));});_0x1606d4['on']('close',function(){_0x46d3ec['emit'](_0x514c('0x1c'),new AGIError(_0x514c('0x1d')));});_0x1606d4['on'](_0x514c('0x1e'),function(){_0x46d3ec[_0x514c('0xa')](_0x514c('0x1e'),new AGIError(_0x514c('0x1f')));_0x1606d4[_0x514c('0x20')]();});_0x1606d4['pipe'](_0x3ef672);this[_0x514c('0x21')]=function(_0x4cbb6f,_0x501772){var _0x4cbb6f=_0x4cbb6f||'',_0x501772=typeof _0x501772==_0x514c('0x12')?_0x501772:new Function();_0x3ff9b3={'tx':_0x4cbb6f,'rx':'','cb':_0x501772};_0x1606d4[_0x514c('0x22')](_0x4cbb6f+'\x0a');},this[_0x514c('0x1c')]=function(){_0x1606d4[_0x514c('0x20')]();};}util[_0x514c('0x23')](AGIChannel,EventEmitter);AGIChannel[_0x514c('0x24')]['sendRequest']=function(_0x4344f2){return this['command'][_0x514c('0x25')](this,_0x4344f2);};AGIChannel[_0x514c('0x24')][_0x514c('0x26')]=function(){return this[_0x514c('0x27')](_0x514c('0x28'));};AGIChannel[_0x514c('0x24')][_0x514c('0x29')]=function(_0x49d6b4,_0x2d0f95,_0x3a5204){_0x49d6b4=_0x49d6b4===undefined?'beep':_0x49d6b4;_0x2d0f95=_0x2d0f95===undefined?'5':_0x2d0f95;_0x3a5204=_0x3a5204===undefined?'1':_0x3a5204;return this[_0x514c('0x27')](util[_0x514c('0x2a')](_0x514c('0x2b'),_0x49d6b4,_0x2d0f95*0x3e8,_0x3a5204));};AGIChannel[_0x514c('0x24')]['noop']=function(_0x35fcec){_0x35fcec=_0x35fcec||_0x514c('0x2c');return this[_0x514c('0x27')](util[_0x514c('0x2a')](_0x514c('0x2d'),_0x35fcec));};AGIChannel['prototype'][_0x514c('0x2e')]=function(_0x10eb02,_0x19bc78){if(_['isArray'](_0x19bc78)){return this['sendRequest'](util[_0x514c('0x2a')](_0x514c('0x2f'),_0x10eb02,_0x19bc78[_0x514c('0x30')](',')));}return this[_0x514c('0x27')](util[_0x514c('0x2a')]('EXEC\x20%s\x20%s',_0x10eb02,_0x19bc78));};AGIChannel[_0x514c('0x24')][_0x514c('0x31')]=function(_0x5189ac){return this['sendRequest'](util['format'](_0x514c('0x32'),_0x5189ac));};AGIChannel[_0x514c('0x24')][_0x514c('0x33')]=function(_0xc095d9){return this[_0x514c('0x27')](util[_0x514c('0x2a')]('SET\x20EXTENSION\x20%s',_0xc095d9));};AGIChannel[_0x514c('0x24')][_0x514c('0x34')]=function(_0x173def){return this[_0x514c('0x27')](util[_0x514c('0x2a')](_0x514c('0x35'),_0x173def));};AGIChannel['prototype'][_0x514c('0xd')]=function(){return this[_0x514c('0x27')]('HANGUP');};AGIChannel[_0x514c('0x24')]['setVariable']=function(_0x3698d7,_0x30968c){var _0x2b4afc=_[_0x514c('0x36')](_0x30968c)||_[_0x514c('0x37')](_0x30968c)?_0x30968c[_0x514c('0x38')]():_0x30968c;return this[_0x514c('0x27')](util[_0x514c('0x2a')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x3698d7,_0x2b4afc?_0x2b4afc['toString']()[_0x514c('0x39')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x514c('0x24')][_0x514c('0x3a')]=function(_0x4c145b,_0x5bbb15){return this[_0x514c('0x27')](util[_0x514c('0x2a')]('SAY\x20NUMBER\x20%s\x20%s',_0x4c145b,_0x5bbb15));};AGIChannel[_0x514c('0x24')][_0x514c('0x3b')]=function(_0x11cd93,_0x3272bc){return this[_0x514c('0x27')](util['format']('SAY\x20DIGITS\x20%s\x20%s',_0x11cd93,_0x3272bc));};AGIChannel['prototype'][_0x514c('0x3c')]=function(_0x5a2664,_0x1d33d5){return this[_0x514c('0x27')](util[_0x514c('0x2a')](_0x514c('0x3d'),_0x5a2664,_0x1d33d5));};AGIChannel['prototype'][_0x514c('0x3e')]=function(_0x42c0e8,_0x59fe86,_0x478eae){_0x59fe86=_0x59fe86||this[_0x514c('0x3f')];_0x478eae=_0x478eae||0x1;this['setContext'](_0x42c0e8);this[_0x514c('0x33')](_0x59fe86);this[_0x514c('0x34')](_0x478eae);return this[_0x514c('0x40')](util[_0x514c('0x2a')]('GOTO\x20%s\x20%s\x20%s',_0x42c0e8,_0x59fe86,_0x478eae));};AGIChannel[_0x514c('0x24')][_0x514c('0x41')]=function(_0x3a11a2){return this[_0x514c('0x27')](util[_0x514c('0x2a')](_0x514c('0x42'),_0x3a11a2));};AGIChannel['prototype'][_0x514c('0x43')]=function(_0xd98648,_0x3907bf,_0x14fc26,_0x3ca8c5,_0xfc78d7,_0x4c70af){_0x3907bf=_0x3907bf||_0x514c('0x44');_0x14fc26=_0x14fc26||'';_0x3ca8c5=_0x3ca8c5===undefined?-0x1:_0x3ca8c5==='-1'?-0x1:_0x3ca8c5*0x3e8;_0xfc78d7=_0xfc78d7===undefined?'':'s='+_0xfc78d7;_0x4c70af=_0x4c70af?_0x514c('0x45'):'';return this['sendRequest'](util[_0x514c('0x2a')]('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0xd98648,_0x3907bf,_0x14fc26,_0x3ca8c5,_0x4c70af,_0xfc78d7));};AGIChannel['prototype']['streamFile']=function(_0x2f0128,_0x5bbfd5){_0x5bbfd5=_0x5bbfd5||'';return this['sendRequest'](util[_0x514c('0x2a')](_0x514c('0x46'),_0x2f0128,_0x5bbfd5));};AGIChannel[_0x514c('0x24')][_0x514c('0x47')]=function(_0x1dddb6){return this[_0x514c('0x2e')](_0x514c('0x48'),_0x1dddb6);};AGIChannel['prototype'][_0x514c('0x49')]=function(_0x6f1ba7){return this[_0x514c('0x2e')](_0x514c('0x4a'),_0x6f1ba7);};AGIChannel['prototype'][_0x514c('0x19')]=function(_0x39fe9b,_0x137dc6){this['noop'](util[_0x514c('0x2a')]('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x39fe9b['id'],_0x39fe9b['label'],_0x137dc6));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;