Built motion from commit 85328c08.|2.5.50
[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 _0xacf5=['toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','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','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','wait','WAIT','label','exports','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','replace','result=','indexOf','startsWith','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','function','write','prototype','sendRequest','command','answer','getData','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'];(function(_0x9f93d1,_0x2ed4ec){var _0x271751=function(_0x3b9a33){while(--_0x3b9a33){_0x9f93d1['push'](_0x9f93d1['shift']());}};_0x271751(++_0x2ed4ec);}(_0xacf5,0x110));var _0x5acf=function(_0x138188,_0x1f4c40){_0x138188=_0x138188-0x0;var _0x3b10a1=_0xacf5[_0x138188];return _0x3b10a1;};'use strict';var util=require(_0x5acf('0x0'));var _=require(_0x5acf('0x1'));var EventEmitter=require(_0x5acf('0x2'))[_0x5acf('0x3')];var AGIReply=require(_0x5acf('0x4'));var AGIError=require(_0x5acf('0x5'));function AGIChannel(_0x2ba0dd){var _0x17bf56=this,_0xe57842=new AGIReply(),_0x40302f=![],_0x58e205={};EventEmitter[_0x5acf('0x6')](_0x17bf56);_0x2ba0dd[_0x5acf('0x7')](_0x5acf('0x8'));_0x2ba0dd[_0x5acf('0x9')](0x8*0x3c*0x3c*0x3e8);_0xe57842[_0x5acf('0x7')]('utf8');_0xe57842['on'](_0x5acf('0xa'),function(_0x5f12f0){for(var _0x64e6b7 in _0x5f12f0){_0x17bf56[_0x64e6b7]=_0x5f12f0[_0x64e6b7];}_0x17bf56[_0x5acf('0xb')]('ready');});_0xe57842['on'](_0x5acf('0xc'),function(_0x36c207){if(_0x36c207[_0x5acf('0xd')]()==_0x5acf('0xe')){_0x17bf56[_0x5acf('0xb')](_0x5acf('0xe'));return;}if(_0x36c207[_0x5acf('0xf')](0x0,0xb)==_0x5acf('0x10')){_0x40302f=!![];}if(_0x40302f){_0x58e205['rx']+=_0x36c207+'\x0a';if(_0x36c207[_0x5acf('0x11')](_0x5acf('0x12'))!=-0x1){_0x40302f=![];}}else{_0x58e205['rx']=_0x36c207;}if(_0x40302f){return;}if(typeof _0x58e205['cb']=='function'){var _0x572e1a=_0x58e205['rx'][_0x5acf('0xf')](0x0,0x3),_0x53afd8=null,_0x322294=null;_0x572e1a=parseInt(_0x572e1a);if(isNaN(_0x572e1a)){_0x58e205['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x572e1a!=0xc8){_0x58e205['cb'](null,{'code':_0x572e1a,'result':-0x1,'extra':'KO'});return;}_0x53afd8=_0x58e205['rx']['substring'](0x4)[_0x5acf('0x13')](_0x5acf('0x14'),'');if(_0x53afd8[_0x5acf('0x15')]('\x20')!=-0x1){_0x53afd8=_0x53afd8['substr'](0x0,_0x53afd8[_0x5acf('0x15')]('\x20'));}if(_[_0x5acf('0x16')](_0x53afd8,'-1')){_0x53afd8=parseInt(_0x53afd8);}_0x322294=_0x58e205['rx']['split']('\x20');if(_0x322294[_0x5acf('0x17')]==0x3){_0x322294=_0x322294[0x2]['substring'](0x1,_0x322294[0x2][_0x5acf('0x17')]-0x1);}else if(_0x322294[_0x5acf('0x17')]>0x3){var _0x27373f=/\((.+)\)/;var _0x195748=_0x58e205['rx'][_0x5acf('0x18')](_0x27373f);if(_0x195748){_0x322294=_0x195748[0x1];}else{_0x322294=null;}}else{_0x322294=null;}_0x58e205['cb'](null,{'code':_0x572e1a,'result':_0x53afd8,'extra':_0x322294});}});_0x2ba0dd['on'](_0x5acf('0x19'),function(_0x2987c4){_0x17bf56[_0x5acf('0xb')](_0x5acf('0x19'),new AGIError(_0x5acf('0x1a'),_0x2987c4[_0x5acf('0x1b')]));});_0x2ba0dd['on'](_0x5acf('0x1c'),function(){_0x17bf56['emit'](_0x5acf('0x1c'),new AGIError(_0x5acf('0x1d')));});_0x2ba0dd['on']('timeout',function(){_0x17bf56[_0x5acf('0xb')](_0x5acf('0x1e'),new AGIError(_0x5acf('0x1f')));_0x2ba0dd[_0x5acf('0x20')]();});_0x2ba0dd[_0x5acf('0x21')](_0xe57842);this['command']=function(_0x459fda,_0x329d65){var _0x459fda=_0x459fda||'',_0x329d65=typeof _0x329d65==_0x5acf('0x22')?_0x329d65:new Function();_0x58e205={'tx':_0x459fda,'rx':'','cb':_0x329d65};_0x2ba0dd[_0x5acf('0x23')](_0x459fda+'\x0a');},this[_0x5acf('0x1c')]=function(){_0x2ba0dd[_0x5acf('0x20')]();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel[_0x5acf('0x24')][_0x5acf('0x25')]=function(_0x910cd5){return this[_0x5acf('0x26')]['sync'](this,_0x910cd5);};AGIChannel[_0x5acf('0x24')][_0x5acf('0x27')]=function(){return this[_0x5acf('0x25')]('ANSWER');};AGIChannel[_0x5acf('0x24')][_0x5acf('0x28')]=function(_0xc40536,_0x445537,_0x85c8b5){_0xc40536=_0xc40536===undefined?_0x5acf('0x29'):_0xc40536;_0x445537=_0x445537===undefined?'5':_0x445537;_0x85c8b5=_0x85c8b5===undefined?'1':_0x85c8b5;return this[_0x5acf('0x25')](util[_0x5acf('0x2a')](_0x5acf('0x2b'),_0xc40536,_0x445537*0x3e8,_0x85c8b5));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x2c')]=function(_0x52d304){_0x52d304=_0x52d304||_0x5acf('0x2d');return this['sendRequest'](util[_0x5acf('0x2a')](_0x5acf('0x2e'),_0x52d304));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x2f')]=function(_0x9102f3,_0x5ddd31){if(_[_0x5acf('0x30')](_0x5ddd31)){return this[_0x5acf('0x25')](util['format'](_0x5acf('0x31'),_0x9102f3,_0x5ddd31[_0x5acf('0x32')](',')));}return this[_0x5acf('0x25')](util['format'](_0x5acf('0x31'),_0x9102f3,_0x5ddd31));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x33')]=function(_0xfc7ee1){return this[_0x5acf('0x25')](util[_0x5acf('0x2a')](_0x5acf('0x34'),_0xfc7ee1));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x35')]=function(_0x30f54f){return this[_0x5acf('0x25')](util[_0x5acf('0x2a')](_0x5acf('0x36'),_0x30f54f));};AGIChannel['prototype']['setPriority']=function(_0x4ce14d){return this['sendRequest'](util[_0x5acf('0x2a')](_0x5acf('0x37'),_0x4ce14d));};AGIChannel[_0x5acf('0x24')][_0x5acf('0xe')]=function(){return this['sendRequest'](_0x5acf('0x38'));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x39')]=function(_0x9e5e4e,_0xe6ad98){var _0x53f097=_[_0x5acf('0x3a')](_0xe6ad98)||_[_0x5acf('0x3b')](_0xe6ad98)?_0xe6ad98[_0x5acf('0x3c')]():_0xe6ad98;return this['sendRequest'](util[_0x5acf('0x2a')](_0x5acf('0x3d'),_0x9e5e4e,_0x53f097?_0x53f097[_0x5acf('0x3c')]()[_0x5acf('0x13')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x3e')]=function(_0x4c258b,_0x161446){return this[_0x5acf('0x25')](util[_0x5acf('0x2a')](_0x5acf('0x3f'),_0x4c258b,_0x161446));};AGIChannel[_0x5acf('0x24')]['sayDigits']=function(_0x2038bc,_0x511447){return this[_0x5acf('0x25')](util[_0x5acf('0x2a')](_0x5acf('0x40'),_0x2038bc,_0x511447));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x41')]=function(_0x39e19d,_0x18e21c){return this['sendRequest'](util[_0x5acf('0x2a')](_0x5acf('0x42'),_0x39e19d,_0x18e21c));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x43')]=function(_0x549f47,_0x5a0c4c,_0x257a03){_0x5a0c4c=_0x5a0c4c||this[_0x5acf('0x44')];_0x257a03=_0x257a03||0x1;this[_0x5acf('0x33')](_0x549f47);this[_0x5acf('0x35')](_0x5a0c4c);this[_0x5acf('0x45')](_0x257a03);return this[_0x5acf('0x2c')](util['format'](_0x5acf('0x46'),_0x549f47,_0x5a0c4c,_0x257a03));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x47')]=function(_0x1d5aa8){return this[_0x5acf('0x25')](util[_0x5acf('0x2a')]('GET\x20VARIABLE\x20\x22%s\x22',_0x1d5aa8));};AGIChannel['prototype'][_0x5acf('0x48')]=function(_0x17e9ad,_0xdc43bc,_0x3fd927,_0x15e0cf,_0xc6c804,_0xb213e6){_0xdc43bc=_0xdc43bc||_0x5acf('0x49');_0x3fd927=_0x3fd927||'';_0x15e0cf=_0x15e0cf===undefined?-0x1:_0x15e0cf==='-1'?-0x1:_0x15e0cf*0x3e8;_0xc6c804=_0xc6c804===undefined?'':'s='+_0xc6c804;_0xb213e6=_0xb213e6?_0x5acf('0x4a'):'';return this[_0x5acf('0x25')](util[_0x5acf('0x2a')](_0x5acf('0x4b'),_0x17e9ad,_0xdc43bc,_0x3fd927,_0x15e0cf,_0xb213e6,_0xc6c804));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x4c')]=function(_0x679e76,_0x52ee91){_0x52ee91=_0x52ee91||'';return this[_0x5acf('0x25')](util[_0x5acf('0x2a')](_0x5acf('0x4d'),_0x679e76,_0x52ee91));};AGIChannel[_0x5acf('0x24')][_0x5acf('0x4e')]=function(_0x2e2062){return this[_0x5acf('0x2f')]('AGI',_0x2e2062);};AGIChannel[_0x5acf('0x24')][_0x5acf('0x4f')]=function(_0x2e028f){return this['exec'](_0x5acf('0x50'),_0x2e028f);};AGIChannel[_0x5acf('0x24')][_0x5acf('0x19')]=function(_0x5c0329,_0x48d303){this[_0x5acf('0x2c')](util['format']('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x5c0329['id'],_0x5c0329[_0x5acf('0x51')],_0x48d303));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x5acf('0x52')]=AGIChannel;