Built motion from commit a61a4a20.|2.5.46
[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 _0xcdd2=['destroy','function','write','prototype','sendRequest','command','sync','answer','ANSWER','getData','beep','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','format','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','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','continueAt','extension','setPriority','GOTO\x20%s\x20%s\x20%s','getVariable','recordFile','BEEP','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','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','./error','call','utf8','setTimeout','setEncoding','emit','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','no\x20code','replace','result=','indexOf','startsWith','length','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT'];(function(_0x4de976,_0x5c081c){var _0x27beb1=function(_0x3bcab0){while(--_0x3bcab0){_0x4de976['push'](_0x4de976['shift']());}};_0x27beb1(++_0x5c081c);}(_0xcdd2,0x83));var _0x2cdd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcdd2[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x2cdd('0x0'));var _=require(_0x2cdd('0x1'));var EventEmitter=require(_0x2cdd('0x2'))[_0x2cdd('0x3')];var AGIReply=require('./reply');var AGIError=require(_0x2cdd('0x4'));function AGIChannel(_0x35f3ce){var _0xf0d3dc=this,_0x2b63a4=new AGIReply(),_0x5d1626=![],_0x42dbf8={};EventEmitter[_0x2cdd('0x5')](_0xf0d3dc);_0x35f3ce['setEncoding'](_0x2cdd('0x6'));_0x35f3ce[_0x2cdd('0x7')](0x8*0x3c*0x3c*0x3e8);_0x2b63a4[_0x2cdd('0x8')](_0x2cdd('0x6'));_0x2b63a4['on']('headers',function(_0x569943){for(var _0x54f580 in _0x569943){_0xf0d3dc[_0x54f580]=_0x569943[_0x54f580];}_0xf0d3dc[_0x2cdd('0x9')]('ready');});_0x2b63a4['on'](_0x2cdd('0xa'),function(_0x3e3cf0){if(_0x3e3cf0[_0x2cdd('0xb')]()==_0x2cdd('0xc')){_0xf0d3dc[_0x2cdd('0x9')](_0x2cdd('0xc'));return;}if(_0x3e3cf0[_0x2cdd('0xd')](0x0,0xb)==_0x2cdd('0xe')){_0x5d1626=!![];}if(_0x5d1626){_0x42dbf8['rx']+=_0x3e3cf0+'\x0a';if(_0x3e3cf0[_0x2cdd('0xf')](_0x2cdd('0x10'))!=-0x1){_0x5d1626=![];}}else{_0x42dbf8['rx']=_0x3e3cf0;}if(_0x5d1626){return;}if(typeof _0x42dbf8['cb']=='function'){var _0x53ea0b=_0x42dbf8['rx']['substring'](0x0,0x3),_0xfddd1e=null,_0x11b209=null;_0x53ea0b=parseInt(_0x53ea0b);if(isNaN(_0x53ea0b)){_0x42dbf8['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x2cdd('0x11')});return;}if(_0x53ea0b!=0xc8){_0x42dbf8['cb'](null,{'code':_0x53ea0b,'result':-0x1,'extra':'KO'});return;}_0xfddd1e=_0x42dbf8['rx'][_0x2cdd('0xd')](0x4)[_0x2cdd('0x12')](_0x2cdd('0x13'),'');if(_0xfddd1e[_0x2cdd('0x14')]('\x20')!=-0x1){_0xfddd1e=_0xfddd1e['substr'](0x0,_0xfddd1e[_0x2cdd('0x14')]('\x20'));}if(_[_0x2cdd('0x15')](_0xfddd1e,'-1')){_0xfddd1e=parseInt(_0xfddd1e);}_0x11b209=_0x42dbf8['rx']['split']('\x20');if(_0x11b209[_0x2cdd('0x16')]==0x3){_0x11b209=_0x11b209[0x2][_0x2cdd('0xd')](0x1,_0x11b209[0x2][_0x2cdd('0x16')]-0x1);}else if(_0x11b209[_0x2cdd('0x16')]>0x3){var _0x3af7c8=/\((.+)\)/;var _0x2587fb=_0x42dbf8['rx']['match'](_0x3af7c8);if(_0x2587fb){_0x11b209=_0x2587fb[0x1];}else{_0x11b209=null;}}else{_0x11b209=null;}_0x42dbf8['cb'](null,{'code':_0x53ea0b,'result':_0xfddd1e,'extra':_0x11b209});}});_0x35f3ce['on'](_0x2cdd('0x17'),function(_0x9491c8){_0xf0d3dc[_0x2cdd('0x9')](_0x2cdd('0x17'),new AGIError('E_AGI_SOCKET_ERROR',_0x9491c8[_0x2cdd('0x18')]));});_0x35f3ce['on'](_0x2cdd('0x19'),function(){_0xf0d3dc[_0x2cdd('0x9')](_0x2cdd('0x19'),new AGIError(_0x2cdd('0x1a')));});_0x35f3ce['on'](_0x2cdd('0x1b'),function(){_0xf0d3dc[_0x2cdd('0x9')](_0x2cdd('0x1b'),new AGIError(_0x2cdd('0x1c')));_0x35f3ce[_0x2cdd('0x1d')]();});_0x35f3ce['pipe'](_0x2b63a4);this['command']=function(_0x206942,_0x5e874e){var _0x206942=_0x206942||'',_0x5e874e=typeof _0x5e874e==_0x2cdd('0x1e')?_0x5e874e:new Function();_0x42dbf8={'tx':_0x206942,'rx':'','cb':_0x5e874e};_0x35f3ce[_0x2cdd('0x1f')](_0x206942+'\x0a');},this[_0x2cdd('0x19')]=function(){_0x35f3ce['destroy']();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x21')]=function(_0x340a47){return this[_0x2cdd('0x22')][_0x2cdd('0x23')](this,_0x340a47);};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x24')]=function(){return this['sendRequest'](_0x2cdd('0x25'));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x26')]=function(_0x5a8eff,_0x4cbc21,_0x5ef69f){_0x5a8eff=_0x5a8eff===undefined?_0x2cdd('0x27'):_0x5a8eff;_0x4cbc21=_0x4cbc21===undefined?'5':_0x4cbc21;_0x5ef69f=_0x5ef69f===undefined?'1':_0x5ef69f;return this[_0x2cdd('0x21')](util['format'](_0x2cdd('0x28'),_0x5a8eff,_0x4cbc21*0x3e8,_0x5ef69f));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x29')]=function(_0x1fd007){_0x1fd007=_0x1fd007||_0x2cdd('0x2a');return this[_0x2cdd('0x21')](util['format'](_0x2cdd('0x2b'),_0x1fd007));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x2c')]=function(_0x43fbc3,_0x4d6929){if(_[_0x2cdd('0x2d')](_0x4d6929)){return this[_0x2cdd('0x21')](util['format'](_0x2cdd('0x2e'),_0x43fbc3,_0x4d6929[_0x2cdd('0x2f')](',')));}return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x2e'),_0x43fbc3,_0x4d6929));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x31')]=function(_0x1a7552){return this[_0x2cdd('0x21')](util['format'](_0x2cdd('0x32'),_0x1a7552));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x33')]=function(_0x5a0fb4){return this['sendRequest'](util['format'](_0x2cdd('0x34'),_0x5a0fb4));};AGIChannel[_0x2cdd('0x20')]['setPriority']=function(_0x6c7f28){return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x35'),_0x6c7f28));};AGIChannel[_0x2cdd('0x20')]['hangup']=function(){return this['sendRequest'](_0x2cdd('0x36'));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x37')]=function(_0x1b4bd7,_0x41156e){var _0x49a484=_[_0x2cdd('0x38')](_0x41156e)||_[_0x2cdd('0x39')](_0x41156e)?_0x41156e[_0x2cdd('0x3a')]():_0x41156e;return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x3b'),_0x1b4bd7,_0x49a484?_0x49a484[_0x2cdd('0x3a')]()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x3c')]=function(_0x2f8e8c,_0x42cbd7){return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x3d'),_0x2f8e8c,_0x42cbd7));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x3e')]=function(_0x49b727,_0x4bf498){return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x3f'),_0x49b727,_0x4bf498));};AGIChannel['prototype'][_0x2cdd('0x40')]=function(_0x59e7d8,_0x573bd4){return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x41'),_0x59e7d8,_0x573bd4));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x42')]=function(_0x2414bd,_0x4388d7,_0x3778d9){_0x4388d7=_0x4388d7||this[_0x2cdd('0x43')];_0x3778d9=_0x3778d9||0x1;this['setContext'](_0x2414bd);this[_0x2cdd('0x33')](_0x4388d7);this[_0x2cdd('0x44')](_0x3778d9);return this[_0x2cdd('0x29')](util['format'](_0x2cdd('0x45'),_0x2414bd,_0x4388d7,_0x3778d9));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x46')]=function(_0x2b3932){return this[_0x2cdd('0x21')](util['format']('GET\x20VARIABLE\x20\x22%s\x22',_0x2b3932));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x47')]=function(_0x945df1,_0x5d9369,_0x51c6c6,_0x4162ba,_0x477482,_0x5258fc){_0x5d9369=_0x5d9369||'wav';_0x51c6c6=_0x51c6c6||'';_0x4162ba=_0x4162ba===undefined?-0x1:_0x4162ba==='-1'?-0x1:_0x4162ba*0x3e8;_0x477482=_0x477482===undefined?'':'s='+_0x477482;_0x5258fc=_0x5258fc?_0x2cdd('0x48'):'';return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x49'),_0x945df1,_0x5d9369,_0x51c6c6,_0x4162ba,_0x5258fc,_0x477482));};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x4a')]=function(_0x4427f3,_0x3ac603){_0x3ac603=_0x3ac603||'';return this[_0x2cdd('0x21')](util[_0x2cdd('0x30')](_0x2cdd('0x4b'),_0x4427f3,_0x3ac603));};AGIChannel['prototype'][_0x2cdd('0x4c')]=function(_0x1f9fb3){return this[_0x2cdd('0x2c')]('AGI',_0x1f9fb3);};AGIChannel[_0x2cdd('0x20')]['wait']=function(_0x5acb44){return this[_0x2cdd('0x2c')]('WAIT',_0x5acb44);};AGIChannel[_0x2cdd('0x20')][_0x2cdd('0x17')]=function(_0x14566e,_0x4c55f5){this[_0x2cdd('0x29')](util[_0x2cdd('0x30')](_0x2cdd('0x4d'),_0x14566e['id'],_0x14566e[_0x2cdd('0x4e')],_0x4c55f5));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x2cdd('0x4f')]=AGIChannel;