Built motion from commit 9d0783e6.|2.6.13
[motion2.git] / server / components / extensions / rewrite.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 _0xb0b9=['custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','splice','GotoIfTime',',${EXTEN},','last','concat','destroy','bulkCreate','sortBy','catch','error','lodash','util','models','Interval','findAll','then','intervals','VoiceExtension','IntervalId','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','find','push','type','Set','format','CDR(type)=%s','outbound','CDR(destination)=','cutdigits','${EXTEN:','VoiceExtensionId','CDR(routeid)=','context','ExecIf','):Goto(','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','app','appType'];(function(_0x2aa0e7,_0x4e5145){var _0x1472c0=function(_0x4deaeb){while(--_0x4deaeb){_0x2aa0e7['push'](_0x2aa0e7['shift']());}};_0x1472c0(++_0x4e5145);}(_0xb0b9,0x1f0));var _0x9b0b=function(_0x44a601,_0xb65d5f){_0x44a601=_0x44a601-0x0;var _0xfe6e4b=_0xb0b9[_0x44a601];return _0xfe6e4b;};'use strict';var _=require(_0x9b0b('0x0'));var util=require(_0x9b0b('0x1'));function rewrite(_0x239e9d,_0x2ae912){var _0x590168=this;return _0x239e9d[_0x9b0b('0x2')][_0x9b0b('0x3')][_0x9b0b('0x4')]({'raw':!![]})[_0x9b0b('0x5')](function(_0x369241){_0x590168[_0x9b0b('0x6')]=_0x369241;return _0x239e9d[_0x9b0b('0x2')][_0x9b0b('0x7')][_0x9b0b('0x4')]({'where':{'IntervalId':_0x2ae912[_0x9b0b('0x8')]},'raw':!![]});})[_0x9b0b('0x5')](function(_0x2c18c4){return _0x239e9d['models']['VoiceExtension'][_0x9b0b('0x4')]({'where':{'exten':{'$in':_[_0x9b0b('0x9')](_[_0x9b0b('0xa')](_0x2c18c4,_0x9b0b('0xb')))}},'order':[{'raw':_0x9b0b('0xc')}],'raw':!![]});})[_0x9b0b('0x5')](function(_0x2f8e6e){var _0x360309=_[_0x9b0b('0xd')](_0x2f8e6e,{'priority':'1'});var _0x9d8ee1=_[_0x9b0b('0xd')](_0x2f8e6e,{'isApp':0x1});var _0x10232c=_[_0x9b0b('0xe')](_0x9d8ee1,_0x9b0b('0xb'));var _0xae6a0c=[_0x9b0b('0xf'),_0x9b0b('0x10')];var _0x176438=[];var _0x564dd6=[];for(var _0x4d6338 in _0x10232c){if(_0x10232c[_0x9b0b('0x11')](_0x4d6338)){_0x590168[_0x9b0b('0x12')]=0x2;_0x590168[_0x9b0b('0x13')]=[];_0x590168[_0x9b0b('0x14')]=_[_0x9b0b('0x15')](_0x360309,{'exten':_0x10232c[_0x4d6338][0x0]['exten']});_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':_0x9b0b('0x18'),'appdata':util[_0x9b0b('0x19')](_0x9b0b('0x1a'),_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')]),'context':_0x10232c[_0x4d6338][0x0]['context'],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0]['VoiceExtensionId']});if(_0x10232c[_0x4d6338][0x0]['type']==='inbound'){_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':_0x9b0b('0x18'),'appdata':'CDR(routeid)='+_0x10232c[_0x4d6338][0x0]['VoiceExtensionId'],'context':_0x10232c[_0x4d6338][0x0]['context'],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0]['VoiceExtensionId']});}else if(_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')]===_0x9b0b('0x1b')){if(_0x590168[_0x9b0b('0x14')]){_0x590168['extensions'][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0]['type'],'app':'Set','appdata':_0x9b0b('0x1c')+(_0x590168[_0x9b0b('0x14')][_0x9b0b('0x1d')]?_0x9b0b('0x1e')+_0x590168[_0x9b0b('0x14')][_0x9b0b('0x1d')]+'}':'${EXTEN}'),'context':_0x10232c[_0x4d6338][0x0]['context'],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168['priority']++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});}_0x590168[_0x9b0b('0x13')]['push']({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':'Set','appdata':_0x9b0b('0x20')+_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')],'context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});var _0x82dacd=_0x590168[_0x9b0b('0x12')]++;_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':_0x9b0b('0x22'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x82dacd+0x2)+_0x9b0b('0x23')+(_0x82dacd+0x1)+')','context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x82dacd,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0]['VoiceExtensionId']});if(_0x590168[_0x9b0b('0x14')]){_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':_0x9b0b('0x18'),'appdata':_0x590168[_0x9b0b('0x14')][_0x9b0b('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x590168[_0x9b0b('0x14')][_0x9b0b('0x1d')]+'}':_0x9b0b('0x24'),'context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168['priority']++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});}_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':_0x9b0b('0x18'),'appdata':'outboundrouteid='+_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')],'context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0]['exten'],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});if(_0x590168[_0x9b0b('0x14')]&&_0x590168[_0x9b0b('0x14')][_0x9b0b('0x11')]('recordingFormat')&&_0x590168[_0x9b0b('0x14')][_0x9b0b('0x25')]!==_0x9b0b('0x26')){_0x590168[_0x9b0b('0x13')]['push']({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':_0x9b0b('0x18'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0]['exten'],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0]['type'],'app':_0x9b0b('0x18'),'appdata':_0x9b0b('0x27')+_0x590168['extension'][_0x9b0b('0x25')]||_0x9b0b('0x28'),'context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0]['exten'],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});}}_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0]['type'],'app':_0x9b0b('0x18'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});_0x590168['extensions'][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':_0x9b0b('0x18'),'appdata':_0x9b0b('0x29'),'context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0]['VoiceExtensionId']});_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0]['type'],'app':_0x9b0b('0x18'),'appdata':_0x9b0b('0x2a'),'context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'exten':_0x10232c[_0x4d6338][0x0][_0x9b0b('0xb')],'priority':_0x590168[_0x9b0b('0x12')]++,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]});for(var _0x1479c9=0x0,_0x54a358=0x0;_0x1479c9<_0x10232c[_0x4d6338][_0x9b0b('0x2b')];_0x1479c9+=0x1,_0x54a358=0x0){var _0x301d25=_0x10232c[_0x4d6338][_0x1479c9];if(_0x301d25['type']){_0x301d25[_0x9b0b('0x17')]=_0x301d25['type'][_0x9b0b('0x2c')]();}var _0x2e4a5f=[];var _0x14ba8c=[];delete _0x301d25['id'];delete _0x301d25['createdAt'];delete _0x301d25[_0x9b0b('0x2d')];var _0x49255b=_0x301d25[_0x9b0b('0x2e')]!==_0x9b0b('0x2f')?[_0x301d25['interval']]:_0x301d25[_0x9b0b('0x8')]?_['map'](_[_0x9b0b('0xd')](_0x590168[_0x9b0b('0x6')],{'IntervalId':_0x301d25[_0x9b0b('0x8')]}),'interval'):[];if(_0x301d25['hasOwnProperty'](_0x9b0b('0x30'))){if(_0x301d25[_0x9b0b('0x30')]&&_0x301d25[_0x9b0b('0x30')]!=='--'){_0x2e4a5f[_0x9b0b('0x16')]({'type':_0x301d25['type'],'app':'Set','appdata':_0x9b0b('0x31')+_0x301d25[_0x9b0b('0x30')],'context':_0x301d25[_0x9b0b('0x21')],'exten':_0x301d25[_0x9b0b('0xb')],'priority':_0x49255b[_0x9b0b('0x2b')]+_0x590168[_0x9b0b('0x12')]+_0x54a358++,'VoiceExtensionId':_0x301d25['VoiceExtensionId']});}}if(_0x301d25['type']===_0x9b0b('0x1b')&&_0x301d25[_0x9b0b('0x11')](_0x9b0b('0x32'))){if(_0x301d25[_0x9b0b('0x32')]){_0x2e4a5f[_0x9b0b('0x16')]({'type':_0x301d25[_0x9b0b('0x17')],'app':'ExecIf','appdata':_0x9b0b('0x33')+_0x301d25[_0x9b0b('0x32')]+')','context':_0x301d25[_0x9b0b('0x21')],'exten':_0x301d25['exten'],'priority':_0x49255b[_0x9b0b('0x2b')]+_0x590168[_0x9b0b('0x12')]+_0x54a358++,'VoiceExtensionId':_0x301d25['VoiceExtensionId']});}else{_0x2e4a5f[_0x9b0b('0x16')]({'type':_0x301d25[_0x9b0b('0x17')],'app':_0x9b0b('0x22'),'appdata':_0x9b0b('0x34'),'context':_0x301d25[_0x9b0b('0x21')],'exten':_0x301d25[_0x9b0b('0xb')],'priority':_0x49255b[_0x9b0b('0x2b')]+_0x590168[_0x9b0b('0x12')]+_0x54a358++,'VoiceExtensionId':_0x301d25[_0x9b0b('0x1f')]});}}if(_0x301d25[_0x9b0b('0x11')]('answer')){if(_0xae6a0c[_0x9b0b('0x35')](_0x301d25[_0x9b0b('0x36')][_0x9b0b('0x2c')]())>=0x0&&_0x301d25[_0x9b0b('0x37')]!==_0x9b0b('0x38')){if(_0x301d25['answer']){_0x2e4a5f['push']({'type':_0x301d25[_0x9b0b('0x17')],'app':'ExecIf','appdata':_0x9b0b('0x39'),'context':_0x301d25[_0x9b0b('0x21')],'exten':_0x301d25[_0x9b0b('0xb')],'priority':_0x49255b['length']+_0x590168[_0x9b0b('0x12')]+_0x54a358++,'VoiceExtensionId':_0x301d25['VoiceExtensionId']});_0x2e4a5f['push']({'type':_0x301d25[_0x9b0b('0x17')],'app':'Set','appdata':_0x9b0b('0x3a'),'context':_0x301d25[_0x9b0b('0x21')],'exten':_0x301d25['exten'],'priority':_0x49255b[_0x9b0b('0x2b')]+_0x590168[_0x9b0b('0x12')]+_0x54a358++,'VoiceExtensionId':_0x301d25[_0x9b0b('0x1f')]});}else{_0x2e4a5f[_0x9b0b('0x16')]({'type':_0x301d25[_0x9b0b('0x17')],'app':_0x9b0b('0x22'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x301d25['context'],'exten':_0x301d25[_0x9b0b('0xb')],'priority':_0x49255b[_0x9b0b('0x2b')]+_0x590168[_0x9b0b('0x12')]+_0x54a358++,'VoiceExtensionId':_0x301d25[_0x9b0b('0x1f')]});_0x2e4a5f[_0x9b0b('0x16')]({'type':_0x301d25[_0x9b0b('0x17')],'app':_0x9b0b('0x18'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x301d25[_0x9b0b('0x21')],'exten':_0x301d25['exten'],'priority':_0x49255b[_0x9b0b('0x2b')]+_0x590168[_0x9b0b('0x12')]+_0x54a358++,'VoiceExtensionId':_0x301d25[_0x9b0b('0x1f')]});}}}for(var _0x2e98b7=0x0;_0x2e98b7<_0x49255b[_0x9b0b('0x2b')];_0x2e98b7+=0x1){var _0x3cc0bf=_0x590168[_0x9b0b('0x12')]+_0x49255b['length'];var _0x364b66=_0x2e98b7===_0x49255b[_0x9b0b('0x2b')]-0x1?_0x590168[_0x9b0b('0x12')]+_0x2e4a5f[_0x9b0b('0x2b')]+_0x14ba8c[_0x9b0b('0x2b')]+0x2:_0x590168[_0x9b0b('0x12')]+_0x2e98b7+0x1;_0x2e4a5f[_0x9b0b('0x3b')](_0x2e98b7,0x0,{'type':_0x301d25['type'],'app':_0x9b0b('0x3c'),'appdata':_0x49255b[_0x2e98b7]+'?'+_0x301d25[_0x9b0b('0x21')]+_0x9b0b('0x3d')+_0x3cc0bf+':'+_0x301d25[_0x9b0b('0x21')]+_0x9b0b('0x3d')+_0x364b66,'exten':_0x301d25[_0x9b0b('0xb')],'context':_0x301d25[_0x9b0b('0x21')],'priority':_0x590168[_0x9b0b('0x12')]+_0x2e98b7,'VoiceExtensionId':_0x10232c[_0x4d6338][0x0]['VoiceExtensionId']});}_0x301d25[_0x9b0b('0x12')]=_0x2e4a5f['length']?_[_0x9b0b('0x3e')](_0x2e4a5f)['priority']+0x1:_0x590168[_0x9b0b('0x12')];_0x590168['priority']=(_0x14ba8c['length']?_[_0x9b0b('0x3e')](_0x14ba8c)['priority']:_0x301d25['priority'])+0x1;_0x590168[_0x9b0b('0x13')]=_[_0x9b0b('0x3f')](_0x590168[_0x9b0b('0x13')],_0x2e4a5f,[_0x301d25],_0x14ba8c);}_0x590168[_0x9b0b('0x13')][_0x9b0b('0x16')]({'type':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x17')],'app':'Hangup','exten':_0x10232c[_0x4d6338][0x0]['exten'],'context':_0x10232c[_0x4d6338][0x0][_0x9b0b('0x21')],'priority':_0x590168[_0x9b0b('0x12')],'VoiceExtensionId':_0x10232c[_0x4d6338][0x0]['VoiceExtensionId']});_0x176438[_0x9b0b('0x16')](_0x10232c[_0x4d6338][0x0][_0x9b0b('0x1f')]);_0x564dd6=_[_0x9b0b('0x3f')](_0x564dd6,_0x590168['extensions']);}}return _0x239e9d['transaction'](function(_0x325dfa){return _0x239e9d[_0x9b0b('0x2')]['VoiceExtension'][_0x9b0b('0x40')]({'where':{'VoiceExtensionId':{'$in':_0x176438}},'transaction':_0x325dfa})['then'](function(_0x2d6f5d){return _0x239e9d[_0x9b0b('0x2')][_0x9b0b('0x7')][_0x9b0b('0x41')](_[_0x9b0b('0x42')](_0x564dd6,_0x9b0b('0x12')),{'transaction':_0x325dfa});});});})[_0x9b0b('0x43')](function(_0x211c2b){console[_0x9b0b('0x44')](_0x211c2b);});}exports['rewrite']=rewrite;