Built motion from commit 47436d59.|2.6.7
[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 _0x3588=['exec','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','isBoolean','isNumber','toString','replace','sayDigits','sayPhonetic','continueAt','extension','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','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','exports','util','lodash','events','EventEmitter','./reply','call','setEncoding','setTimeout','utf8','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','520\x20End\x20of\x20proper','function','result=','substr','indexOf','split','length','error','E_AGI_SOCKET_ERROR','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','write','close','inherits','sync','prototype','answer','sendRequest','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22'];(function(_0x25981f,_0x392e24){var _0x2aacbf=function(_0x81d4d5){while(--_0x81d4d5){_0x25981f['push'](_0x25981f['shift']());}};_0x2aacbf(++_0x392e24);}(_0x3588,0x1d4));var _0x8358=function(_0x3541da,_0x5b2254){_0x3541da=_0x3541da-0x0;var _0xa24cff=_0x3588[_0x3541da];return _0xa24cff;};'use strict';var util=require(_0x8358('0x0'));var _=require(_0x8358('0x1'));var EventEmitter=require(_0x8358('0x2'))[_0x8358('0x3')];var AGIReply=require(_0x8358('0x4'));var AGIError=require('./error');function AGIChannel(_0x169bdd){var _0x35efdd=this,_0x599b60=new AGIReply(),_0x1a3cbc=![],_0x137b98={};EventEmitter[_0x8358('0x5')](_0x35efdd);_0x169bdd[_0x8358('0x6')]('utf8');_0x169bdd[_0x8358('0x7')](0x8*0x3c*0x3c*0x3e8);_0x599b60[_0x8358('0x6')](_0x8358('0x8'));_0x599b60['on']('headers',function(_0x4d6657){for(var _0x14468b in _0x4d6657){_0x35efdd[_0x14468b]=_0x4d6657[_0x14468b];}_0x35efdd[_0x8358('0x9')](_0x8358('0xa'));});_0x599b60['on'](_0x8358('0xb'),function(_0x22be8a){if(_0x22be8a[_0x8358('0xc')]()=='hangup'){_0x35efdd[_0x8358('0x9')](_0x8358('0xd'));return;}if(_0x22be8a[_0x8358('0xe')](0x0,0xb)==_0x8358('0xf')){_0x1a3cbc=!![];}if(_0x1a3cbc){_0x137b98['rx']+=_0x22be8a+'\x0a';if(_0x22be8a['search'](_0x8358('0x10'))!=-0x1){_0x1a3cbc=![];}}else{_0x137b98['rx']=_0x22be8a;}if(_0x1a3cbc){return;}if(typeof _0x137b98['cb']==_0x8358('0x11')){var _0x34b0df=_0x137b98['rx'][_0x8358('0xe')](0x0,0x3),_0x3297b4=null,_0x3504ae=null;_0x34b0df=parseInt(_0x34b0df);if(isNaN(_0x34b0df)){_0x137b98['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x34b0df!=0xc8){_0x137b98['cb'](null,{'code':_0x34b0df,'result':-0x1,'extra':'KO'});return;}_0x3297b4=_0x137b98['rx'][_0x8358('0xe')](0x4)['replace'](_0x8358('0x12'),'');if(_0x3297b4['indexOf']('\x20')!=-0x1){_0x3297b4=_0x3297b4[_0x8358('0x13')](0x0,_0x3297b4[_0x8358('0x14')]('\x20'));}if(_['startsWith'](_0x3297b4,'-1')){_0x3297b4=parseInt(_0x3297b4);}_0x3504ae=_0x137b98['rx'][_0x8358('0x15')]('\x20');if(_0x3504ae[_0x8358('0x16')]==0x3){_0x3504ae=_0x3504ae[0x2]['substring'](0x1,_0x3504ae[0x2][_0x8358('0x16')]-0x1);}else if(_0x3504ae[_0x8358('0x16')]>0x3){var _0x2c6eba=/\((.+)\)/;var _0x1d3fce=_0x137b98['rx']['match'](_0x2c6eba);if(_0x1d3fce){_0x3504ae=_0x1d3fce[0x1];}else{_0x3504ae=null;}}else{_0x3504ae=null;}_0x137b98['cb'](null,{'code':_0x34b0df,'result':_0x3297b4,'extra':_0x3504ae});}});_0x169bdd['on'](_0x8358('0x17'),function(_0x2b17cd){_0x35efdd[_0x8358('0x9')](_0x8358('0x17'),new AGIError(_0x8358('0x18'),_0x2b17cd['code']));});_0x169bdd['on']('close',function(){_0x35efdd['emit']('close',new AGIError(_0x8358('0x19')));});_0x169bdd['on']('timeout',function(){_0x35efdd['emit'](_0x8358('0x1a'),new AGIError(_0x8358('0x1b')));_0x169bdd[_0x8358('0x1c')]();});_0x169bdd['pipe'](_0x599b60);this[_0x8358('0x1d')]=function(_0x435a99,_0x31b160){var _0x435a99=_0x435a99||'',_0x31b160=typeof _0x31b160==_0x8358('0x11')?_0x31b160:new Function();_0x137b98={'tx':_0x435a99,'rx':'','cb':_0x31b160};_0x169bdd[_0x8358('0x1e')](_0x435a99+'\x0a');},this[_0x8358('0x1f')]=function(){_0x169bdd[_0x8358('0x1c')]();};}util[_0x8358('0x20')](AGIChannel,EventEmitter);AGIChannel['prototype']['sendRequest']=function(_0x37f478){return this['command'][_0x8358('0x21')](this,_0x37f478);};AGIChannel[_0x8358('0x22')][_0x8358('0x23')]=function(){return this[_0x8358('0x24')]('ANSWER');};AGIChannel['prototype'][_0x8358('0x25')]=function(_0x229a18,_0x5ccc79,_0x5ceae2){_0x229a18=_0x229a18===undefined?_0x8358('0x26'):_0x229a18;_0x5ccc79=_0x5ccc79===undefined?'5':_0x5ccc79;_0x5ceae2=_0x5ceae2===undefined?'1':_0x5ceae2;return this['sendRequest'](util[_0x8358('0x27')](_0x8358('0x28'),_0x229a18,_0x5ccc79*0x3e8,_0x5ceae2));};AGIChannel[_0x8358('0x22')][_0x8358('0x29')]=function(_0x276311){_0x276311=_0x276311||'NO\x20MESSAGE';return this[_0x8358('0x24')](util[_0x8358('0x27')](_0x8358('0x2a'),_0x276311));};AGIChannel[_0x8358('0x22')][_0x8358('0x2b')]=function(_0x26ef15,_0x45ecb5){if(_['isArray'](_0x45ecb5)){return this[_0x8358('0x24')](util['format'](_0x8358('0x2c'),_0x26ef15,_0x45ecb5[_0x8358('0x2d')](',')));}return this[_0x8358('0x24')](util[_0x8358('0x27')]('EXEC\x20%s\x20%s',_0x26ef15,_0x45ecb5));};AGIChannel[_0x8358('0x22')][_0x8358('0x2e')]=function(_0x4ffce0){return this[_0x8358('0x24')](util[_0x8358('0x27')]('SET\x20CONTEXT\x20%s',_0x4ffce0));};AGIChannel[_0x8358('0x22')][_0x8358('0x2f')]=function(_0x3f4c3c){return this['sendRequest'](util['format'](_0x8358('0x30'),_0x3f4c3c));};AGIChannel[_0x8358('0x22')][_0x8358('0x31')]=function(_0x11d6e5){return this[_0x8358('0x24')](util['format'](_0x8358('0x32'),_0x11d6e5));};AGIChannel[_0x8358('0x22')][_0x8358('0xd')]=function(){return this[_0x8358('0x24')](_0x8358('0x33'));};AGIChannel[_0x8358('0x22')]['setVariable']=function(_0x452fff,_0x247c38){var _0x514fac=_[_0x8358('0x34')](_0x247c38)||_[_0x8358('0x35')](_0x247c38)?_0x247c38[_0x8358('0x36')]():_0x247c38;return this['sendRequest'](util[_0x8358('0x27')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x452fff,_0x514fac?_0x514fac[_0x8358('0x36')]()[_0x8358('0x37')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x8358('0x22')]['sayNumber']=function(_0xb7bff,_0x4b8395){return this[_0x8358('0x24')](util[_0x8358('0x27')]('SAY\x20NUMBER\x20%s\x20%s',_0xb7bff,_0x4b8395));};AGIChannel[_0x8358('0x22')][_0x8358('0x38')]=function(_0x21c8b5,_0x3d0ff7){return this[_0x8358('0x24')](util[_0x8358('0x27')]('SAY\x20DIGITS\x20%s\x20%s',_0x21c8b5,_0x3d0ff7));};AGIChannel[_0x8358('0x22')][_0x8358('0x39')]=function(_0x13cbe7,_0x271bcd){return this['sendRequest'](util[_0x8358('0x27')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x13cbe7,_0x271bcd));};AGIChannel['prototype'][_0x8358('0x3a')]=function(_0x5492e8,_0x1fa84b,_0x2c01d7){_0x1fa84b=_0x1fa84b||this[_0x8358('0x3b')];_0x2c01d7=_0x2c01d7||0x1;this[_0x8358('0x2e')](_0x5492e8);this[_0x8358('0x2f')](_0x1fa84b);this[_0x8358('0x31')](_0x2c01d7);return this[_0x8358('0x29')](util[_0x8358('0x27')]('GOTO\x20%s\x20%s\x20%s',_0x5492e8,_0x1fa84b,_0x2c01d7));};AGIChannel[_0x8358('0x22')][_0x8358('0x3c')]=function(_0x3fb4cb){return this[_0x8358('0x24')](util[_0x8358('0x27')](_0x8358('0x3d'),_0x3fb4cb));};AGIChannel[_0x8358('0x22')][_0x8358('0x3e')]=function(_0x800849,_0x4d6c99,_0x16f035,_0x7c7dfd,_0xb1814e,_0x2c3e45){_0x4d6c99=_0x4d6c99||'wav';_0x16f035=_0x16f035||'';_0x7c7dfd=_0x7c7dfd===undefined?-0x1:_0x7c7dfd==='-1'?-0x1:_0x7c7dfd*0x3e8;_0xb1814e=_0xb1814e===undefined?'':'s='+_0xb1814e;_0x2c3e45=_0x2c3e45?_0x8358('0x3f'):'';return this[_0x8358('0x24')](util[_0x8358('0x27')](_0x8358('0x40'),_0x800849,_0x4d6c99,_0x16f035,_0x7c7dfd,_0x2c3e45,_0xb1814e));};AGIChannel[_0x8358('0x22')][_0x8358('0x41')]=function(_0x421261,_0x6490c2){_0x6490c2=_0x6490c2||'';return this[_0x8358('0x24')](util[_0x8358('0x27')](_0x8358('0x42'),_0x421261,_0x6490c2));};AGIChannel[_0x8358('0x22')][_0x8358('0x43')]=function(_0x1387a7){return this['exec'](_0x8358('0x44'),_0x1387a7);};AGIChannel[_0x8358('0x22')][_0x8358('0x45')]=function(_0x5afb38){return this['exec']('WAIT',_0x5afb38);};AGIChannel[_0x8358('0x22')][_0x8358('0x17')]=function(_0x43b842,_0x2cc0d4){this['noop'](util[_0x8358('0x27')](_0x8358('0x46'),_0x43b842['id'],_0x43b842[_0x8358('0x47')],_0x2cc0d4));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x8358('0x48')]=AGIChannel;