ed9dd9840484c5f1f30d86dc90cc174d43665538
[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 _0xa8be=['AGI','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','./error','call','setEncoding','utf8','headers','emit','line','toLowerCase','hangup','substring','520-Invalid','search','function','no\x20code','indexOf','substr','split','length','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','pipe','write','destroy','inherits','sync','prototype','answer','sendRequest','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','exec','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','replace','sayNumber','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','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'];(function(_0x22a2fe,_0x11f917){var _0x2331f7=function(_0x2d36ee){while(--_0x2d36ee){_0x22a2fe['push'](_0x22a2fe['shift']());}};_0x2331f7(++_0x11f917);}(_0xa8be,0x9b));var _0xea8b=function(_0x262075,_0x3b7aa5){_0x262075=_0x262075-0x0;var _0x3e230e=_0xa8be[_0x262075];return _0x3e230e;};'use strict';var util=require(_0xea8b('0x0'));var _=require(_0xea8b('0x1'));var EventEmitter=require(_0xea8b('0x2'))[_0xea8b('0x3')];var AGIReply=require('./reply');var AGIError=require(_0xea8b('0x4'));function AGIChannel(_0xf5e44e){var _0x463f9f=this,_0x3fba27=new AGIReply(),_0x1da649=![],_0x205514={};EventEmitter[_0xea8b('0x5')](_0x463f9f);_0xf5e44e[_0xea8b('0x6')]('utf8');_0xf5e44e['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x3fba27[_0xea8b('0x6')](_0xea8b('0x7'));_0x3fba27['on'](_0xea8b('0x8'),function(_0x2be511){for(var _0x2ea33b in _0x2be511){_0x463f9f[_0x2ea33b]=_0x2be511[_0x2ea33b];}_0x463f9f[_0xea8b('0x9')]('ready');});_0x3fba27['on'](_0xea8b('0xa'),function(_0xd8600f){if(_0xd8600f[_0xea8b('0xb')]()==_0xea8b('0xc')){_0x463f9f[_0xea8b('0x9')](_0xea8b('0xc'));return;}if(_0xd8600f[_0xea8b('0xd')](0x0,0xb)==_0xea8b('0xe')){_0x1da649=!![];}if(_0x1da649){_0x205514['rx']+=_0xd8600f+'\x0a';if(_0xd8600f[_0xea8b('0xf')]('520\x20End\x20of\x20proper')!=-0x1){_0x1da649=![];}}else{_0x205514['rx']=_0xd8600f;}if(_0x1da649){return;}if(typeof _0x205514['cb']==_0xea8b('0x10')){var _0x78646=_0x205514['rx'][_0xea8b('0xd')](0x0,0x3),_0x39058b=null,_0x32d0f9=null;_0x78646=parseInt(_0x78646);if(isNaN(_0x78646)){_0x205514['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xea8b('0x11')});return;}if(_0x78646!=0xc8){_0x205514['cb'](null,{'code':_0x78646,'result':-0x1,'extra':'KO'});return;}_0x39058b=_0x205514['rx'][_0xea8b('0xd')](0x4)['replace']('result=','');if(_0x39058b[_0xea8b('0x12')]('\x20')!=-0x1){_0x39058b=_0x39058b[_0xea8b('0x13')](0x0,_0x39058b[_0xea8b('0x12')]('\x20'));}if(_['startsWith'](_0x39058b,'-1')){_0x39058b=parseInt(_0x39058b);}_0x32d0f9=_0x205514['rx'][_0xea8b('0x14')]('\x20');if(_0x32d0f9[_0xea8b('0x15')]==0x3){_0x32d0f9=_0x32d0f9[0x2][_0xea8b('0xd')](0x1,_0x32d0f9[0x2][_0xea8b('0x15')]-0x1);}else if(_0x32d0f9[_0xea8b('0x15')]>0x3){var _0x3f46eb=/\((.+)\)/;var _0x49a1f2=_0x205514['rx']['match'](_0x3f46eb);if(_0x49a1f2){_0x32d0f9=_0x49a1f2[0x1];}else{_0x32d0f9=null;}}else{_0x32d0f9=null;}_0x205514['cb'](null,{'code':_0x78646,'result':_0x39058b,'extra':_0x32d0f9});}});_0xf5e44e['on'](_0xea8b('0x16'),function(_0x53e79d){_0x463f9f[_0xea8b('0x9')](_0xea8b('0x16'),new AGIError(_0xea8b('0x17'),_0x53e79d[_0xea8b('0x18')]));});_0xf5e44e['on'](_0xea8b('0x19'),function(){_0x463f9f[_0xea8b('0x9')](_0xea8b('0x19'),new AGIError(_0xea8b('0x1a')));});_0xf5e44e['on'](_0xea8b('0x1b'),function(){_0x463f9f[_0xea8b('0x9')](_0xea8b('0x1b'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0xf5e44e['destroy']();});_0xf5e44e[_0xea8b('0x1c')](_0x3fba27);this['command']=function(_0x3b2894,_0x28faf6){var _0x3b2894=_0x3b2894||'',_0x28faf6=typeof _0x28faf6==_0xea8b('0x10')?_0x28faf6:new Function();_0x205514={'tx':_0x3b2894,'rx':'','cb':_0x28faf6};_0xf5e44e[_0xea8b('0x1d')](_0x3b2894+'\x0a');},this[_0xea8b('0x19')]=function(){_0xf5e44e[_0xea8b('0x1e')]();};}util[_0xea8b('0x1f')](AGIChannel,EventEmitter);AGIChannel['prototype']['sendRequest']=function(_0x185d1d){return this['command'][_0xea8b('0x20')](this,_0x185d1d);};AGIChannel[_0xea8b('0x21')][_0xea8b('0x22')]=function(){return this[_0xea8b('0x23')]('ANSWER');};AGIChannel[_0xea8b('0x21')][_0xea8b('0x24')]=function(_0x1b100b,_0x353010,_0x2b0180){_0x1b100b=_0x1b100b===undefined?_0xea8b('0x25'):_0x1b100b;_0x353010=_0x353010===undefined?'5':_0x353010;_0x2b0180=_0x2b0180===undefined?'1':_0x2b0180;return this[_0xea8b('0x23')](util[_0xea8b('0x26')](_0xea8b('0x27'),_0x1b100b,_0x353010*0x3e8,_0x2b0180));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x28')]=function(_0x1a73a6){_0x1a73a6=_0x1a73a6||'NO\x20MESSAGE';return this['sendRequest'](util[_0xea8b('0x26')](_0xea8b('0x29'),_0x1a73a6));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x2a')]=function(_0x288cdc,_0x453d05){if(_['isArray'](_0x453d05)){return this[_0xea8b('0x23')](util[_0xea8b('0x26')](_0xea8b('0x2b'),_0x288cdc,_0x453d05[_0xea8b('0x2c')](',')));}return this['sendRequest'](util[_0xea8b('0x26')]('EXEC\x20%s\x20%s',_0x288cdc,_0x453d05));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x2d')]=function(_0x2df582){return this[_0xea8b('0x23')](util[_0xea8b('0x26')](_0xea8b('0x2e'),_0x2df582));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x2f')]=function(_0x55777d){return this[_0xea8b('0x23')](util[_0xea8b('0x26')](_0xea8b('0x30'),_0x55777d));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x31')]=function(_0x4cb78c){return this['sendRequest'](util[_0xea8b('0x26')](_0xea8b('0x32'),_0x4cb78c));};AGIChannel[_0xea8b('0x21')][_0xea8b('0xc')]=function(){return this[_0xea8b('0x23')](_0xea8b('0x33'));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x34')]=function(_0x1ba01e,_0x5547bf){var _0xc6959c=_[_0xea8b('0x35')](_0x5547bf)||_['isNumber'](_0x5547bf)?_0x5547bf[_0xea8b('0x36')]():_0x5547bf;return this['sendRequest'](util[_0xea8b('0x26')](_0xea8b('0x37'),_0x1ba01e,_0xc6959c?_0xc6959c[_0xea8b('0x36')]()[_0xea8b('0x38')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x39')]=function(_0x4f743f,_0x17ff60){return this[_0xea8b('0x23')](util[_0xea8b('0x26')]('SAY\x20NUMBER\x20%s\x20%s',_0x4f743f,_0x17ff60));};AGIChannel[_0xea8b('0x21')]['sayDigits']=function(_0x4219b0,_0x3df4e0){return this[_0xea8b('0x23')](util[_0xea8b('0x26')](_0xea8b('0x3a'),_0x4219b0,_0x3df4e0));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x3b')]=function(_0x2530b2,_0x3568f1){return this['sendRequest'](util[_0xea8b('0x26')](_0xea8b('0x3c'),_0x2530b2,_0x3568f1));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x3d')]=function(_0x2015df,_0x40e187,_0xf4b861){_0x40e187=_0x40e187||this['extension'];_0xf4b861=_0xf4b861||0x1;this[_0xea8b('0x2d')](_0x2015df);this[_0xea8b('0x2f')](_0x40e187);this[_0xea8b('0x31')](_0xf4b861);return this[_0xea8b('0x28')](util[_0xea8b('0x26')](_0xea8b('0x3e'),_0x2015df,_0x40e187,_0xf4b861));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x3f')]=function(_0x2fa0cd){return this[_0xea8b('0x23')](util['format']('GET\x20VARIABLE\x20\x22%s\x22',_0x2fa0cd));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x40')]=function(_0x301f4e,_0x25111d,_0x2081f9,_0x5ed643,_0x4fb5f7,_0x1cf3e0){_0x25111d=_0x25111d||_0xea8b('0x41');_0x2081f9=_0x2081f9||'';_0x5ed643=_0x5ed643===undefined?-0x1:_0x5ed643==='-1'?-0x1:_0x5ed643*0x3e8;_0x4fb5f7=_0x4fb5f7===undefined?'':'s='+_0x4fb5f7;_0x1cf3e0=_0x1cf3e0?_0xea8b('0x42'):'';return this[_0xea8b('0x23')](util[_0xea8b('0x26')](_0xea8b('0x43'),_0x301f4e,_0x25111d,_0x2081f9,_0x5ed643,_0x1cf3e0,_0x4fb5f7));};AGIChannel[_0xea8b('0x21')][_0xea8b('0x44')]=function(_0x5bf61d,_0x48449b){_0x48449b=_0x48449b||'';return this[_0xea8b('0x23')](util[_0xea8b('0x26')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x5bf61d,_0x48449b));};AGIChannel['prototype'][_0xea8b('0x45')]=function(_0x511316){return this[_0xea8b('0x2a')](_0xea8b('0x46'),_0x511316);};AGIChannel[_0xea8b('0x21')]['wait']=function(_0x1f84cd){return this[_0xea8b('0x2a')](_0xea8b('0x47'),_0x1f84cd);};AGIChannel[_0xea8b('0x21')]['error']=function(_0x513b41,_0x6de796){this['noop'](util[_0xea8b('0x26')](_0xea8b('0x48'),_0x513b41['id'],_0x513b41[_0xea8b('0x49')],_0x6de796));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xea8b('0x4a')]=AGIChannel;