Built motion from commit 753c950e.|2.5.42
[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 _0x282a=['continueAt','noop','GOTO\x20%s\x20%s\x20%s','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','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','lodash','events','EventEmitter','./reply','./error','setEncoding','setTimeout','utf8','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','indexOf','substr','length','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','destroy','pipe','command','write','inherits','prototype','sendRequest','sync','answer','ANSWER','getData','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','setContext','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s'];(function(_0x5ad182,_0x5e3ba9){var _0x585044=function(_0x25f7da){while(--_0x25f7da){_0x5ad182['push'](_0x5ad182['shift']());}};_0x585044(++_0x5e3ba9);}(_0x282a,0xa2));var _0xa282=function(_0x47aa64,_0xfb8a07){_0x47aa64=_0x47aa64-0x0;var _0x549c7a=_0x282a[_0x47aa64];return _0x549c7a;};'use strict';var util=require('util');var _=require(_0xa282('0x0'));var EventEmitter=require(_0xa282('0x1'))[_0xa282('0x2')];var AGIReply=require(_0xa282('0x3'));var AGIError=require(_0xa282('0x4'));function AGIChannel(_0x4f7a2b){var _0x3a51f8=this,_0x3344f0=new AGIReply(),_0x5af988=![],_0xde1168={};EventEmitter['call'](_0x3a51f8);_0x4f7a2b[_0xa282('0x5')]('utf8');_0x4f7a2b[_0xa282('0x6')](0x8*0x3c*0x3c*0x3e8);_0x3344f0[_0xa282('0x5')](_0xa282('0x7'));_0x3344f0['on']('headers',function(_0x4ff77f){for(var _0x515324 in _0x4ff77f){_0x3a51f8[_0x515324]=_0x4ff77f[_0x515324];}_0x3a51f8[_0xa282('0x8')](_0xa282('0x9'));});_0x3344f0['on'](_0xa282('0xa'),function(_0x8bb6a0){if(_0x8bb6a0[_0xa282('0xb')]()==_0xa282('0xc')){_0x3a51f8[_0xa282('0x8')](_0xa282('0xc'));return;}if(_0x8bb6a0[_0xa282('0xd')](0x0,0xb)==_0xa282('0xe')){_0x5af988=!![];}if(_0x5af988){_0xde1168['rx']+=_0x8bb6a0+'\x0a';if(_0x8bb6a0[_0xa282('0xf')](_0xa282('0x10'))!=-0x1){_0x5af988=![];}}else{_0xde1168['rx']=_0x8bb6a0;}if(_0x5af988){return;}if(typeof _0xde1168['cb']==_0xa282('0x11')){var _0x3ebaf9=_0xde1168['rx'][_0xa282('0xd')](0x0,0x3),_0x17891c=null,_0x37eb53=null;_0x3ebaf9=parseInt(_0x3ebaf9);if(isNaN(_0x3ebaf9)){_0xde1168['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xa282('0x12')});return;}if(_0x3ebaf9!=0xc8){_0xde1168['cb'](null,{'code':_0x3ebaf9,'result':-0x1,'extra':'KO'});return;}_0x17891c=_0xde1168['rx']['substring'](0x4)[_0xa282('0x13')](_0xa282('0x14'),'');if(_0x17891c[_0xa282('0x15')]('\x20')!=-0x1){_0x17891c=_0x17891c[_0xa282('0x16')](0x0,_0x17891c[_0xa282('0x15')]('\x20'));}if(_['startsWith'](_0x17891c,'-1')){_0x17891c=parseInt(_0x17891c);}_0x37eb53=_0xde1168['rx']['split']('\x20');if(_0x37eb53[_0xa282('0x17')]==0x3){_0x37eb53=_0x37eb53[0x2][_0xa282('0xd')](0x1,_0x37eb53[0x2][_0xa282('0x17')]-0x1);}else if(_0x37eb53[_0xa282('0x17')]>0x3){var _0x1b4c2d=/\((.+)\)/;var _0x4b1dcb=_0xde1168['rx']['match'](_0x1b4c2d);if(_0x4b1dcb){_0x37eb53=_0x4b1dcb[0x1];}else{_0x37eb53=null;}}else{_0x37eb53=null;}_0xde1168['cb'](null,{'code':_0x3ebaf9,'result':_0x17891c,'extra':_0x37eb53});}});_0x4f7a2b['on'](_0xa282('0x18'),function(_0x19aef2){_0x3a51f8[_0xa282('0x8')](_0xa282('0x18'),new AGIError(_0xa282('0x19'),_0x19aef2[_0xa282('0x1a')]));});_0x4f7a2b['on'](_0xa282('0x1b'),function(){_0x3a51f8[_0xa282('0x8')](_0xa282('0x1b'),new AGIError(_0xa282('0x1c')));});_0x4f7a2b['on']('timeout',function(){_0x3a51f8[_0xa282('0x8')](_0xa282('0x1d'),new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x4f7a2b[_0xa282('0x1e')]();});_0x4f7a2b[_0xa282('0x1f')](_0x3344f0);this[_0xa282('0x20')]=function(_0x14fe4b,_0x1d63b5){var _0x14fe4b=_0x14fe4b||'',_0x1d63b5=typeof _0x1d63b5==_0xa282('0x11')?_0x1d63b5:new Function();_0xde1168={'tx':_0x14fe4b,'rx':'','cb':_0x1d63b5};_0x4f7a2b[_0xa282('0x21')](_0x14fe4b+'\x0a');},this[_0xa282('0x1b')]=function(){_0x4f7a2b[_0xa282('0x1e')]();};}util[_0xa282('0x22')](AGIChannel,EventEmitter);AGIChannel[_0xa282('0x23')][_0xa282('0x24')]=function(_0x5300fc){return this['command'][_0xa282('0x25')](this,_0x5300fc);};AGIChannel[_0xa282('0x23')][_0xa282('0x26')]=function(){return this[_0xa282('0x24')](_0xa282('0x27'));};AGIChannel[_0xa282('0x23')][_0xa282('0x28')]=function(_0x472e60,_0x5175e4,_0x298901){_0x472e60=_0x472e60===undefined?'beep':_0x472e60;_0x5175e4=_0x5175e4===undefined?'5':_0x5175e4;_0x298901=_0x298901===undefined?'1':_0x298901;return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x2a'),_0x472e60,_0x5175e4*0x3e8,_0x298901));};AGIChannel['prototype']['noop']=function(_0x5dfa4e){_0x5dfa4e=_0x5dfa4e||_0xa282('0x2b');return this['sendRequest'](util[_0xa282('0x29')](_0xa282('0x2c'),_0x5dfa4e));};AGIChannel['prototype'][_0xa282('0x2d')]=function(_0x3e266d,_0x3bc695){if(_[_0xa282('0x2e')](_0x3bc695)){return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x2f'),_0x3e266d,_0x3bc695['join'](',')));}return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x2f'),_0x3e266d,_0x3bc695));};AGIChannel[_0xa282('0x23')][_0xa282('0x30')]=function(_0x4f36d7){return this['sendRequest'](util['format']('SET\x20CONTEXT\x20%s',_0x4f36d7));};AGIChannel[_0xa282('0x23')][_0xa282('0x31')]=function(_0x5420bd){return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x32'),_0x5420bd));};AGIChannel[_0xa282('0x23')]['setPriority']=function(_0x119a33){return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x33'),_0x119a33));};AGIChannel['prototype'][_0xa282('0xc')]=function(){return this['sendRequest'](_0xa282('0x34'));};AGIChannel[_0xa282('0x23')][_0xa282('0x35')]=function(_0x2dbc37,_0x42b043){var _0x447962=_[_0xa282('0x36')](_0x42b043)||_[_0xa282('0x37')](_0x42b043)?_0x42b043[_0xa282('0x38')]():_0x42b043;return this[_0xa282('0x24')](util[_0xa282('0x29')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x2dbc37,_0x447962?_0x447962[_0xa282('0x38')]()[_0xa282('0x13')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xa282('0x23')][_0xa282('0x39')]=function(_0x156362,_0x4e916e){return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x3a'),_0x156362,_0x4e916e));};AGIChannel[_0xa282('0x23')][_0xa282('0x3b')]=function(_0x3900ea,_0x102564){return this[_0xa282('0x24')](util['format'](_0xa282('0x3c'),_0x3900ea,_0x102564));};AGIChannel[_0xa282('0x23')][_0xa282('0x3d')]=function(_0x2759d2,_0x5f3010){return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x3e'),_0x2759d2,_0x5f3010));};AGIChannel['prototype'][_0xa282('0x3f')]=function(_0x149566,_0x677cdf,_0x25983b){_0x677cdf=_0x677cdf||this['extension'];_0x25983b=_0x25983b||0x1;this['setContext'](_0x149566);this[_0xa282('0x31')](_0x677cdf);this['setPriority'](_0x25983b);return this[_0xa282('0x40')](util['format'](_0xa282('0x41'),_0x149566,_0x677cdf,_0x25983b));};AGIChannel[_0xa282('0x23')]['getVariable']=function(_0x1baa8a){return this[_0xa282('0x24')](util[_0xa282('0x29')](_0xa282('0x42'),_0x1baa8a));};AGIChannel[_0xa282('0x23')][_0xa282('0x43')]=function(_0x1c1d0a,_0x4162b5,_0x41aea5,_0x3d5210,_0x4cb7c9,_0x2cd354){_0x4162b5=_0x4162b5||_0xa282('0x44');_0x41aea5=_0x41aea5||'';_0x3d5210=_0x3d5210===undefined?-0x1:_0x3d5210==='-1'?-0x1:_0x3d5210*0x3e8;_0x4cb7c9=_0x4cb7c9===undefined?'':'s='+_0x4cb7c9;_0x2cd354=_0x2cd354?_0xa282('0x45'):'';return this['sendRequest'](util[_0xa282('0x29')](_0xa282('0x46'),_0x1c1d0a,_0x4162b5,_0x41aea5,_0x3d5210,_0x2cd354,_0x4cb7c9));};AGIChannel['prototype']['streamFile']=function(_0x5eff49,_0x51cb84){_0x51cb84=_0x51cb84||'';return this[_0xa282('0x24')](util[_0xa282('0x29')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x5eff49,_0x51cb84));};AGIChannel[_0xa282('0x23')][_0xa282('0x47')]=function(_0x515391){return this[_0xa282('0x2d')]('AGI',_0x515391);};AGIChannel[_0xa282('0x23')]['wait']=function(_0x2f8a7d){return this[_0xa282('0x2d')](_0xa282('0x48'),_0x2f8a7d);};AGIChannel[_0xa282('0x23')]['error']=function(_0x1cd136,_0xfa4c04){this[_0xa282('0x40')](util[_0xa282('0x29')](_0xa282('0x49'),_0x1cd136['id'],_0x1cd136[_0xa282('0x4a')],_0xfa4c04));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;