Built motion from commit d1eab355.|2.6.28
[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 _0x229e=['lodash','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','line','toLowerCase','hangup','substring','search','function','replace','result=','substr','indexOf','startsWith','split','length','match','error','close','timeout','E_AGI_SOCKET_TIMEOUT','pipe','write','prototype','sendRequest','command','answer','ANSWER','getData','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','format','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','isBoolean','isNumber','toString','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','extension','setPriority','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','wait','WAIT','label','exports','util'];(function(_0x20c732,_0x3e58f4){var _0x1bc9b3=function(_0x119254){while(--_0x119254){_0x20c732['push'](_0x20c732['shift']());}};_0x1bc9b3(++_0x3e58f4);}(_0x229e,0x12f));var _0xe229=function(_0x2f118e,_0x3ee0dc){_0x2f118e=_0x2f118e-0x0;var _0x3ce2fd=_0x229e[_0x2f118e];return _0x3ce2fd;};'use strict';var util=require(_0xe229('0x0'));var _=require(_0xe229('0x1'));var EventEmitter=require('events')[_0xe229('0x2')];var AGIReply=require(_0xe229('0x3'));var AGIError=require(_0xe229('0x4'));function AGIChannel(_0x38e837){var _0xc4d8f2=this,_0x14dce2=new AGIReply(),_0x18162b=![],_0x3a9500={};EventEmitter[_0xe229('0x5')](_0xc4d8f2);_0x38e837[_0xe229('0x6')](_0xe229('0x7'));_0x38e837[_0xe229('0x8')](0x8*0x3c*0x3c*0x3e8);_0x14dce2[_0xe229('0x6')](_0xe229('0x7'));_0x14dce2['on'](_0xe229('0x9'),function(_0x43cf30){for(var _0x588cd9 in _0x43cf30){_0xc4d8f2[_0x588cd9]=_0x43cf30[_0x588cd9];}_0xc4d8f2[_0xe229('0xa')]('ready');});_0x14dce2['on'](_0xe229('0xb'),function(_0x3efa43){if(_0x3efa43[_0xe229('0xc')]()=='hangup'){_0xc4d8f2[_0xe229('0xa')](_0xe229('0xd'));return;}if(_0x3efa43[_0xe229('0xe')](0x0,0xb)=='520-Invalid'){_0x18162b=!![];}if(_0x18162b){_0x3a9500['rx']+=_0x3efa43+'\x0a';if(_0x3efa43[_0xe229('0xf')]('520\x20End\x20of\x20proper')!=-0x1){_0x18162b=![];}}else{_0x3a9500['rx']=_0x3efa43;}if(_0x18162b){return;}if(typeof _0x3a9500['cb']==_0xe229('0x10')){var _0x4338d7=_0x3a9500['rx']['substring'](0x0,0x3),_0x129d5f=null,_0x5cd5e1=null;_0x4338d7=parseInt(_0x4338d7);if(isNaN(_0x4338d7)){_0x3a9500['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x4338d7!=0xc8){_0x3a9500['cb'](null,{'code':_0x4338d7,'result':-0x1,'extra':'KO'});return;}_0x129d5f=_0x3a9500['rx']['substring'](0x4)[_0xe229('0x11')](_0xe229('0x12'),'');if(_0x129d5f['indexOf']('\x20')!=-0x1){_0x129d5f=_0x129d5f[_0xe229('0x13')](0x0,_0x129d5f[_0xe229('0x14')]('\x20'));}if(_[_0xe229('0x15')](_0x129d5f,'-1')){_0x129d5f=parseInt(_0x129d5f);}_0x5cd5e1=_0x3a9500['rx'][_0xe229('0x16')]('\x20');if(_0x5cd5e1[_0xe229('0x17')]==0x3){_0x5cd5e1=_0x5cd5e1[0x2][_0xe229('0xe')](0x1,_0x5cd5e1[0x2][_0xe229('0x17')]-0x1);}else if(_0x5cd5e1[_0xe229('0x17')]>0x3){var _0x20a84e=/\((.+)\)/;var _0x4f49ac=_0x3a9500['rx'][_0xe229('0x18')](_0x20a84e);if(_0x4f49ac){_0x5cd5e1=_0x4f49ac[0x1];}else{_0x5cd5e1=null;}}else{_0x5cd5e1=null;}_0x3a9500['cb'](null,{'code':_0x4338d7,'result':_0x129d5f,'extra':_0x5cd5e1});}});_0x38e837['on'](_0xe229('0x19'),function(_0x58f7c5){_0xc4d8f2[_0xe229('0xa')](_0xe229('0x19'),new AGIError('E_AGI_SOCKET_ERROR',_0x58f7c5['code']));});_0x38e837['on'](_0xe229('0x1a'),function(){_0xc4d8f2['emit'](_0xe229('0x1a'),new AGIError('E_AGI_SOCKET_CLOSE'));});_0x38e837['on'](_0xe229('0x1b'),function(){_0xc4d8f2['emit'](_0xe229('0x1b'),new AGIError(_0xe229('0x1c')));_0x38e837['destroy']();});_0x38e837[_0xe229('0x1d')](_0x14dce2);this['command']=function(_0x482e7b,_0x53ba19){var _0x482e7b=_0x482e7b||'',_0x53ba19=typeof _0x53ba19==_0xe229('0x10')?_0x53ba19:new Function();_0x3a9500={'tx':_0x482e7b,'rx':'','cb':_0x53ba19};_0x38e837[_0xe229('0x1e')](_0x482e7b+'\x0a');},this[_0xe229('0x1a')]=function(){_0x38e837['destroy']();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel[_0xe229('0x1f')][_0xe229('0x20')]=function(_0x466c05){return this[_0xe229('0x21')]['sync'](this,_0x466c05);};AGIChannel['prototype'][_0xe229('0x22')]=function(){return this[_0xe229('0x20')](_0xe229('0x23'));};AGIChannel[_0xe229('0x1f')][_0xe229('0x24')]=function(_0x2126a4,_0x12d36e,_0x4f43b0){_0x2126a4=_0x2126a4===undefined?_0xe229('0x25'):_0x2126a4;_0x12d36e=_0x12d36e===undefined?'5':_0x12d36e;_0x4f43b0=_0x4f43b0===undefined?'1':_0x4f43b0;return this[_0xe229('0x20')](util['format'](_0xe229('0x26'),_0x2126a4,_0x12d36e*0x3e8,_0x4f43b0));};AGIChannel[_0xe229('0x1f')][_0xe229('0x27')]=function(_0x31642c){_0x31642c=_0x31642c||'NO\x20MESSAGE';return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x29'),_0x31642c));};AGIChannel[_0xe229('0x1f')][_0xe229('0x2a')]=function(_0x4089b7,_0xd2f2c){if(_[_0xe229('0x2b')](_0xd2f2c)){return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x2c'),_0x4089b7,_0xd2f2c[_0xe229('0x2d')](',')));}return this[_0xe229('0x20')](util['format']('EXEC\x20%s\x20%s',_0x4089b7,_0xd2f2c));};AGIChannel[_0xe229('0x1f')][_0xe229('0x2e')]=function(_0x4a48eb){return this['sendRequest'](util['format'](_0xe229('0x2f'),_0x4a48eb));};AGIChannel[_0xe229('0x1f')][_0xe229('0x30')]=function(_0x3d02b3){return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x31'),_0x3d02b3));};AGIChannel[_0xe229('0x1f')]['setPriority']=function(_0x589078){return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x32'),_0x589078));};AGIChannel[_0xe229('0x1f')][_0xe229('0xd')]=function(){return this[_0xe229('0x20')](_0xe229('0x33'));};AGIChannel[_0xe229('0x1f')]['setVariable']=function(_0x4c6ca9,_0x57c637){var _0xcd3815=_[_0xe229('0x34')](_0x57c637)||_[_0xe229('0x35')](_0x57c637)?_0x57c637[_0xe229('0x36')]():_0x57c637;return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x37'),_0x4c6ca9,_0xcd3815?_0xcd3815['toString']()[_0xe229('0x11')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xe229('0x1f')][_0xe229('0x38')]=function(_0x513997,_0x2d1189){return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x39'),_0x513997,_0x2d1189));};AGIChannel['prototype'][_0xe229('0x3a')]=function(_0x4c8919,_0x22d89b){return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x3b'),_0x4c8919,_0x22d89b));};AGIChannel['prototype'][_0xe229('0x3c')]=function(_0xd8906f,_0x26d46b){return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x3d'),_0xd8906f,_0x26d46b));};AGIChannel[_0xe229('0x1f')]['continueAt']=function(_0x1da2ae,_0x1623df,_0x4adc52){_0x1623df=_0x1623df||this[_0xe229('0x3e')];_0x4adc52=_0x4adc52||0x1;this[_0xe229('0x2e')](_0x1da2ae);this[_0xe229('0x30')](_0x1623df);this[_0xe229('0x3f')](_0x4adc52);return this[_0xe229('0x27')](util['format'](_0xe229('0x40'),_0x1da2ae,_0x1623df,_0x4adc52));};AGIChannel[_0xe229('0x1f')][_0xe229('0x41')]=function(_0x18559c){return this['sendRequest'](util[_0xe229('0x28')](_0xe229('0x42'),_0x18559c));};AGIChannel[_0xe229('0x1f')][_0xe229('0x43')]=function(_0x3a0dcb,_0x443672,_0x102245,_0x2f3ba3,_0x10cff7,_0x5f2c34){_0x443672=_0x443672||'wav';_0x102245=_0x102245||'';_0x2f3ba3=_0x2f3ba3===undefined?-0x1:_0x2f3ba3==='-1'?-0x1:_0x2f3ba3*0x3e8;_0x10cff7=_0x10cff7===undefined?'':'s='+_0x10cff7;_0x5f2c34=_0x5f2c34?_0xe229('0x44'):'';return this[_0xe229('0x20')](util[_0xe229('0x28')]('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x3a0dcb,_0x443672,_0x102245,_0x2f3ba3,_0x5f2c34,_0x10cff7));};AGIChannel[_0xe229('0x1f')][_0xe229('0x45')]=function(_0x646e7b,_0x415c5b){_0x415c5b=_0x415c5b||'';return this[_0xe229('0x20')](util[_0xe229('0x28')](_0xe229('0x46'),_0x646e7b,_0x415c5b));};AGIChannel['prototype'][_0xe229('0x47')]=function(_0x51784a){return this[_0xe229('0x2a')]('AGI',_0x51784a);};AGIChannel[_0xe229('0x1f')][_0xe229('0x48')]=function(_0x2748a9){return this[_0xe229('0x2a')](_0xe229('0x49'),_0x2748a9);};AGIChannel[_0xe229('0x1f')][_0xe229('0x19')]=function(_0x543919,_0x4ab533){this[_0xe229('0x27')](util[_0xe229('0x28')]('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x543919['id'],_0x543919[_0xe229('0x4a')],_0x4ab533));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xe229('0x4b')]=AGIChannel;