Built motion from commit 87cd5f02.|2.5.48
[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 _0xb432=['emit','line','hangup','substring','520-Invalid','search','result=','substr','indexOf','startsWith','split','length','match','error','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','function','write','inherits','prototype','sendRequest','sync','answer','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','exec','isArray','EXEC\x20%s\x20%s','join','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','HANGUP','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','setContext','GOTO\x20%s\x20%s\x20%s','getVariable','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','AGI','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','setTimeout','utf8','headers'];(function(_0x1fdb40,_0x51351c){var _0x281f93=function(_0x35eebe){while(--_0x35eebe){_0x1fdb40['push'](_0x1fdb40['shift']());}};_0x281f93(++_0x51351c);}(_0xb432,0x180));var _0x2b43=function(_0x246dc6,_0x25b03f){_0x246dc6=_0x246dc6-0x0;var _0x231df4=_0xb432[_0x246dc6];return _0x231df4;};'use strict';var util=require(_0x2b43('0x0'));var _=require(_0x2b43('0x1'));var EventEmitter=require(_0x2b43('0x2'))[_0x2b43('0x3')];var AGIReply=require(_0x2b43('0x4'));var AGIError=require(_0x2b43('0x5'));function AGIChannel(_0x2fe37a){var _0x41ce5c=this,_0x28373d=new AGIReply(),_0x5236e4=![],_0x741a0c={};EventEmitter[_0x2b43('0x6')](_0x41ce5c);_0x2fe37a[_0x2b43('0x7')]('utf8');_0x2fe37a[_0x2b43('0x8')](0x8*0x3c*0x3c*0x3e8);_0x28373d['setEncoding'](_0x2b43('0x9'));_0x28373d['on'](_0x2b43('0xa'),function(_0x569c4a){for(var _0xc30d30 in _0x569c4a){_0x41ce5c[_0xc30d30]=_0x569c4a[_0xc30d30];}_0x41ce5c[_0x2b43('0xb')]('ready');});_0x28373d['on'](_0x2b43('0xc'),function(_0x149d40){if(_0x149d40['toLowerCase']()=='hangup'){_0x41ce5c['emit'](_0x2b43('0xd'));return;}if(_0x149d40[_0x2b43('0xe')](0x0,0xb)==_0x2b43('0xf')){_0x5236e4=!![];}if(_0x5236e4){_0x741a0c['rx']+=_0x149d40+'\x0a';if(_0x149d40[_0x2b43('0x10')]('520\x20End\x20of\x20proper')!=-0x1){_0x5236e4=![];}}else{_0x741a0c['rx']=_0x149d40;}if(_0x5236e4){return;}if(typeof _0x741a0c['cb']=='function'){var _0x23bc70=_0x741a0c['rx']['substring'](0x0,0x3),_0x3760b0=null,_0x3ab934=null;_0x23bc70=parseInt(_0x23bc70);if(isNaN(_0x23bc70)){_0x741a0c['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x23bc70!=0xc8){_0x741a0c['cb'](null,{'code':_0x23bc70,'result':-0x1,'extra':'KO'});return;}_0x3760b0=_0x741a0c['rx']['substring'](0x4)['replace'](_0x2b43('0x11'),'');if(_0x3760b0['indexOf']('\x20')!=-0x1){_0x3760b0=_0x3760b0[_0x2b43('0x12')](0x0,_0x3760b0[_0x2b43('0x13')]('\x20'));}if(_[_0x2b43('0x14')](_0x3760b0,'-1')){_0x3760b0=parseInt(_0x3760b0);}_0x3ab934=_0x741a0c['rx'][_0x2b43('0x15')]('\x20');if(_0x3ab934[_0x2b43('0x16')]==0x3){_0x3ab934=_0x3ab934[0x2]['substring'](0x1,_0x3ab934[0x2][_0x2b43('0x16')]-0x1);}else if(_0x3ab934['length']>0x3){var _0x2b6e5d=/\((.+)\)/;var _0x30398d=_0x741a0c['rx'][_0x2b43('0x17')](_0x2b6e5d);if(_0x30398d){_0x3ab934=_0x30398d[0x1];}else{_0x3ab934=null;}}else{_0x3ab934=null;}_0x741a0c['cb'](null,{'code':_0x23bc70,'result':_0x3760b0,'extra':_0x3ab934});}});_0x2fe37a['on'](_0x2b43('0x18'),function(_0x1f8157){_0x41ce5c[_0x2b43('0xb')](_0x2b43('0x18'),new AGIError('E_AGI_SOCKET_ERROR',_0x1f8157['code']));});_0x2fe37a['on'](_0x2b43('0x19'),function(){_0x41ce5c['emit'](_0x2b43('0x19'),new AGIError(_0x2b43('0x1a')));});_0x2fe37a['on'](_0x2b43('0x1b'),function(){_0x41ce5c[_0x2b43('0xb')](_0x2b43('0x1b'),new AGIError(_0x2b43('0x1c')));_0x2fe37a[_0x2b43('0x1d')]();});_0x2fe37a[_0x2b43('0x1e')](_0x28373d);this[_0x2b43('0x1f')]=function(_0x268c9d,_0x1321cb){var _0x268c9d=_0x268c9d||'',_0x1321cb=typeof _0x1321cb==_0x2b43('0x20')?_0x1321cb:new Function();_0x741a0c={'tx':_0x268c9d,'rx':'','cb':_0x1321cb};_0x2fe37a[_0x2b43('0x21')](_0x268c9d+'\x0a');},this['close']=function(){_0x2fe37a[_0x2b43('0x1d')]();};}util[_0x2b43('0x22')](AGIChannel,EventEmitter);AGIChannel[_0x2b43('0x23')][_0x2b43('0x24')]=function(_0xe0647b){return this[_0x2b43('0x1f')][_0x2b43('0x25')](this,_0xe0647b);};AGIChannel['prototype'][_0x2b43('0x26')]=function(){return this[_0x2b43('0x24')]('ANSWER');};AGIChannel['prototype'][_0x2b43('0x27')]=function(_0x327115,_0x3613e5,_0x569812){_0x327115=_0x327115===undefined?_0x2b43('0x28'):_0x327115;_0x3613e5=_0x3613e5===undefined?'5':_0x3613e5;_0x569812=_0x569812===undefined?'1':_0x569812;return this['sendRequest'](util[_0x2b43('0x29')](_0x2b43('0x2a'),_0x327115,_0x3613e5*0x3e8,_0x569812));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x2b')]=function(_0x58dcce){_0x58dcce=_0x58dcce||_0x2b43('0x2c');return this[_0x2b43('0x24')](util[_0x2b43('0x29')]('VERBOSE\x20\x22%s\x22',_0x58dcce));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x2d')]=function(_0x2db3a2,_0xec2a58){if(_[_0x2b43('0x2e')](_0xec2a58)){return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x2f'),_0x2db3a2,_0xec2a58[_0x2b43('0x30')](',')));}return this['sendRequest'](util[_0x2b43('0x29')](_0x2b43('0x2f'),_0x2db3a2,_0xec2a58));};AGIChannel['prototype']['setContext']=function(_0x3e0981){return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x31'),_0x3e0981));};AGIChannel['prototype'][_0x2b43('0x32')]=function(_0x25f503){return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x33'),_0x25f503));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x34')]=function(_0x1789df){return this[_0x2b43('0x24')](util[_0x2b43('0x29')]('SET\x20PRIORITY\x20%s',_0x1789df));};AGIChannel[_0x2b43('0x23')][_0x2b43('0xd')]=function(){return this['sendRequest'](_0x2b43('0x35'));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x36')]=function(_0x281483,_0x3df575){var _0x57c309=_[_0x2b43('0x37')](_0x3df575)||_[_0x2b43('0x38')](_0x3df575)?_0x3df575[_0x2b43('0x39')]():_0x3df575;return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x3a'),_0x281483,_0x57c309?_0x57c309[_0x2b43('0x39')]()[_0x2b43('0x3b')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x3c')]=function(_0x5484bb,_0x1f430b){return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x3d'),_0x5484bb,_0x1f430b));};AGIChannel['prototype']['sayDigits']=function(_0x162bf5,_0x94ae9d){return this['sendRequest'](util[_0x2b43('0x29')]('SAY\x20DIGITS\x20%s\x20%s',_0x162bf5,_0x94ae9d));};AGIChannel['prototype'][_0x2b43('0x3e')]=function(_0xa92bdd,_0x1c015e){return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x3f'),_0xa92bdd,_0x1c015e));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x40')]=function(_0x1556c9,_0x14eae6,_0x1794e0){_0x14eae6=_0x14eae6||this['extension'];_0x1794e0=_0x1794e0||0x1;this[_0x2b43('0x41')](_0x1556c9);this[_0x2b43('0x32')](_0x14eae6);this[_0x2b43('0x34')](_0x1794e0);return this[_0x2b43('0x2b')](util['format'](_0x2b43('0x42'),_0x1556c9,_0x14eae6,_0x1794e0));};AGIChannel['prototype'][_0x2b43('0x43')]=function(_0x1ff072){return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x44'),_0x1ff072));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x45')]=function(_0x307101,_0x1dcc2d,_0x4cea7a,_0x2d2577,_0x3a1851,_0x5d59cb){_0x1dcc2d=_0x1dcc2d||_0x2b43('0x46');_0x4cea7a=_0x4cea7a||'';_0x2d2577=_0x2d2577===undefined?-0x1:_0x2d2577==='-1'?-0x1:_0x2d2577*0x3e8;_0x3a1851=_0x3a1851===undefined?'':'s='+_0x3a1851;_0x5d59cb=_0x5d59cb?_0x2b43('0x47'):'';return this[_0x2b43('0x24')](util[_0x2b43('0x29')](_0x2b43('0x48'),_0x307101,_0x1dcc2d,_0x4cea7a,_0x2d2577,_0x5d59cb,_0x3a1851));};AGIChannel['prototype']['streamFile']=function(_0x57400c,_0x56e792){_0x56e792=_0x56e792||'';return this['sendRequest'](util[_0x2b43('0x29')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x57400c,_0x56e792));};AGIChannel[_0x2b43('0x23')][_0x2b43('0x49')]=function(_0x45c8c3){return this[_0x2b43('0x2d')](_0x2b43('0x4a'),_0x45c8c3);};AGIChannel['prototype']['wait']=function(_0x118605){return this[_0x2b43('0x2d')](_0x2b43('0x4b'),_0x118605);};AGIChannel[_0x2b43('0x23')][_0x2b43('0x18')]=function(_0x3de85a,_0xe274a1){this['noop'](util[_0x2b43('0x29')](_0x2b43('0x4c'),_0x3de85a['id'],_0x3de85a[_0x2b43('0x4d')],_0xe274a1));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x2b43('0x4e')]=AGIChannel;