Built motion from commit 1fa89557.|2.6.10
[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 _0xe83e=['sync','prototype','answer','sendRequest','ANSWER','getData','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','setPriority','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','SAY\x20NUMBER\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','wav','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','wait','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','exports','util','lodash','events','EventEmitter','./reply','./error','call','setEncoding','utf8','setTimeout','headers','emit','line','toLowerCase','hangup','substring','520-Invalid','search','no\x20code','replace','result=','indexOf','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','function','write','inherits'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_0xe83e,0x7a));var _0xee83=function(_0xafdc9f,_0x295bf4){_0xafdc9f=_0xafdc9f-0x0;var _0x5e1ed2=_0xe83e[_0xafdc9f];return _0x5e1ed2;};'use strict';var util=require(_0xee83('0x0'));var _=require(_0xee83('0x1'));var EventEmitter=require(_0xee83('0x2'))[_0xee83('0x3')];var AGIReply=require(_0xee83('0x4'));var AGIError=require(_0xee83('0x5'));function AGIChannel(_0x5a510f){var _0x55b088=this,_0x306ef5=new AGIReply(),_0x3ddd32=![],_0x21ad81={};EventEmitter[_0xee83('0x6')](_0x55b088);_0x5a510f[_0xee83('0x7')](_0xee83('0x8'));_0x5a510f[_0xee83('0x9')](0x8*0x3c*0x3c*0x3e8);_0x306ef5['setEncoding'](_0xee83('0x8'));_0x306ef5['on'](_0xee83('0xa'),function(_0x4098f3){for(var _0x1ae420 in _0x4098f3){_0x55b088[_0x1ae420]=_0x4098f3[_0x1ae420];}_0x55b088[_0xee83('0xb')]('ready');});_0x306ef5['on'](_0xee83('0xc'),function(_0x2c9e7b){if(_0x2c9e7b[_0xee83('0xd')]()==_0xee83('0xe')){_0x55b088[_0xee83('0xb')](_0xee83('0xe'));return;}if(_0x2c9e7b[_0xee83('0xf')](0x0,0xb)==_0xee83('0x10')){_0x3ddd32=!![];}if(_0x3ddd32){_0x21ad81['rx']+=_0x2c9e7b+'\x0a';if(_0x2c9e7b[_0xee83('0x11')]('520\x20End\x20of\x20proper')!=-0x1){_0x3ddd32=![];}}else{_0x21ad81['rx']=_0x2c9e7b;}if(_0x3ddd32){return;}if(typeof _0x21ad81['cb']=='function'){var _0x370cbe=_0x21ad81['rx'][_0xee83('0xf')](0x0,0x3),_0x3e780e=null,_0x2190c8=null;_0x370cbe=parseInt(_0x370cbe);if(isNaN(_0x370cbe)){_0x21ad81['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xee83('0x12')});return;}if(_0x370cbe!=0xc8){_0x21ad81['cb'](null,{'code':_0x370cbe,'result':-0x1,'extra':'KO'});return;}_0x3e780e=_0x21ad81['rx'][_0xee83('0xf')](0x4)[_0xee83('0x13')](_0xee83('0x14'),'');if(_0x3e780e['indexOf']('\x20')!=-0x1){_0x3e780e=_0x3e780e['substr'](0x0,_0x3e780e[_0xee83('0x15')]('\x20'));}if(_[_0xee83('0x16')](_0x3e780e,'-1')){_0x3e780e=parseInt(_0x3e780e);}_0x2190c8=_0x21ad81['rx'][_0xee83('0x17')]('\x20');if(_0x2190c8[_0xee83('0x18')]==0x3){_0x2190c8=_0x2190c8[0x2][_0xee83('0xf')](0x1,_0x2190c8[0x2][_0xee83('0x18')]-0x1);}else if(_0x2190c8[_0xee83('0x18')]>0x3){var _0x2443dd=/\((.+)\)/;var _0x4126b7=_0x21ad81['rx'][_0xee83('0x19')](_0x2443dd);if(_0x4126b7){_0x2190c8=_0x4126b7[0x1];}else{_0x2190c8=null;}}else{_0x2190c8=null;}_0x21ad81['cb'](null,{'code':_0x370cbe,'result':_0x3e780e,'extra':_0x2190c8});}});_0x5a510f['on'](_0xee83('0x1a'),function(_0x1dcb66){_0x55b088[_0xee83('0xb')]('error',new AGIError(_0xee83('0x1b'),_0x1dcb66['code']));});_0x5a510f['on'](_0xee83('0x1c'),function(){_0x55b088[_0xee83('0xb')](_0xee83('0x1c'),new AGIError(_0xee83('0x1d')));});_0x5a510f['on'](_0xee83('0x1e'),function(){_0x55b088[_0xee83('0xb')](_0xee83('0x1e'),new AGIError(_0xee83('0x1f')));_0x5a510f[_0xee83('0x20')]();});_0x5a510f[_0xee83('0x21')](_0x306ef5);this[_0xee83('0x22')]=function(_0x11724e,_0x226746){var _0x11724e=_0x11724e||'',_0x226746=typeof _0x226746==_0xee83('0x23')?_0x226746:new Function();_0x21ad81={'tx':_0x11724e,'rx':'','cb':_0x226746};_0x5a510f[_0xee83('0x24')](_0x11724e+'\x0a');},this[_0xee83('0x1c')]=function(){_0x5a510f[_0xee83('0x20')]();};}util[_0xee83('0x25')](AGIChannel,EventEmitter);AGIChannel['prototype']['sendRequest']=function(_0x2a46db){return this['command'][_0xee83('0x26')](this,_0x2a46db);};AGIChannel[_0xee83('0x27')][_0xee83('0x28')]=function(){return this[_0xee83('0x29')](_0xee83('0x2a'));};AGIChannel[_0xee83('0x27')][_0xee83('0x2b')]=function(_0x3ff1e9,_0x12afcc,_0x3e6ba8){_0x3ff1e9=_0x3ff1e9===undefined?'beep':_0x3ff1e9;_0x12afcc=_0x12afcc===undefined?'5':_0x12afcc;_0x3e6ba8=_0x3e6ba8===undefined?'1':_0x3e6ba8;return this['sendRequest'](util[_0xee83('0x2c')](_0xee83('0x2d'),_0x3ff1e9,_0x12afcc*0x3e8,_0x3e6ba8));};AGIChannel[_0xee83('0x27')][_0xee83('0x2e')]=function(_0x58654f){_0x58654f=_0x58654f||_0xee83('0x2f');return this[_0xee83('0x29')](util[_0xee83('0x2c')](_0xee83('0x30'),_0x58654f));};AGIChannel[_0xee83('0x27')][_0xee83('0x31')]=function(_0x3af483,_0x28e72b){if(_[_0xee83('0x32')](_0x28e72b)){return this[_0xee83('0x29')](util['format'](_0xee83('0x33'),_0x3af483,_0x28e72b['join'](',')));}return this[_0xee83('0x29')](util[_0xee83('0x2c')](_0xee83('0x33'),_0x3af483,_0x28e72b));};AGIChannel['prototype'][_0xee83('0x34')]=function(_0x25ae75){return this[_0xee83('0x29')](util['format'](_0xee83('0x35'),_0x25ae75));};AGIChannel[_0xee83('0x27')][_0xee83('0x36')]=function(_0xfc9d93){return this[_0xee83('0x29')](util[_0xee83('0x2c')](_0xee83('0x37'),_0xfc9d93));};AGIChannel['prototype'][_0xee83('0x38')]=function(_0x540bf3){return this[_0xee83('0x29')](util[_0xee83('0x2c')](_0xee83('0x39'),_0x540bf3));};AGIChannel['prototype'][_0xee83('0xe')]=function(){return this[_0xee83('0x29')](_0xee83('0x3a'));};AGIChannel[_0xee83('0x27')][_0xee83('0x3b')]=function(_0x52da0d,_0x34d5b2){var _0x5e462=_[_0xee83('0x3c')](_0x34d5b2)||_[_0xee83('0x3d')](_0x34d5b2)?_0x34d5b2[_0xee83('0x3e')]():_0x34d5b2;return this[_0xee83('0x29')](util[_0xee83('0x2c')](_0xee83('0x3f'),_0x52da0d,_0x5e462?_0x5e462[_0xee83('0x3e')]()[_0xee83('0x13')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xee83('0x27')]['sayNumber']=function(_0x50eca0,_0x3fc261){return this[_0xee83('0x29')](util['format'](_0xee83('0x40'),_0x50eca0,_0x3fc261));};AGIChannel[_0xee83('0x27')]['sayDigits']=function(_0x256c9d,_0x4a4999){return this[_0xee83('0x29')](util[_0xee83('0x2c')]('SAY\x20DIGITS\x20%s\x20%s',_0x256c9d,_0x4a4999));};AGIChannel[_0xee83('0x27')][_0xee83('0x41')]=function(_0x4e051a,_0x46925e){return this['sendRequest'](util[_0xee83('0x2c')](_0xee83('0x42'),_0x4e051a,_0x46925e));};AGIChannel[_0xee83('0x27')][_0xee83('0x43')]=function(_0x1f5c53,_0x466b4c,_0x50cbf7){_0x466b4c=_0x466b4c||this['extension'];_0x50cbf7=_0x50cbf7||0x1;this[_0xee83('0x34')](_0x1f5c53);this[_0xee83('0x36')](_0x466b4c);this['setPriority'](_0x50cbf7);return this[_0xee83('0x2e')](util[_0xee83('0x2c')](_0xee83('0x44'),_0x1f5c53,_0x466b4c,_0x50cbf7));};AGIChannel[_0xee83('0x27')]['getVariable']=function(_0x4eafc6){return this['sendRequest'](util[_0xee83('0x2c')](_0xee83('0x45'),_0x4eafc6));};AGIChannel[_0xee83('0x27')]['recordFile']=function(_0x2709cd,_0x491c5a,_0x523c66,_0x1915b2,_0x19844e,_0x52a5fb){_0x491c5a=_0x491c5a||_0xee83('0x46');_0x523c66=_0x523c66||'';_0x1915b2=_0x1915b2===undefined?-0x1:_0x1915b2==='-1'?-0x1:_0x1915b2*0x3e8;_0x19844e=_0x19844e===undefined?'':'s='+_0x19844e;_0x52a5fb=_0x52a5fb?_0xee83('0x47'):'';return this[_0xee83('0x29')](util['format'](_0xee83('0x48'),_0x2709cd,_0x491c5a,_0x523c66,_0x1915b2,_0x52a5fb,_0x19844e));};AGIChannel[_0xee83('0x27')][_0xee83('0x49')]=function(_0x151861,_0x2a4def){_0x2a4def=_0x2a4def||'';return this[_0xee83('0x29')](util[_0xee83('0x2c')](_0xee83('0x4a'),_0x151861,_0x2a4def));};AGIChannel[_0xee83('0x27')]['agi']=function(_0x4830d6){return this[_0xee83('0x31')](_0xee83('0x4b'),_0x4830d6);};AGIChannel['prototype'][_0xee83('0x4c')]=function(_0x4856b9){return this['exec'](_0xee83('0x4d'),_0x4856b9);};AGIChannel[_0xee83('0x27')][_0xee83('0x1a')]=function(_0x4a7c44,_0x1768ed){this['noop'](util[_0xee83('0x2c')](_0xee83('0x4e'),_0x4a7c44['id'],_0x4a7c44['label'],_0x1768ed));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xee83('0x4f')]=AGIChannel;