Built motion from commit 9d0783e6.|2.6.13
[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 _0x3408=['indexOf','substr','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write','inherits','sync','prototype','ANSWER','sendRequest','format','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','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','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','setPriority','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','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','WAIT','label','exports','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','line','toLowerCase','hangup','emit','520-Invalid','function','substring','no\x20code','replace','result='];(function(_0x1989eb,_0x35a9eb){var _0x1bb657=function(_0x5978ac){while(--_0x5978ac){_0x1989eb['push'](_0x1989eb['shift']());}};_0x1bb657(++_0x35a9eb);}(_0x3408,0x177));var _0x8340=function(_0x1f641e,_0x411d52){_0x1f641e=_0x1f641e-0x0;var _0x13406e=_0x3408[_0x1f641e];return _0x13406e;};'use strict';var util=require(_0x8340('0x0'));var _=require(_0x8340('0x1'));var EventEmitter=require(_0x8340('0x2'))[_0x8340('0x3')];var AGIReply=require(_0x8340('0x4'));var AGIError=require(_0x8340('0x5'));function AGIChannel(_0x34cb8a){var _0x3c8360=this,_0x1ca22c=new AGIReply(),_0x33ee17=![],_0x67180={};EventEmitter[_0x8340('0x6')](_0x3c8360);_0x34cb8a[_0x8340('0x7')](_0x8340('0x8'));_0x34cb8a[_0x8340('0x9')](0x8*0x3c*0x3c*0x3e8);_0x1ca22c[_0x8340('0x7')](_0x8340('0x8'));_0x1ca22c['on']('headers',function(_0x1da6f3){for(var _0x5b1a7b in _0x1da6f3){_0x3c8360[_0x5b1a7b]=_0x1da6f3[_0x5b1a7b];}_0x3c8360['emit']('ready');});_0x1ca22c['on'](_0x8340('0xa'),function(_0x1fb81d){if(_0x1fb81d[_0x8340('0xb')]()==_0x8340('0xc')){_0x3c8360[_0x8340('0xd')](_0x8340('0xc'));return;}if(_0x1fb81d['substring'](0x0,0xb)==_0x8340('0xe')){_0x33ee17=!![];}if(_0x33ee17){_0x67180['rx']+=_0x1fb81d+'\x0a';if(_0x1fb81d['search']('520\x20End\x20of\x20proper')!=-0x1){_0x33ee17=![];}}else{_0x67180['rx']=_0x1fb81d;}if(_0x33ee17){return;}if(typeof _0x67180['cb']==_0x8340('0xf')){var _0x3d3e91=_0x67180['rx'][_0x8340('0x10')](0x0,0x3),_0x4e5e02=null,_0x30836e=null;_0x3d3e91=parseInt(_0x3d3e91);if(isNaN(_0x3d3e91)){_0x67180['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x8340('0x11')});return;}if(_0x3d3e91!=0xc8){_0x67180['cb'](null,{'code':_0x3d3e91,'result':-0x1,'extra':'KO'});return;}_0x4e5e02=_0x67180['rx'][_0x8340('0x10')](0x4)[_0x8340('0x12')](_0x8340('0x13'),'');if(_0x4e5e02[_0x8340('0x14')]('\x20')!=-0x1){_0x4e5e02=_0x4e5e02[_0x8340('0x15')](0x0,_0x4e5e02[_0x8340('0x14')]('\x20'));}if(_['startsWith'](_0x4e5e02,'-1')){_0x4e5e02=parseInt(_0x4e5e02);}_0x30836e=_0x67180['rx']['split']('\x20');if(_0x30836e[_0x8340('0x16')]==0x3){_0x30836e=_0x30836e[0x2]['substring'](0x1,_0x30836e[0x2][_0x8340('0x16')]-0x1);}else if(_0x30836e[_0x8340('0x16')]>0x3){var _0x7e80dc=/\((.+)\)/;var _0x4d6d65=_0x67180['rx'][_0x8340('0x17')](_0x7e80dc);if(_0x4d6d65){_0x30836e=_0x4d6d65[0x1];}else{_0x30836e=null;}}else{_0x30836e=null;}_0x67180['cb'](null,{'code':_0x3d3e91,'result':_0x4e5e02,'extra':_0x30836e});}});_0x34cb8a['on']('error',function(_0x30febd){_0x3c8360[_0x8340('0xd')](_0x8340('0x18'),new AGIError(_0x8340('0x19'),_0x30febd[_0x8340('0x1a')]));});_0x34cb8a['on']('close',function(){_0x3c8360[_0x8340('0xd')](_0x8340('0x1b'),new AGIError(_0x8340('0x1c')));});_0x34cb8a['on'](_0x8340('0x1d'),function(){_0x3c8360[_0x8340('0xd')](_0x8340('0x1d'),new AGIError(_0x8340('0x1e')));_0x34cb8a[_0x8340('0x1f')]();});_0x34cb8a[_0x8340('0x20')](_0x1ca22c);this[_0x8340('0x21')]=function(_0x33e2d6,_0x15c4e0){var _0x33e2d6=_0x33e2d6||'',_0x15c4e0=typeof _0x15c4e0=='function'?_0x15c4e0:new Function();_0x67180={'tx':_0x33e2d6,'rx':'','cb':_0x15c4e0};_0x34cb8a[_0x8340('0x22')](_0x33e2d6+'\x0a');},this[_0x8340('0x1b')]=function(){_0x34cb8a[_0x8340('0x1f')]();};}util[_0x8340('0x23')](AGIChannel,EventEmitter);AGIChannel['prototype']['sendRequest']=function(_0xbdc721){return this['command'][_0x8340('0x24')](this,_0xbdc721);};AGIChannel[_0x8340('0x25')]['answer']=function(){return this['sendRequest'](_0x8340('0x26'));};AGIChannel[_0x8340('0x25')]['getData']=function(_0xd51905,_0x4cbd0c,_0x3496e5){_0xd51905=_0xd51905===undefined?'beep':_0xd51905;_0x4cbd0c=_0x4cbd0c===undefined?'5':_0x4cbd0c;_0x3496e5=_0x3496e5===undefined?'1':_0x3496e5;return this[_0x8340('0x27')](util[_0x8340('0x28')]('GET\x20DATA\x20\x22%s\x22\x20%s\x20%s',_0xd51905,_0x4cbd0c*0x3e8,_0x3496e5));};AGIChannel[_0x8340('0x25')]['noop']=function(_0x2f57c7){_0x2f57c7=_0x2f57c7||_0x8340('0x29');return this[_0x8340('0x27')](util[_0x8340('0x28')](_0x8340('0x2a'),_0x2f57c7));};AGIChannel[_0x8340('0x25')][_0x8340('0x2b')]=function(_0x3e6e9d,_0x3d7ca4){if(_[_0x8340('0x2c')](_0x3d7ca4)){return this[_0x8340('0x27')](util[_0x8340('0x28')](_0x8340('0x2d'),_0x3e6e9d,_0x3d7ca4[_0x8340('0x2e')](',')));}return this[_0x8340('0x27')](util[_0x8340('0x28')](_0x8340('0x2d'),_0x3e6e9d,_0x3d7ca4));};AGIChannel[_0x8340('0x25')]['setContext']=function(_0x1ff5d3){return this['sendRequest'](util['format'](_0x8340('0x2f'),_0x1ff5d3));};AGIChannel[_0x8340('0x25')][_0x8340('0x30')]=function(_0x3faed2){return this['sendRequest'](util[_0x8340('0x28')](_0x8340('0x31'),_0x3faed2));};AGIChannel['prototype']['setPriority']=function(_0x5e008a){return this[_0x8340('0x27')](util[_0x8340('0x28')](_0x8340('0x32'),_0x5e008a));};AGIChannel[_0x8340('0x25')]['hangup']=function(){return this[_0x8340('0x27')](_0x8340('0x33'));};AGIChannel[_0x8340('0x25')][_0x8340('0x34')]=function(_0x4f5344,_0x328862){var _0x3149b4=_[_0x8340('0x35')](_0x328862)||_[_0x8340('0x36')](_0x328862)?_0x328862[_0x8340('0x37')]():_0x328862;return this[_0x8340('0x27')](util['format'](_0x8340('0x38'),_0x4f5344,_0x3149b4?_0x3149b4[_0x8340('0x37')]()[_0x8340('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x8340('0x25')][_0x8340('0x39')]=function(_0x2fefea,_0xa9a5ab){return this[_0x8340('0x27')](util['format'](_0x8340('0x3a'),_0x2fefea,_0xa9a5ab));};AGIChannel[_0x8340('0x25')][_0x8340('0x3b')]=function(_0x4c3018,_0x5893a2){return this[_0x8340('0x27')](util[_0x8340('0x28')]('SAY\x20DIGITS\x20%s\x20%s',_0x4c3018,_0x5893a2));};AGIChannel[_0x8340('0x25')][_0x8340('0x3c')]=function(_0xbe63d7,_0x1c0b93){return this['sendRequest'](util[_0x8340('0x28')](_0x8340('0x3d'),_0xbe63d7,_0x1c0b93));};AGIChannel[_0x8340('0x25')][_0x8340('0x3e')]=function(_0x4ea6ca,_0x115b40,_0x1ef321){_0x115b40=_0x115b40||this[_0x8340('0x3f')];_0x1ef321=_0x1ef321||0x1;this['setContext'](_0x4ea6ca);this[_0x8340('0x30')](_0x115b40);this[_0x8340('0x40')](_0x1ef321);return this[_0x8340('0x41')](util[_0x8340('0x28')](_0x8340('0x42'),_0x4ea6ca,_0x115b40,_0x1ef321));};AGIChannel[_0x8340('0x25')]['getVariable']=function(_0x5ac6f9){return this[_0x8340('0x27')](util['format'](_0x8340('0x43'),_0x5ac6f9));};AGIChannel[_0x8340('0x25')][_0x8340('0x44')]=function(_0x3b4b20,_0x32b258,_0x50523b,_0x8e0b13,_0x4e89a0,_0x5cc854){_0x32b258=_0x32b258||_0x8340('0x45');_0x50523b=_0x50523b||'';_0x8e0b13=_0x8e0b13===undefined?-0x1:_0x8e0b13==='-1'?-0x1:_0x8e0b13*0x3e8;_0x4e89a0=_0x4e89a0===undefined?'':'s='+_0x4e89a0;_0x5cc854=_0x5cc854?_0x8340('0x46'):'';return this[_0x8340('0x27')](util['format'](_0x8340('0x47'),_0x3b4b20,_0x32b258,_0x50523b,_0x8e0b13,_0x5cc854,_0x4e89a0));};AGIChannel['prototype'][_0x8340('0x48')]=function(_0x1543e8,_0xa7d56c){_0xa7d56c=_0xa7d56c||'';return this['sendRequest'](util[_0x8340('0x28')](_0x8340('0x49'),_0x1543e8,_0xa7d56c));};AGIChannel[_0x8340('0x25')][_0x8340('0x4a')]=function(_0x110d09){return this[_0x8340('0x2b')](_0x8340('0x4b'),_0x110d09);};AGIChannel[_0x8340('0x25')]['wait']=function(_0x31d1ba){return this[_0x8340('0x2b')](_0x8340('0x4c'),_0x31d1ba);};AGIChannel[_0x8340('0x25')][_0x8340('0x18')]=function(_0x537018,_0x457f3a){this[_0x8340('0x41')](util['format']('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x537018['id'],_0x537018[_0x8340('0x4d')],_0x457f3a));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x8340('0x4e')]=AGIChannel;