Built motion from commit 936e8062.|2.5.33
[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 _0xe864=['./error','call','setEncoding','setTimeout','headers','emit','ready','line','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','replace','result=','indexOf','substr','startsWith','split','length','error','code','close','timeout','E_AGI_SOCKET_TIMEOUT','pipe','write','destroy','inherits','prototype','command','sync','answer','sendRequest','ANSWER','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','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','setVariable','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setPriority','GOTO\x20%s\x20%s\x20%s','getVariable','recordFile','wav','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','WAIT','label','exports','util','lodash','events','EventEmitter','./reply'];(function(_0x2601b4,_0x315e78){var _0x3e3661=function(_0x13b45b){while(--_0x13b45b){_0x2601b4['push'](_0x2601b4['shift']());}};_0x3e3661(++_0x315e78);}(_0xe864,0x14b));var _0x4e86=function(_0x3b52ce,_0x4935a9){_0x3b52ce=_0x3b52ce-0x0;var _0x15b33c=_0xe864[_0x3b52ce];return _0x15b33c;};'use strict';var util=require(_0x4e86('0x0'));var _=require(_0x4e86('0x1'));var EventEmitter=require(_0x4e86('0x2'))[_0x4e86('0x3')];var AGIReply=require(_0x4e86('0x4'));var AGIError=require(_0x4e86('0x5'));function AGIChannel(_0x4ee8c6){var _0x234187=this,_0x2adf42=new AGIReply(),_0xe87690=![],_0x21b162={};EventEmitter[_0x4e86('0x6')](_0x234187);_0x4ee8c6[_0x4e86('0x7')]('utf8');_0x4ee8c6[_0x4e86('0x8')](0x8*0x3c*0x3c*0x3e8);_0x2adf42[_0x4e86('0x7')]('utf8');_0x2adf42['on'](_0x4e86('0x9'),function(_0x3d1cb5){for(var _0x4117e0 in _0x3d1cb5){_0x234187[_0x4117e0]=_0x3d1cb5[_0x4117e0];}_0x234187[_0x4e86('0xa')](_0x4e86('0xb'));});_0x2adf42['on'](_0x4e86('0xc'),function(_0x5e0b28){if(_0x5e0b28['toLowerCase']()==_0x4e86('0xd')){_0x234187['emit'](_0x4e86('0xd'));return;}if(_0x5e0b28[_0x4e86('0xe')](0x0,0xb)==_0x4e86('0xf')){_0xe87690=!![];}if(_0xe87690){_0x21b162['rx']+=_0x5e0b28+'\x0a';if(_0x5e0b28[_0x4e86('0x10')](_0x4e86('0x11'))!=-0x1){_0xe87690=![];}}else{_0x21b162['rx']=_0x5e0b28;}if(_0xe87690){return;}if(typeof _0x21b162['cb']==_0x4e86('0x12')){var _0x42e677=_0x21b162['rx']['substring'](0x0,0x3),_0x49a67b=null,_0x196f60=null;_0x42e677=parseInt(_0x42e677);if(isNaN(_0x42e677)){_0x21b162['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x42e677!=0xc8){_0x21b162['cb'](null,{'code':_0x42e677,'result':-0x1,'extra':'KO'});return;}_0x49a67b=_0x21b162['rx']['substring'](0x4)[_0x4e86('0x13')](_0x4e86('0x14'),'');if(_0x49a67b[_0x4e86('0x15')]('\x20')!=-0x1){_0x49a67b=_0x49a67b[_0x4e86('0x16')](0x0,_0x49a67b[_0x4e86('0x15')]('\x20'));}if(_[_0x4e86('0x17')](_0x49a67b,'-1')){_0x49a67b=parseInt(_0x49a67b);}_0x196f60=_0x21b162['rx'][_0x4e86('0x18')]('\x20');if(_0x196f60[_0x4e86('0x19')]==0x3){_0x196f60=_0x196f60[0x2][_0x4e86('0xe')](0x1,_0x196f60[0x2][_0x4e86('0x19')]-0x1);}else if(_0x196f60[_0x4e86('0x19')]>0x3){var _0x5185b5=/\((.+)\)/;var _0x5788b7=_0x21b162['rx']['match'](_0x5185b5);if(_0x5788b7){_0x196f60=_0x5788b7[0x1];}else{_0x196f60=null;}}else{_0x196f60=null;}_0x21b162['cb'](null,{'code':_0x42e677,'result':_0x49a67b,'extra':_0x196f60});}});_0x4ee8c6['on'](_0x4e86('0x1a'),function(_0x5abd95){_0x234187[_0x4e86('0xa')]('error',new AGIError('E_AGI_SOCKET_ERROR',_0x5abd95[_0x4e86('0x1b')]));});_0x4ee8c6['on']('close',function(){_0x234187[_0x4e86('0xa')](_0x4e86('0x1c'),new AGIError('E_AGI_SOCKET_CLOSE'));});_0x4ee8c6['on']('timeout',function(){_0x234187[_0x4e86('0xa')](_0x4e86('0x1d'),new AGIError(_0x4e86('0x1e')));_0x4ee8c6['destroy']();});_0x4ee8c6[_0x4e86('0x1f')](_0x2adf42);this['command']=function(_0x57c7c2,_0x30331b){var _0x57c7c2=_0x57c7c2||'',_0x30331b=typeof _0x30331b==_0x4e86('0x12')?_0x30331b:new Function();_0x21b162={'tx':_0x57c7c2,'rx':'','cb':_0x30331b};_0x4ee8c6[_0x4e86('0x20')](_0x57c7c2+'\x0a');},this['close']=function(){_0x4ee8c6[_0x4e86('0x21')]();};}util[_0x4e86('0x22')](AGIChannel,EventEmitter);AGIChannel[_0x4e86('0x23')]['sendRequest']=function(_0x388cb7){return this[_0x4e86('0x24')][_0x4e86('0x25')](this,_0x388cb7);};AGIChannel[_0x4e86('0x23')][_0x4e86('0x26')]=function(){return this[_0x4e86('0x27')](_0x4e86('0x28'));};AGIChannel[_0x4e86('0x23')]['getData']=function(_0x1c167d,_0x47f1f1,_0x5e72e4){_0x1c167d=_0x1c167d===undefined?_0x4e86('0x29'):_0x1c167d;_0x47f1f1=_0x47f1f1===undefined?'5':_0x47f1f1;_0x5e72e4=_0x5e72e4===undefined?'1':_0x5e72e4;return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x2b'),_0x1c167d,_0x47f1f1*0x3e8,_0x5e72e4));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x2c')]=function(_0x4a5c7d){_0x4a5c7d=_0x4a5c7d||_0x4e86('0x2d');return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x2e'),_0x4a5c7d));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x2f')]=function(_0x8f2658,_0x559168){if(_[_0x4e86('0x30')](_0x559168)){return this[_0x4e86('0x27')](util['format'](_0x4e86('0x31'),_0x8f2658,_0x559168[_0x4e86('0x32')](',')));}return this[_0x4e86('0x27')](util['format'](_0x4e86('0x31'),_0x8f2658,_0x559168));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x33')]=function(_0x497bb2){return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x34'),_0x497bb2));};AGIChannel['prototype'][_0x4e86('0x35')]=function(_0x19b2ee){return this[_0x4e86('0x27')](util['format'](_0x4e86('0x36'),_0x19b2ee));};AGIChannel[_0x4e86('0x23')]['setPriority']=function(_0x26e41a){return this[_0x4e86('0x27')](util['format'](_0x4e86('0x37'),_0x26e41a));};AGIChannel[_0x4e86('0x23')][_0x4e86('0xd')]=function(){return this[_0x4e86('0x27')](_0x4e86('0x38'));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x39')]=function(_0x29b54a,_0x141580){var _0x2167d7=_[_0x4e86('0x3a')](_0x141580)||_[_0x4e86('0x3b')](_0x141580)?_0x141580['toString']():_0x141580;return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x3c'),_0x29b54a,_0x2167d7?_0x2167d7[_0x4e86('0x3d')]()[_0x4e86('0x13')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x3e')]=function(_0x11a7e3,_0x433b33){return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x3f'),_0x11a7e3,_0x433b33));};AGIChannel['prototype'][_0x4e86('0x40')]=function(_0x20ad14,_0x5c3c88){return this[_0x4e86('0x27')](util['format'](_0x4e86('0x41'),_0x20ad14,_0x5c3c88));};AGIChannel['prototype'][_0x4e86('0x42')]=function(_0x17fca6,_0x1a8847){return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x43'),_0x17fca6,_0x1a8847));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x44')]=function(_0x34d5d8,_0x17083a,_0x3760ff){_0x17083a=_0x17083a||this[_0x4e86('0x45')];_0x3760ff=_0x3760ff||0x1;this['setContext'](_0x34d5d8);this[_0x4e86('0x35')](_0x17083a);this[_0x4e86('0x46')](_0x3760ff);return this['noop'](util[_0x4e86('0x2a')](_0x4e86('0x47'),_0x34d5d8,_0x17083a,_0x3760ff));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x48')]=function(_0x8ddf7b){return this['sendRequest'](util[_0x4e86('0x2a')]('GET\x20VARIABLE\x20\x22%s\x22',_0x8ddf7b));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x49')]=function(_0x33492e,_0x4b39bb,_0x48907e,_0x140349,_0x36338e,_0x1529d1){_0x4b39bb=_0x4b39bb||_0x4e86('0x4a');_0x48907e=_0x48907e||'';_0x140349=_0x140349===undefined?-0x1:_0x140349==='-1'?-0x1:_0x140349*0x3e8;_0x36338e=_0x36338e===undefined?'':'s='+_0x36338e;_0x1529d1=_0x1529d1?'BEEP':'';return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x4b'),_0x33492e,_0x4b39bb,_0x48907e,_0x140349,_0x1529d1,_0x36338e));};AGIChannel[_0x4e86('0x23')][_0x4e86('0x4c')]=function(_0x57cade,_0x3a2e65){_0x3a2e65=_0x3a2e65||'';return this[_0x4e86('0x27')](util[_0x4e86('0x2a')](_0x4e86('0x4d'),_0x57cade,_0x3a2e65));};AGIChannel['prototype'][_0x4e86('0x4e')]=function(_0xde98a8){return this['exec'](_0x4e86('0x4f'),_0xde98a8);};AGIChannel[_0x4e86('0x23')][_0x4e86('0x50')]=function(_0x5a592e){return this[_0x4e86('0x2f')](_0x4e86('0x51'),_0x5a592e);};AGIChannel[_0x4e86('0x23')][_0x4e86('0x1a')]=function(_0x4436bf,_0x512ada){this['noop'](util[_0x4e86('0x2a')]('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x4436bf['id'],_0x4436bf[_0x4e86('0x52')],_0x512ada));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x4e86('0x53')]=AGIChannel;