c725b4049b69431322940f6b6e03feeb4b437fa7
[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 _0xe5a6=['extension','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','wait','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','ready','toLowerCase','hangup','emit','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','indexOf','substr','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','write','inherits','sendRequest','command','sync','answer','ANSWER','getData','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','prototype','exec','EXEC\x20%s\x20%s','join','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt'];(function(_0x4d8782,_0x40cb35){var _0x396f75=function(_0x255e72){while(--_0x255e72){_0x4d8782['push'](_0x4d8782['shift']());}};_0x396f75(++_0x40cb35);}(_0xe5a6,0x104));var _0x6e5a=function(_0x5b89a0,_0x315a2a){_0x5b89a0=_0x5b89a0-0x0;var _0x44d81a=_0xe5a6[_0x5b89a0];return _0x44d81a;};'use strict';var util=require(_0x6e5a('0x0'));var _=require(_0x6e5a('0x1'));var EventEmitter=require(_0x6e5a('0x2'))[_0x6e5a('0x3')];var AGIReply=require(_0x6e5a('0x4'));var AGIError=require(_0x6e5a('0x5'));function AGIChannel(_0x5a4692){var _0x3123e6=this,_0x4195c1=new AGIReply(),_0x51944b=![],_0x34a9ff={};EventEmitter[_0x6e5a('0x6')](_0x3123e6);_0x5a4692[_0x6e5a('0x7')](_0x6e5a('0x8'));_0x5a4692[_0x6e5a('0x9')](0x8*0x3c*0x3c*0x3e8);_0x4195c1[_0x6e5a('0x7')](_0x6e5a('0x8'));_0x4195c1['on'](_0x6e5a('0xa'),function(_0x4be0b3){for(var _0x5e970d in _0x4be0b3){_0x3123e6[_0x5e970d]=_0x4be0b3[_0x5e970d];}_0x3123e6['emit'](_0x6e5a('0xb'));});_0x4195c1['on']('line',function(_0x2652c2){if(_0x2652c2[_0x6e5a('0xc')]()==_0x6e5a('0xd')){_0x3123e6[_0x6e5a('0xe')]('hangup');return;}if(_0x2652c2[_0x6e5a('0xf')](0x0,0xb)==_0x6e5a('0x10')){_0x51944b=!![];}if(_0x51944b){_0x34a9ff['rx']+=_0x2652c2+'\x0a';if(_0x2652c2[_0x6e5a('0x11')](_0x6e5a('0x12'))!=-0x1){_0x51944b=![];}}else{_0x34a9ff['rx']=_0x2652c2;}if(_0x51944b){return;}if(typeof _0x34a9ff['cb']==_0x6e5a('0x13')){var _0x509381=_0x34a9ff['rx'][_0x6e5a('0xf')](0x0,0x3),_0x2f81e2=null,_0x4cfe50=null;_0x509381=parseInt(_0x509381);if(isNaN(_0x509381)){_0x34a9ff['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x6e5a('0x14')});return;}if(_0x509381!=0xc8){_0x34a9ff['cb'](null,{'code':_0x509381,'result':-0x1,'extra':'KO'});return;}_0x2f81e2=_0x34a9ff['rx'][_0x6e5a('0xf')](0x4)[_0x6e5a('0x15')](_0x6e5a('0x16'),'');if(_0x2f81e2[_0x6e5a('0x17')]('\x20')!=-0x1){_0x2f81e2=_0x2f81e2[_0x6e5a('0x18')](0x0,_0x2f81e2[_0x6e5a('0x17')]('\x20'));}if(_[_0x6e5a('0x19')](_0x2f81e2,'-1')){_0x2f81e2=parseInt(_0x2f81e2);}_0x4cfe50=_0x34a9ff['rx'][_0x6e5a('0x1a')]('\x20');if(_0x4cfe50[_0x6e5a('0x1b')]==0x3){_0x4cfe50=_0x4cfe50[0x2][_0x6e5a('0xf')](0x1,_0x4cfe50[0x2][_0x6e5a('0x1b')]-0x1);}else if(_0x4cfe50[_0x6e5a('0x1b')]>0x3){var _0x232ede=/\((.+)\)/;var _0x52ceb4=_0x34a9ff['rx'][_0x6e5a('0x1c')](_0x232ede);if(_0x52ceb4){_0x4cfe50=_0x52ceb4[0x1];}else{_0x4cfe50=null;}}else{_0x4cfe50=null;}_0x34a9ff['cb'](null,{'code':_0x509381,'result':_0x2f81e2,'extra':_0x4cfe50});}});_0x5a4692['on']('error',function(_0x555d94){_0x3123e6[_0x6e5a('0xe')](_0x6e5a('0x1d'),new AGIError(_0x6e5a('0x1e'),_0x555d94[_0x6e5a('0x1f')]));});_0x5a4692['on']('close',function(){_0x3123e6['emit'](_0x6e5a('0x20'),new AGIError(_0x6e5a('0x21')));});_0x5a4692['on']('timeout',function(){_0x3123e6['emit'](_0x6e5a('0x22'),new AGIError(_0x6e5a('0x23')));_0x5a4692[_0x6e5a('0x24')]();});_0x5a4692[_0x6e5a('0x25')](_0x4195c1);this['command']=function(_0x4c3553,_0x59096d){var _0x4c3553=_0x4c3553||'',_0x59096d=typeof _0x59096d==_0x6e5a('0x13')?_0x59096d:new Function();_0x34a9ff={'tx':_0x4c3553,'rx':'','cb':_0x59096d};_0x5a4692[_0x6e5a('0x26')](_0x4c3553+'\x0a');},this[_0x6e5a('0x20')]=function(){_0x5a4692[_0x6e5a('0x24')]();};}util[_0x6e5a('0x27')](AGIChannel,EventEmitter);AGIChannel['prototype'][_0x6e5a('0x28')]=function(_0xfcd4b5){return this[_0x6e5a('0x29')][_0x6e5a('0x2a')](this,_0xfcd4b5);};AGIChannel['prototype'][_0x6e5a('0x2b')]=function(){return this['sendRequest'](_0x6e5a('0x2c'));};AGIChannel['prototype'][_0x6e5a('0x2d')]=function(_0x65b7e2,_0x3e4090,_0x12e944){_0x65b7e2=_0x65b7e2===undefined?'beep':_0x65b7e2;_0x3e4090=_0x3e4090===undefined?'5':_0x3e4090;_0x12e944=_0x12e944===undefined?'1':_0x12e944;return this[_0x6e5a('0x28')](util[_0x6e5a('0x2e')](_0x6e5a('0x2f'),_0x65b7e2,_0x3e4090*0x3e8,_0x12e944));};AGIChannel['prototype'][_0x6e5a('0x30')]=function(_0x3957d5){_0x3957d5=_0x3957d5||_0x6e5a('0x31');return this['sendRequest'](util['format']('VERBOSE\x20\x22%s\x22',_0x3957d5));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x33')]=function(_0x3d65dc,_0x21606f){if(_['isArray'](_0x21606f)){return this[_0x6e5a('0x28')](util[_0x6e5a('0x2e')](_0x6e5a('0x34'),_0x3d65dc,_0x21606f[_0x6e5a('0x35')](',')));}return this['sendRequest'](util['format'](_0x6e5a('0x34'),_0x3d65dc,_0x21606f));};AGIChannel['prototype'][_0x6e5a('0x36')]=function(_0x303250){return this[_0x6e5a('0x28')](util[_0x6e5a('0x2e')](_0x6e5a('0x37'),_0x303250));};AGIChannel['prototype'][_0x6e5a('0x38')]=function(_0x1eb200){return this[_0x6e5a('0x28')](util['format'](_0x6e5a('0x39'),_0x1eb200));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x3a')]=function(_0x2fad77){return this['sendRequest'](util[_0x6e5a('0x2e')](_0x6e5a('0x3b'),_0x2fad77));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0xd')]=function(){return this[_0x6e5a('0x28')](_0x6e5a('0x3c'));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x3d')]=function(_0x588ab7,_0x49199b){var _0x5d084f=_[_0x6e5a('0x3e')](_0x49199b)||_[_0x6e5a('0x3f')](_0x49199b)?_0x49199b['toString']():_0x49199b;return this[_0x6e5a('0x28')](util[_0x6e5a('0x2e')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x588ab7,_0x5d084f?_0x5d084f[_0x6e5a('0x40')]()[_0x6e5a('0x15')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype'][_0x6e5a('0x41')]=function(_0x56253a,_0x5bd349){return this[_0x6e5a('0x28')](util['format'](_0x6e5a('0x42'),_0x56253a,_0x5bd349));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x43')]=function(_0x1c3fde,_0x2a0674){return this[_0x6e5a('0x28')](util[_0x6e5a('0x2e')](_0x6e5a('0x44'),_0x1c3fde,_0x2a0674));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x45')]=function(_0x5cccdd,_0x2bfe9b){return this[_0x6e5a('0x28')](util[_0x6e5a('0x2e')](_0x6e5a('0x46'),_0x5cccdd,_0x2bfe9b));};AGIChannel['prototype'][_0x6e5a('0x47')]=function(_0x5d5992,_0x569cd6,_0x5d18b6){_0x569cd6=_0x569cd6||this[_0x6e5a('0x48')];_0x5d18b6=_0x5d18b6||0x1;this[_0x6e5a('0x36')](_0x5d5992);this['setExtension'](_0x569cd6);this['setPriority'](_0x5d18b6);return this[_0x6e5a('0x30')](util['format']('GOTO\x20%s\x20%s\x20%s',_0x5d5992,_0x569cd6,_0x5d18b6));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x49')]=function(_0x46db34){return this[_0x6e5a('0x28')](util[_0x6e5a('0x2e')](_0x6e5a('0x4a'),_0x46db34));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x4b')]=function(_0x4d4d2f,_0x3e1987,_0x35c7db,_0x145643,_0x4732f0,_0x2dabac){_0x3e1987=_0x3e1987||_0x6e5a('0x4c');_0x35c7db=_0x35c7db||'';_0x145643=_0x145643===undefined?-0x1:_0x145643==='-1'?-0x1:_0x145643*0x3e8;_0x4732f0=_0x4732f0===undefined?'':'s='+_0x4732f0;_0x2dabac=_0x2dabac?_0x6e5a('0x4d'):'';return this[_0x6e5a('0x28')](util['format']('RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s',_0x4d4d2f,_0x3e1987,_0x35c7db,_0x145643,_0x2dabac,_0x4732f0));};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x4e')]=function(_0x13a3bc,_0x1e6111){_0x1e6111=_0x1e6111||'';return this[_0x6e5a('0x28')](util['format'](_0x6e5a('0x4f'),_0x13a3bc,_0x1e6111));};AGIChannel[_0x6e5a('0x32')]['agi']=function(_0x3bc7fd){return this['exec']('AGI',_0x3bc7fd);};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x50')]=function(_0x172ca3){return this['exec']('WAIT',_0x172ca3);};AGIChannel[_0x6e5a('0x32')][_0x6e5a('0x1d')]=function(_0x2a1855,_0x2b46d5){this[_0x6e5a('0x30')](util[_0x6e5a('0x2e')](_0x6e5a('0x51'),_0x2a1855['id'],_0x2a1855[_0x6e5a('0x52')],_0x2b46d5));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;