34a0984d74e5deca8167700732e353a02f9298de
[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 _0x4ded=['CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','callerID','answer','indexOf','app','toLowerCase','appType','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','bulkCreate','rewrite','lodash','util','models','Interval','findAll','then','intervals','VoiceExtension','IntervalId','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','playback','hasOwnProperty','priority','extensions','extension','push','type','Set','context','VoiceExtensionId','outbound'];(function(_0x1a1149,_0x33be22){var _0x12887f=function(_0x5be9a6){while(--_0x5be9a6){_0x1a1149['push'](_0x1a1149['shift']());}};_0x12887f(++_0x33be22);}(_0x4ded,0xf3));var _0xd4de=function(_0x333db3,_0x509e00){_0x333db3=_0x333db3-0x0;var _0x39fcc4=_0x4ded[_0x333db3];return _0x39fcc4;};'use strict';var _=require(_0xd4de('0x0'));var util=require(_0xd4de('0x1'));function rewrite(_0xfcfb6,_0x113629){var _0x8f179f=this;return _0xfcfb6[_0xd4de('0x2')][_0xd4de('0x3')][_0xd4de('0x4')]({'raw':!![]})[_0xd4de('0x5')](function(_0x5385fc){_0x8f179f[_0xd4de('0x6')]=_0x5385fc;return _0xfcfb6[_0xd4de('0x2')][_0xd4de('0x7')][_0xd4de('0x4')]({'where':{'IntervalId':_0x113629[_0xd4de('0x8')]},'raw':!![]});})['then'](function(_0x24c265){return _0xfcfb6[_0xd4de('0x2')][_0xd4de('0x7')][_0xd4de('0x4')]({'where':{'exten':{'$in':_['uniq'](_[_0xd4de('0x9')](_0x24c265,_0xd4de('0xa')))}},'order':[{'raw':_0xd4de('0xb')}],'raw':!![]});})[_0xd4de('0x5')](function(_0x48198e){var _0xbe6f69=_[_0xd4de('0xc')](_0x48198e,{'priority':'1'});var _0x24ad33=_[_0xd4de('0xc')](_0x48198e,{'isApp':0x1});var _0x10516e=_[_0xd4de('0xd')](_0x24ad33,_0xd4de('0xa'));var _0x2c4eb1=['queue',_0xd4de('0xe')];var _0x2ef135=[];var _0x36e218=[];for(var _0x356157 in _0x10516e){if(_0x10516e[_0xd4de('0xf')](_0x356157)){_0x8f179f[_0xd4de('0x10')]=0x2;_0x8f179f[_0xd4de('0x11')]=[];_0x8f179f[_0xd4de('0x12')]=_['find'](_0xbe6f69,{'exten':_0x10516e[_0x356157][0x0]['exten']});_0x8f179f['extensions'][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':_0xd4de('0x15'),'appdata':util['format']('CDR(type)=%s',_0x10516e[_0x356157][0x0][_0xd4de('0x14')]),'context':_0x10516e[_0x356157][0x0][_0xd4de('0x16')],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});if(_0x10516e[_0x356157][0x0][_0xd4de('0x14')]===_0xd4de('0x18')){if(_0x8f179f['extension']){_0x8f179f['extensions'][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0]['type'],'app':'Set','appdata':_0xd4de('0x19')+(_0x8f179f[_0xd4de('0x12')][_0xd4de('0x1a')]?_0xd4de('0x1b')+_0x8f179f[_0xd4de('0x12')][_0xd4de('0x1a')]+'}':_0xd4de('0x1c')),'context':_0x10516e[_0x356157][0x0]['context'],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});}_0x8f179f[_0xd4de('0x11')]['push']({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':'Set','appdata':_0xd4de('0x1d')+_0x10516e[_0x356157][0x0]['VoiceExtensionId'],'context':_0x10516e[_0x356157][0x0]['context'],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});var _0x1d6b5c=_0x8f179f['priority']++;_0x8f179f['extensions'][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':_0xd4de('0x1e'),'appdata':_0xd4de('0x1f')+(_0x1d6b5c+0x2)+_0xd4de('0x20')+(_0x1d6b5c+0x1)+')','context':_0x10516e[_0x356157][0x0][_0xd4de('0x16')],'exten':_0x10516e[_0x356157][0x0]['exten'],'priority':_0x1d6b5c,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});if(_0x8f179f[_0xd4de('0x12')]){_0x8f179f[_0xd4de('0x11')][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0]['type'],'app':_0xd4de('0x15'),'appdata':_0x8f179f[_0xd4de('0x12')][_0xd4de('0x1a')]?_0xd4de('0x21')+_0x8f179f[_0xd4de('0x12')][_0xd4de('0x1a')]+'}':_0xd4de('0x22'),'context':_0x10516e[_0x356157][0x0][_0xd4de('0x16')],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f['priority']++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});}_0x8f179f[_0xd4de('0x11')][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':_0xd4de('0x15'),'appdata':_0xd4de('0x23')+_0x10516e[_0x356157][0x0]['VoiceExtensionId'],'context':_0x10516e[_0x356157][0x0][_0xd4de('0x16')],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});if(_0x8f179f['extension']&&_0x8f179f['extension'][_0xd4de('0xf')]('recordingFormat')&&_0x8f179f[_0xd4de('0x12')][_0xd4de('0x24')]!=='none'){_0x8f179f[_0xd4de('0x11')]['push']({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x10516e[_0x356157][0x0][_0xd4de('0x16')],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});_0x8f179f[_0xd4de('0x11')][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':'Set','appdata':_0xd4de('0x25')+_0x8f179f['extension'][_0xd4de('0x24')]||_0xd4de('0x26'),'context':_0x10516e[_0x356157][0x0]['context'],'exten':_0x10516e[_0x356157][0x0]['exten'],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0]['VoiceExtensionId']});}}_0x8f179f[_0xd4de('0x11')][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':_0xd4de('0x15'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x10516e[_0x356157][0x0]['context'],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0]['VoiceExtensionId']});_0x8f179f[_0xd4de('0x11')][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':'Set','appdata':_0xd4de('0x27'),'context':_0x10516e[_0x356157][0x0][_0xd4de('0x16')],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f[_0xd4de('0x10')]++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});_0x8f179f[_0xd4de('0x11')][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':_0xd4de('0x15'),'appdata':_0xd4de('0x28'),'context':_0x10516e[_0x356157][0x0]['context'],'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'priority':_0x8f179f['priority']++,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});for(var _0x5db739=0x0,_0x1b009a=0x0;_0x5db739<_0x10516e[_0x356157][_0xd4de('0x29')];_0x5db739+=0x1,_0x1b009a=0x0){var _0x343d39=_0x10516e[_0x356157][_0x5db739];if(_0x343d39['type']){_0x343d39[_0xd4de('0x14')]=_0x343d39[_0xd4de('0x14')]['toLowerCase']();}var _0x367e0b=[];var _0x3b3ff1=[];delete _0x343d39['id'];delete _0x343d39[_0xd4de('0x2a')];delete _0x343d39[_0xd4de('0x2b')];var _0xff6699=_0x343d39[_0xd4de('0x2c')]!==_0xd4de('0x2d')?[_0x343d39[_0xd4de('0x2c')]]:_0x343d39['IntervalId']?_[_0xd4de('0x9')](_['filter'](_0x8f179f[_0xd4de('0x6')],{'IntervalId':_0x343d39[_0xd4de('0x8')]}),_0xd4de('0x2c')):[];if(_0x343d39[_0xd4de('0xf')](_0xd4de('0x2e'))){if(_0x343d39[_0xd4de('0x2e')]&&_0x343d39[_0xd4de('0x2e')]!=='--'){_0x367e0b[_0xd4de('0x13')]({'type':_0x343d39[_0xd4de('0x14')],'app':_0xd4de('0x15'),'appdata':_0xd4de('0x2f')+_0x343d39[_0xd4de('0x2e')],'context':_0x343d39[_0xd4de('0x16')],'exten':_0x343d39['exten'],'priority':_0xff6699[_0xd4de('0x29')]+_0x8f179f[_0xd4de('0x10')]+_0x1b009a++,'VoiceExtensionId':_0x343d39[_0xd4de('0x17')]});}}if(_0x343d39[_0xd4de('0x14')]===_0xd4de('0x18')&&_0x343d39[_0xd4de('0xf')]('callerID')){if(_0x343d39[_0xd4de('0x30')]){_0x367e0b[_0xd4de('0x13')]({'type':_0x343d39[_0xd4de('0x14')],'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x343d39['callerID']+')','context':_0x343d39['context'],'exten':_0x343d39[_0xd4de('0xa')],'priority':_0xff6699[_0xd4de('0x29')]+_0x8f179f[_0xd4de('0x10')]+_0x1b009a++,'VoiceExtensionId':_0x343d39[_0xd4de('0x17')]});}else{_0x367e0b[_0xd4de('0x13')]({'type':_0x343d39[_0xd4de('0x14')],'app':_0xd4de('0x1e'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x343d39[_0xd4de('0x16')],'exten':_0x343d39[_0xd4de('0xa')],'priority':_0xff6699[_0xd4de('0x29')]+_0x8f179f[_0xd4de('0x10')]+_0x1b009a++,'VoiceExtensionId':_0x343d39[_0xd4de('0x17')]});}}if(_0x343d39[_0xd4de('0xf')](_0xd4de('0x31'))){if(_0x2c4eb1[_0xd4de('0x32')](_0x343d39[_0xd4de('0x33')][_0xd4de('0x34')]())>=0x0&&_0x343d39[_0xd4de('0x35')]!=='custom'){if(_0x343d39[_0xd4de('0x31')]){_0x367e0b[_0xd4de('0x13')]({'type':_0x343d39['type'],'app':'ExecIf','appdata':_0xd4de('0x36'),'context':_0x343d39[_0xd4de('0x16')],'exten':_0x343d39['exten'],'priority':_0xff6699[_0xd4de('0x29')]+_0x8f179f[_0xd4de('0x10')]+_0x1b009a++,'VoiceExtensionId':_0x343d39['VoiceExtensionId']});_0x367e0b[_0xd4de('0x13')]({'type':_0x343d39[_0xd4de('0x14')],'app':_0xd4de('0x15'),'appdata':_0xd4de('0x37'),'context':_0x343d39[_0xd4de('0x16')],'exten':_0x343d39['exten'],'priority':_0xff6699[_0xd4de('0x29')]+_0x8f179f[_0xd4de('0x10')]+_0x1b009a++,'VoiceExtensionId':_0x343d39[_0xd4de('0x17')]});}else{_0x367e0b[_0xd4de('0x13')]({'type':_0x343d39[_0xd4de('0x14')],'app':_0xd4de('0x1e'),'appdata':_0xd4de('0x38'),'context':_0x343d39[_0xd4de('0x16')],'exten':_0x343d39[_0xd4de('0xa')],'priority':_0xff6699[_0xd4de('0x29')]+_0x8f179f[_0xd4de('0x10')]+_0x1b009a++,'VoiceExtensionId':_0x343d39['VoiceExtensionId']});_0x367e0b[_0xd4de('0x13')]({'type':_0x343d39[_0xd4de('0x14')],'app':_0xd4de('0x15'),'appdata':_0xd4de('0x39'),'context':_0x343d39['context'],'exten':_0x343d39[_0xd4de('0xa')],'priority':_0xff6699[_0xd4de('0x29')]+_0x8f179f[_0xd4de('0x10')]+_0x1b009a++,'VoiceExtensionId':_0x343d39['VoiceExtensionId']});}}}for(var _0x32135a=0x0;_0x32135a<_0xff6699['length'];_0x32135a+=0x1){var _0x2e67fb=_0x8f179f[_0xd4de('0x10')]+_0xff6699[_0xd4de('0x29')];var _0x2f3881=_0x32135a===_0xff6699[_0xd4de('0x29')]-0x1?_0x8f179f[_0xd4de('0x10')]+_0x367e0b['length']+_0x3b3ff1[_0xd4de('0x29')]+0x2:_0x8f179f[_0xd4de('0x10')]+_0x32135a+0x1;_0x367e0b[_0xd4de('0x3a')](_0x32135a,0x0,{'type':_0x343d39['type'],'app':_0xd4de('0x3b'),'appdata':_0xff6699[_0x32135a]+'?'+_0x343d39[_0xd4de('0x16')]+_0xd4de('0x3c')+_0x2e67fb+':'+_0x343d39[_0xd4de('0x16')]+',${EXTEN},'+_0x2f3881,'exten':_0x343d39['exten'],'context':_0x343d39[_0xd4de('0x16')],'priority':_0x8f179f[_0xd4de('0x10')]+_0x32135a,'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});}_0x343d39[_0xd4de('0x10')]=_0x367e0b[_0xd4de('0x29')]?_[_0xd4de('0x3d')](_0x367e0b)[_0xd4de('0x10')]+0x1:_0x8f179f['priority'];_0x8f179f['priority']=(_0x3b3ff1[_0xd4de('0x29')]?_['last'](_0x3b3ff1)['priority']:_0x343d39[_0xd4de('0x10')])+0x1;_0x8f179f[_0xd4de('0x11')]=_[_0xd4de('0x3e')](_0x8f179f[_0xd4de('0x11')],_0x367e0b,[_0x343d39],_0x3b3ff1);}_0x8f179f['extensions'][_0xd4de('0x13')]({'type':_0x10516e[_0x356157][0x0][_0xd4de('0x14')],'app':_0xd4de('0x3f'),'exten':_0x10516e[_0x356157][0x0][_0xd4de('0xa')],'context':_0x10516e[_0x356157][0x0][_0xd4de('0x16')],'priority':_0x8f179f[_0xd4de('0x10')],'VoiceExtensionId':_0x10516e[_0x356157][0x0][_0xd4de('0x17')]});_0x2ef135['push'](_0x10516e[_0x356157][0x0]['VoiceExtensionId']);_0x36e218=_['concat'](_0x36e218,_0x8f179f[_0xd4de('0x11')]);}}return _0xfcfb6[_0xd4de('0x40')](function(_0x14aa4c){return _0xfcfb6[_0xd4de('0x2')][_0xd4de('0x7')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x2ef135}},'transaction':_0x14aa4c})[_0xd4de('0x5')](function(_0x479c71){return _0xfcfb6[_0xd4de('0x2')][_0xd4de('0x7')][_0xd4de('0x41')](_['sortBy'](_0x36e218,_0xd4de('0x10')),{'transaction':_0x14aa4c});});});})['catch'](function(_0xb627c8){console['error'](_0xb627c8);});}exports[_0xd4de('0x42')]=rewrite;