Built motion from commit 0900f080.|2.5.45
[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 _0x2563=['destroy','pipe','command','write','inherits','prototype','sendRequest','sync','answer','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','setPriority','HANGUP','setVariable','isBoolean','toString','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','extension','GOTO\x20%s\x20%s\x20%s','getVariable','recordFile','BEEP','streamFile','agi','AGI','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','util','lodash','events','EventEmitter','./reply','./error','call','utf8','setTimeout','setEncoding','headers','line','hangup','emit','substring','520-Invalid','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','substr','indexOf','startsWith','length','match','error','code','close','timeout','E_AGI_SOCKET_TIMEOUT'];(function(_0x3a1a85,_0x3a2a64){var _0x29deaa=function(_0x19d314){while(--_0x19d314){_0x3a1a85['push'](_0x3a1a85['shift']());}};_0x29deaa(++_0x3a2a64);}(_0x2563,0x75));var _0x3256=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2563[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x3256('0x0'));var _=require(_0x3256('0x1'));var EventEmitter=require(_0x3256('0x2'))[_0x3256('0x3')];var AGIReply=require(_0x3256('0x4'));var AGIError=require(_0x3256('0x5'));function AGIChannel(_0x5a56e7){var _0x3be369=this,_0x36d702=new AGIReply(),_0x5631d3=![],_0x348ebf={};EventEmitter[_0x3256('0x6')](_0x3be369);_0x5a56e7['setEncoding'](_0x3256('0x7'));_0x5a56e7[_0x3256('0x8')](0x8*0x3c*0x3c*0x3e8);_0x36d702[_0x3256('0x9')](_0x3256('0x7'));_0x36d702['on'](_0x3256('0xa'),function(_0x492ce6){for(var _0x4a431a in _0x492ce6){_0x3be369[_0x4a431a]=_0x492ce6[_0x4a431a];}_0x3be369['emit']('ready');});_0x36d702['on'](_0x3256('0xb'),function(_0x4d514c){if(_0x4d514c['toLowerCase']()==_0x3256('0xc')){_0x3be369[_0x3256('0xd')](_0x3256('0xc'));return;}if(_0x4d514c[_0x3256('0xe')](0x0,0xb)==_0x3256('0xf')){_0x5631d3=!![];}if(_0x5631d3){_0x348ebf['rx']+=_0x4d514c+'\x0a';if(_0x4d514c['search'](_0x3256('0x10'))!=-0x1){_0x5631d3=![];}}else{_0x348ebf['rx']=_0x4d514c;}if(_0x5631d3){return;}if(typeof _0x348ebf['cb']==_0x3256('0x11')){var _0x1a87e8=_0x348ebf['rx'][_0x3256('0xe')](0x0,0x3),_0x4eb1d4=null,_0xbe53b8=null;_0x1a87e8=parseInt(_0x1a87e8);if(isNaN(_0x1a87e8)){_0x348ebf['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x3256('0x12')});return;}if(_0x1a87e8!=0xc8){_0x348ebf['cb'](null,{'code':_0x1a87e8,'result':-0x1,'extra':'KO'});return;}_0x4eb1d4=_0x348ebf['rx']['substring'](0x4)[_0x3256('0x13')](_0x3256('0x14'),'');if(_0x4eb1d4['indexOf']('\x20')!=-0x1){_0x4eb1d4=_0x4eb1d4[_0x3256('0x15')](0x0,_0x4eb1d4[_0x3256('0x16')]('\x20'));}if(_[_0x3256('0x17')](_0x4eb1d4,'-1')){_0x4eb1d4=parseInt(_0x4eb1d4);}_0xbe53b8=_0x348ebf['rx']['split']('\x20');if(_0xbe53b8[_0x3256('0x18')]==0x3){_0xbe53b8=_0xbe53b8[0x2][_0x3256('0xe')](0x1,_0xbe53b8[0x2]['length']-0x1);}else if(_0xbe53b8[_0x3256('0x18')]>0x3){var _0x160fb4=/\((.+)\)/;var _0xf42cb2=_0x348ebf['rx'][_0x3256('0x19')](_0x160fb4);if(_0xf42cb2){_0xbe53b8=_0xf42cb2[0x1];}else{_0xbe53b8=null;}}else{_0xbe53b8=null;}_0x348ebf['cb'](null,{'code':_0x1a87e8,'result':_0x4eb1d4,'extra':_0xbe53b8});}});_0x5a56e7['on']('error',function(_0x1aa361){_0x3be369[_0x3256('0xd')](_0x3256('0x1a'),new AGIError('E_AGI_SOCKET_ERROR',_0x1aa361[_0x3256('0x1b')]));});_0x5a56e7['on']('close',function(){_0x3be369['emit'](_0x3256('0x1c'),new AGIError('E_AGI_SOCKET_CLOSE'));});_0x5a56e7['on']('timeout',function(){_0x3be369[_0x3256('0xd')](_0x3256('0x1d'),new AGIError(_0x3256('0x1e')));_0x5a56e7[_0x3256('0x1f')]();});_0x5a56e7[_0x3256('0x20')](_0x36d702);this[_0x3256('0x21')]=function(_0x317e8a,_0x1fac9f){var _0x317e8a=_0x317e8a||'',_0x1fac9f=typeof _0x1fac9f==_0x3256('0x11')?_0x1fac9f:new Function();_0x348ebf={'tx':_0x317e8a,'rx':'','cb':_0x1fac9f};_0x5a56e7[_0x3256('0x22')](_0x317e8a+'\x0a');},this[_0x3256('0x1c')]=function(){_0x5a56e7['destroy']();};}util[_0x3256('0x23')](AGIChannel,EventEmitter);AGIChannel[_0x3256('0x24')][_0x3256('0x25')]=function(_0x3fd53e){return this[_0x3256('0x21')][_0x3256('0x26')](this,_0x3fd53e);};AGIChannel[_0x3256('0x24')][_0x3256('0x27')]=function(){return this[_0x3256('0x25')]('ANSWER');};AGIChannel['prototype'][_0x3256('0x28')]=function(_0x262453,_0x14f78c,_0x25f742){_0x262453=_0x262453===undefined?_0x3256('0x29'):_0x262453;_0x14f78c=_0x14f78c===undefined?'5':_0x14f78c;_0x25f742=_0x25f742===undefined?'1':_0x25f742;return this[_0x3256('0x25')](util[_0x3256('0x2a')](_0x3256('0x2b'),_0x262453,_0x14f78c*0x3e8,_0x25f742));};AGIChannel[_0x3256('0x24')][_0x3256('0x2c')]=function(_0x2978cd){_0x2978cd=_0x2978cd||'NO\x20MESSAGE';return this['sendRequest'](util[_0x3256('0x2a')](_0x3256('0x2d'),_0x2978cd));};AGIChannel[_0x3256('0x24')][_0x3256('0x2e')]=function(_0xe604ed,_0x219818){if(_[_0x3256('0x2f')](_0x219818)){return this['sendRequest'](util[_0x3256('0x2a')](_0x3256('0x30'),_0xe604ed,_0x219818[_0x3256('0x31')](',')));}return this['sendRequest'](util['format']('EXEC\x20%s\x20%s',_0xe604ed,_0x219818));};AGIChannel[_0x3256('0x24')][_0x3256('0x32')]=function(_0x1ef1a7){return this[_0x3256('0x25')](util[_0x3256('0x2a')](_0x3256('0x33'),_0x1ef1a7));};AGIChannel[_0x3256('0x24')][_0x3256('0x34')]=function(_0xd35dea){return this[_0x3256('0x25')](util[_0x3256('0x2a')]('SET\x20EXTENSION\x20%s',_0xd35dea));};AGIChannel[_0x3256('0x24')][_0x3256('0x35')]=function(_0x25af81){return this['sendRequest'](util[_0x3256('0x2a')]('SET\x20PRIORITY\x20%s',_0x25af81));};AGIChannel[_0x3256('0x24')]['hangup']=function(){return this[_0x3256('0x25')](_0x3256('0x36'));};AGIChannel[_0x3256('0x24')][_0x3256('0x37')]=function(_0x4391c2,_0x5319a4){var _0x15d6fa=_[_0x3256('0x38')](_0x5319a4)||_['isNumber'](_0x5319a4)?_0x5319a4[_0x3256('0x39')]():_0x5319a4;return this['sendRequest'](util['format']('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x4391c2,_0x15d6fa?_0x15d6fa['toString']()[_0x3256('0x13')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x3256('0x24')]['sayNumber']=function(_0x23dabd,_0x6ff7b5){return this[_0x3256('0x25')](util['format'](_0x3256('0x3a'),_0x23dabd,_0x6ff7b5));};AGIChannel[_0x3256('0x24')][_0x3256('0x3b')]=function(_0x32972b,_0x504226){return this[_0x3256('0x25')](util[_0x3256('0x2a')](_0x3256('0x3c'),_0x32972b,_0x504226));};AGIChannel['prototype']['sayPhonetic']=function(_0x45ee0c,_0x26e74c){return this[_0x3256('0x25')](util['format'](_0x3256('0x3d'),_0x45ee0c,_0x26e74c));};AGIChannel[_0x3256('0x24')]['continueAt']=function(_0x32a930,_0x4cabdf,_0x187a35){_0x4cabdf=_0x4cabdf||this[_0x3256('0x3e')];_0x187a35=_0x187a35||0x1;this[_0x3256('0x32')](_0x32a930);this[_0x3256('0x34')](_0x4cabdf);this[_0x3256('0x35')](_0x187a35);return this['noop'](util[_0x3256('0x2a')](_0x3256('0x3f'),_0x32a930,_0x4cabdf,_0x187a35));};AGIChannel[_0x3256('0x24')][_0x3256('0x40')]=function(_0x5dc9d5){return this['sendRequest'](util[_0x3256('0x2a')]('GET\x20VARIABLE\x20\x22%s\x22',_0x5dc9d5));};AGIChannel[_0x3256('0x24')][_0x3256('0x41')]=function(_0x4d9a1d,_0x20a3a5,_0xbbec2a,_0x399bb,_0x4d0dfb,_0x3d0047){_0x20a3a5=_0x20a3a5||'wav';_0xbbec2a=_0xbbec2a||'';_0x399bb=_0x399bb===undefined?-0x1:_0x399bb==='-1'?-0x1:_0x399bb*0x3e8;_0x4d0dfb=_0x4d0dfb===undefined?'':'s='+_0x4d0dfb;_0x3d0047=_0x3d0047?_0x3256('0x42'):'';return this[_0x3256('0x25')](util['format']('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x4d9a1d,_0x20a3a5,_0xbbec2a,_0x399bb,_0x3d0047,_0x4d0dfb));};AGIChannel['prototype'][_0x3256('0x43')]=function(_0x166eee,_0x2ae6ca){_0x2ae6ca=_0x2ae6ca||'';return this[_0x3256('0x25')](util['format']('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x166eee,_0x2ae6ca));};AGIChannel[_0x3256('0x24')][_0x3256('0x44')]=function(_0xb8f059){return this[_0x3256('0x2e')](_0x3256('0x45'),_0xb8f059);};AGIChannel['prototype'][_0x3256('0x46')]=function(_0x21555f){return this[_0x3256('0x2e')](_0x3256('0x47'),_0x21555f);};AGIChannel[_0x3256('0x24')][_0x3256('0x1a')]=function(_0x161ff8,_0xe0ced0){this[_0x3256('0x2c')](util[_0x3256('0x2a')](_0x3256('0x48'),_0x161ff8['id'],_0x161ff8[_0x3256('0x49')],_0xe0ced0));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;