Built motion from commit e0fa946e.|2.6.5
[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 _0x0b7b=['VoiceExtensionId','outbound','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):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','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','IntervalId','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','callerID','length','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','app','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','Hangup','concat','transaction','destroy','sortBy','catch','error','util','models','Interval','then','findAll','VoiceExtension','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','exten','queue','playback','hasOwnProperty','priority','extension','extensions','push','type','Set','CDR(type)=%s','context','inbound','CDR(routeid)='];(function(_0x5a06ed,_0x46f1dc){var _0x6eedfd=function(_0x27c7d9){while(--_0x27c7d9){_0x5a06ed['push'](_0x5a06ed['shift']());}};_0x6eedfd(++_0x46f1dc);}(_0x0b7b,0x1a3));var _0xb0b7=function(_0x5b4583,_0x4948a7){_0x5b4583=_0x5b4583-0x0;var _0x15fe6c=_0x0b7b[_0x5b4583];return _0x15fe6c;};'use strict';var _=require('lodash');var util=require(_0xb0b7('0x0'));function rewrite(_0x2da596,_0x180926){var _0x5c3749=this;return _0x2da596[_0xb0b7('0x1')][_0xb0b7('0x2')]['findAll']({'raw':!![]})[_0xb0b7('0x3')](function(_0x2c0ac4){_0x5c3749['intervals']=_0x2c0ac4;return _0x2da596[_0xb0b7('0x1')]['VoiceExtension'][_0xb0b7('0x4')]({'where':{'IntervalId':_0x180926['IntervalId']},'raw':!![]});})[_0xb0b7('0x3')](function(_0x1268b1){return _0x2da596[_0xb0b7('0x1')][_0xb0b7('0x5')][_0xb0b7('0x4')]({'where':{'exten':{'$in':_[_0xb0b7('0x6')](_[_0xb0b7('0x7')](_0x1268b1,'exten'))}},'order':[{'raw':_0xb0b7('0x8')}],'raw':!![]});})['then'](function(_0x41eb7b){var _0x54e63a=_['filter'](_0x41eb7b,{'priority':'1'});var _0xfe92a3=_[_0xb0b7('0x9')](_0x41eb7b,{'isApp':0x1});var _0xf06ca6=_[_0xb0b7('0xa')](_0xfe92a3,_0xb0b7('0xb'));var _0x367f85=[_0xb0b7('0xc'),_0xb0b7('0xd')];var _0x26771e=[];var _0x2e0eef=[];for(var _0x309ea4 in _0xf06ca6){if(_0xf06ca6[_0xb0b7('0xe')](_0x309ea4)){_0x5c3749[_0xb0b7('0xf')]=0x2;_0x5c3749['extensions']=[];_0x5c3749[_0xb0b7('0x10')]=_['find'](_0x54e63a,{'exten':_0xf06ca6[_0x309ea4][0x0]['exten']});_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':util['format'](_0xb0b7('0x15'),_0xf06ca6[_0x309ea4][0x0]['type']),'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749[_0xb0b7('0xf')]++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0]['VoiceExtensionId']});if(_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')]===_0xb0b7('0x17')){_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x18')+_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')],'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749[_0xb0b7('0xf')]++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0]['VoiceExtensionId']});}else if(_0xf06ca6[_0x309ea4][0x0]['type']===_0xb0b7('0x1a')){if(_0x5c3749['extension']){_0x5c3749['extensions'][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x1b')+(_0x5c3749['extension']['cutdigits']?_0xb0b7('0x1c')+_0x5c3749[_0xb0b7('0x10')][_0xb0b7('0x1d')]+'}':_0xb0b7('0x1e')),'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0]['exten'],'priority':_0x5c3749[_0xb0b7('0xf')]++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});}_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':'CDR(routeid)='+_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')],'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749[_0xb0b7('0xf')]++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});var _0x4b653b=_0x5c3749[_0xb0b7('0xf')]++;_0x5c3749['extensions'][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x1f'),'appdata':_0xb0b7('0x20')+(_0x4b653b+0x2)+_0xb0b7('0x21')+(_0x4b653b+0x1)+')','context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x4b653b,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});if(_0x5c3749[_0xb0b7('0x10')]){_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0x5c3749[_0xb0b7('0x10')][_0xb0b7('0x1d')]?_0xb0b7('0x22')+_0x5c3749[_0xb0b7('0x10')]['cutdigits']+'}':_0xb0b7('0x23'),'context':_0xf06ca6[_0x309ea4][0x0]['context'],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749['priority']++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});}_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':'Set','appdata':_0xb0b7('0x24')+_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')],'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0]['exten'],'priority':_0x5c3749['priority']++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});if(_0x5c3749[_0xb0b7('0x10')]&&_0x5c3749[_0xb0b7('0x10')][_0xb0b7('0xe')](_0xb0b7('0x25'))&&_0x5c3749[_0xb0b7('0x10')][_0xb0b7('0x25')]!==_0xb0b7('0x26')){_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x27'),'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0]['exten'],'priority':_0x5c3749['priority']++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0]['VoiceExtensionId']});_0x5c3749['extensions'][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0]['type'],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x28')+_0x5c3749[_0xb0b7('0x10')]['recordingFormat']||_0xb0b7('0x29'),'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749[_0xb0b7('0xf')]++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});}}_0x5c3749['extensions'][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0]['type'],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x2a'),'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749[_0xb0b7('0xf')]++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0]['VoiceExtensionId']});_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x2b'),'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749['priority']++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0]['VoiceExtensionId']});_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x2c'),'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'priority':_0x5c3749['priority']++,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});for(var _0x258dca=0x0,_0x25bf88=0x0;_0x258dca<_0xf06ca6[_0x309ea4]['length'];_0x258dca+=0x1,_0x25bf88=0x0){var _0x40c23d=_0xf06ca6[_0x309ea4][_0x258dca];if(_0x40c23d['type']){_0x40c23d[_0xb0b7('0x13')]=_0x40c23d[_0xb0b7('0x13')][_0xb0b7('0x2d')]();}var _0x332de7=[];var _0x7ba9b7=[];delete _0x40c23d['id'];delete _0x40c23d[_0xb0b7('0x2e')];delete _0x40c23d[_0xb0b7('0x2f')];var _0x4f2668=_0x40c23d[_0xb0b7('0x30')]!==_0xb0b7('0x31')?[_0x40c23d[_0xb0b7('0x30')]]:_0x40c23d[_0xb0b7('0x32')]?_[_0xb0b7('0x7')](_[_0xb0b7('0x9')](_0x5c3749['intervals'],{'IntervalId':_0x40c23d[_0xb0b7('0x32')]}),_0xb0b7('0x30')):[];if(_0x40c23d['hasOwnProperty'](_0xb0b7('0x33'))){if(_0x40c23d[_0xb0b7('0x33')]&&_0x40c23d[_0xb0b7('0x33')]!=='--'){_0x332de7['push']({'type':_0x40c23d[_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x34')+_0x40c23d[_0xb0b7('0x33')],'context':_0x40c23d[_0xb0b7('0x16')],'exten':_0x40c23d[_0xb0b7('0xb')],'priority':_0x4f2668['length']+_0x5c3749[_0xb0b7('0xf')]+_0x25bf88++,'VoiceExtensionId':_0x40c23d['VoiceExtensionId']});}}if(_0x40c23d[_0xb0b7('0x13')]===_0xb0b7('0x1a')&&_0x40c23d[_0xb0b7('0xe')]('callerID')){if(_0x40c23d['callerID']){_0x332de7['push']({'type':_0x40c23d[_0xb0b7('0x13')],'app':_0xb0b7('0x1f'),'appdata':_0xb0b7('0x35')+_0x40c23d[_0xb0b7('0x36')]+')','context':_0x40c23d[_0xb0b7('0x16')],'exten':_0x40c23d[_0xb0b7('0xb')],'priority':_0x4f2668[_0xb0b7('0x37')]+_0x5c3749[_0xb0b7('0xf')]+_0x25bf88++,'VoiceExtensionId':_0x40c23d['VoiceExtensionId']});}else{_0x332de7[_0xb0b7('0x12')]({'type':_0x40c23d['type'],'app':_0xb0b7('0x1f'),'appdata':_0xb0b7('0x38'),'context':_0x40c23d['context'],'exten':_0x40c23d[_0xb0b7('0xb')],'priority':_0x4f2668[_0xb0b7('0x37')]+_0x5c3749['priority']+_0x25bf88++,'VoiceExtensionId':_0x40c23d[_0xb0b7('0x19')]});}}if(_0x40c23d[_0xb0b7('0xe')]('answer')){if(_0x367f85[_0xb0b7('0x39')](_0x40c23d[_0xb0b7('0x3a')]['toLowerCase']())>=0x0&&_0x40c23d['appType']!==_0xb0b7('0x3b')){if(_0x40c23d[_0xb0b7('0x3c')]){_0x332de7[_0xb0b7('0x12')]({'type':_0x40c23d[_0xb0b7('0x13')],'app':'ExecIf','appdata':_0xb0b7('0x3d'),'context':_0x40c23d[_0xb0b7('0x16')],'exten':_0x40c23d[_0xb0b7('0xb')],'priority':_0x4f2668[_0xb0b7('0x37')]+_0x5c3749['priority']+_0x25bf88++,'VoiceExtensionId':_0x40c23d[_0xb0b7('0x19')]});_0x332de7['push']({'type':_0x40c23d[_0xb0b7('0x13')],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x3e'),'context':_0x40c23d['context'],'exten':_0x40c23d['exten'],'priority':_0x4f2668[_0xb0b7('0x37')]+_0x5c3749[_0xb0b7('0xf')]+_0x25bf88++,'VoiceExtensionId':_0x40c23d[_0xb0b7('0x19')]});}else{_0x332de7['push']({'type':_0x40c23d[_0xb0b7('0x13')],'app':_0xb0b7('0x1f'),'appdata':_0xb0b7('0x3f'),'context':_0x40c23d[_0xb0b7('0x16')],'exten':_0x40c23d[_0xb0b7('0xb')],'priority':_0x4f2668[_0xb0b7('0x37')]+_0x5c3749['priority']+_0x25bf88++,'VoiceExtensionId':_0x40c23d[_0xb0b7('0x19')]});_0x332de7[_0xb0b7('0x12')]({'type':_0x40c23d['type'],'app':_0xb0b7('0x14'),'appdata':_0xb0b7('0x40'),'context':_0x40c23d[_0xb0b7('0x16')],'exten':_0x40c23d[_0xb0b7('0xb')],'priority':_0x4f2668['length']+_0x5c3749[_0xb0b7('0xf')]+_0x25bf88++,'VoiceExtensionId':_0x40c23d[_0xb0b7('0x19')]});}}}for(var _0x42b1c3=0x0;_0x42b1c3<_0x4f2668[_0xb0b7('0x37')];_0x42b1c3+=0x1){var _0x59726c=_0x5c3749['priority']+_0x4f2668[_0xb0b7('0x37')];var _0x33a2c7=_0x42b1c3===_0x4f2668[_0xb0b7('0x37')]-0x1?_0x5c3749[_0xb0b7('0xf')]+_0x332de7[_0xb0b7('0x37')]+_0x7ba9b7['length']+0x2:_0x5c3749['priority']+_0x42b1c3+0x1;_0x332de7['splice'](_0x42b1c3,0x0,{'type':_0x40c23d['type'],'app':_0xb0b7('0x41'),'appdata':_0x4f2668[_0x42b1c3]+'?'+_0x40c23d[_0xb0b7('0x16')]+',${EXTEN},'+_0x59726c+':'+_0x40c23d[_0xb0b7('0x16')]+_0xb0b7('0x42')+_0x33a2c7,'exten':_0x40c23d[_0xb0b7('0xb')],'context':_0x40c23d[_0xb0b7('0x16')],'priority':_0x5c3749[_0xb0b7('0xf')]+_0x42b1c3,'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});}_0x40c23d[_0xb0b7('0xf')]=_0x332de7[_0xb0b7('0x37')]?_['last'](_0x332de7)[_0xb0b7('0xf')]+0x1:_0x5c3749[_0xb0b7('0xf')];_0x5c3749[_0xb0b7('0xf')]=(_0x7ba9b7['length']?_['last'](_0x7ba9b7)[_0xb0b7('0xf')]:_0x40c23d[_0xb0b7('0xf')])+0x1;_0x5c3749[_0xb0b7('0x11')]=_['concat'](_0x5c3749[_0xb0b7('0x11')],_0x332de7,[_0x40c23d],_0x7ba9b7);}_0x5c3749[_0xb0b7('0x11')][_0xb0b7('0x12')]({'type':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x13')],'app':_0xb0b7('0x43'),'exten':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0xb')],'context':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x16')],'priority':_0x5c3749['priority'],'VoiceExtensionId':_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]});_0x26771e[_0xb0b7('0x12')](_0xf06ca6[_0x309ea4][0x0][_0xb0b7('0x19')]);_0x2e0eef=_[_0xb0b7('0x44')](_0x2e0eef,_0x5c3749[_0xb0b7('0x11')]);}}return _0x2da596[_0xb0b7('0x45')](function(_0x5eb1c6){return _0x2da596[_0xb0b7('0x1')]['VoiceExtension'][_0xb0b7('0x46')]({'where':{'VoiceExtensionId':{'$in':_0x26771e}},'transaction':_0x5eb1c6})[_0xb0b7('0x3')](function(_0x1716df){return _0x2da596['models']['VoiceExtension']['bulkCreate'](_[_0xb0b7('0x47')](_0x2e0eef,'priority'),{'transaction':_0x5eb1c6});});});})[_0xb0b7('0x48')](function(_0x521849){console[_0xb0b7('0x49')](_0x521849);});}exports['rewrite']=rewrite;