fb42d5f54bf76a7a2197eb1bfd083662f79f3a74
[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 _0xefe2=['$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','answer','indexOf','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','bulkCreate','sortBy','catch','lodash','util','Interval','then','intervals','models','VoiceExtension','IntervalId','findAll','uniq','map','filter','groupBy','exten','queue','playback','hasOwnProperty','priority','find','extensions','push','Set','format','type','VoiceExtensionId','outbound','extension','CDR(destination)=','cutdigits','${EXTEN}','context','CDR(routeid)=','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','length','toLowerCase','createdAt','interval','*,*,*,*','tag','CDR(tag)=','callerID'];(function(_0x247fa1,_0x4ec37c){var _0x244f35=function(_0xfb98be){while(--_0xfb98be){_0x247fa1['push'](_0x247fa1['shift']());}};_0x244f35(++_0x4ec37c);}(_0xefe2,0xd9));var _0x2efe=function(_0x5f57f2,_0x455cdd){_0x5f57f2=_0x5f57f2-0x0;var _0x4ff723=_0xefe2[_0x5f57f2];return _0x4ff723;};'use strict';var _=require(_0x2efe('0x0'));var util=require(_0x2efe('0x1'));function rewrite(_0x521ca2,_0x1278b){var _0x26190d=this;return _0x521ca2['models'][_0x2efe('0x2')]['findAll']({'raw':!![]})[_0x2efe('0x3')](function(_0x4553a6){_0x26190d[_0x2efe('0x4')]=_0x4553a6;return _0x521ca2[_0x2efe('0x5')][_0x2efe('0x6')]['findAll']({'where':{'IntervalId':_0x1278b[_0x2efe('0x7')]},'raw':!![]});})[_0x2efe('0x3')](function(_0x2a2d22){return _0x521ca2[_0x2efe('0x5')]['VoiceExtension'][_0x2efe('0x8')]({'where':{'exten':{'$in':_[_0x2efe('0x9')](_[_0x2efe('0xa')](_0x2a2d22,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x2efe('0x3')](function(_0x5a17d3){var _0x58ba63=_[_0x2efe('0xb')](_0x5a17d3,{'priority':'1'});var _0x34085f=_[_0x2efe('0xb')](_0x5a17d3,{'isApp':0x1});var _0x22e98f=_[_0x2efe('0xc')](_0x34085f,_0x2efe('0xd'));var _0x39a93b=[_0x2efe('0xe'),_0x2efe('0xf')];var _0x3c8910=[];var _0x4cd723=[];for(var _0x58ffa1 in _0x22e98f){if(_0x22e98f[_0x2efe('0x10')](_0x58ffa1)){_0x26190d[_0x2efe('0x11')]=0x2;_0x26190d['extensions']=[];_0x26190d['extension']=_[_0x2efe('0x12')](_0x58ba63,{'exten':_0x22e98f[_0x58ffa1][0x0]['exten']});_0x26190d[_0x2efe('0x13')][_0x2efe('0x14')]({'type':_0x22e98f[_0x58ffa1][0x0]['type'],'app':_0x2efe('0x15'),'appdata':util[_0x2efe('0x16')]('CDR(type)=%s',_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')]),'context':_0x22e98f[_0x58ffa1][0x0]['context'],'exten':_0x22e98f[_0x58ffa1][0x0]['exten'],'priority':_0x26190d[_0x2efe('0x11')]++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});if(_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')]===_0x2efe('0x19')){if(_0x26190d[_0x2efe('0x1a')]){_0x26190d[_0x2efe('0x13')][_0x2efe('0x14')]({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x1b')+(_0x26190d[_0x2efe('0x1a')][_0x2efe('0x1c')]?'${EXTEN:'+_0x26190d[_0x2efe('0x1a')]['cutdigits']+'}':_0x2efe('0x1d')),'context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x26190d['priority']++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});}_0x26190d[_0x2efe('0x13')]['push']({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x1f')+_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')],'context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x26190d[_0x2efe('0x11')]++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});var _0x3d4449=_0x26190d[_0x2efe('0x11')]++;_0x26190d[_0x2efe('0x13')][_0x2efe('0x14')]({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x20'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x3d4449+0x2)+_0x2efe('0x21')+(_0x3d4449+0x1)+')','context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x3d4449,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});if(_0x26190d[_0x2efe('0x1a')]){_0x26190d[_0x2efe('0x13')][_0x2efe('0x14')]({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x26190d[_0x2efe('0x1a')]['cutdigits']?_0x2efe('0x22')+_0x26190d[_0x2efe('0x1a')][_0x2efe('0x1c')]+'}':_0x2efe('0x23'),'context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0]['exten'],'priority':_0x26190d[_0x2efe('0x11')]++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});}_0x26190d[_0x2efe('0x13')][_0x2efe('0x14')]({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x24')+_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')],'context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x26190d['priority']++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});if(_0x26190d[_0x2efe('0x1a')]&&_0x26190d[_0x2efe('0x1a')][_0x2efe('0x10')](_0x2efe('0x25'))&&_0x26190d[_0x2efe('0x1a')][_0x2efe('0x25')]!==_0x2efe('0x26')){_0x26190d[_0x2efe('0x13')]['push']({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x22e98f[_0x58ffa1][0x0]['context'],'exten':_0x22e98f[_0x58ffa1][0x0]['exten'],'priority':_0x26190d[_0x2efe('0x11')]++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});_0x26190d[_0x2efe('0x13')]['push']({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x27')+_0x26190d['extension']['recordingFormat']||_0x2efe('0x28'),'context':_0x22e98f[_0x58ffa1][0x0]['context'],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x26190d[_0x2efe('0x11')]++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});}}_0x26190d['extensions'][_0x2efe('0x14')]({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x29'),'context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x26190d[_0x2efe('0x11')]++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0]['VoiceExtensionId']});_0x26190d[_0x2efe('0x13')]['push']({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x2a'),'context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x26190d['priority']++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});_0x26190d[_0x2efe('0x13')]['push']({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':'MONITOR_OPTIONS=ab','context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'exten':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0xd')],'priority':_0x26190d[_0x2efe('0x11')]++,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});for(var _0x3356ec=0x0,_0x20c5f4=0x0;_0x3356ec<_0x22e98f[_0x58ffa1][_0x2efe('0x2b')];_0x3356ec+=0x1,_0x20c5f4=0x0){var _0xbcd760=_0x22e98f[_0x58ffa1][_0x3356ec];if(_0xbcd760[_0x2efe('0x17')]){_0xbcd760[_0x2efe('0x17')]=_0xbcd760[_0x2efe('0x17')][_0x2efe('0x2c')]();}var _0x1c9032=[];var _0x469822=[];delete _0xbcd760['id'];delete _0xbcd760[_0x2efe('0x2d')];delete _0xbcd760['updatedAt'];var _0x10e196=_0xbcd760[_0x2efe('0x2e')]!==_0x2efe('0x2f')?[_0xbcd760[_0x2efe('0x2e')]]:_0xbcd760[_0x2efe('0x7')]?_[_0x2efe('0xa')](_[_0x2efe('0xb')](_0x26190d['intervals'],{'IntervalId':_0xbcd760[_0x2efe('0x7')]}),_0x2efe('0x2e')):[];if(_0xbcd760[_0x2efe('0x10')](_0x2efe('0x30'))){if(_0xbcd760[_0x2efe('0x30')]&&_0xbcd760['tag']!=='--'){_0x1c9032[_0x2efe('0x14')]({'type':_0xbcd760[_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x31')+_0xbcd760[_0x2efe('0x30')],'context':_0xbcd760[_0x2efe('0x1e')],'exten':_0xbcd760[_0x2efe('0xd')],'priority':_0x10e196[_0x2efe('0x2b')]+_0x26190d[_0x2efe('0x11')]+_0x20c5f4++,'VoiceExtensionId':_0xbcd760['VoiceExtensionId']});}}if(_0xbcd760['type']==='outbound'&&_0xbcd760[_0x2efe('0x10')](_0x2efe('0x32'))){if(_0xbcd760['callerID']){_0x1c9032[_0x2efe('0x14')]({'type':_0xbcd760['type'],'app':'ExecIf','appdata':_0x2efe('0x33')+_0xbcd760['callerID']+')','context':_0xbcd760[_0x2efe('0x1e')],'exten':_0xbcd760[_0x2efe('0xd')],'priority':_0x10e196[_0x2efe('0x2b')]+_0x26190d['priority']+_0x20c5f4++,'VoiceExtensionId':_0xbcd760[_0x2efe('0x18')]});}else{_0x1c9032[_0x2efe('0x14')]({'type':_0xbcd760[_0x2efe('0x17')],'app':_0x2efe('0x20'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0xbcd760[_0x2efe('0x1e')],'exten':_0xbcd760[_0x2efe('0xd')],'priority':_0x10e196['length']+_0x26190d[_0x2efe('0x11')]+_0x20c5f4++,'VoiceExtensionId':_0xbcd760[_0x2efe('0x18')]});}}if(_0xbcd760[_0x2efe('0x10')](_0x2efe('0x34'))){if(_0x39a93b[_0x2efe('0x35')](_0xbcd760['app'][_0x2efe('0x2c')]())>=0x0&&_0xbcd760[_0x2efe('0x36')]!==_0x2efe('0x37')){if(_0xbcd760['answer']){_0x1c9032[_0x2efe('0x14')]({'type':_0xbcd760[_0x2efe('0x17')],'app':_0x2efe('0x20'),'appdata':_0x2efe('0x38'),'context':_0xbcd760['context'],'exten':_0xbcd760[_0x2efe('0xd')],'priority':_0x10e196['length']+_0x26190d[_0x2efe('0x11')]+_0x20c5f4++,'VoiceExtensionId':_0xbcd760[_0x2efe('0x18')]});_0x1c9032[_0x2efe('0x14')]({'type':_0xbcd760['type'],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0xbcd760[_0x2efe('0x1e')],'exten':_0xbcd760['exten'],'priority':_0x10e196[_0x2efe('0x2b')]+_0x26190d['priority']+_0x20c5f4++,'VoiceExtensionId':_0xbcd760[_0x2efe('0x18')]});}else{_0x1c9032[_0x2efe('0x14')]({'type':_0xbcd760[_0x2efe('0x17')],'app':_0x2efe('0x20'),'appdata':_0x2efe('0x39'),'context':_0xbcd760[_0x2efe('0x1e')],'exten':_0xbcd760[_0x2efe('0xd')],'priority':_0x10e196['length']+_0x26190d[_0x2efe('0x11')]+_0x20c5f4++,'VoiceExtensionId':_0xbcd760[_0x2efe('0x18')]});_0x1c9032[_0x2efe('0x14')]({'type':_0xbcd760[_0x2efe('0x17')],'app':_0x2efe('0x15'),'appdata':_0x2efe('0x3a'),'context':_0xbcd760['context'],'exten':_0xbcd760[_0x2efe('0xd')],'priority':_0x10e196[_0x2efe('0x2b')]+_0x26190d[_0x2efe('0x11')]+_0x20c5f4++,'VoiceExtensionId':_0xbcd760[_0x2efe('0x18')]});}}}for(var _0x3a159e=0x0;_0x3a159e<_0x10e196['length'];_0x3a159e+=0x1){var _0x459373=_0x26190d[_0x2efe('0x11')]+_0x10e196[_0x2efe('0x2b')];var _0x35bfe7=_0x3a159e===_0x10e196['length']-0x1?_0x26190d[_0x2efe('0x11')]+_0x1c9032[_0x2efe('0x2b')]+_0x469822[_0x2efe('0x2b')]+0x2:_0x26190d['priority']+_0x3a159e+0x1;_0x1c9032[_0x2efe('0x3b')](_0x3a159e,0x0,{'type':_0xbcd760['type'],'app':_0x2efe('0x3c'),'appdata':_0x10e196[_0x3a159e]+'?'+_0xbcd760[_0x2efe('0x1e')]+_0x2efe('0x3d')+_0x459373+':'+_0xbcd760[_0x2efe('0x1e')]+',${EXTEN},'+_0x35bfe7,'exten':_0xbcd760[_0x2efe('0xd')],'context':_0xbcd760[_0x2efe('0x1e')],'priority':_0x26190d[_0x2efe('0x11')]+_0x3a159e,'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});}_0xbcd760['priority']=_0x1c9032[_0x2efe('0x2b')]?_[_0x2efe('0x3e')](_0x1c9032)[_0x2efe('0x11')]+0x1:_0x26190d[_0x2efe('0x11')];_0x26190d[_0x2efe('0x11')]=(_0x469822[_0x2efe('0x2b')]?_[_0x2efe('0x3e')](_0x469822)['priority']:_0xbcd760[_0x2efe('0x11')])+0x1;_0x26190d[_0x2efe('0x13')]=_[_0x2efe('0x3f')](_0x26190d[_0x2efe('0x13')],_0x1c9032,[_0xbcd760],_0x469822);}_0x26190d[_0x2efe('0x13')][_0x2efe('0x14')]({'type':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x17')],'app':'Hangup','exten':_0x22e98f[_0x58ffa1][0x0]['exten'],'context':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x1e')],'priority':_0x26190d['priority'],'VoiceExtensionId':_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]});_0x3c8910[_0x2efe('0x14')](_0x22e98f[_0x58ffa1][0x0][_0x2efe('0x18')]);_0x4cd723=_[_0x2efe('0x3f')](_0x4cd723,_0x26190d[_0x2efe('0x13')]);}}return _0x521ca2['transaction'](function(_0x2a9615){return _0x521ca2[_0x2efe('0x5')][_0x2efe('0x6')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x3c8910}},'transaction':_0x2a9615})[_0x2efe('0x3')](function(_0x19771b){return _0x521ca2[_0x2efe('0x5')][_0x2efe('0x6')][_0x2efe('0x40')](_[_0x2efe('0x41')](_0x4cd723,_0x2efe('0x11')),{'transaction':_0x2a9615});});});})[_0x2efe('0x42')](function(_0x416197){console['error'](_0x416197);});}exports['rewrite']=rewrite;