4b5316ec7d87524d674f49a5ae96a115c6da37bb
[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 _0x4cc7=['exec','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','continueAt','extension','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','BEEP','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','ready','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','result=','indexOf','substr','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','command','write','inherits','prototype','sync','answer','ANSWER','beep','sendRequest','format','noop','VERBOSE\x20\x22%s\x22'];(function(_0x3b9419,_0x32a3a9){var _0x544334=function(_0x594fc2){while(--_0x594fc2){_0x3b9419['push'](_0x3b9419['shift']());}};_0x544334(++_0x32a3a9);}(_0x4cc7,0x1b6));var _0x74cc=function(_0x35b747,_0x3fc3d4){_0x35b747=_0x35b747-0x0;var _0x5286d8=_0x4cc7[_0x35b747];return _0x5286d8;};'use strict';var util=require(_0x74cc('0x0'));var _=require(_0x74cc('0x1'));var EventEmitter=require(_0x74cc('0x2'))[_0x74cc('0x3')];var AGIReply=require(_0x74cc('0x4'));var AGIError=require(_0x74cc('0x5'));function AGIChannel(_0x432efa){var _0x245059=this,_0x4b3d99=new AGIReply(),_0x14af2c=![],_0x325bda={};EventEmitter[_0x74cc('0x6')](_0x245059);_0x432efa[_0x74cc('0x7')](_0x74cc('0x8'));_0x432efa[_0x74cc('0x9')](0x8*0x3c*0x3c*0x3e8);_0x4b3d99[_0x74cc('0x7')](_0x74cc('0x8'));_0x4b3d99['on'](_0x74cc('0xa'),function(_0x3d13eb){for(var _0x3f3ea0 in _0x3d13eb){_0x245059[_0x3f3ea0]=_0x3d13eb[_0x3f3ea0];}_0x245059[_0x74cc('0xb')](_0x74cc('0xc'));});_0x4b3d99['on']('line',function(_0x2b10f5){if(_0x2b10f5[_0x74cc('0xd')]()==_0x74cc('0xe')){_0x245059[_0x74cc('0xb')](_0x74cc('0xe'));return;}if(_0x2b10f5[_0x74cc('0xf')](0x0,0xb)==_0x74cc('0x10')){_0x14af2c=!![];}if(_0x14af2c){_0x325bda['rx']+=_0x2b10f5+'\x0a';if(_0x2b10f5[_0x74cc('0x11')](_0x74cc('0x12'))!=-0x1){_0x14af2c=![];}}else{_0x325bda['rx']=_0x2b10f5;}if(_0x14af2c){return;}if(typeof _0x325bda['cb']==_0x74cc('0x13')){var _0x34939c=_0x325bda['rx'][_0x74cc('0xf')](0x0,0x3),_0x31c6bd=null,_0x5397a7=null;_0x34939c=parseInt(_0x34939c);if(isNaN(_0x34939c)){_0x325bda['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x74cc('0x14')});return;}if(_0x34939c!=0xc8){_0x325bda['cb'](null,{'code':_0x34939c,'result':-0x1,'extra':'KO'});return;}_0x31c6bd=_0x325bda['rx'][_0x74cc('0xf')](0x4)['replace'](_0x74cc('0x15'),'');if(_0x31c6bd[_0x74cc('0x16')]('\x20')!=-0x1){_0x31c6bd=_0x31c6bd[_0x74cc('0x17')](0x0,_0x31c6bd[_0x74cc('0x16')]('\x20'));}if(_[_0x74cc('0x18')](_0x31c6bd,'-1')){_0x31c6bd=parseInt(_0x31c6bd);}_0x5397a7=_0x325bda['rx'][_0x74cc('0x19')]('\x20');if(_0x5397a7[_0x74cc('0x1a')]==0x3){_0x5397a7=_0x5397a7[0x2][_0x74cc('0xf')](0x1,_0x5397a7[0x2][_0x74cc('0x1a')]-0x1);}else if(_0x5397a7['length']>0x3){var _0x5c6ae3=/\((.+)\)/;var _0x314729=_0x325bda['rx'][_0x74cc('0x1b')](_0x5c6ae3);if(_0x314729){_0x5397a7=_0x314729[0x1];}else{_0x5397a7=null;}}else{_0x5397a7=null;}_0x325bda['cb'](null,{'code':_0x34939c,'result':_0x31c6bd,'extra':_0x5397a7});}});_0x432efa['on'](_0x74cc('0x1c'),function(_0x1fb365){_0x245059[_0x74cc('0xb')]('error',new AGIError(_0x74cc('0x1d'),_0x1fb365[_0x74cc('0x1e')]));});_0x432efa['on'](_0x74cc('0x1f'),function(){_0x245059[_0x74cc('0xb')](_0x74cc('0x1f'),new AGIError(_0x74cc('0x20')));});_0x432efa['on'](_0x74cc('0x21'),function(){_0x245059[_0x74cc('0xb')](_0x74cc('0x21'),new AGIError(_0x74cc('0x22')));_0x432efa['destroy']();});_0x432efa[_0x74cc('0x23')](_0x4b3d99);this[_0x74cc('0x24')]=function(_0x3b0e23,_0x36a77a){var _0x3b0e23=_0x3b0e23||'',_0x36a77a=typeof _0x36a77a==_0x74cc('0x13')?_0x36a77a:new Function();_0x325bda={'tx':_0x3b0e23,'rx':'','cb':_0x36a77a};_0x432efa[_0x74cc('0x25')](_0x3b0e23+'\x0a');},this[_0x74cc('0x1f')]=function(){_0x432efa['destroy']();};}util[_0x74cc('0x26')](AGIChannel,EventEmitter);AGIChannel[_0x74cc('0x27')]['sendRequest']=function(_0x44c079){return this[_0x74cc('0x24')][_0x74cc('0x28')](this,_0x44c079);};AGIChannel[_0x74cc('0x27')][_0x74cc('0x29')]=function(){return this['sendRequest'](_0x74cc('0x2a'));};AGIChannel[_0x74cc('0x27')]['getData']=function(_0x1456d3,_0x34147f,_0x2843f6){_0x1456d3=_0x1456d3===undefined?_0x74cc('0x2b'):_0x1456d3;_0x34147f=_0x34147f===undefined?'5':_0x34147f;_0x2843f6=_0x2843f6===undefined?'1':_0x2843f6;return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x1456d3,_0x34147f*0x3e8,_0x2843f6));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x2e')]=function(_0x5d013a){_0x5d013a=_0x5d013a||'NO\x20MESSAGE';return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x2f'),_0x5d013a));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x30')]=function(_0x312053,_0x28923e){if(_['isArray'](_0x28923e)){return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x31'),_0x312053,_0x28923e['join'](',')));}return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x31'),_0x312053,_0x28923e));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x32')]=function(_0x23ba39){return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x33'),_0x23ba39));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x34')]=function(_0xebed42){return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x35'),_0xebed42));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x36')]=function(_0x587a8b){return this['sendRequest'](util[_0x74cc('0x2d')](_0x74cc('0x37'),_0x587a8b));};AGIChannel[_0x74cc('0x27')][_0x74cc('0xe')]=function(){return this[_0x74cc('0x2c')](_0x74cc('0x38'));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x39')]=function(_0x11df08,_0x2c18b9){var _0x140eb2=_[_0x74cc('0x3a')](_0x2c18b9)||_['isNumber'](_0x2c18b9)?_0x2c18b9['toString']():_0x2c18b9;return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x3b'),_0x11df08,_0x140eb2?_0x140eb2[_0x74cc('0x3c')]()[_0x74cc('0x3d')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x3e')]=function(_0x3b75f9,_0x3b2fc3){return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x3f'),_0x3b75f9,_0x3b2fc3));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x40')]=function(_0x2e4a6a,_0x4ca3f2){return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')](_0x74cc('0x41'),_0x2e4a6a,_0x4ca3f2));};AGIChannel[_0x74cc('0x27')]['sayPhonetic']=function(_0x398236,_0x10e262){return this[_0x74cc('0x2c')](util[_0x74cc('0x2d')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x398236,_0x10e262));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x42')]=function(_0x41a6e5,_0x286f4f,_0x551082){_0x286f4f=_0x286f4f||this[_0x74cc('0x43')];_0x551082=_0x551082||0x1;this['setContext'](_0x41a6e5);this['setExtension'](_0x286f4f);this['setPriority'](_0x551082);return this[_0x74cc('0x2e')](util[_0x74cc('0x2d')](_0x74cc('0x44'),_0x41a6e5,_0x286f4f,_0x551082));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x45')]=function(_0x4945f1){return this['sendRequest'](util[_0x74cc('0x2d')](_0x74cc('0x46'),_0x4945f1));};AGIChannel['prototype'][_0x74cc('0x47')]=function(_0x2a8786,_0x4b776b,_0x40fa2a,_0x534826,_0x5ca183,_0x4e14d4){_0x4b776b=_0x4b776b||'wav';_0x40fa2a=_0x40fa2a||'';_0x534826=_0x534826===undefined?-0x1:_0x534826==='-1'?-0x1:_0x534826*0x3e8;_0x5ca183=_0x5ca183===undefined?'':'s='+_0x5ca183;_0x4e14d4=_0x4e14d4?_0x74cc('0x48'):'';return this[_0x74cc('0x2c')](util['format']('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x2a8786,_0x4b776b,_0x40fa2a,_0x534826,_0x4e14d4,_0x5ca183));};AGIChannel['prototype'][_0x74cc('0x49')]=function(_0x492026,_0x50e766){_0x50e766=_0x50e766||'';return this[_0x74cc('0x2c')](util['format'](_0x74cc('0x4a'),_0x492026,_0x50e766));};AGIChannel[_0x74cc('0x27')][_0x74cc('0x4b')]=function(_0x458381){return this[_0x74cc('0x30')](_0x74cc('0x4c'),_0x458381);};AGIChannel[_0x74cc('0x27')][_0x74cc('0x4d')]=function(_0x4957f3){return this['exec'](_0x74cc('0x4e'),_0x4957f3);};AGIChannel[_0x74cc('0x27')]['error']=function(_0x1725f7,_0x39b010){this[_0x74cc('0x2e')](util[_0x74cc('0x2d')](_0x74cc('0x4f'),_0x1725f7['id'],_0x1725f7[_0x74cc('0x50')],_0x39b010));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;