Built motion from commit 00bf23f6.|2.6.16
[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 _0xeefe=['call','setEncoding','setTimeout','utf8','headers','emit','ready','line','hangup','substring','520-Invalid','520\x20End\x20of\x20proper','function','result=','indexOf','substr','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write','inherits','prototype','sendRequest','sync','answer','ANSWER','getData','beep','noop','NO\x20MESSAGE','format','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','isBoolean','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','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','GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','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','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','events','./reply','./error'];(function(_0xc8f61e,_0x220e98){var _0x519790=function(_0x55c6ca){while(--_0x55c6ca){_0xc8f61e['push'](_0xc8f61e['shift']());}};_0x519790(++_0x220e98);}(_0xeefe,0xf2));var _0xeeef=function(_0x3b88b8,_0x32be3c){_0x3b88b8=_0x3b88b8-0x0;var _0x299be1=_0xeefe[_0x3b88b8];return _0x299be1;};'use strict';var util=require(_0xeeef('0x0'));var _=require('lodash');var EventEmitter=require(_0xeeef('0x1'))['EventEmitter'];var AGIReply=require(_0xeeef('0x2'));var AGIError=require(_0xeeef('0x3'));function AGIChannel(_0x546218){var _0x20bd76=this,_0x58512c=new AGIReply(),_0xf7b46c=![],_0x1d5b38={};EventEmitter[_0xeeef('0x4')](_0x20bd76);_0x546218[_0xeeef('0x5')]('utf8');_0x546218[_0xeeef('0x6')](0x8*0x3c*0x3c*0x3e8);_0x58512c[_0xeeef('0x5')](_0xeeef('0x7'));_0x58512c['on'](_0xeeef('0x8'),function(_0x214f24){for(var _0x1b2759 in _0x214f24){_0x20bd76[_0x1b2759]=_0x214f24[_0x1b2759];}_0x20bd76[_0xeeef('0x9')](_0xeeef('0xa'));});_0x58512c['on'](_0xeeef('0xb'),function(_0x3a7729){if(_0x3a7729['toLowerCase']()==_0xeeef('0xc')){_0x20bd76[_0xeeef('0x9')](_0xeeef('0xc'));return;}if(_0x3a7729[_0xeeef('0xd')](0x0,0xb)==_0xeeef('0xe')){_0xf7b46c=!![];}if(_0xf7b46c){_0x1d5b38['rx']+=_0x3a7729+'\x0a';if(_0x3a7729['search'](_0xeeef('0xf'))!=-0x1){_0xf7b46c=![];}}else{_0x1d5b38['rx']=_0x3a7729;}if(_0xf7b46c){return;}if(typeof _0x1d5b38['cb']==_0xeeef('0x10')){var _0x11cfe4=_0x1d5b38['rx']['substring'](0x0,0x3),_0x342c49=null,_0x29352a=null;_0x11cfe4=parseInt(_0x11cfe4);if(isNaN(_0x11cfe4)){_0x1d5b38['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x11cfe4!=0xc8){_0x1d5b38['cb'](null,{'code':_0x11cfe4,'result':-0x1,'extra':'KO'});return;}_0x342c49=_0x1d5b38['rx'][_0xeeef('0xd')](0x4)['replace'](_0xeeef('0x11'),'');if(_0x342c49[_0xeeef('0x12')]('\x20')!=-0x1){_0x342c49=_0x342c49[_0xeeef('0x13')](0x0,_0x342c49[_0xeeef('0x12')]('\x20'));}if(_[_0xeeef('0x14')](_0x342c49,'-1')){_0x342c49=parseInt(_0x342c49);}_0x29352a=_0x1d5b38['rx'][_0xeeef('0x15')]('\x20');if(_0x29352a[_0xeeef('0x16')]==0x3){_0x29352a=_0x29352a[0x2][_0xeeef('0xd')](0x1,_0x29352a[0x2][_0xeeef('0x16')]-0x1);}else if(_0x29352a[_0xeeef('0x16')]>0x3){var _0xafdb76=/\((.+)\)/;var _0x4657f9=_0x1d5b38['rx'][_0xeeef('0x17')](_0xafdb76);if(_0x4657f9){_0x29352a=_0x4657f9[0x1];}else{_0x29352a=null;}}else{_0x29352a=null;}_0x1d5b38['cb'](null,{'code':_0x11cfe4,'result':_0x342c49,'extra':_0x29352a});}});_0x546218['on'](_0xeeef('0x18'),function(_0x42b775){_0x20bd76[_0xeeef('0x9')](_0xeeef('0x18'),new AGIError(_0xeeef('0x19'),_0x42b775[_0xeeef('0x1a')]));});_0x546218['on'](_0xeeef('0x1b'),function(){_0x20bd76[_0xeeef('0x9')](_0xeeef('0x1b'),new AGIError(_0xeeef('0x1c')));});_0x546218['on']('timeout',function(){_0x20bd76['emit']('timeout',new AGIError(_0xeeef('0x1d')));_0x546218[_0xeeef('0x1e')]();});_0x546218[_0xeeef('0x1f')](_0x58512c);this[_0xeeef('0x20')]=function(_0x60b53b,_0x32788e){var _0x60b53b=_0x60b53b||'',_0x32788e=typeof _0x32788e==_0xeeef('0x10')?_0x32788e:new Function();_0x1d5b38={'tx':_0x60b53b,'rx':'','cb':_0x32788e};_0x546218[_0xeeef('0x21')](_0x60b53b+'\x0a');},this[_0xeeef('0x1b')]=function(){_0x546218['destroy']();};}util[_0xeeef('0x22')](AGIChannel,EventEmitter);AGIChannel[_0xeeef('0x23')][_0xeeef('0x24')]=function(_0x220718){return this['command'][_0xeeef('0x25')](this,_0x220718);};AGIChannel['prototype'][_0xeeef('0x26')]=function(){return this[_0xeeef('0x24')](_0xeeef('0x27'));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x28')]=function(_0x44c891,_0x498993,_0x9debdc){_0x44c891=_0x44c891===undefined?_0xeeef('0x29'):_0x44c891;_0x498993=_0x498993===undefined?'5':_0x498993;_0x9debdc=_0x9debdc===undefined?'1':_0x9debdc;return this[_0xeeef('0x24')](util['format']('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0x44c891,_0x498993*0x3e8,_0x9debdc));};AGIChannel['prototype'][_0xeeef('0x2a')]=function(_0x287af7){_0x287af7=_0x287af7||_0xeeef('0x2b');return this['sendRequest'](util[_0xeeef('0x2c')](_0xeeef('0x2d'),_0x287af7));};AGIChannel['prototype'][_0xeeef('0x2e')]=function(_0x1d96c2,_0x2bc95f){if(_[_0xeeef('0x2f')](_0x2bc95f)){return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x30'),_0x1d96c2,_0x2bc95f[_0xeeef('0x31')](',')));}return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x30'),_0x1d96c2,_0x2bc95f));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x32')]=function(_0x296e67){return this[_0xeeef('0x24')](util['format']('SET\x20CONTEXT\x20%s',_0x296e67));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x33')]=function(_0x48ecf8){return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x34'),_0x48ecf8));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x35')]=function(_0x4ffac7){return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x36'),_0x4ffac7));};AGIChannel[_0xeeef('0x23')][_0xeeef('0xc')]=function(){return this[_0xeeef('0x24')](_0xeeef('0x37'));};AGIChannel[_0xeeef('0x23')]['setVariable']=function(_0xb1ca99,_0x16b6bc){var _0x2ca6cd=_[_0xeeef('0x38')](_0x16b6bc)||_['isNumber'](_0x16b6bc)?_0x16b6bc[_0xeeef('0x39')]():_0x16b6bc;return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x3a'),_0xb1ca99,_0x2ca6cd?_0x2ca6cd[_0xeeef('0x39')]()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0xeeef('0x3b')]=function(_0x15681e,_0x4897b9){return this['sendRequest'](util['format'](_0xeeef('0x3c'),_0x15681e,_0x4897b9));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x3d')]=function(_0x10736b,_0x1e374f){return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x3e'),_0x10736b,_0x1e374f));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x3f')]=function(_0x50a34b,_0x8ab526){return this['sendRequest'](util['format'](_0xeeef('0x40'),_0x50a34b,_0x8ab526));};AGIChannel['prototype'][_0xeeef('0x41')]=function(_0x52cfc8,_0x4a0f19,_0x5977b3){_0x4a0f19=_0x4a0f19||this[_0xeeef('0x42')];_0x5977b3=_0x5977b3||0x1;this[_0xeeef('0x32')](_0x52cfc8);this[_0xeeef('0x33')](_0x4a0f19);this[_0xeeef('0x35')](_0x5977b3);return this[_0xeeef('0x2a')](util[_0xeeef('0x2c')](_0xeeef('0x43'),_0x52cfc8,_0x4a0f19,_0x5977b3));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x44')]=function(_0x52d5f5){return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x45'),_0x52d5f5));};AGIChannel['prototype'][_0xeeef('0x46')]=function(_0x482184,_0x125361,_0x5346ce,_0x160446,_0x368dbd,_0x283c3c){_0x125361=_0x125361||_0xeeef('0x47');_0x5346ce=_0x5346ce||'';_0x160446=_0x160446===undefined?-0x1:_0x160446==='-1'?-0x1:_0x160446*0x3e8;_0x368dbd=_0x368dbd===undefined?'':'s='+_0x368dbd;_0x283c3c=_0x283c3c?'BEEP':'';return this[_0xeeef('0x24')](util[_0xeeef('0x2c')](_0xeeef('0x48'),_0x482184,_0x125361,_0x5346ce,_0x160446,_0x283c3c,_0x368dbd));};AGIChannel['prototype'][_0xeeef('0x49')]=function(_0x2dfff9,_0x47b900){_0x47b900=_0x47b900||'';return this['sendRequest'](util['format'](_0xeeef('0x4a'),_0x2dfff9,_0x47b900));};AGIChannel[_0xeeef('0x23')][_0xeeef('0x4b')]=function(_0x59f3f9){return this[_0xeeef('0x2e')](_0xeeef('0x4c'),_0x59f3f9);};AGIChannel['prototype'][_0xeeef('0x4d')]=function(_0x5cb234){return this[_0xeeef('0x2e')](_0xeeef('0x4e'),_0x5cb234);};AGIChannel['prototype'][_0xeeef('0x18')]=function(_0x48b05d,_0x4241c8){this[_0xeeef('0x2a')](util['format'](_0xeeef('0x4f'),_0x48b05d['id'],_0x48b05d[_0xeeef('0x50')],_0x4241c8));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xeeef('0x51')]=AGIChannel;