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 _0x20a2=['lodash','./reply','./error','setEncoding','utf8','setTimeout','emit','ready','line','toLowerCase','hangup','520-Invalid','search','function','substring','no\x20code','replace','result=','substr','indexOf','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write','inherits','prototype','sendRequest','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','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','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','extension','setExtension','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','agi','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util'];(function(_0x236c08,_0xa2ae1e){var _0x36c251=function(_0x6dfd81){while(--_0x6dfd81){_0x236c08['push'](_0x236c08['shift']());}};_0x36c251(++_0xa2ae1e);}(_0x20a2,0xf2));var _0x220a=function(_0x350aeb,_0x3d265a){_0x350aeb=_0x350aeb-0x0;var _0x3c5273=_0x20a2[_0x350aeb];return _0x3c5273;};'use strict';var util=require(_0x220a('0x0'));var _=require(_0x220a('0x1'));var EventEmitter=require('events')['EventEmitter'];var AGIReply=require(_0x220a('0x2'));var AGIError=require(_0x220a('0x3'));function AGIChannel(_0x2d5d6c){var _0x328d6d=this,_0x40766a=new AGIReply(),_0xe391a4=![],_0x4e339e={};EventEmitter['call'](_0x328d6d);_0x2d5d6c[_0x220a('0x4')](_0x220a('0x5'));_0x2d5d6c[_0x220a('0x6')](0x8*0x3c*0x3c*0x3e8);_0x40766a[_0x220a('0x4')](_0x220a('0x5'));_0x40766a['on']('headers',function(_0x2970ac){for(var _0x3e5e13 in _0x2970ac){_0x328d6d[_0x3e5e13]=_0x2970ac[_0x3e5e13];}_0x328d6d[_0x220a('0x7')](_0x220a('0x8'));});_0x40766a['on'](_0x220a('0x9'),function(_0x43ed6e){if(_0x43ed6e[_0x220a('0xa')]()==_0x220a('0xb')){_0x328d6d[_0x220a('0x7')](_0x220a('0xb'));return;}if(_0x43ed6e['substring'](0x0,0xb)==_0x220a('0xc')){_0xe391a4=!![];}if(_0xe391a4){_0x4e339e['rx']+=_0x43ed6e+'\x0a';if(_0x43ed6e[_0x220a('0xd')]('520\x20End\x20of\x20proper')!=-0x1){_0xe391a4=![];}}else{_0x4e339e['rx']=_0x43ed6e;}if(_0xe391a4){return;}if(typeof _0x4e339e['cb']==_0x220a('0xe')){var _0x502a87=_0x4e339e['rx'][_0x220a('0xf')](0x0,0x3),_0x21c426=null,_0x19158c=null;_0x502a87=parseInt(_0x502a87);if(isNaN(_0x502a87)){_0x4e339e['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x220a('0x10')});return;}if(_0x502a87!=0xc8){_0x4e339e['cb'](null,{'code':_0x502a87,'result':-0x1,'extra':'KO'});return;}_0x21c426=_0x4e339e['rx']['substring'](0x4)[_0x220a('0x11')](_0x220a('0x12'),'');if(_0x21c426['indexOf']('\x20')!=-0x1){_0x21c426=_0x21c426[_0x220a('0x13')](0x0,_0x21c426[_0x220a('0x14')]('\x20'));}if(_['startsWith'](_0x21c426,'-1')){_0x21c426=parseInt(_0x21c426);}_0x19158c=_0x4e339e['rx'][_0x220a('0x15')]('\x20');if(_0x19158c[_0x220a('0x16')]==0x3){_0x19158c=_0x19158c[0x2][_0x220a('0xf')](0x1,_0x19158c[0x2]['length']-0x1);}else if(_0x19158c[_0x220a('0x16')]>0x3){var _0x5498b1=/\((.+)\)/;var _0x18f5e0=_0x4e339e['rx'][_0x220a('0x17')](_0x5498b1);if(_0x18f5e0){_0x19158c=_0x18f5e0[0x1];}else{_0x19158c=null;}}else{_0x19158c=null;}_0x4e339e['cb'](null,{'code':_0x502a87,'result':_0x21c426,'extra':_0x19158c});}});_0x2d5d6c['on'](_0x220a('0x18'),function(_0xcea72b){_0x328d6d[_0x220a('0x7')](_0x220a('0x18'),new AGIError(_0x220a('0x19'),_0xcea72b[_0x220a('0x1a')]));});_0x2d5d6c['on']('close',function(){_0x328d6d[_0x220a('0x7')](_0x220a('0x1b'),new AGIError(_0x220a('0x1c')));});_0x2d5d6c['on'](_0x220a('0x1d'),function(){_0x328d6d[_0x220a('0x7')](_0x220a('0x1d'),new AGIError(_0x220a('0x1e')));_0x2d5d6c[_0x220a('0x1f')]();});_0x2d5d6c[_0x220a('0x20')](_0x40766a);this[_0x220a('0x21')]=function(_0x5be1fb,_0x5e6979){var _0x5be1fb=_0x5be1fb||'',_0x5e6979=typeof _0x5e6979==_0x220a('0xe')?_0x5e6979:new Function();_0x4e339e={'tx':_0x5be1fb,'rx':'','cb':_0x5e6979};_0x2d5d6c[_0x220a('0x22')](_0x5be1fb+'\x0a');},this[_0x220a('0x1b')]=function(){_0x2d5d6c[_0x220a('0x1f')]();};}util[_0x220a('0x23')](AGIChannel,EventEmitter);AGIChannel[_0x220a('0x24')][_0x220a('0x25')]=function(_0x4f2ca1){return this[_0x220a('0x21')]['sync'](this,_0x4f2ca1);};AGIChannel[_0x220a('0x24')]['answer']=function(){return this[_0x220a('0x25')](_0x220a('0x26'));};AGIChannel[_0x220a('0x24')][_0x220a('0x27')]=function(_0x4378b2,_0x3ca893,_0x5be801){_0x4378b2=_0x4378b2===undefined?_0x220a('0x28'):_0x4378b2;_0x3ca893=_0x3ca893===undefined?'5':_0x3ca893;_0x5be801=_0x5be801===undefined?'1':_0x5be801;return this['sendRequest'](util[_0x220a('0x29')](_0x220a('0x2a'),_0x4378b2,_0x3ca893*0x3e8,_0x5be801));};AGIChannel[_0x220a('0x24')][_0x220a('0x2b')]=function(_0xc0225b){_0xc0225b=_0xc0225b||_0x220a('0x2c');return this[_0x220a('0x25')](util[_0x220a('0x29')](_0x220a('0x2d'),_0xc0225b));};AGIChannel[_0x220a('0x24')][_0x220a('0x2e')]=function(_0x573b2a,_0x324415){if(_[_0x220a('0x2f')](_0x324415)){return this[_0x220a('0x25')](util[_0x220a('0x29')](_0x220a('0x30'),_0x573b2a,_0x324415[_0x220a('0x31')](',')));}return this[_0x220a('0x25')](util[_0x220a('0x29')]('EXEC\x20%s\x20%s',_0x573b2a,_0x324415));};AGIChannel[_0x220a('0x24')][_0x220a('0x32')]=function(_0x4fb37e){return this[_0x220a('0x25')](util[_0x220a('0x29')](_0x220a('0x33'),_0x4fb37e));};AGIChannel['prototype']['setExtension']=function(_0x2f7826){return this[_0x220a('0x25')](util[_0x220a('0x29')](_0x220a('0x34'),_0x2f7826));};AGIChannel[_0x220a('0x24')][_0x220a('0x35')]=function(_0x14ee00){return this[_0x220a('0x25')](util['format'](_0x220a('0x36'),_0x14ee00));};AGIChannel['prototype'][_0x220a('0xb')]=function(){return this[_0x220a('0x25')](_0x220a('0x37'));};AGIChannel[_0x220a('0x24')][_0x220a('0x38')]=function(_0x48cda,_0x1c32dc){var _0x451972=_[_0x220a('0x39')](_0x1c32dc)||_[_0x220a('0x3a')](_0x1c32dc)?_0x1c32dc[_0x220a('0x3b')]():_0x1c32dc;return this[_0x220a('0x25')](util[_0x220a('0x29')](_0x220a('0x3c'),_0x48cda,_0x451972?_0x451972['toString']()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x220a('0x24')][_0x220a('0x3d')]=function(_0x502b49,_0x3f27b2){return this[_0x220a('0x25')](util[_0x220a('0x29')](_0x220a('0x3e'),_0x502b49,_0x3f27b2));};AGIChannel[_0x220a('0x24')][_0x220a('0x3f')]=function(_0x1efec4,_0x3028a1){return this['sendRequest'](util['format'](_0x220a('0x40'),_0x1efec4,_0x3028a1));};AGIChannel[_0x220a('0x24')][_0x220a('0x41')]=function(_0x423ae7,_0x1d1fdd){return this[_0x220a('0x25')](util['format'](_0x220a('0x42'),_0x423ae7,_0x1d1fdd));};AGIChannel[_0x220a('0x24')]['continueAt']=function(_0x6da1dc,_0x2f2d39,_0x331efa){_0x2f2d39=_0x2f2d39||this[_0x220a('0x43')];_0x331efa=_0x331efa||0x1;this[_0x220a('0x32')](_0x6da1dc);this[_0x220a('0x44')](_0x2f2d39);this[_0x220a('0x35')](_0x331efa);return this[_0x220a('0x2b')](util[_0x220a('0x29')]('GOTO\x20%s\x20%s\x20%s',_0x6da1dc,_0x2f2d39,_0x331efa));};AGIChannel['prototype'][_0x220a('0x45')]=function(_0x5e7f71){return this['sendRequest'](util[_0x220a('0x29')](_0x220a('0x46'),_0x5e7f71));};AGIChannel[_0x220a('0x24')][_0x220a('0x47')]=function(_0x3421a5,_0x4d6122,_0x122316,_0x1f53c6,_0x419b0b,_0x17162d){_0x4d6122=_0x4d6122||_0x220a('0x48');_0x122316=_0x122316||'';_0x1f53c6=_0x1f53c6===undefined?-0x1:_0x1f53c6==='-1'?-0x1:_0x1f53c6*0x3e8;_0x419b0b=_0x419b0b===undefined?'':'s='+_0x419b0b;_0x17162d=_0x17162d?'BEEP':'';return this[_0x220a('0x25')](util['format'](_0x220a('0x49'),_0x3421a5,_0x4d6122,_0x122316,_0x1f53c6,_0x17162d,_0x419b0b));};AGIChannel['prototype'][_0x220a('0x4a')]=function(_0x4515ae,_0x26c29b){_0x26c29b=_0x26c29b||'';return this[_0x220a('0x25')](util['format']('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x4515ae,_0x26c29b));};AGIChannel[_0x220a('0x24')][_0x220a('0x4b')]=function(_0x468594){return this[_0x220a('0x2e')]('AGI',_0x468594);};AGIChannel[_0x220a('0x24')][_0x220a('0x4c')]=function(_0x34281b){return this[_0x220a('0x2e')](_0x220a('0x4d'),_0x34281b);};AGIChannel['prototype']['error']=function(_0x5de2b6,_0x481fed){this[_0x220a('0x2b')](util[_0x220a('0x29')](_0x220a('0x4e'),_0x5de2b6['id'],_0x5de2b6[_0x220a('0x4f')],_0x481fed));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x220a('0x50')]=AGIChannel;