524ca7c4b3d42f042ba8dd4273859e2f2a18e0a9
[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 _0xe8eb=['splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','sortBy','catch','error','rewrite','lodash','models','Interval','findAll','intervals','IntervalId','then','VoiceExtension','uniq','map','exten','filter','queue','playback','hasOwnProperty','priority','extension','find','push','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','inbound','extensions','CDR(routeid)=','CDR(destination)=','cutdigits','${EXTEN:','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','outbound','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)','answer','indexOf','app','toLowerCase','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1'];(function(_0x86b219,_0x43038f){var _0x1f320c=function(_0x8cd63f){while(--_0x8cd63f){_0x86b219['push'](_0x86b219['shift']());}};_0x1f320c(++_0x43038f);}(_0xe8eb,0x1c7));var _0xbe8e=function(_0x5e0115,_0x134af6){_0x5e0115=_0x5e0115-0x0;var _0x31241d=_0xe8eb[_0x5e0115];return _0x31241d;};'use strict';var _=require(_0xbe8e('0x0'));var util=require('util');function rewrite(_0xf17580,_0x377603){var _0x552314=this;return _0xf17580[_0xbe8e('0x1')][_0xbe8e('0x2')][_0xbe8e('0x3')]({'raw':!![]})['then'](function(_0x2a147c){_0x552314[_0xbe8e('0x4')]=_0x2a147c;return _0xf17580[_0xbe8e('0x1')]['VoiceExtension'][_0xbe8e('0x3')]({'where':{'IntervalId':_0x377603[_0xbe8e('0x5')]},'raw':!![]});})[_0xbe8e('0x6')](function(_0x1408fa){return _0xf17580['models'][_0xbe8e('0x7')][_0xbe8e('0x3')]({'where':{'exten':{'$in':_[_0xbe8e('0x8')](_[_0xbe8e('0x9')](_0x1408fa,_0xbe8e('0xa')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0xbe8e('0x6')](function(_0x2b75b8){var _0x4e64d6=_['filter'](_0x2b75b8,{'priority':'1'});var _0x1f84a8=_[_0xbe8e('0xb')](_0x2b75b8,{'isApp':0x1});var _0x40960d=_['groupBy'](_0x1f84a8,_0xbe8e('0xa'));var _0x3ad59f=[_0xbe8e('0xc'),_0xbe8e('0xd')];var _0x3744b5=[];var _0x5d6013=[];for(var _0x54b748 in _0x40960d){if(_0x40960d[_0xbe8e('0xe')](_0x54b748)){_0x552314[_0xbe8e('0xf')]=0x2;_0x552314['extensions']=[];_0x552314[_0xbe8e('0x10')]=_[_0xbe8e('0x11')](_0x4e64d6,{'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')]});_0x552314['extensions'][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':_0xbe8e('0x14'),'appdata':util[_0xbe8e('0x15')](_0xbe8e('0x16'),_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')]),'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});if(_0x40960d[_0x54b748][0x0]['type']===_0xbe8e('0x19')){_0x552314[_0xbe8e('0x1a')][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0]['type'],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x1b')+_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')],'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});}else if(_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')]==='outbound'){if(_0x552314[_0xbe8e('0x10')]){_0x552314['extensions'][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x1c')+(_0x552314['extension'][_0xbe8e('0x1d')]?_0xbe8e('0x1e')+_0x552314[_0xbe8e('0x10')]['cutdigits']+'}':'${EXTEN}'),'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});}_0x552314['extensions'][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0]['type'],'app':'Set','appdata':_0xbe8e('0x1b')+_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')],'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});var _0x1820a2=_0x552314[_0xbe8e('0xf')]++;_0x552314[_0xbe8e('0x1a')][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':_0xbe8e('0x1f'),'appdata':_0xbe8e('0x20')+(_0x1820a2+0x2)+_0xbe8e('0x21')+(_0x1820a2+0x1)+')','context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x1820a2,'VoiceExtensionId':_0x40960d[_0x54b748][0x0]['VoiceExtensionId']});if(_0x552314[_0xbe8e('0x10')]){_0x552314['extensions'][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':_0xbe8e('0x14'),'appdata':_0x552314[_0xbe8e('0x10')][_0xbe8e('0x1d')]?_0xbe8e('0x22')+_0x552314['extension'][_0xbe8e('0x1d')]+'}':_0xbe8e('0x23'),'context':_0x40960d[_0x54b748][0x0]['context'],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});}_0x552314[_0xbe8e('0x1a')]['push']({'type':_0x40960d[_0x54b748][0x0]['type'],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x24')+_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')],'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});if(_0x552314[_0xbe8e('0x10')]&&_0x552314[_0xbe8e('0x10')]['hasOwnProperty'](_0xbe8e('0x25'))&&_0x552314['extension']['recordingFormat']!=='none'){_0x552314['extensions']['push']({'type':_0x40960d[_0x54b748][0x0]['type'],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x26'),'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0]['exten'],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});_0x552314['extensions'][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x552314['extension'][_0xbe8e('0x25')]||_0xbe8e('0x27'),'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});}}_0x552314[_0xbe8e('0x1a')][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x28'),'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});_0x552314[_0xbe8e('0x1a')][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0]['type'],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x29'),'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0]['exten'],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});_0x552314['extensions']['push']({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x2a'),'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'exten':_0x40960d[_0x54b748][0x0]['exten'],'priority':_0x552314[_0xbe8e('0xf')]++,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});for(var _0x108d04=0x0,_0x4a39eb=0x0;_0x108d04<_0x40960d[_0x54b748][_0xbe8e('0x2b')];_0x108d04+=0x1,_0x4a39eb=0x0){var _0x575ab4=_0x40960d[_0x54b748][_0x108d04];if(_0x575ab4[_0xbe8e('0x13')]){_0x575ab4['type']=_0x575ab4['type']['toLowerCase']();}var _0x485e1c=[];var _0x217c42=[];delete _0x575ab4['id'];delete _0x575ab4[_0xbe8e('0x2c')];delete _0x575ab4[_0xbe8e('0x2d')];var _0x7e4bb5=_0x575ab4[_0xbe8e('0x2e')]!==_0xbe8e('0x2f')?[_0x575ab4[_0xbe8e('0x2e')]]:_0x575ab4[_0xbe8e('0x5')]?_[_0xbe8e('0x9')](_['filter'](_0x552314[_0xbe8e('0x4')],{'IntervalId':_0x575ab4[_0xbe8e('0x5')]}),_0xbe8e('0x2e')):[];if(_0x575ab4[_0xbe8e('0xe')](_0xbe8e('0x30'))){if(_0x575ab4[_0xbe8e('0x30')]&&_0x575ab4[_0xbe8e('0x30')]!=='--'){_0x485e1c[_0xbe8e('0x12')]({'type':_0x575ab4[_0xbe8e('0x13')],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x31')+_0x575ab4[_0xbe8e('0x30')],'context':_0x575ab4[_0xbe8e('0x17')],'exten':_0x575ab4[_0xbe8e('0xa')],'priority':_0x7e4bb5[_0xbe8e('0x2b')]+_0x552314[_0xbe8e('0xf')]+_0x4a39eb++,'VoiceExtensionId':_0x575ab4['VoiceExtensionId']});}}if(_0x575ab4[_0xbe8e('0x13')]===_0xbe8e('0x32')&&_0x575ab4[_0xbe8e('0xe')](_0xbe8e('0x33'))){if(_0x575ab4[_0xbe8e('0x33')]){_0x485e1c['push']({'type':_0x575ab4['type'],'app':'ExecIf','appdata':_0xbe8e('0x34')+_0x575ab4[_0xbe8e('0x33')]+')','context':_0x575ab4[_0xbe8e('0x17')],'exten':_0x575ab4[_0xbe8e('0xa')],'priority':_0x7e4bb5[_0xbe8e('0x2b')]+_0x552314[_0xbe8e('0xf')]+_0x4a39eb++,'VoiceExtensionId':_0x575ab4[_0xbe8e('0x18')]});}else{_0x485e1c[_0xbe8e('0x12')]({'type':_0x575ab4[_0xbe8e('0x13')],'app':_0xbe8e('0x1f'),'appdata':_0xbe8e('0x35'),'context':_0x575ab4[_0xbe8e('0x17')],'exten':_0x575ab4[_0xbe8e('0xa')],'priority':_0x7e4bb5[_0xbe8e('0x2b')]+_0x552314['priority']+_0x4a39eb++,'VoiceExtensionId':_0x575ab4['VoiceExtensionId']});}}if(_0x575ab4[_0xbe8e('0xe')](_0xbe8e('0x36'))){if(_0x3ad59f[_0xbe8e('0x37')](_0x575ab4[_0xbe8e('0x38')][_0xbe8e('0x39')]())>=0x0&&_0x575ab4[_0xbe8e('0x3a')]!==_0xbe8e('0x3b')){if(_0x575ab4[_0xbe8e('0x36')]){_0x485e1c[_0xbe8e('0x12')]({'type':_0x575ab4[_0xbe8e('0x13')],'app':_0xbe8e('0x1f'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x575ab4[_0xbe8e('0x17')],'exten':_0x575ab4[_0xbe8e('0xa')],'priority':_0x7e4bb5['length']+_0x552314[_0xbe8e('0xf')]+_0x4a39eb++,'VoiceExtensionId':_0x575ab4[_0xbe8e('0x18')]});_0x485e1c[_0xbe8e('0x12')]({'type':_0x575ab4['type'],'app':_0xbe8e('0x14'),'appdata':_0xbe8e('0x3c'),'context':_0x575ab4[_0xbe8e('0x17')],'exten':_0x575ab4[_0xbe8e('0xa')],'priority':_0x7e4bb5[_0xbe8e('0x2b')]+_0x552314[_0xbe8e('0xf')]+_0x4a39eb++,'VoiceExtensionId':_0x575ab4[_0xbe8e('0x18')]});}else{_0x485e1c['push']({'type':_0x575ab4[_0xbe8e('0x13')],'app':'ExecIf','appdata':_0xbe8e('0x3d'),'context':_0x575ab4[_0xbe8e('0x17')],'exten':_0x575ab4[_0xbe8e('0xa')],'priority':_0x7e4bb5[_0xbe8e('0x2b')]+_0x552314[_0xbe8e('0xf')]+_0x4a39eb++,'VoiceExtensionId':_0x575ab4[_0xbe8e('0x18')]});_0x485e1c['push']({'type':_0x575ab4['type'],'app':'Set','appdata':_0xbe8e('0x3e'),'context':_0x575ab4[_0xbe8e('0x17')],'exten':_0x575ab4[_0xbe8e('0xa')],'priority':_0x7e4bb5[_0xbe8e('0x2b')]+_0x552314['priority']+_0x4a39eb++,'VoiceExtensionId':_0x575ab4['VoiceExtensionId']});}}}for(var _0x33877a=0x0;_0x33877a<_0x7e4bb5[_0xbe8e('0x2b')];_0x33877a+=0x1){var _0x2e90b8=_0x552314[_0xbe8e('0xf')]+_0x7e4bb5['length'];var _0x2fd319=_0x33877a===_0x7e4bb5[_0xbe8e('0x2b')]-0x1?_0x552314[_0xbe8e('0xf')]+_0x485e1c[_0xbe8e('0x2b')]+_0x217c42[_0xbe8e('0x2b')]+0x2:_0x552314['priority']+_0x33877a+0x1;_0x485e1c[_0xbe8e('0x3f')](_0x33877a,0x0,{'type':_0x575ab4[_0xbe8e('0x13')],'app':_0xbe8e('0x40'),'appdata':_0x7e4bb5[_0x33877a]+'?'+_0x575ab4['context']+_0xbe8e('0x41')+_0x2e90b8+':'+_0x575ab4[_0xbe8e('0x17')]+',${EXTEN},'+_0x2fd319,'exten':_0x575ab4[_0xbe8e('0xa')],'context':_0x575ab4['context'],'priority':_0x552314[_0xbe8e('0xf')]+_0x33877a,'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});}_0x575ab4[_0xbe8e('0xf')]=_0x485e1c[_0xbe8e('0x2b')]?_[_0xbe8e('0x42')](_0x485e1c)['priority']+0x1:_0x552314[_0xbe8e('0xf')];_0x552314[_0xbe8e('0xf')]=(_0x217c42['length']?_[_0xbe8e('0x42')](_0x217c42)[_0xbe8e('0xf')]:_0x575ab4['priority'])+0x1;_0x552314[_0xbe8e('0x1a')]=_[_0xbe8e('0x43')](_0x552314[_0xbe8e('0x1a')],_0x485e1c,[_0x575ab4],_0x217c42);}_0x552314['extensions'][_0xbe8e('0x12')]({'type':_0x40960d[_0x54b748][0x0][_0xbe8e('0x13')],'app':_0xbe8e('0x44'),'exten':_0x40960d[_0x54b748][0x0][_0xbe8e('0xa')],'context':_0x40960d[_0x54b748][0x0][_0xbe8e('0x17')],'priority':_0x552314[_0xbe8e('0xf')],'VoiceExtensionId':_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]});_0x3744b5['push'](_0x40960d[_0x54b748][0x0][_0xbe8e('0x18')]);_0x5d6013=_[_0xbe8e('0x43')](_0x5d6013,_0x552314[_0xbe8e('0x1a')]);}}return _0xf17580[_0xbe8e('0x45')](function(_0x1b4bad){return _0xf17580[_0xbe8e('0x1')][_0xbe8e('0x7')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x3744b5}},'transaction':_0x1b4bad})[_0xbe8e('0x6')](function(_0x52a65e){return _0xf17580[_0xbe8e('0x1')][_0xbe8e('0x7')]['bulkCreate'](_[_0xbe8e('0x46')](_0x5d6013,_0xbe8e('0xf')),{'transaction':_0x1b4bad});});});})[_0xbe8e('0x47')](function(_0x17ca34){console[_0xbe8e('0x48')](_0x17ca34);});}exports[_0xbe8e('0x49')]=rewrite;