Built motion from commit ffdca78c.|2.6.24
[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 _0xd535=['getData','beep','noop','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','format','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','setContext','setPriority','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','agi','AGI','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','exports','util','lodash','./error','call','setEncoding','utf8','setTimeout','headers','ready','line','toLowerCase','hangup','emit','substring','520-Invalid','search','function','no\x20code','replace','result=','indexOf','substr','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','destroy','pipe','command','write','inherits','prototype','sendRequest','sync','answer','ANSWER'];(function(_0xacf47e,_0x3389b7){var _0x2e059a=function(_0x30c5f4){while(--_0x30c5f4){_0xacf47e['push'](_0xacf47e['shift']());}};_0x2e059a(++_0x3389b7);}(_0xd535,0x161));var _0x5d53=function(_0x3ca824,_0x152a88){_0x3ca824=_0x3ca824-0x0;var _0x907afa=_0xd535[_0x3ca824];return _0x907afa;};'use strict';var util=require(_0x5d53('0x0'));var _=require(_0x5d53('0x1'));var EventEmitter=require('events')['EventEmitter'];var AGIReply=require('./reply');var AGIError=require(_0x5d53('0x2'));function AGIChannel(_0x510d60){var _0x5177af=this,_0x300c2a=new AGIReply(),_0x43a935=![],_0x3d8ac8={};EventEmitter[_0x5d53('0x3')](_0x5177af);_0x510d60[_0x5d53('0x4')](_0x5d53('0x5'));_0x510d60[_0x5d53('0x6')](0x8*0x3c*0x3c*0x3e8);_0x300c2a[_0x5d53('0x4')](_0x5d53('0x5'));_0x300c2a['on'](_0x5d53('0x7'),function(_0x4e9a58){for(var _0x448fef in _0x4e9a58){_0x5177af[_0x448fef]=_0x4e9a58[_0x448fef];}_0x5177af['emit'](_0x5d53('0x8'));});_0x300c2a['on'](_0x5d53('0x9'),function(_0x409b08){if(_0x409b08[_0x5d53('0xa')]()==_0x5d53('0xb')){_0x5177af[_0x5d53('0xc')](_0x5d53('0xb'));return;}if(_0x409b08[_0x5d53('0xd')](0x0,0xb)==_0x5d53('0xe')){_0x43a935=!![];}if(_0x43a935){_0x3d8ac8['rx']+=_0x409b08+'\x0a';if(_0x409b08[_0x5d53('0xf')]('520\x20End\x20of\x20proper')!=-0x1){_0x43a935=![];}}else{_0x3d8ac8['rx']=_0x409b08;}if(_0x43a935){return;}if(typeof _0x3d8ac8['cb']==_0x5d53('0x10')){var _0x2dff7c=_0x3d8ac8['rx'][_0x5d53('0xd')](0x0,0x3),_0x1b9721=null,_0x310ca8=null;_0x2dff7c=parseInt(_0x2dff7c);if(isNaN(_0x2dff7c)){_0x3d8ac8['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x5d53('0x11')});return;}if(_0x2dff7c!=0xc8){_0x3d8ac8['cb'](null,{'code':_0x2dff7c,'result':-0x1,'extra':'KO'});return;}_0x1b9721=_0x3d8ac8['rx'][_0x5d53('0xd')](0x4)[_0x5d53('0x12')](_0x5d53('0x13'),'');if(_0x1b9721[_0x5d53('0x14')]('\x20')!=-0x1){_0x1b9721=_0x1b9721[_0x5d53('0x15')](0x0,_0x1b9721[_0x5d53('0x14')]('\x20'));}if(_[_0x5d53('0x16')](_0x1b9721,'-1')){_0x1b9721=parseInt(_0x1b9721);}_0x310ca8=_0x3d8ac8['rx'][_0x5d53('0x17')]('\x20');if(_0x310ca8[_0x5d53('0x18')]==0x3){_0x310ca8=_0x310ca8[0x2]['substring'](0x1,_0x310ca8[0x2]['length']-0x1);}else if(_0x310ca8[_0x5d53('0x18')]>0x3){var _0x5310bd=/\((.+)\)/;var _0x33dd58=_0x3d8ac8['rx'][_0x5d53('0x19')](_0x5310bd);if(_0x33dd58){_0x310ca8=_0x33dd58[0x1];}else{_0x310ca8=null;}}else{_0x310ca8=null;}_0x3d8ac8['cb'](null,{'code':_0x2dff7c,'result':_0x1b9721,'extra':_0x310ca8});}});_0x510d60['on'](_0x5d53('0x1a'),function(_0x3599d8){_0x5177af[_0x5d53('0xc')](_0x5d53('0x1a'),new AGIError(_0x5d53('0x1b'),_0x3599d8[_0x5d53('0x1c')]));});_0x510d60['on'](_0x5d53('0x1d'),function(){_0x5177af['emit'](_0x5d53('0x1d'),new AGIError(_0x5d53('0x1e')));});_0x510d60['on']('timeout',function(){_0x5177af[_0x5d53('0xc')](_0x5d53('0x1f'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x510d60[_0x5d53('0x20')]();});_0x510d60[_0x5d53('0x21')](_0x300c2a);this[_0x5d53('0x22')]=function(_0x1afcac,_0x1c26cf){var _0x1afcac=_0x1afcac||'',_0x1c26cf=typeof _0x1c26cf=='function'?_0x1c26cf:new Function();_0x3d8ac8={'tx':_0x1afcac,'rx':'','cb':_0x1c26cf};_0x510d60[_0x5d53('0x23')](_0x1afcac+'\x0a');},this[_0x5d53('0x1d')]=function(){_0x510d60[_0x5d53('0x20')]();};}util[_0x5d53('0x24')](AGIChannel,EventEmitter);AGIChannel[_0x5d53('0x25')][_0x5d53('0x26')]=function(_0x4c64ac){return this[_0x5d53('0x22')][_0x5d53('0x27')](this,_0x4c64ac);};AGIChannel['prototype'][_0x5d53('0x28')]=function(){return this[_0x5d53('0x26')](_0x5d53('0x29'));};AGIChannel['prototype'][_0x5d53('0x2a')]=function(_0x214602,_0x46ad96,_0x19fb92){_0x214602=_0x214602===undefined?_0x5d53('0x2b'):_0x214602;_0x46ad96=_0x46ad96===undefined?'5':_0x46ad96;_0x19fb92=_0x19fb92===undefined?'1':_0x19fb92;return this[_0x5d53('0x26')](util['format']('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x214602,_0x46ad96*0x3e8,_0x19fb92));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x2c')]=function(_0x3efa1b){_0x3efa1b=_0x3efa1b||'NO\x20MESSAGE';return this[_0x5d53('0x26')](util['format'](_0x5d53('0x2d'),_0x3efa1b));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x2e')]=function(_0x5a119e,_0x3b23d5){if(_[_0x5d53('0x2f')](_0x3b23d5)){return this['sendRequest'](util['format'](_0x5d53('0x30'),_0x5a119e,_0x3b23d5['join'](',')));}return this['sendRequest'](util[_0x5d53('0x31')](_0x5d53('0x30'),_0x5a119e,_0x3b23d5));};AGIChannel[_0x5d53('0x25')]['setContext']=function(_0x2ca3b1){return this[_0x5d53('0x26')](util[_0x5d53('0x31')](_0x5d53('0x32'),_0x2ca3b1));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x33')]=function(_0x7bbf85){return this[_0x5d53('0x26')](util[_0x5d53('0x31')](_0x5d53('0x34'),_0x7bbf85));};AGIChannel['prototype']['setPriority']=function(_0x571f35){return this[_0x5d53('0x26')](util[_0x5d53('0x31')](_0x5d53('0x35'),_0x571f35));};AGIChannel[_0x5d53('0x25')]['hangup']=function(){return this[_0x5d53('0x26')](_0x5d53('0x36'));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x37')]=function(_0x36f0ef,_0x3a264c){var _0x59e637=_[_0x5d53('0x38')](_0x3a264c)||_[_0x5d53('0x39')](_0x3a264c)?_0x3a264c['toString']():_0x3a264c;return this[_0x5d53('0x26')](util[_0x5d53('0x31')](_0x5d53('0x3a'),_0x36f0ef,_0x59e637?_0x59e637['toString']()[_0x5d53('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x3b')]=function(_0x40d141,_0x334ba2){return this[_0x5d53('0x26')](util[_0x5d53('0x31')](_0x5d53('0x3c'),_0x40d141,_0x334ba2));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x3d')]=function(_0x5a4c06,_0x245cb9){return this[_0x5d53('0x26')](util[_0x5d53('0x31')](_0x5d53('0x3e'),_0x5a4c06,_0x245cb9));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x3f')]=function(_0x578078,_0x5cad76){return this[_0x5d53('0x26')](util[_0x5d53('0x31')](_0x5d53('0x40'),_0x578078,_0x5cad76));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x41')]=function(_0x486b87,_0x1dc136,_0x314a72){_0x1dc136=_0x1dc136||this['extension'];_0x314a72=_0x314a72||0x1;this[_0x5d53('0x42')](_0x486b87);this[_0x5d53('0x33')](_0x1dc136);this[_0x5d53('0x43')](_0x314a72);return this['noop'](util['format']('GOTO\x20%s\x20%s\x20%s',_0x486b87,_0x1dc136,_0x314a72));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x44')]=function(_0x3bc26d){return this['sendRequest'](util[_0x5d53('0x31')](_0x5d53('0x45'),_0x3bc26d));};AGIChannel[_0x5d53('0x25')][_0x5d53('0x46')]=function(_0xb0fe72,_0x415366,_0xed4036,_0x3b04b7,_0x7b81c7,_0x32aa78){_0x415366=_0x415366||_0x5d53('0x47');_0xed4036=_0xed4036||'';_0x3b04b7=_0x3b04b7===undefined?-0x1:_0x3b04b7==='-1'?-0x1:_0x3b04b7*0x3e8;_0x7b81c7=_0x7b81c7===undefined?'':'s='+_0x7b81c7;_0x32aa78=_0x32aa78?_0x5d53('0x48'):'';return this[_0x5d53('0x26')](util['format'](_0x5d53('0x49'),_0xb0fe72,_0x415366,_0xed4036,_0x3b04b7,_0x32aa78,_0x7b81c7));};AGIChannel[_0x5d53('0x25')]['streamFile']=function(_0x1fe5cc,_0x2380be){_0x2380be=_0x2380be||'';return this['sendRequest'](util['format']('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x1fe5cc,_0x2380be));};AGIChannel['prototype'][_0x5d53('0x4a')]=function(_0x24179a){return this['exec'](_0x5d53('0x4b'),_0x24179a);};AGIChannel[_0x5d53('0x25')]['wait']=function(_0x4d9e16){return this[_0x5d53('0x2e')](_0x5d53('0x4c'),_0x4d9e16);};AGIChannel[_0x5d53('0x25')]['error']=function(_0x536d72,_0x587744){this[_0x5d53('0x2c')](util[_0x5d53('0x31')](_0x5d53('0x4d'),_0x536d72['id'],_0x536d72['label'],_0x587744));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x5d53('0x4e')]=AGIChannel;