03bf82789a1a4ccb869132c58f70c8c2c5a8f7a8
[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 _0xd817=['intervals','models','VoiceExtension','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','hasOwnProperty','priority','extensions','extension','format','CDR(type)=%s','type','context','VoiceExtensionId','inbound','push','Set','CDR(routeid)=','outbound','CDR(destination)=','${EXTEN:','cutdigits','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval','*,*,*,*','IntervalId','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','toLowerCase','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime','last','concat','Hangup','destroy','bulkCreate','sortBy','catch','error','rewrite','lodash','Interval','findAll','then'];(function(_0xefd519,_0xc62635){var _0x4bb882=function(_0x37e0a1){while(--_0x37e0a1){_0xefd519['push'](_0xefd519['shift']());}};_0x4bb882(++_0xc62635);}(_0xd817,0xd4));var _0x7d81=function(_0x57fa7e,_0xd0b5ce){_0x57fa7e=_0x57fa7e-0x0;var _0x320671=_0xd817[_0x57fa7e];return _0x320671;};'use strict';var _=require(_0x7d81('0x0'));var util=require('util');function rewrite(_0xbaa86d,_0x427586){var _0x28b01e=this;return _0xbaa86d['models'][_0x7d81('0x1')][_0x7d81('0x2')]({'raw':!![]})[_0x7d81('0x3')](function(_0x3f9e42){_0x28b01e[_0x7d81('0x4')]=_0x3f9e42;return _0xbaa86d[_0x7d81('0x5')][_0x7d81('0x6')][_0x7d81('0x2')]({'where':{'IntervalId':_0x427586['IntervalId']},'raw':!![]});})[_0x7d81('0x3')](function(_0xd27c99){return _0xbaa86d[_0x7d81('0x5')][_0x7d81('0x6')]['findAll']({'where':{'exten':{'$in':_[_0x7d81('0x7')](_[_0x7d81('0x8')](_0xd27c99,_0x7d81('0x9')))}},'order':[{'raw':_0x7d81('0xa')}],'raw':!![]});})[_0x7d81('0x3')](function(_0x343f90){var _0x23c810=_[_0x7d81('0xb')](_0x343f90,{'priority':'1'});var _0x4d3e08=_[_0x7d81('0xb')](_0x343f90,{'isApp':0x1});var _0x3adacc=_['groupBy'](_0x4d3e08,_0x7d81('0x9'));var _0x292ecb=['queue','playback'];var _0x383b85=[];var _0x1f21cf=[];for(var _0x37f8fd in _0x3adacc){if(_0x3adacc[_0x7d81('0xc')](_0x37f8fd)){_0x28b01e[_0x7d81('0xd')]=0x2;_0x28b01e[_0x7d81('0xe')]=[];_0x28b01e[_0x7d81('0xf')]=_['find'](_0x23c810,{'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')]});_0x28b01e[_0x7d81('0xe')]['push']({'type':_0x3adacc[_0x37f8fd][0x0]['type'],'app':'Set','appdata':util[_0x7d81('0x10')](_0x7d81('0x11'),_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')]),'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0]['exten'],'priority':_0x28b01e[_0x7d81('0xd')]++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});if(_0x3adacc[_0x37f8fd][0x0]['type']===_0x7d81('0x15')){_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0]['type'],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x18')+_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')],'context':_0x3adacc[_0x37f8fd][0x0]['context'],'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')],'priority':_0x28b01e['priority']++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});}else if(_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')]===_0x7d81('0x19')){if(_0x28b01e[_0x7d81('0xf')]){_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0]['type'],'app':'Set','appdata':_0x7d81('0x1a')+(_0x28b01e['extension']['cutdigits']?_0x7d81('0x1b')+_0x28b01e[_0x7d81('0xf')][_0x7d81('0x1c')]+'}':'${EXTEN}'),'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')],'priority':_0x28b01e[_0x7d81('0xd')]++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});}_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x18')+_0x3adacc[_0x37f8fd][0x0]['VoiceExtensionId'],'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0]['exten'],'priority':_0x28b01e['priority']++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});var _0x36c3d5=_0x28b01e[_0x7d81('0xd')]++;_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x1d'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x36c3d5+0x2)+_0x7d81('0x1e')+(_0x36c3d5+0x1)+')','context':_0x3adacc[_0x37f8fd][0x0]['context'],'exten':_0x3adacc[_0x37f8fd][0x0]['exten'],'priority':_0x36c3d5,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});if(_0x28b01e['extension']){_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x28b01e[_0x7d81('0xf')][_0x7d81('0x1c')]?_0x7d81('0x1f')+_0x28b01e[_0x7d81('0xf')]['cutdigits']+'}':_0x7d81('0x20'),'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0]['exten'],'priority':_0x28b01e['priority']++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});}_0x28b01e['extensions'][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0]['type'],'app':'Set','appdata':_0x7d81('0x21')+_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')],'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')],'priority':_0x28b01e[_0x7d81('0xd')]++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});if(_0x28b01e[_0x7d81('0xf')]&&_0x28b01e['extension'][_0x7d81('0xc')](_0x7d81('0x22'))&&_0x28b01e['extension']['recordingFormat']!==_0x7d81('0x23')){_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x24'),'context':_0x3adacc[_0x37f8fd][0x0]['context'],'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')],'priority':_0x28b01e[_0x7d81('0xd')]++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0]['VoiceExtensionId']});_0x28b01e['extensions'][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x25')+_0x28b01e[_0x7d81('0xf')][_0x7d81('0x22')]||_0x7d81('0x26'),'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0]['exten'],'priority':_0x28b01e[_0x7d81('0xd')]++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});}}_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x27'),'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')],'priority':_0x28b01e[_0x7d81('0xd')]++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});_0x28b01e[_0x7d81('0xe')]['push']({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x28'),'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')],'priority':_0x28b01e['priority']++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0]['VoiceExtensionId']});_0x28b01e[_0x7d81('0xe')][_0x7d81('0x16')]({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x29'),'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'exten':_0x3adacc[_0x37f8fd][0x0]['exten'],'priority':_0x28b01e['priority']++,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});for(var _0x4d4919=0x0,_0x486cd2=0x0;_0x4d4919<_0x3adacc[_0x37f8fd][_0x7d81('0x2a')];_0x4d4919+=0x1,_0x486cd2=0x0){var _0x64bacf=_0x3adacc[_0x37f8fd][_0x4d4919];if(_0x64bacf[_0x7d81('0x12')]){_0x64bacf[_0x7d81('0x12')]=_0x64bacf[_0x7d81('0x12')]['toLowerCase']();}var _0x28cd69=[];var _0x47f91f=[];delete _0x64bacf['id'];delete _0x64bacf[_0x7d81('0x2b')];delete _0x64bacf[_0x7d81('0x2c')];var _0x40cc36=_0x64bacf[_0x7d81('0x2d')]!==_0x7d81('0x2e')?[_0x64bacf[_0x7d81('0x2d')]]:_0x64bacf[_0x7d81('0x2f')]?_['map'](_[_0x7d81('0xb')](_0x28b01e[_0x7d81('0x4')],{'IntervalId':_0x64bacf[_0x7d81('0x2f')]}),_0x7d81('0x2d')):[];if(_0x64bacf['hasOwnProperty'](_0x7d81('0x30'))){if(_0x64bacf[_0x7d81('0x30')]&&_0x64bacf[_0x7d81('0x30')]!=='--'){_0x28cd69[_0x7d81('0x16')]({'type':_0x64bacf[_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':'CDR(tag)='+_0x64bacf['tag'],'context':_0x64bacf[_0x7d81('0x13')],'exten':_0x64bacf[_0x7d81('0x9')],'priority':_0x40cc36['length']+_0x28b01e[_0x7d81('0xd')]+_0x486cd2++,'VoiceExtensionId':_0x64bacf[_0x7d81('0x14')]});}}if(_0x64bacf[_0x7d81('0x12')]===_0x7d81('0x19')&&_0x64bacf[_0x7d81('0xc')]('callerID')){if(_0x64bacf[_0x7d81('0x31')]){_0x28cd69[_0x7d81('0x16')]({'type':_0x64bacf[_0x7d81('0x12')],'app':_0x7d81('0x1d'),'appdata':_0x7d81('0x32')+_0x64bacf[_0x7d81('0x31')]+')','context':_0x64bacf['context'],'exten':_0x64bacf[_0x7d81('0x9')],'priority':_0x40cc36[_0x7d81('0x2a')]+_0x28b01e[_0x7d81('0xd')]+_0x486cd2++,'VoiceExtensionId':_0x64bacf[_0x7d81('0x14')]});}else{_0x28cd69[_0x7d81('0x16')]({'type':_0x64bacf['type'],'app':_0x7d81('0x1d'),'appdata':_0x7d81('0x33'),'context':_0x64bacf[_0x7d81('0x13')],'exten':_0x64bacf[_0x7d81('0x9')],'priority':_0x40cc36[_0x7d81('0x2a')]+_0x28b01e['priority']+_0x486cd2++,'VoiceExtensionId':_0x64bacf[_0x7d81('0x14')]});}}if(_0x64bacf[_0x7d81('0xc')]('answer')){if(_0x292ecb[_0x7d81('0x34')](_0x64bacf[_0x7d81('0x35')][_0x7d81('0x36')]())>=0x0&&_0x64bacf['appType']!==_0x7d81('0x37')){if(_0x64bacf[_0x7d81('0x38')]){_0x28cd69[_0x7d81('0x16')]({'type':_0x64bacf[_0x7d81('0x12')],'app':_0x7d81('0x1d'),'appdata':_0x7d81('0x39'),'context':_0x64bacf[_0x7d81('0x13')],'exten':_0x64bacf[_0x7d81('0x9')],'priority':_0x40cc36[_0x7d81('0x2a')]+_0x28b01e[_0x7d81('0xd')]+_0x486cd2++,'VoiceExtensionId':_0x64bacf[_0x7d81('0x14')]});_0x28cd69['push']({'type':_0x64bacf[_0x7d81('0x12')],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x3a'),'context':_0x64bacf['context'],'exten':_0x64bacf['exten'],'priority':_0x40cc36['length']+_0x28b01e['priority']+_0x486cd2++,'VoiceExtensionId':_0x64bacf[_0x7d81('0x14')]});}else{_0x28cd69[_0x7d81('0x16')]({'type':_0x64bacf[_0x7d81('0x12')],'app':_0x7d81('0x1d'),'appdata':_0x7d81('0x3b'),'context':_0x64bacf[_0x7d81('0x13')],'exten':_0x64bacf['exten'],'priority':_0x40cc36['length']+_0x28b01e[_0x7d81('0xd')]+_0x486cd2++,'VoiceExtensionId':_0x64bacf[_0x7d81('0x14')]});_0x28cd69[_0x7d81('0x16')]({'type':_0x64bacf['type'],'app':_0x7d81('0x17'),'appdata':_0x7d81('0x3c'),'context':_0x64bacf[_0x7d81('0x13')],'exten':_0x64bacf[_0x7d81('0x9')],'priority':_0x40cc36['length']+_0x28b01e[_0x7d81('0xd')]+_0x486cd2++,'VoiceExtensionId':_0x64bacf[_0x7d81('0x14')]});}}}for(var _0x5456ee=0x0;_0x5456ee<_0x40cc36['length'];_0x5456ee+=0x1){var _0x2400fa=_0x28b01e[_0x7d81('0xd')]+_0x40cc36['length'];var _0x1071d6=_0x5456ee===_0x40cc36[_0x7d81('0x2a')]-0x1?_0x28b01e[_0x7d81('0xd')]+_0x28cd69[_0x7d81('0x2a')]+_0x47f91f['length']+0x2:_0x28b01e['priority']+_0x5456ee+0x1;_0x28cd69[_0x7d81('0x3d')](_0x5456ee,0x0,{'type':_0x64bacf[_0x7d81('0x12')],'app':_0x7d81('0x3e'),'appdata':_0x40cc36[_0x5456ee]+'?'+_0x64bacf['context']+',${EXTEN},'+_0x2400fa+':'+_0x64bacf['context']+',${EXTEN},'+_0x1071d6,'exten':_0x64bacf[_0x7d81('0x9')],'context':_0x64bacf['context'],'priority':_0x28b01e['priority']+_0x5456ee,'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0]['VoiceExtensionId']});}_0x64bacf['priority']=_0x28cd69['length']?_[_0x7d81('0x3f')](_0x28cd69)[_0x7d81('0xd')]+0x1:_0x28b01e[_0x7d81('0xd')];_0x28b01e[_0x7d81('0xd')]=(_0x47f91f['length']?_[_0x7d81('0x3f')](_0x47f91f)[_0x7d81('0xd')]:_0x64bacf[_0x7d81('0xd')])+0x1;_0x28b01e[_0x7d81('0xe')]=_[_0x7d81('0x40')](_0x28b01e['extensions'],_0x28cd69,[_0x64bacf],_0x47f91f);}_0x28b01e['extensions']['push']({'type':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x12')],'app':_0x7d81('0x41'),'exten':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x9')],'context':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x13')],'priority':_0x28b01e[_0x7d81('0xd')],'VoiceExtensionId':_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]});_0x383b85[_0x7d81('0x16')](_0x3adacc[_0x37f8fd][0x0][_0x7d81('0x14')]);_0x1f21cf=_[_0x7d81('0x40')](_0x1f21cf,_0x28b01e[_0x7d81('0xe')]);}}return _0xbaa86d['transaction'](function(_0x1292c8){return _0xbaa86d[_0x7d81('0x5')][_0x7d81('0x6')][_0x7d81('0x42')]({'where':{'VoiceExtensionId':{'$in':_0x383b85}},'transaction':_0x1292c8})[_0x7d81('0x3')](function(_0x1100bc){return _0xbaa86d[_0x7d81('0x5')][_0x7d81('0x6')][_0x7d81('0x43')](_[_0x7d81('0x44')](_0x1f21cf,'priority'),{'transaction':_0x1292c8});});});})[_0x7d81('0x45')](function(_0x3311e2){console[_0x7d81('0x46')](_0x3311e2);});}exports[_0x7d81('0x47')]=rewrite;