2dc9fbcd58c4af7c099ff04c963b1221d22a41b5
[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 _0xbda9=['GOTO\x20%s\x20%s\x20%s','getVariable','GET\x20VARIABLE\x20\x22%s\x22','recordFile','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','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','ready','line','toLowerCase','hangup','emit','substring','search','520\x20End\x20of\x20proper','function','no\x20code','indexOf','substr','length','match','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','inherits','prototype','sync','answer','sendRequest','ANSWER','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','setExtension','setPriority','SET\x20PRIORITY\x20%s','isBoolean','isNumber','toString','replace','sayNumber','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','extension','noop'];(function(_0x3ca03b,_0x1f2152){var _0x1eb0b5=function(_0x25815c){while(--_0x25815c){_0x3ca03b['push'](_0x3ca03b['shift']());}};_0x1eb0b5(++_0x1f2152);}(_0xbda9,0x146));var _0x9bda=function(_0x4844ff,_0x53a2fe){_0x4844ff=_0x4844ff-0x0;var _0x9257f8=_0xbda9[_0x4844ff];return _0x9257f8;};'use strict';var util=require(_0x9bda('0x0'));var _=require(_0x9bda('0x1'));var EventEmitter=require(_0x9bda('0x2'))[_0x9bda('0x3')];var AGIReply=require(_0x9bda('0x4'));var AGIError=require(_0x9bda('0x5'));function AGIChannel(_0x509c19){var _0x3b0b02=this,_0x14e41a=new AGIReply(),_0x59ac61=![],_0x425749={};EventEmitter[_0x9bda('0x6')](_0x3b0b02);_0x509c19[_0x9bda('0x7')](_0x9bda('0x8'));_0x509c19[_0x9bda('0x9')](0x8*0x3c*0x3c*0x3e8);_0x14e41a[_0x9bda('0x7')](_0x9bda('0x8'));_0x14e41a['on']('headers',function(_0x173d6c){for(var _0x1a8094 in _0x173d6c){_0x3b0b02[_0x1a8094]=_0x173d6c[_0x1a8094];}_0x3b0b02['emit'](_0x9bda('0xa'));});_0x14e41a['on'](_0x9bda('0xb'),function(_0x17b03f){if(_0x17b03f[_0x9bda('0xc')]()==_0x9bda('0xd')){_0x3b0b02[_0x9bda('0xe')](_0x9bda('0xd'));return;}if(_0x17b03f[_0x9bda('0xf')](0x0,0xb)=='520-Invalid'){_0x59ac61=!![];}if(_0x59ac61){_0x425749['rx']+=_0x17b03f+'\x0a';if(_0x17b03f[_0x9bda('0x10')](_0x9bda('0x11'))!=-0x1){_0x59ac61=![];}}else{_0x425749['rx']=_0x17b03f;}if(_0x59ac61){return;}if(typeof _0x425749['cb']==_0x9bda('0x12')){var _0x209e96=_0x425749['rx'][_0x9bda('0xf')](0x0,0x3),_0x548ea7=null,_0xf76d16=null;_0x209e96=parseInt(_0x209e96);if(isNaN(_0x209e96)){_0x425749['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x9bda('0x13')});return;}if(_0x209e96!=0xc8){_0x425749['cb'](null,{'code':_0x209e96,'result':-0x1,'extra':'KO'});return;}_0x548ea7=_0x425749['rx']['substring'](0x4)['replace']('result=','');if(_0x548ea7[_0x9bda('0x14')]('\x20')!=-0x1){_0x548ea7=_0x548ea7[_0x9bda('0x15')](0x0,_0x548ea7['indexOf']('\x20'));}if(_['startsWith'](_0x548ea7,'-1')){_0x548ea7=parseInt(_0x548ea7);}_0xf76d16=_0x425749['rx']['split']('\x20');if(_0xf76d16['length']==0x3){_0xf76d16=_0xf76d16[0x2][_0x9bda('0xf')](0x1,_0xf76d16[0x2]['length']-0x1);}else if(_0xf76d16[_0x9bda('0x16')]>0x3){var _0x5a383b=/\((.+)\)/;var _0x5d9bd2=_0x425749['rx'][_0x9bda('0x17')](_0x5a383b);if(_0x5d9bd2){_0xf76d16=_0x5d9bd2[0x1];}else{_0xf76d16=null;}}else{_0xf76d16=null;}_0x425749['cb'](null,{'code':_0x209e96,'result':_0x548ea7,'extra':_0xf76d16});}});_0x509c19['on'](_0x9bda('0x18'),function(_0x22dad7){_0x3b0b02['emit']('error',new AGIError(_0x9bda('0x19'),_0x22dad7[_0x9bda('0x1a')]));});_0x509c19['on'](_0x9bda('0x1b'),function(){_0x3b0b02[_0x9bda('0xe')](_0x9bda('0x1b'),new AGIError(_0x9bda('0x1c')));});_0x509c19['on'](_0x9bda('0x1d'),function(){_0x3b0b02[_0x9bda('0xe')](_0x9bda('0x1d'),new AGIError(_0x9bda('0x1e')));_0x509c19[_0x9bda('0x1f')]();});_0x509c19[_0x9bda('0x20')](_0x14e41a);this[_0x9bda('0x21')]=function(_0x357871,_0x7b4023){var _0x357871=_0x357871||'',_0x7b4023=typeof _0x7b4023=='function'?_0x7b4023:new Function();_0x425749={'tx':_0x357871,'rx':'','cb':_0x7b4023};_0x509c19['write'](_0x357871+'\x0a');},this[_0x9bda('0x1b')]=function(){_0x509c19[_0x9bda('0x1f')]();};}util[_0x9bda('0x22')](AGIChannel,EventEmitter);AGIChannel[_0x9bda('0x23')]['sendRequest']=function(_0x51719a){return this[_0x9bda('0x21')][_0x9bda('0x24')](this,_0x51719a);};AGIChannel[_0x9bda('0x23')][_0x9bda('0x25')]=function(){return this[_0x9bda('0x26')](_0x9bda('0x27'));};AGIChannel[_0x9bda('0x23')]['getData']=function(_0x593b97,_0xff7151,_0x267214){_0x593b97=_0x593b97===undefined?_0x9bda('0x28'):_0x593b97;_0xff7151=_0xff7151===undefined?'5':_0xff7151;_0x267214=_0x267214===undefined?'1':_0x267214;return this['sendRequest'](util[_0x9bda('0x29')](_0x9bda('0x2a'),_0x593b97,_0xff7151*0x3e8,_0x267214));};AGIChannel[_0x9bda('0x23')]['noop']=function(_0x47e5b5){_0x47e5b5=_0x47e5b5||_0x9bda('0x2b');return this[_0x9bda('0x26')](util[_0x9bda('0x29')](_0x9bda('0x2c'),_0x47e5b5));};AGIChannel['prototype'][_0x9bda('0x2d')]=function(_0x2efe3b,_0x36f137){if(_[_0x9bda('0x2e')](_0x36f137)){return this['sendRequest'](util['format'](_0x9bda('0x2f'),_0x2efe3b,_0x36f137[_0x9bda('0x30')](',')));}return this['sendRequest'](util['format'](_0x9bda('0x2f'),_0x2efe3b,_0x36f137));};AGIChannel['prototype'][_0x9bda('0x31')]=function(_0x33833e){return this[_0x9bda('0x26')](util[_0x9bda('0x29')]('SET\x20CONTEXT\x20%s',_0x33833e));};AGIChannel[_0x9bda('0x23')][_0x9bda('0x32')]=function(_0xbe09d3){return this[_0x9bda('0x26')](util[_0x9bda('0x29')]('SET\x20EXTENSION\x20%s',_0xbe09d3));};AGIChannel['prototype'][_0x9bda('0x33')]=function(_0x43f269){return this[_0x9bda('0x26')](util['format'](_0x9bda('0x34'),_0x43f269));};AGIChannel[_0x9bda('0x23')][_0x9bda('0xd')]=function(){return this['sendRequest']('HANGUP');};AGIChannel[_0x9bda('0x23')]['setVariable']=function(_0x5abec9,_0x218a63){var _0x4fb213=_[_0x9bda('0x35')](_0x218a63)||_[_0x9bda('0x36')](_0x218a63)?_0x218a63[_0x9bda('0x37')]():_0x218a63;return this[_0x9bda('0x26')](util[_0x9bda('0x29')]('SET\x20VARIABLE\x20%s\x20\x22%s\x22',_0x5abec9,_0x4fb213?_0x4fb213['toString']()[_0x9bda('0x38')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x9bda('0x23')][_0x9bda('0x39')]=function(_0x34beb8,_0x41b17b){return this['sendRequest'](util[_0x9bda('0x29')]('SAY\x20NUMBER\x20%s\x20%s',_0x34beb8,_0x41b17b));};AGIChannel[_0x9bda('0x23')]['sayDigits']=function(_0x3a323f,_0x32fb2d){return this[_0x9bda('0x26')](util['format'](_0x9bda('0x3a'),_0x3a323f,_0x32fb2d));};AGIChannel[_0x9bda('0x23')][_0x9bda('0x3b')]=function(_0x370c9e,_0x230882){return this[_0x9bda('0x26')](util[_0x9bda('0x29')](_0x9bda('0x3c'),_0x370c9e,_0x230882));};AGIChannel[_0x9bda('0x23')][_0x9bda('0x3d')]=function(_0x40417c,_0x4cf0e0,_0x44ba1e){_0x4cf0e0=_0x4cf0e0||this[_0x9bda('0x3e')];_0x44ba1e=_0x44ba1e||0x1;this[_0x9bda('0x31')](_0x40417c);this[_0x9bda('0x32')](_0x4cf0e0);this[_0x9bda('0x33')](_0x44ba1e);return this[_0x9bda('0x3f')](util[_0x9bda('0x29')](_0x9bda('0x40'),_0x40417c,_0x4cf0e0,_0x44ba1e));};AGIChannel[_0x9bda('0x23')][_0x9bda('0x41')]=function(_0x9f2f2b){return this['sendRequest'](util['format'](_0x9bda('0x42'),_0x9f2f2b));};AGIChannel[_0x9bda('0x23')][_0x9bda('0x43')]=function(_0x39eec9,_0x43698f,_0x279f2f,_0x1d5ca8,_0x4f25ad,_0x836da6){_0x43698f=_0x43698f||'wav';_0x279f2f=_0x279f2f||'';_0x1d5ca8=_0x1d5ca8===undefined?-0x1:_0x1d5ca8==='-1'?-0x1:_0x1d5ca8*0x3e8;_0x4f25ad=_0x4f25ad===undefined?'':'s='+_0x4f25ad;_0x836da6=_0x836da6?_0x9bda('0x44'):'';return this[_0x9bda('0x26')](util[_0x9bda('0x29')](_0x9bda('0x45'),_0x39eec9,_0x43698f,_0x279f2f,_0x1d5ca8,_0x836da6,_0x4f25ad));};AGIChannel['prototype'][_0x9bda('0x46')]=function(_0x16a4f8,_0x2b732f){_0x2b732f=_0x2b732f||'';return this[_0x9bda('0x26')](util[_0x9bda('0x29')](_0x9bda('0x47'),_0x16a4f8,_0x2b732f));};AGIChannel['prototype'][_0x9bda('0x48')]=function(_0x59e75e){return this[_0x9bda('0x2d')](_0x9bda('0x49'),_0x59e75e);};AGIChannel[_0x9bda('0x23')][_0x9bda('0x4a')]=function(_0x483ea3){return this[_0x9bda('0x2d')](_0x9bda('0x4b'),_0x483ea3);};AGIChannel['prototype'][_0x9bda('0x18')]=function(_0x5835db,_0x1917d0){this[_0x9bda('0x3f')](util[_0x9bda('0x29')](_0x9bda('0x4c'),_0x5835db['id'],_0x5835db[_0x9bda('0x4d')],_0x1917d0));return{'code':0x1f4,'result':'-1','extra':''};};module['exports']=AGIChannel;