0e794b208436f936c12a0a6455d6417bee244d25
[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 _0xfb0b=['events','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','hangup','520-Invalid','520\x20End\x20of\x20proper','function','substring','substr','indexOf','startsWith','split','length','match','error','code','close','timeout','E_AGI_SOCKET_TIMEOUT','pipe','destroy','inherits','prototype','command','answer','sendRequest','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','exec','isArray','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','noop','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','agi','AGI','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash'];(function(_0x456f35,_0x124842){var _0x2e65dd=function(_0x39e30c){while(--_0x39e30c){_0x456f35['push'](_0x456f35['shift']());}};_0x2e65dd(++_0x124842);}(_0xfb0b,0x94));var _0xbfb0=function(_0x488fc6,_0x362d94){_0x488fc6=_0x488fc6-0x0;var _0x2dad83=_0xfb0b[_0x488fc6];return _0x2dad83;};'use strict';var util=require(_0xbfb0('0x0'));var _=require(_0xbfb0('0x1'));var EventEmitter=require(_0xbfb0('0x2'))['EventEmitter'];var AGIReply=require(_0xbfb0('0x3'));var AGIError=require(_0xbfb0('0x4'));function AGIChannel(_0x4aeddc){var _0x4adab6=this,_0x299a7b=new AGIReply(),_0x4ac75d=![],_0x238a87={};EventEmitter[_0xbfb0('0x5')](_0x4adab6);_0x4aeddc[_0xbfb0('0x6')](_0xbfb0('0x7'));_0x4aeddc[_0xbfb0('0x8')](0x8*0x3c*0x3c*0x3e8);_0x299a7b[_0xbfb0('0x6')]('utf8');_0x299a7b['on'](_0xbfb0('0x9'),function(_0x1afe32){for(var _0x373a86 in _0x1afe32){_0x4adab6[_0x373a86]=_0x1afe32[_0x373a86];}_0x4adab6[_0xbfb0('0xa')]('ready');});_0x299a7b['on']('line',function(_0x4cec81){if(_0x4cec81['toLowerCase']()==_0xbfb0('0xb')){_0x4adab6[_0xbfb0('0xa')](_0xbfb0('0xb'));return;}if(_0x4cec81['substring'](0x0,0xb)==_0xbfb0('0xc')){_0x4ac75d=!![];}if(_0x4ac75d){_0x238a87['rx']+=_0x4cec81+'\x0a';if(_0x4cec81['search'](_0xbfb0('0xd'))!=-0x1){_0x4ac75d=![];}}else{_0x238a87['rx']=_0x4cec81;}if(_0x4ac75d){return;}if(typeof _0x238a87['cb']==_0xbfb0('0xe')){var _0x41afc9=_0x238a87['rx'][_0xbfb0('0xf')](0x0,0x3),_0x410d77=null,_0x884a70=null;_0x41afc9=parseInt(_0x41afc9);if(isNaN(_0x41afc9)){_0x238a87['cb'](null,{'code':0x1f4,'result':-0x1,'extra':'no\x20code'});return;}if(_0x41afc9!=0xc8){_0x238a87['cb'](null,{'code':_0x41afc9,'result':-0x1,'extra':'KO'});return;}_0x410d77=_0x238a87['rx'][_0xbfb0('0xf')](0x4)['replace']('result=','');if(_0x410d77['indexOf']('\x20')!=-0x1){_0x410d77=_0x410d77[_0xbfb0('0x10')](0x0,_0x410d77[_0xbfb0('0x11')]('\x20'));}if(_[_0xbfb0('0x12')](_0x410d77,'-1')){_0x410d77=parseInt(_0x410d77);}_0x884a70=_0x238a87['rx'][_0xbfb0('0x13')]('\x20');if(_0x884a70[_0xbfb0('0x14')]==0x3){_0x884a70=_0x884a70[0x2][_0xbfb0('0xf')](0x1,_0x884a70[0x2][_0xbfb0('0x14')]-0x1);}else if(_0x884a70[_0xbfb0('0x14')]>0x3){var _0x315b80=/\((.+)\)/;var _0x33cf2e=_0x238a87['rx'][_0xbfb0('0x15')](_0x315b80);if(_0x33cf2e){_0x884a70=_0x33cf2e[0x1];}else{_0x884a70=null;}}else{_0x884a70=null;}_0x238a87['cb'](null,{'code':_0x41afc9,'result':_0x410d77,'extra':_0x884a70});}});_0x4aeddc['on']('error',function(_0x5c8a1e){_0x4adab6[_0xbfb0('0xa')](_0xbfb0('0x16'),new AGIError('E_AGI_SOCKET_ERROR',_0x5c8a1e[_0xbfb0('0x17')]));});_0x4aeddc['on'](_0xbfb0('0x18'),function(){_0x4adab6['emit'](_0xbfb0('0x18'),new AGIError('E_AGI_SOCKET_CLOSE'));});_0x4aeddc['on'](_0xbfb0('0x19'),function(){_0x4adab6[_0xbfb0('0xa')](_0xbfb0('0x19'),new AGIError(_0xbfb0('0x1a')));_0x4aeddc['destroy']();});_0x4aeddc[_0xbfb0('0x1b')](_0x299a7b);this['command']=function(_0x300e16,_0x5317fe){var _0x300e16=_0x300e16||'',_0x5317fe=typeof _0x5317fe==_0xbfb0('0xe')?_0x5317fe:new Function();_0x238a87={'tx':_0x300e16,'rx':'','cb':_0x5317fe};_0x4aeddc['write'](_0x300e16+'\x0a');},this[_0xbfb0('0x18')]=function(){_0x4aeddc[_0xbfb0('0x1c')]();};}util[_0xbfb0('0x1d')](AGIChannel,EventEmitter);AGIChannel[_0xbfb0('0x1e')]['sendRequest']=function(_0x2efb2a){return this[_0xbfb0('0x1f')]['sync'](this,_0x2efb2a);};AGIChannel['prototype'][_0xbfb0('0x20')]=function(){return this[_0xbfb0('0x21')](_0xbfb0('0x22'));};AGIChannel['prototype'][_0xbfb0('0x23')]=function(_0x4af626,_0x7bd2b2,_0x46dac3){_0x4af626=_0x4af626===undefined?_0xbfb0('0x24'):_0x4af626;_0x7bd2b2=_0x7bd2b2===undefined?'5':_0x7bd2b2;_0x46dac3=_0x46dac3===undefined?'1':_0x46dac3;return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x26'),_0x4af626,_0x7bd2b2*0x3e8,_0x46dac3));};AGIChannel[_0xbfb0('0x1e')]['noop']=function(_0xb2a68d){_0xb2a68d=_0xb2a68d||_0xbfb0('0x27');return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')]('VERBOSE\x20\x22%s\x22',_0xb2a68d));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x28')]=function(_0x4e511c,_0x188c90){if(_[_0xbfb0('0x29')](_0x188c90)){return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x2a'),_0x4e511c,_0x188c90[_0xbfb0('0x2b')](',')));}return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x2a'),_0x4e511c,_0x188c90));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x2c')]=function(_0x258423){return this['sendRequest'](util['format']('SET\x20CONTEXT\x20%s',_0x258423));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x2d')]=function(_0x464c87){return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x2e'),_0x464c87));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x2f')]=function(_0x4aa181){return this['sendRequest'](util['format'](_0xbfb0('0x30'),_0x4aa181));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0xb')]=function(){return this[_0xbfb0('0x21')](_0xbfb0('0x31'));};AGIChannel['prototype']['setVariable']=function(_0x3f1814,_0x3e18e5){var _0x3f22d9=_[_0xbfb0('0x32')](_0x3e18e5)||_[_0xbfb0('0x33')](_0x3e18e5)?_0x3e18e5[_0xbfb0('0x34')]():_0x3e18e5;return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x35'),_0x3f1814,_0x3f22d9?_0x3f22d9[_0xbfb0('0x34')]()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0xbfb0('0x36')]=function(_0x1cee6f,_0x550187){return this[_0xbfb0('0x21')](util['format'](_0xbfb0('0x37'),_0x1cee6f,_0x550187));};AGIChannel[_0xbfb0('0x1e')]['sayDigits']=function(_0x4acf91,_0x250d33){return this[_0xbfb0('0x21')](util['format'](_0xbfb0('0x38'),_0x4acf91,_0x250d33));};AGIChannel['prototype'][_0xbfb0('0x39')]=function(_0x4f53e9,_0x5e787c){return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x3a'),_0x4f53e9,_0x5e787c));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x3b')]=function(_0x58fa70,_0x4240a,_0x52bfe){_0x4240a=_0x4240a||this[_0xbfb0('0x3c')];_0x52bfe=_0x52bfe||0x1;this[_0xbfb0('0x2c')](_0x58fa70);this[_0xbfb0('0x2d')](_0x4240a);this[_0xbfb0('0x2f')](_0x52bfe);return this[_0xbfb0('0x3d')](util[_0xbfb0('0x25')](_0xbfb0('0x3e'),_0x58fa70,_0x4240a,_0x52bfe));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x3f')]=function(_0x11b17e){return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x40'),_0x11b17e));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x41')]=function(_0x1d29be,_0x5af02d,_0xa7f6c3,_0x1401bb,_0x2769d3,_0x52f062){_0x5af02d=_0x5af02d||_0xbfb0('0x42');_0xa7f6c3=_0xa7f6c3||'';_0x1401bb=_0x1401bb===undefined?-0x1:_0x1401bb==='-1'?-0x1:_0x1401bb*0x3e8;_0x2769d3=_0x2769d3===undefined?'':'s='+_0x2769d3;_0x52f062=_0x52f062?_0xbfb0('0x43'):'';return this[_0xbfb0('0x21')](util[_0xbfb0('0x25')](_0xbfb0('0x44'),_0x1d29be,_0x5af02d,_0xa7f6c3,_0x1401bb,_0x52f062,_0x2769d3));};AGIChannel[_0xbfb0('0x1e')]['streamFile']=function(_0x4b6a9b,_0xd7a3ff){_0xd7a3ff=_0xd7a3ff||'';return this[_0xbfb0('0x21')](util['format']('STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22',_0x4b6a9b,_0xd7a3ff));};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x45')]=function(_0x218cf8){return this[_0xbfb0('0x28')](_0xbfb0('0x46'),_0x218cf8);};AGIChannel[_0xbfb0('0x1e')]['wait']=function(_0x519965){return this[_0xbfb0('0x28')](_0xbfb0('0x47'),_0x519965);};AGIChannel[_0xbfb0('0x1e')][_0xbfb0('0x16')]=function(_0x3c81f6,_0xa7aecb){this[_0xbfb0('0x3d')](util[_0xbfb0('0x25')](_0xbfb0('0x48'),_0x3c81f6['id'],_0x3c81f6[_0xbfb0('0x49')],_0xa7aecb));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xbfb0('0x4a')]=AGIChannel;