85953846bfe09fb067e48cf66611057cca8ba9ad
[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 _0x36d4=['GET\x20VARIABLE\x20\x22%s\x22','recordFile','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','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','./reply','./error','call','utf8','setTimeout','setEncoding','headers','emit','ready','hangup','search','function','substring','no\x20code','replace','result=','indexOf','startsWith','length','match','error','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','pipe','write','inherits','prototype','sendRequest','answer','ANSWER','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','setContext','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','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','extension','setExtension','GOTO\x20%s\x20%s\x20%s','getVariable'];(function(_0x2ebc49,_0x233068){var _0x2acd77=function(_0x18ba79){while(--_0x18ba79){_0x2ebc49['push'](_0x2ebc49['shift']());}};_0x2acd77(++_0x233068);}(_0x36d4,0x17d));var _0x436d=function(_0x2f023d,_0x29dfe5){_0x2f023d=_0x2f023d-0x0;var _0x4ef240=_0x36d4[_0x2f023d];return _0x4ef240;};'use strict';var util=require(_0x436d('0x0'));var _=require(_0x436d('0x1'));var EventEmitter=require(_0x436d('0x2'))[_0x436d('0x3')];var AGIReply=require(_0x436d('0x4'));var AGIError=require(_0x436d('0x5'));function AGIChannel(_0x47c5e3){var _0x296d0a=this,_0x29af36=new AGIReply(),_0x201144=![],_0x8250e6={};EventEmitter[_0x436d('0x6')](_0x296d0a);_0x47c5e3['setEncoding'](_0x436d('0x7'));_0x47c5e3[_0x436d('0x8')](0x8*0x3c*0x3c*0x3e8);_0x29af36[_0x436d('0x9')](_0x436d('0x7'));_0x29af36['on'](_0x436d('0xa'),function(_0x29603a){for(var _0x13d8f6 in _0x29603a){_0x296d0a[_0x13d8f6]=_0x29603a[_0x13d8f6];}_0x296d0a[_0x436d('0xb')](_0x436d('0xc'));});_0x29af36['on']('line',function(_0x1e7813){if(_0x1e7813['toLowerCase']()==_0x436d('0xd')){_0x296d0a[_0x436d('0xb')](_0x436d('0xd'));return;}if(_0x1e7813['substring'](0x0,0xb)=='520-Invalid'){_0x201144=!![];}if(_0x201144){_0x8250e6['rx']+=_0x1e7813+'\x0a';if(_0x1e7813[_0x436d('0xe')]('520\x20End\x20of\x20proper')!=-0x1){_0x201144=![];}}else{_0x8250e6['rx']=_0x1e7813;}if(_0x201144){return;}if(typeof _0x8250e6['cb']==_0x436d('0xf')){var _0x118d4b=_0x8250e6['rx'][_0x436d('0x10')](0x0,0x3),_0x1fd9cd=null,_0x13965f=null;_0x118d4b=parseInt(_0x118d4b);if(isNaN(_0x118d4b)){_0x8250e6['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x436d('0x11')});return;}if(_0x118d4b!=0xc8){_0x8250e6['cb'](null,{'code':_0x118d4b,'result':-0x1,'extra':'KO'});return;}_0x1fd9cd=_0x8250e6['rx'][_0x436d('0x10')](0x4)[_0x436d('0x12')](_0x436d('0x13'),'');if(_0x1fd9cd['indexOf']('\x20')!=-0x1){_0x1fd9cd=_0x1fd9cd['substr'](0x0,_0x1fd9cd[_0x436d('0x14')]('\x20'));}if(_[_0x436d('0x15')](_0x1fd9cd,'-1')){_0x1fd9cd=parseInt(_0x1fd9cd);}_0x13965f=_0x8250e6['rx']['split']('\x20');if(_0x13965f[_0x436d('0x16')]==0x3){_0x13965f=_0x13965f[0x2][_0x436d('0x10')](0x1,_0x13965f[0x2][_0x436d('0x16')]-0x1);}else if(_0x13965f[_0x436d('0x16')]>0x3){var _0x1a1fc4=/\((.+)\)/;var _0x28f073=_0x8250e6['rx'][_0x436d('0x17')](_0x1a1fc4);if(_0x28f073){_0x13965f=_0x28f073[0x1];}else{_0x13965f=null;}}else{_0x13965f=null;}_0x8250e6['cb'](null,{'code':_0x118d4b,'result':_0x1fd9cd,'extra':_0x13965f});}});_0x47c5e3['on'](_0x436d('0x18'),function(_0x3c0056){_0x296d0a[_0x436d('0xb')](_0x436d('0x18'),new AGIError('E_AGI_SOCKET_ERROR',_0x3c0056['code']));});_0x47c5e3['on'](_0x436d('0x19'),function(){_0x296d0a[_0x436d('0xb')](_0x436d('0x19'),new AGIError(_0x436d('0x1a')));});_0x47c5e3['on'](_0x436d('0x1b'),function(){_0x296d0a[_0x436d('0xb')]('timeout',new AGIError(_0x436d('0x1c')));_0x47c5e3['destroy']();});_0x47c5e3[_0x436d('0x1d')](_0x29af36);this['command']=function(_0x3a2019,_0x128f23){var _0x3a2019=_0x3a2019||'',_0x128f23=typeof _0x128f23==_0x436d('0xf')?_0x128f23:new Function();_0x8250e6={'tx':_0x3a2019,'rx':'','cb':_0x128f23};_0x47c5e3[_0x436d('0x1e')](_0x3a2019+'\x0a');},this[_0x436d('0x19')]=function(){_0x47c5e3['destroy']();};}util[_0x436d('0x1f')](AGIChannel,EventEmitter);AGIChannel[_0x436d('0x20')][_0x436d('0x21')]=function(_0x5a5ebd){return this['command']['sync'](this,_0x5a5ebd);};AGIChannel['prototype'][_0x436d('0x22')]=function(){return this['sendRequest'](_0x436d('0x23'));};AGIChannel[_0x436d('0x20')]['getData']=function(_0x42b7af,_0x4f4320,_0x545ca5){_0x42b7af=_0x42b7af===undefined?_0x436d('0x24'):_0x42b7af;_0x4f4320=_0x4f4320===undefined?'5':_0x4f4320;_0x545ca5=_0x545ca5===undefined?'1':_0x545ca5;return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x26'),_0x42b7af,_0x4f4320*0x3e8,_0x545ca5));};AGIChannel[_0x436d('0x20')][_0x436d('0x27')]=function(_0x289ef5){_0x289ef5=_0x289ef5||'NO\x20MESSAGE';return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x28'),_0x289ef5));};AGIChannel[_0x436d('0x20')][_0x436d('0x29')]=function(_0x46d447,_0x2002bd){if(_[_0x436d('0x2a')](_0x2002bd)){return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x2b'),_0x46d447,_0x2002bd['join'](',')));}return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x2b'),_0x46d447,_0x2002bd));};AGIChannel[_0x436d('0x20')][_0x436d('0x2c')]=function(_0x44ca84){return this[_0x436d('0x21')](util[_0x436d('0x25')]('SET\x20CONTEXT\x20%s',_0x44ca84));};AGIChannel['prototype']['setExtension']=function(_0x494c4e){return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x2d'),_0x494c4e));};AGIChannel[_0x436d('0x20')][_0x436d('0x2e')]=function(_0x3eef7d){return this['sendRequest'](util[_0x436d('0x25')](_0x436d('0x2f'),_0x3eef7d));};AGIChannel[_0x436d('0x20')][_0x436d('0xd')]=function(){return this['sendRequest'](_0x436d('0x30'));};AGIChannel['prototype']['setVariable']=function(_0x586289,_0x2be28){var _0x25f486=_[_0x436d('0x31')](_0x2be28)||_[_0x436d('0x32')](_0x2be28)?_0x2be28[_0x436d('0x33')]():_0x2be28;return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x34'),_0x586289,_0x25f486?_0x25f486[_0x436d('0x33')]()[_0x436d('0x12')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x436d('0x20')][_0x436d('0x35')]=function(_0x453164,_0x5b9ab4){return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x36'),_0x453164,_0x5b9ab4));};AGIChannel[_0x436d('0x20')][_0x436d('0x37')]=function(_0x1027a9,_0x5385f4){return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x38'),_0x1027a9,_0x5385f4));};AGIChannel[_0x436d('0x20')][_0x436d('0x39')]=function(_0x1f1245,_0x36a557){return this['sendRequest'](util['format'](_0x436d('0x3a'),_0x1f1245,_0x36a557));};AGIChannel[_0x436d('0x20')]['continueAt']=function(_0x2e519f,_0x279461,_0x895037){_0x279461=_0x279461||this[_0x436d('0x3b')];_0x895037=_0x895037||0x1;this[_0x436d('0x2c')](_0x2e519f);this[_0x436d('0x3c')](_0x279461);this[_0x436d('0x2e')](_0x895037);return this[_0x436d('0x27')](util[_0x436d('0x25')](_0x436d('0x3d'),_0x2e519f,_0x279461,_0x895037));};AGIChannel[_0x436d('0x20')][_0x436d('0x3e')]=function(_0x78e781){return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x3f'),_0x78e781));};AGIChannel['prototype'][_0x436d('0x40')]=function(_0x4129e6,_0x257be1,_0x3f0c3d,_0x2bc227,_0x1bb171,_0x200baf){_0x257be1=_0x257be1||'wav';_0x3f0c3d=_0x3f0c3d||'';_0x2bc227=_0x2bc227===undefined?-0x1:_0x2bc227==='-1'?-0x1:_0x2bc227*0x3e8;_0x1bb171=_0x1bb171===undefined?'':'s='+_0x1bb171;_0x200baf=_0x200baf?'BEEP':'';return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x41'),_0x4129e6,_0x257be1,_0x3f0c3d,_0x2bc227,_0x200baf,_0x1bb171));};AGIChannel[_0x436d('0x20')][_0x436d('0x42')]=function(_0x36fc4b,_0x3e773a){_0x3e773a=_0x3e773a||'';return this[_0x436d('0x21')](util[_0x436d('0x25')](_0x436d('0x43'),_0x36fc4b,_0x3e773a));};AGIChannel[_0x436d('0x20')]['agi']=function(_0x32fc69){return this['exec'](_0x436d('0x44'),_0x32fc69);};AGIChannel[_0x436d('0x20')][_0x436d('0x45')]=function(_0x1bf8c4){return this[_0x436d('0x29')](_0x436d('0x46'),_0x1bf8c4);};AGIChannel[_0x436d('0x20')][_0x436d('0x18')]=function(_0x1236ca,_0x2e367f){this[_0x436d('0x27')](util[_0x436d('0x25')](_0x436d('0x47'),_0x1236ca['id'],_0x1236ca[_0x436d('0x48')],_0x2e367f));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x436d('0x49')]=AGIChannel;