Built motion from commit ab870f9e.|2.5.44
[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 _0x5f02=['GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','exec','WAIT','label','exports','util','events','./reply','setEncoding','utf8','setTimeout','emit','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','substr','indexOf','startsWith','split','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','destroy','pipe','command','write','inherits','prototype','sync','answer','sendRequest','ANSWER','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','isArray','EXEC\x20%s\x20%s','setContext','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','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'];(function(_0x17aa78,_0x1ca1ef){var _0x4e0514=function(_0x37340c){while(--_0x37340c){_0x17aa78['push'](_0x17aa78['shift']());}};_0x4e0514(++_0x1ca1ef);}(_0x5f02,0xa6));var _0x25f0=function(_0x18417e,_0x24c791){_0x18417e=_0x18417e-0x0;var _0x4eeee7=_0x5f02[_0x18417e];return _0x4eeee7;};'use strict';var util=require(_0x25f0('0x0'));var _=require('lodash');var EventEmitter=require(_0x25f0('0x1'))['EventEmitter'];var AGIReply=require(_0x25f0('0x2'));var AGIError=require('./error');function AGIChannel(_0x1943cc){var _0x2fbda8=this,_0x127271=new AGIReply(),_0x2a4994=![],_0x548a05={};EventEmitter['call'](_0x2fbda8);_0x1943cc[_0x25f0('0x3')](_0x25f0('0x4'));_0x1943cc[_0x25f0('0x5')](0x8*0x3c*0x3c*0x3e8);_0x127271['setEncoding']('utf8');_0x127271['on']('headers',function(_0x2c49b0){for(var _0x488cb9 in _0x2c49b0){_0x2fbda8[_0x488cb9]=_0x2c49b0[_0x488cb9];}_0x2fbda8[_0x25f0('0x6')]('ready');});_0x127271['on'](_0x25f0('0x7'),function(_0x4d0f20){if(_0x4d0f20[_0x25f0('0x8')]()==_0x25f0('0x9')){_0x2fbda8['emit'](_0x25f0('0x9'));return;}if(_0x4d0f20[_0x25f0('0xa')](0x0,0xb)==_0x25f0('0xb')){_0x2a4994=!![];}if(_0x2a4994){_0x548a05['rx']+=_0x4d0f20+'\x0a';if(_0x4d0f20[_0x25f0('0xc')](_0x25f0('0xd'))!=-0x1){_0x2a4994=![];}}else{_0x548a05['rx']=_0x4d0f20;}if(_0x2a4994){return;}if(typeof _0x548a05['cb']==_0x25f0('0xe')){var _0x254de4=_0x548a05['rx'][_0x25f0('0xa')](0x0,0x3),_0x3c455f=null,_0x58551d=null;_0x254de4=parseInt(_0x254de4);if(isNaN(_0x254de4)){_0x548a05['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x25f0('0xf')});return;}if(_0x254de4!=0xc8){_0x548a05['cb'](null,{'code':_0x254de4,'result':-0x1,'extra':'KO'});return;}_0x3c455f=_0x548a05['rx'][_0x25f0('0xa')](0x4)[_0x25f0('0x10')](_0x25f0('0x11'),'');if(_0x3c455f['indexOf']('\x20')!=-0x1){_0x3c455f=_0x3c455f[_0x25f0('0x12')](0x0,_0x3c455f[_0x25f0('0x13')]('\x20'));}if(_[_0x25f0('0x14')](_0x3c455f,'-1')){_0x3c455f=parseInt(_0x3c455f);}_0x58551d=_0x548a05['rx'][_0x25f0('0x15')]('\x20');if(_0x58551d['length']==0x3){_0x58551d=_0x58551d[0x2][_0x25f0('0xa')](0x1,_0x58551d[0x2]['length']-0x1);}else if(_0x58551d['length']>0x3){var _0x180cef=/\((.+)\)/;var _0x49b857=_0x548a05['rx'][_0x25f0('0x16')](_0x180cef);if(_0x49b857){_0x58551d=_0x49b857[0x1];}else{_0x58551d=null;}}else{_0x58551d=null;}_0x548a05['cb'](null,{'code':_0x254de4,'result':_0x3c455f,'extra':_0x58551d});}});_0x1943cc['on'](_0x25f0('0x17'),function(_0x63c859){_0x2fbda8[_0x25f0('0x6')]('error',new AGIError(_0x25f0('0x18'),_0x63c859[_0x25f0('0x19')]));});_0x1943cc['on']('close',function(){_0x2fbda8[_0x25f0('0x6')](_0x25f0('0x1a'),new AGIError(_0x25f0('0x1b')));});_0x1943cc['on'](_0x25f0('0x1c'),function(){_0x2fbda8[_0x25f0('0x6')]('timeout',new AGIError('E_AGI_SOCKET_TIMEOUT'));_0x1943cc[_0x25f0('0x1d')]();});_0x1943cc[_0x25f0('0x1e')](_0x127271);this[_0x25f0('0x1f')]=function(_0x4480d1,_0x350387){var _0x4480d1=_0x4480d1||'',_0x350387=typeof _0x350387==_0x25f0('0xe')?_0x350387:new Function();_0x548a05={'tx':_0x4480d1,'rx':'','cb':_0x350387};_0x1943cc[_0x25f0('0x20')](_0x4480d1+'\x0a');},this[_0x25f0('0x1a')]=function(){_0x1943cc[_0x25f0('0x1d')]();};}util[_0x25f0('0x21')](AGIChannel,EventEmitter);AGIChannel[_0x25f0('0x22')]['sendRequest']=function(_0x14f298){return this[_0x25f0('0x1f')][_0x25f0('0x23')](this,_0x14f298);};AGIChannel[_0x25f0('0x22')][_0x25f0('0x24')]=function(){return this[_0x25f0('0x25')](_0x25f0('0x26'));};AGIChannel['prototype']['getData']=function(_0x453122,_0x170486,_0x3b1795){_0x453122=_0x453122===undefined?_0x25f0('0x27'):_0x453122;_0x170486=_0x170486===undefined?'5':_0x170486;_0x3b1795=_0x3b1795===undefined?'1':_0x3b1795;return this[_0x25f0('0x25')](util[_0x25f0('0x28')](_0x25f0('0x29'),_0x453122,_0x170486*0x3e8,_0x3b1795));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x2a')]=function(_0x1cf712){_0x1cf712=_0x1cf712||_0x25f0('0x2b');return this[_0x25f0('0x25')](util[_0x25f0('0x28')](_0x25f0('0x2c'),_0x1cf712));};AGIChannel['prototype']['exec']=function(_0x522aa8,_0x1a03d9){if(_[_0x25f0('0x2d')](_0x1a03d9)){return this['sendRequest'](util[_0x25f0('0x28')](_0x25f0('0x2e'),_0x522aa8,_0x1a03d9['join'](',')));}return this[_0x25f0('0x25')](util[_0x25f0('0x28')](_0x25f0('0x2e'),_0x522aa8,_0x1a03d9));};AGIChannel['prototype'][_0x25f0('0x2f')]=function(_0x26af78){return this[_0x25f0('0x25')](util['format']('SET\x20CONTEXT\x20%s',_0x26af78));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x30')]=function(_0x2907fc){return this['sendRequest'](util[_0x25f0('0x28')](_0x25f0('0x31'),_0x2907fc));};AGIChannel[_0x25f0('0x22')]['setPriority']=function(_0xa6b2f){return this['sendRequest'](util[_0x25f0('0x28')](_0x25f0('0x32'),_0xa6b2f));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x9')]=function(){return this[_0x25f0('0x25')](_0x25f0('0x33'));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x34')]=function(_0x94e940,_0x1bc33d){var _0x1482d1=_[_0x25f0('0x35')](_0x1bc33d)||_[_0x25f0('0x36')](_0x1bc33d)?_0x1bc33d[_0x25f0('0x37')]():_0x1bc33d;return this[_0x25f0('0x25')](util[_0x25f0('0x28')](_0x25f0('0x38'),_0x94e940,_0x1482d1?_0x1482d1['toString']()[_0x25f0('0x10')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x25f0('0x22')]['sayNumber']=function(_0x43c1c8,_0x378378){return this[_0x25f0('0x25')](util['format'](_0x25f0('0x39'),_0x43c1c8,_0x378378));};AGIChannel['prototype'][_0x25f0('0x3a')]=function(_0x23ec5d,_0x117e40){return this[_0x25f0('0x25')](util[_0x25f0('0x28')](_0x25f0('0x3b'),_0x23ec5d,_0x117e40));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x3c')]=function(_0x46b79d,_0x2993dc){return this[_0x25f0('0x25')](util[_0x25f0('0x28')](_0x25f0('0x3d'),_0x46b79d,_0x2993dc));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x3e')]=function(_0x4fb818,_0x376f7d,_0x68b2e){_0x376f7d=_0x376f7d||this[_0x25f0('0x3f')];_0x68b2e=_0x68b2e||0x1;this[_0x25f0('0x2f')](_0x4fb818);this[_0x25f0('0x30')](_0x376f7d);this[_0x25f0('0x40')](_0x68b2e);return this['noop'](util[_0x25f0('0x28')](_0x25f0('0x41'),_0x4fb818,_0x376f7d,_0x68b2e));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x42')]=function(_0x16e4b3){return this['sendRequest'](util['format'](_0x25f0('0x43'),_0x16e4b3));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x44')]=function(_0x35037c,_0x208055,_0xa498a0,_0x53e87a,_0x158536,_0x3b7ef1){_0x208055=_0x208055||_0x25f0('0x45');_0xa498a0=_0xa498a0||'';_0x53e87a=_0x53e87a===undefined?-0x1:_0x53e87a==='-1'?-0x1:_0x53e87a*0x3e8;_0x158536=_0x158536===undefined?'':'s='+_0x158536;_0x3b7ef1=_0x3b7ef1?'BEEP':'';return this[_0x25f0('0x25')](util['format']('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x35037c,_0x208055,_0xa498a0,_0x53e87a,_0x3b7ef1,_0x158536));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x46')]=function(_0x30683b,_0x401efe){_0x401efe=_0x401efe||'';return this['sendRequest'](util[_0x25f0('0x28')](_0x25f0('0x47'),_0x30683b,_0x401efe));};AGIChannel[_0x25f0('0x22')][_0x25f0('0x48')]=function(_0x37279c){return this[_0x25f0('0x49')]('AGI',_0x37279c);};AGIChannel[_0x25f0('0x22')]['wait']=function(_0x3d713b){return this[_0x25f0('0x49')](_0x25f0('0x4a'),_0x3d713b);};AGIChannel[_0x25f0('0x22')][_0x25f0('0x17')]=function(_0x58279f,_0x61822f){this['noop'](util[_0x25f0('0x28')]('ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s',_0x58279f['id'],_0x58279f[_0x25f0('0x4b')],_0x61822f));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x25f0('0x4c')]=AGIChannel;