Built motion from commit 2e4747fd.|2.6.7
[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 _0x9a18=['emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','result=','indexOf','startsWith','split','length','match','error','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','command','write','inherits','prototype','sendRequest','sync','ANSWER','getData','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','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','replace','sayNumber','sayDigits','SAY\x20DIGITS\x20%s\x20%s','continueAt','extension','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','streamFile','agi','AGI','wait','label','exports','util','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout'];(function(_0x1f95de,_0x390d20){var _0x446b4c=function(_0x5f0d35){while(--_0x5f0d35){_0x1f95de['push'](_0x1f95de['shift']());}};_0x446b4c(++_0x390d20);}(_0x9a18,0x187));var _0x89a1=function(_0x592929,_0x176313){_0x592929=_0x592929-0x0;var _0x34a0a0=_0x9a18[_0x592929];return _0x34a0a0;};'use strict';var util=require(_0x89a1('0x0'));var _=require('lodash');var EventEmitter=require(_0x89a1('0x1'))[_0x89a1('0x2')];var AGIReply=require(_0x89a1('0x3'));var AGIError=require(_0x89a1('0x4'));function AGIChannel(_0x401826){var _0x48a67a=this,_0x33e91b=new AGIReply(),_0x2b7678=![],_0x287f38={};EventEmitter[_0x89a1('0x5')](_0x48a67a);_0x401826[_0x89a1('0x6')](_0x89a1('0x7'));_0x401826[_0x89a1('0x8')](0x8*0x3c*0x3c*0x3e8);_0x33e91b[_0x89a1('0x6')]('utf8');_0x33e91b['on']('headers',function(_0x3bba21){for(var _0x4993c1 in _0x3bba21){_0x48a67a[_0x4993c1]=_0x3bba21[_0x4993c1];}_0x48a67a[_0x89a1('0x9')](_0x89a1('0xa'));});_0x33e91b['on'](_0x89a1('0xb'),function(_0x44ec84){if(_0x44ec84[_0x89a1('0xc')]()==_0x89a1('0xd')){_0x48a67a[_0x89a1('0x9')](_0x89a1('0xd'));return;}if(_0x44ec84[_0x89a1('0xe')](0x0,0xb)==_0x89a1('0xf')){_0x2b7678=!![];}if(_0x2b7678){_0x287f38['rx']+=_0x44ec84+'\x0a';if(_0x44ec84[_0x89a1('0x10')](_0x89a1('0x11'))!=-0x1){_0x2b7678=![];}}else{_0x287f38['rx']=_0x44ec84;}if(_0x2b7678){return;}if(typeof _0x287f38['cb']==_0x89a1('0x12')){var _0x50c3b9=_0x287f38['rx'][_0x89a1('0xe')](0x0,0x3),_0x53be14=null,_0x2b7711=null;_0x50c3b9=parseInt(_0x50c3b9);if(isNaN(_0x50c3b9)){_0x287f38['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x89a1('0x13')});return;}if(_0x50c3b9!=0xc8){_0x287f38['cb'](null,{'code':_0x50c3b9,'result':-0x1,'extra':'KO'});return;}_0x53be14=_0x287f38['rx'][_0x89a1('0xe')](0x4)['replace'](_0x89a1('0x14'),'');if(_0x53be14[_0x89a1('0x15')]('\x20')!=-0x1){_0x53be14=_0x53be14['substr'](0x0,_0x53be14[_0x89a1('0x15')]('\x20'));}if(_[_0x89a1('0x16')](_0x53be14,'-1')){_0x53be14=parseInt(_0x53be14);}_0x2b7711=_0x287f38['rx'][_0x89a1('0x17')]('\x20');if(_0x2b7711[_0x89a1('0x18')]==0x3){_0x2b7711=_0x2b7711[0x2][_0x89a1('0xe')](0x1,_0x2b7711[0x2][_0x89a1('0x18')]-0x1);}else if(_0x2b7711[_0x89a1('0x18')]>0x3){var _0x325a5a=/\((.+)\)/;var _0x546981=_0x287f38['rx'][_0x89a1('0x19')](_0x325a5a);if(_0x546981){_0x2b7711=_0x546981[0x1];}else{_0x2b7711=null;}}else{_0x2b7711=null;}_0x287f38['cb'](null,{'code':_0x50c3b9,'result':_0x53be14,'extra':_0x2b7711});}});_0x401826['on'](_0x89a1('0x1a'),function(_0x1dbb4a){_0x48a67a[_0x89a1('0x9')](_0x89a1('0x1a'),new AGIError('E_AGI_SOCKET_ERROR',_0x1dbb4a[_0x89a1('0x1b')]));});_0x401826['on'](_0x89a1('0x1c'),function(){_0x48a67a[_0x89a1('0x9')]('close',new AGIError(_0x89a1('0x1d')));});_0x401826['on'](_0x89a1('0x1e'),function(){_0x48a67a[_0x89a1('0x9')](_0x89a1('0x1e'),new AGIError(_0x89a1('0x1f')));_0x401826[_0x89a1('0x20')]();});_0x401826['pipe'](_0x33e91b);this[_0x89a1('0x21')]=function(_0x4e27e7,_0x2a082a){var _0x4e27e7=_0x4e27e7||'',_0x2a082a=typeof _0x2a082a=='function'?_0x2a082a:new Function();_0x287f38={'tx':_0x4e27e7,'rx':'','cb':_0x2a082a};_0x401826[_0x89a1('0x22')](_0x4e27e7+'\x0a');},this[_0x89a1('0x1c')]=function(){_0x401826[_0x89a1('0x20')]();};}util[_0x89a1('0x23')](AGIChannel,EventEmitter);AGIChannel[_0x89a1('0x24')][_0x89a1('0x25')]=function(_0x39898e){return this[_0x89a1('0x21')][_0x89a1('0x26')](this,_0x39898e);};AGIChannel['prototype']['answer']=function(){return this[_0x89a1('0x25')](_0x89a1('0x27'));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x28')]=function(_0x16c8d7,_0x4bfcc4,_0x1330a6){_0x16c8d7=_0x16c8d7===undefined?'beep':_0x16c8d7;_0x4bfcc4=_0x4bfcc4===undefined?'5':_0x4bfcc4;_0x1330a6=_0x1330a6===undefined?'1':_0x1330a6;return this['sendRequest'](util[_0x89a1('0x29')](_0x89a1('0x2a'),_0x16c8d7,_0x4bfcc4*0x3e8,_0x1330a6));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x2b')]=function(_0x431651){_0x431651=_0x431651||_0x89a1('0x2c');return this[_0x89a1('0x25')](util[_0x89a1('0x29')](_0x89a1('0x2d'),_0x431651));};AGIChannel['prototype'][_0x89a1('0x2e')]=function(_0x20a312,_0x30e173){if(_[_0x89a1('0x2f')](_0x30e173)){return this[_0x89a1('0x25')](util[_0x89a1('0x29')](_0x89a1('0x30'),_0x20a312,_0x30e173['join'](',')));}return this[_0x89a1('0x25')](util[_0x89a1('0x29')](_0x89a1('0x30'),_0x20a312,_0x30e173));};AGIChannel['prototype'][_0x89a1('0x31')]=function(_0x3368c9){return this[_0x89a1('0x25')](util[_0x89a1('0x29')](_0x89a1('0x32'),_0x3368c9));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x33')]=function(_0x29af03){return this[_0x89a1('0x25')](util[_0x89a1('0x29')](_0x89a1('0x34'),_0x29af03));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x35')]=function(_0x3a215c){return this[_0x89a1('0x25')](util[_0x89a1('0x29')](_0x89a1('0x36'),_0x3a215c));};AGIChannel[_0x89a1('0x24')]['hangup']=function(){return this[_0x89a1('0x25')](_0x89a1('0x37'));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x38')]=function(_0xb270d1,_0x2cf63f){var _0x5f5d21=_[_0x89a1('0x39')](_0x2cf63f)||_[_0x89a1('0x3a')](_0x2cf63f)?_0x2cf63f['toString']():_0x2cf63f;return this[_0x89a1('0x25')](util['format'](_0x89a1('0x3b'),_0xb270d1,_0x5f5d21?_0x5f5d21[_0x89a1('0x3c')]()[_0x89a1('0x3d')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x3e')]=function(_0x4df780,_0x406bbb){return this[_0x89a1('0x25')](util[_0x89a1('0x29')]('SAY\x20NUMBER\x20%s\x20%s',_0x4df780,_0x406bbb));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x3f')]=function(_0xf0148d,_0x3fc905){return this[_0x89a1('0x25')](util[_0x89a1('0x29')](_0x89a1('0x40'),_0xf0148d,_0x3fc905));};AGIChannel[_0x89a1('0x24')]['sayPhonetic']=function(_0x530a78,_0x44a2fa){return this[_0x89a1('0x25')](util[_0x89a1('0x29')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x530a78,_0x44a2fa));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x41')]=function(_0x523a69,_0x357dee,_0x4c2247){_0x357dee=_0x357dee||this[_0x89a1('0x42')];_0x4c2247=_0x4c2247||0x1;this[_0x89a1('0x31')](_0x523a69);this[_0x89a1('0x33')](_0x357dee);this['setPriority'](_0x4c2247);return this['noop'](util[_0x89a1('0x29')](_0x89a1('0x43'),_0x523a69,_0x357dee,_0x4c2247));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x44')]=function(_0x5f0299){return this['sendRequest'](util[_0x89a1('0x29')](_0x89a1('0x45'),_0x5f0299));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x46')]=function(_0x1c4371,_0x14cbaa,_0x5bc510,_0x3ba121,_0x18f314,_0x411005){_0x14cbaa=_0x14cbaa||_0x89a1('0x47');_0x5bc510=_0x5bc510||'';_0x3ba121=_0x3ba121===undefined?-0x1:_0x3ba121==='-1'?-0x1:_0x3ba121*0x3e8;_0x18f314=_0x18f314===undefined?'':'s='+_0x18f314;_0x411005=_0x411005?_0x89a1('0x48'):'';return this['sendRequest'](util[_0x89a1('0x29')](_0x89a1('0x49'),_0x1c4371,_0x14cbaa,_0x5bc510,_0x3ba121,_0x411005,_0x18f314));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x4a')]=function(_0x585f8f,_0x3a344a){_0x3a344a=_0x3a344a||'';return this[_0x89a1('0x25')](util[_0x89a1('0x29')]('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x585f8f,_0x3a344a));};AGIChannel[_0x89a1('0x24')][_0x89a1('0x4b')]=function(_0x384d30){return this[_0x89a1('0x2e')](_0x89a1('0x4c'),_0x384d30);};AGIChannel['prototype'][_0x89a1('0x4d')]=function(_0x1ac4f1){return this[_0x89a1('0x2e')]('WAIT',_0x1ac4f1);};AGIChannel[_0x89a1('0x24')]['error']=function(_0x23cfad,_0x5097dd){this[_0x89a1('0x2b')](util[_0x89a1('0x29')]('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x23cfad['id'],_0x23cfad[_0x89a1('0x4e')],_0x5097dd));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x89a1('0x4f')]=AGIChannel;