Built motion from commit 9e1399f3.|2.5.37
[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 _0x6fdc=['_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','indexOf','app','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime','last','concat','Hangup','sortBy','catch','error','rewrite','lodash','util','Interval','findAll','then','intervals','IntervalId','models','VoiceExtension','map','CAST(priority\x20AS\x20UNSIGNED)','filter','exten','queue','hasOwnProperty','priority','extensions','extension','push','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','inbound','CDR(routeid)=','outbound','cutdigits','${EXTEN:','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','recordingFormat','none'];(function(_0x472a66,_0xcc0bcd){var _0xf99cf1=function(_0x1ab69b){while(--_0x1ab69b){_0x472a66['push'](_0x472a66['shift']());}};_0xf99cf1(++_0xcc0bcd);}(_0x6fdc,0x1f4));var _0xc6fd=function(_0x4b6830,_0x2bf6fb){_0x4b6830=_0x4b6830-0x0;var _0x239e4a=_0x6fdc[_0x4b6830];return _0x239e4a;};'use strict';var _=require(_0xc6fd('0x0'));var util=require(_0xc6fd('0x1'));function rewrite(_0x8d8e63,_0xc63926){var _0x2d3aae=this;return _0x8d8e63['models'][_0xc6fd('0x2')][_0xc6fd('0x3')]({'raw':!![]})[_0xc6fd('0x4')](function(_0xcb7d3a){_0x2d3aae[_0xc6fd('0x5')]=_0xcb7d3a;return _0x8d8e63['models']['VoiceExtension'][_0xc6fd('0x3')]({'where':{'IntervalId':_0xc63926[_0xc6fd('0x6')]},'raw':!![]});})[_0xc6fd('0x4')](function(_0x18010d){return _0x8d8e63[_0xc6fd('0x7')][_0xc6fd('0x8')][_0xc6fd('0x3')]({'where':{'exten':{'$in':_['uniq'](_[_0xc6fd('0x9')](_0x18010d,'exten'))}},'order':[{'raw':_0xc6fd('0xa')}],'raw':!![]});})[_0xc6fd('0x4')](function(_0x416843){var _0x2a43b7=_[_0xc6fd('0xb')](_0x416843,{'priority':'1'});var _0x238e0d=_[_0xc6fd('0xb')](_0x416843,{'isApp':0x1});var _0x530a77=_['groupBy'](_0x238e0d,_0xc6fd('0xc'));var _0x40a63e=[_0xc6fd('0xd'),'playback'];var _0x155e7f=[];var _0x27d9a5=[];for(var _0x2b1b76 in _0x530a77){if(_0x530a77[_0xc6fd('0xe')](_0x2b1b76)){_0x2d3aae[_0xc6fd('0xf')]=0x2;_0x2d3aae[_0xc6fd('0x10')]=[];_0x2d3aae[_0xc6fd('0x11')]=_['find'](_0x2a43b7,{'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')]});_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':util[_0xc6fd('0x15')](_0xc6fd('0x16'),_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')]),'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0]['exten'],'priority':_0x2d3aae['priority']++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});if(_0x530a77[_0x2b1b76][0x0]['type']===_0xc6fd('0x19')){_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0]['type'],'app':'Set','appdata':_0xc6fd('0x1a')+_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')],'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0]['VoiceExtensionId']});}else if(_0x530a77[_0x2b1b76][0x0]['type']===_0xc6fd('0x1b')){if(_0x2d3aae[_0xc6fd('0x11')]){_0x2d3aae['extensions'][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':'CDR(destination)='+(_0x2d3aae[_0xc6fd('0x11')][_0xc6fd('0x1c')]?_0xc6fd('0x1d')+_0x2d3aae[_0xc6fd('0x11')][_0xc6fd('0x1c')]+'}':'${EXTEN}'),'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});}_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':_0xc6fd('0x1a')+_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')],'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});var _0x13387=_0x2d3aae['priority']++;_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':_0xc6fd('0x1e'),'appdata':_0xc6fd('0x1f')+(_0x13387+0x2)+_0xc6fd('0x20')+(_0x13387+0x1)+')','context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x13387,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0]['VoiceExtensionId']});if(_0x2d3aae[_0xc6fd('0x11')]){_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':'Set','appdata':_0x2d3aae[_0xc6fd('0x11')][_0xc6fd('0x1c')]?_0xc6fd('0x21')+_0x2d3aae[_0xc6fd('0x11')][_0xc6fd('0x1c')]+'}':'CDR(prefix)=noprefix','context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae['priority']++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});}_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':'outboundrouteid='+_0x530a77[_0x2b1b76][0x0]['VoiceExtensionId'],'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});if(_0x2d3aae[_0xc6fd('0x11')]&&_0x2d3aae[_0xc6fd('0x11')][_0xc6fd('0xe')](_0xc6fd('0x22'))&&_0x2d3aae['extension'][_0xc6fd('0x22')]!==_0xc6fd('0x23')){_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':'Set','appdata':_0xc6fd('0x24'),'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0]['VoiceExtensionId']});_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0]['type'],'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x2d3aae[_0xc6fd('0x11')][_0xc6fd('0x22')]||_0xc6fd('0x25'),'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0]['VoiceExtensionId']});}}_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0]['type'],'app':_0xc6fd('0x14'),'appdata':_0xc6fd('0x26'),'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0]['VoiceExtensionId']});_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':_0xc6fd('0x27'),'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'priority':_0x2d3aae[_0xc6fd('0xf')]++,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});for(var _0x185702=0x0,_0xbaa216=0x0;_0x185702<_0x530a77[_0x2b1b76][_0xc6fd('0x28')];_0x185702+=0x1,_0xbaa216=0x0){var _0x11f0d2=_0x530a77[_0x2b1b76][_0x185702];if(_0x11f0d2[_0xc6fd('0x13')]){_0x11f0d2[_0xc6fd('0x13')]=_0x11f0d2['type'][_0xc6fd('0x29')]();}var _0x100f6c=[];var _0x3b2220=[];delete _0x11f0d2['id'];delete _0x11f0d2[_0xc6fd('0x2a')];delete _0x11f0d2[_0xc6fd('0x2b')];var _0x5792ab=_0x11f0d2[_0xc6fd('0x2c')]!==_0xc6fd('0x2d')?[_0x11f0d2[_0xc6fd('0x2c')]]:_0x11f0d2['IntervalId']?_[_0xc6fd('0x9')](_[_0xc6fd('0xb')](_0x2d3aae['intervals'],{'IntervalId':_0x11f0d2[_0xc6fd('0x6')]}),_0xc6fd('0x2c')):[];if(_0x11f0d2[_0xc6fd('0xe')](_0xc6fd('0x2e'))){if(_0x11f0d2[_0xc6fd('0x2e')]&&_0x11f0d2[_0xc6fd('0x2e')]!=='--'){_0x100f6c[_0xc6fd('0x12')]({'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':_0xc6fd('0x2f')+_0x11f0d2[_0xc6fd('0x2e')],'context':_0x11f0d2[_0xc6fd('0x17')],'exten':_0x11f0d2[_0xc6fd('0xc')],'priority':_0x5792ab[_0xc6fd('0x28')]+_0x2d3aae[_0xc6fd('0xf')]+_0xbaa216++,'VoiceExtensionId':_0x11f0d2['VoiceExtensionId']});}}if(_0x11f0d2[_0xc6fd('0x13')]==='outbound'&&_0x11f0d2[_0xc6fd('0xe')](_0xc6fd('0x30'))){if(_0x11f0d2['callerID']){_0x100f6c[_0xc6fd('0x12')]({'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x1e'),'appdata':_0xc6fd('0x31')+_0x11f0d2[_0xc6fd('0x30')]+')','context':_0x11f0d2[_0xc6fd('0x17')],'exten':_0x11f0d2[_0xc6fd('0xc')],'priority':_0x5792ab[_0xc6fd('0x28')]+_0x2d3aae['priority']+_0xbaa216++,'VoiceExtensionId':_0x11f0d2[_0xc6fd('0x18')]});}else{_0x100f6c[_0xc6fd('0x12')]({'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x1e'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x11f0d2[_0xc6fd('0x17')],'exten':_0x11f0d2[_0xc6fd('0xc')],'priority':_0x5792ab[_0xc6fd('0x28')]+_0x2d3aae[_0xc6fd('0xf')]+_0xbaa216++,'VoiceExtensionId':_0x11f0d2[_0xc6fd('0x18')]});}}if(_0x11f0d2[_0xc6fd('0xe')]('answer')){if(_0x40a63e[_0xc6fd('0x32')](_0x11f0d2[_0xc6fd('0x33')][_0xc6fd('0x29')]())>=0x0&&_0x11f0d2[_0xc6fd('0x34')]!==_0xc6fd('0x35')){if(_0x11f0d2[_0xc6fd('0x36')]){_0x100f6c[_0xc6fd('0x12')]({'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x1e'),'appdata':_0xc6fd('0x37'),'context':_0x11f0d2[_0xc6fd('0x17')],'exten':_0x11f0d2['exten'],'priority':_0x5792ab[_0xc6fd('0x28')]+_0x2d3aae['priority']+_0xbaa216++,'VoiceExtensionId':_0x11f0d2[_0xc6fd('0x18')]});_0x100f6c[_0xc6fd('0x12')]({'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':_0xc6fd('0x38'),'context':_0x11f0d2[_0xc6fd('0x17')],'exten':_0x11f0d2[_0xc6fd('0xc')],'priority':_0x5792ab[_0xc6fd('0x28')]+_0x2d3aae['priority']+_0xbaa216++,'VoiceExtensionId':_0x11f0d2[_0xc6fd('0x18')]});}else{_0x100f6c[_0xc6fd('0x12')]({'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x1e'),'appdata':_0xc6fd('0x39'),'context':_0x11f0d2['context'],'exten':_0x11f0d2[_0xc6fd('0xc')],'priority':_0x5792ab[_0xc6fd('0x28')]+_0x2d3aae['priority']+_0xbaa216++,'VoiceExtensionId':_0x11f0d2[_0xc6fd('0x18')]});_0x100f6c[_0xc6fd('0x12')]({'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x14'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x11f0d2[_0xc6fd('0x17')],'exten':_0x11f0d2['exten'],'priority':_0x5792ab['length']+_0x2d3aae[_0xc6fd('0xf')]+_0xbaa216++,'VoiceExtensionId':_0x11f0d2['VoiceExtensionId']});}}}for(var _0x570d28=0x0;_0x570d28<_0x5792ab[_0xc6fd('0x28')];_0x570d28+=0x1){var _0x1e2323=_0x2d3aae[_0xc6fd('0xf')]+_0x5792ab[_0xc6fd('0x28')];var _0x310014=_0x570d28===_0x5792ab['length']-0x1?_0x2d3aae[_0xc6fd('0xf')]+_0x100f6c[_0xc6fd('0x28')]+_0x3b2220['length']+0x2:_0x2d3aae['priority']+_0x570d28+0x1;_0x100f6c[_0xc6fd('0x3a')](_0x570d28,0x0,{'type':_0x11f0d2[_0xc6fd('0x13')],'app':_0xc6fd('0x3b'),'appdata':_0x5792ab[_0x570d28]+'?'+_0x11f0d2[_0xc6fd('0x17')]+',${EXTEN},'+_0x1e2323+':'+_0x11f0d2[_0xc6fd('0x17')]+',${EXTEN},'+_0x310014,'exten':_0x11f0d2[_0xc6fd('0xc')],'context':_0x11f0d2[_0xc6fd('0x17')],'priority':_0x2d3aae[_0xc6fd('0xf')]+_0x570d28,'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});}_0x11f0d2[_0xc6fd('0xf')]=_0x100f6c[_0xc6fd('0x28')]?_[_0xc6fd('0x3c')](_0x100f6c)[_0xc6fd('0xf')]+0x1:_0x2d3aae['priority'];_0x2d3aae[_0xc6fd('0xf')]=(_0x3b2220['length']?_[_0xc6fd('0x3c')](_0x3b2220)[_0xc6fd('0xf')]:_0x11f0d2[_0xc6fd('0xf')])+0x1;_0x2d3aae['extensions']=_[_0xc6fd('0x3d')](_0x2d3aae[_0xc6fd('0x10')],_0x100f6c,[_0x11f0d2],_0x3b2220);}_0x2d3aae[_0xc6fd('0x10')][_0xc6fd('0x12')]({'type':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x13')],'app':_0xc6fd('0x3e'),'exten':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0xc')],'context':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x17')],'priority':_0x2d3aae[_0xc6fd('0xf')],'VoiceExtensionId':_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]});_0x155e7f[_0xc6fd('0x12')](_0x530a77[_0x2b1b76][0x0][_0xc6fd('0x18')]);_0x27d9a5=_['concat'](_0x27d9a5,_0x2d3aae[_0xc6fd('0x10')]);}}return _0x8d8e63['transaction'](function(_0x3da1e9){return _0x8d8e63[_0xc6fd('0x7')]['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x155e7f}},'transaction':_0x3da1e9})['then'](function(_0x27657d){return _0x8d8e63[_0xc6fd('0x7')]['VoiceExtension']['bulkCreate'](_[_0xc6fd('0x3f')](_0x27d9a5,_0xc6fd('0xf')),{'transaction':_0x3da1e9});});});})[_0xc6fd('0x40')](function(_0x3d8e6f){console[_0xc6fd('0x41')](_0x3d8e6f);});}exports[_0xc6fd('0x42')]=rewrite;