47d3adb6e56ee656f0dbe38746438296eb9f475d
[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 _0xd0e8=['CDR(type)=%s','context','VoiceExtensionId','inbound','CDR(routeid)=','outbound','${EXTEN:','cutdigits','${EXTEN}','priority','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','outboundrouteid=','hasOwnProperty','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','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','Hangup','transaction','destroy','bulkCreate','sortBy','catch','error','rewrite','models','Interval','VoiceExtension','findAll','IntervalId','then','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','extension','find','extensions','push','type','Set','format'];(function(_0x548249,_0x5e9aff){var _0x576cf0=function(_0x38b3e0){while(--_0x38b3e0){_0x548249['push'](_0x548249['shift']());}};_0x576cf0(++_0x5e9aff);}(_0xd0e8,0x110));var _0x8d0e=function(_0x1652cc,_0x2b2071){_0x1652cc=_0x1652cc-0x0;var _0x633b0c=_0xd0e8[_0x1652cc];return _0x633b0c;};'use strict';var _=require('lodash');var util=require('util');function rewrite(_0x478d22,_0x3e5a7d){var _0x349834=this;return _0x478d22[_0x8d0e('0x0')][_0x8d0e('0x1')]['findAll']({'raw':!![]})['then'](function(_0x4fc355){_0x349834['intervals']=_0x4fc355;return _0x478d22[_0x8d0e('0x0')][_0x8d0e('0x2')][_0x8d0e('0x3')]({'where':{'IntervalId':_0x3e5a7d[_0x8d0e('0x4')]},'raw':!![]});})[_0x8d0e('0x5')](function(_0x37649c){return _0x478d22[_0x8d0e('0x0')][_0x8d0e('0x2')][_0x8d0e('0x3')]({'where':{'exten':{'$in':_['uniq'](_[_0x8d0e('0x6')](_0x37649c,_0x8d0e('0x7')))}},'order':[{'raw':_0x8d0e('0x8')}],'raw':!![]});})[_0x8d0e('0x5')](function(_0x9e6a41){var _0x87a79=_[_0x8d0e('0x9')](_0x9e6a41,{'priority':'1'});var _0x29638a=_[_0x8d0e('0x9')](_0x9e6a41,{'isApp':0x1});var _0x44ef55=_[_0x8d0e('0xa')](_0x29638a,_0x8d0e('0x7'));var _0x4d9b47=[_0x8d0e('0xb'),_0x8d0e('0xc')];var _0x2cbb35=[];var _0x483fd8=[];for(var _0x4847aa in _0x44ef55){if(_0x44ef55['hasOwnProperty'](_0x4847aa)){_0x349834['priority']=0x2;_0x349834['extensions']=[];_0x349834[_0x8d0e('0xd')]=_[_0x8d0e('0xe')](_0x87a79,{'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')]});_0x349834[_0x8d0e('0xf')][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':util[_0x8d0e('0x13')](_0x8d0e('0x14'),_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')]),'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0]['exten'],'priority':_0x349834['priority']++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});if(_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')]===_0x8d0e('0x17')){_0x349834[_0x8d0e('0xf')]['push']({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x18')+_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')],'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')],'priority':_0x349834['priority']++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0]['VoiceExtensionId']});}else if(_0x44ef55[_0x4847aa][0x0]['type']===_0x8d0e('0x19')){if(_0x349834[_0x8d0e('0xd')]){_0x349834['extensions']['push']({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':'CDR(destination)='+(_0x349834[_0x8d0e('0xd')]['cutdigits']?_0x8d0e('0x1a')+_0x349834['extension'][_0x8d0e('0x1b')]+'}':_0x8d0e('0x1c')),'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0]['exten'],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});}_0x349834[_0x8d0e('0xf')]['push']({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x18')+_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')],'context':_0x44ef55[_0x4847aa][0x0]['context'],'exten':_0x44ef55[_0x4847aa][0x0]['exten'],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0]['VoiceExtensionId']});var _0x104486=_0x349834['priority']++;_0x349834[_0x8d0e('0xf')][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x1e'),'appdata':_0x8d0e('0x1f')+(_0x104486+0x2)+_0x8d0e('0x20')+(_0x104486+0x1)+')','context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')],'priority':_0x104486,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});if(_0x349834[_0x8d0e('0xd')]){_0x349834[_0x8d0e('0xf')][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x349834['extension'][_0x8d0e('0x1b')]?_0x8d0e('0x21')+_0x349834[_0x8d0e('0xd')][_0x8d0e('0x1b')]+'}':'CDR(prefix)=noprefix','context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});}_0x349834[_0x8d0e('0xf')][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x22')+_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')],'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0]['VoiceExtensionId']});if(_0x349834['extension']&&_0x349834[_0x8d0e('0xd')][_0x8d0e('0x23')](_0x8d0e('0x24'))&&_0x349834['extension'][_0x8d0e('0x24')]!==_0x8d0e('0x25')){_0x349834[_0x8d0e('0xf')]['push']({'type':_0x44ef55[_0x4847aa][0x0]['type'],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x26'),'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0]['exten'],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});_0x349834[_0x8d0e('0xf')][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x27')+_0x349834[_0x8d0e('0xd')][_0x8d0e('0x24')]||_0x8d0e('0x28'),'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0]['exten'],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});}}_0x349834['extensions'][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x29'),'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0]['exten'],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});_0x349834[_0x8d0e('0xf')][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x2a'),'context':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x15')],'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});_0x349834['extensions'][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x2b'),'context':_0x44ef55[_0x4847aa][0x0]['context'],'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')],'priority':_0x349834[_0x8d0e('0x1d')]++,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]});for(var _0x2a5818=0x0,_0x1e5403=0x0;_0x2a5818<_0x44ef55[_0x4847aa][_0x8d0e('0x2c')];_0x2a5818+=0x1,_0x1e5403=0x0){var _0x597e07=_0x44ef55[_0x4847aa][_0x2a5818];if(_0x597e07[_0x8d0e('0x11')]){_0x597e07[_0x8d0e('0x11')]=_0x597e07[_0x8d0e('0x11')]['toLowerCase']();}var _0x1f730b=[];var _0x1edb33=[];delete _0x597e07['id'];delete _0x597e07[_0x8d0e('0x2d')];delete _0x597e07[_0x8d0e('0x2e')];var _0x5efbbf=_0x597e07[_0x8d0e('0x2f')]!=='*,*,*,*'?[_0x597e07[_0x8d0e('0x2f')]]:_0x597e07[_0x8d0e('0x4')]?_[_0x8d0e('0x6')](_[_0x8d0e('0x9')](_0x349834['intervals'],{'IntervalId':_0x597e07[_0x8d0e('0x4')]}),'interval'):[];if(_0x597e07['hasOwnProperty'](_0x8d0e('0x30'))){if(_0x597e07[_0x8d0e('0x30')]&&_0x597e07['tag']!=='--'){_0x1f730b[_0x8d0e('0x10')]({'type':_0x597e07[_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':'CDR(tag)='+_0x597e07[_0x8d0e('0x30')],'context':_0x597e07['context'],'exten':_0x597e07[_0x8d0e('0x7')],'priority':_0x5efbbf[_0x8d0e('0x2c')]+_0x349834[_0x8d0e('0x1d')]+_0x1e5403++,'VoiceExtensionId':_0x597e07[_0x8d0e('0x16')]});}}if(_0x597e07['type']===_0x8d0e('0x19')&&_0x597e07[_0x8d0e('0x23')]('callerID')){if(_0x597e07['callerID']){_0x1f730b[_0x8d0e('0x10')]({'type':_0x597e07[_0x8d0e('0x11')],'app':'ExecIf','appdata':_0x8d0e('0x31')+_0x597e07[_0x8d0e('0x32')]+')','context':_0x597e07[_0x8d0e('0x15')],'exten':_0x597e07[_0x8d0e('0x7')],'priority':_0x5efbbf[_0x8d0e('0x2c')]+_0x349834[_0x8d0e('0x1d')]+_0x1e5403++,'VoiceExtensionId':_0x597e07[_0x8d0e('0x16')]});}else{_0x1f730b[_0x8d0e('0x10')]({'type':_0x597e07[_0x8d0e('0x11')],'app':'ExecIf','appdata':_0x8d0e('0x33'),'context':_0x597e07[_0x8d0e('0x15')],'exten':_0x597e07[_0x8d0e('0x7')],'priority':_0x5efbbf['length']+_0x349834[_0x8d0e('0x1d')]+_0x1e5403++,'VoiceExtensionId':_0x597e07[_0x8d0e('0x16')]});}}if(_0x597e07[_0x8d0e('0x23')](_0x8d0e('0x34'))){if(_0x4d9b47[_0x8d0e('0x35')](_0x597e07[_0x8d0e('0x36')]['toLowerCase']())>=0x0&&_0x597e07[_0x8d0e('0x37')]!==_0x8d0e('0x38')){if(_0x597e07['answer']){_0x1f730b[_0x8d0e('0x10')]({'type':_0x597e07['type'],'app':_0x8d0e('0x1e'),'appdata':_0x8d0e('0x39'),'context':_0x597e07[_0x8d0e('0x15')],'exten':_0x597e07[_0x8d0e('0x7')],'priority':_0x5efbbf[_0x8d0e('0x2c')]+_0x349834[_0x8d0e('0x1d')]+_0x1e5403++,'VoiceExtensionId':_0x597e07[_0x8d0e('0x16')]});_0x1f730b[_0x8d0e('0x10')]({'type':_0x597e07[_0x8d0e('0x11')],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x3a'),'context':_0x597e07[_0x8d0e('0x15')],'exten':_0x597e07[_0x8d0e('0x7')],'priority':_0x5efbbf[_0x8d0e('0x2c')]+_0x349834[_0x8d0e('0x1d')]+_0x1e5403++,'VoiceExtensionId':_0x597e07['VoiceExtensionId']});}else{_0x1f730b[_0x8d0e('0x10')]({'type':_0x597e07[_0x8d0e('0x11')],'app':_0x8d0e('0x1e'),'appdata':_0x8d0e('0x3b'),'context':_0x597e07[_0x8d0e('0x15')],'exten':_0x597e07[_0x8d0e('0x7')],'priority':_0x5efbbf[_0x8d0e('0x2c')]+_0x349834['priority']+_0x1e5403++,'VoiceExtensionId':_0x597e07['VoiceExtensionId']});_0x1f730b[_0x8d0e('0x10')]({'type':_0x597e07['type'],'app':_0x8d0e('0x12'),'appdata':_0x8d0e('0x3c'),'context':_0x597e07[_0x8d0e('0x15')],'exten':_0x597e07[_0x8d0e('0x7')],'priority':_0x5efbbf[_0x8d0e('0x2c')]+_0x349834[_0x8d0e('0x1d')]+_0x1e5403++,'VoiceExtensionId':_0x597e07['VoiceExtensionId']});}}}for(var _0x3ef472=0x0;_0x3ef472<_0x5efbbf[_0x8d0e('0x2c')];_0x3ef472+=0x1){var _0x2f9a46=_0x349834[_0x8d0e('0x1d')]+_0x5efbbf['length'];var _0x4c20b1=_0x3ef472===_0x5efbbf[_0x8d0e('0x2c')]-0x1?_0x349834[_0x8d0e('0x1d')]+_0x1f730b['length']+_0x1edb33['length']+0x2:_0x349834[_0x8d0e('0x1d')]+_0x3ef472+0x1;_0x1f730b[_0x8d0e('0x3d')](_0x3ef472,0x0,{'type':_0x597e07[_0x8d0e('0x11')],'app':_0x8d0e('0x3e'),'appdata':_0x5efbbf[_0x3ef472]+'?'+_0x597e07[_0x8d0e('0x15')]+',${EXTEN},'+_0x2f9a46+':'+_0x597e07[_0x8d0e('0x15')]+_0x8d0e('0x3f')+_0x4c20b1,'exten':_0x597e07['exten'],'context':_0x597e07[_0x8d0e('0x15')],'priority':_0x349834['priority']+_0x3ef472,'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0]['VoiceExtensionId']});}_0x597e07[_0x8d0e('0x1d')]=_0x1f730b['length']?_[_0x8d0e('0x40')](_0x1f730b)['priority']+0x1:_0x349834['priority'];_0x349834[_0x8d0e('0x1d')]=(_0x1edb33[_0x8d0e('0x2c')]?_[_0x8d0e('0x40')](_0x1edb33)[_0x8d0e('0x1d')]:_0x597e07['priority'])+0x1;_0x349834[_0x8d0e('0xf')]=_['concat'](_0x349834[_0x8d0e('0xf')],_0x1f730b,[_0x597e07],_0x1edb33);}_0x349834[_0x8d0e('0xf')][_0x8d0e('0x10')]({'type':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x11')],'app':_0x8d0e('0x41'),'exten':_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x7')],'context':_0x44ef55[_0x4847aa][0x0]['context'],'priority':_0x349834[_0x8d0e('0x1d')],'VoiceExtensionId':_0x44ef55[_0x4847aa][0x0]['VoiceExtensionId']});_0x2cbb35[_0x8d0e('0x10')](_0x44ef55[_0x4847aa][0x0][_0x8d0e('0x16')]);_0x483fd8=_['concat'](_0x483fd8,_0x349834[_0x8d0e('0xf')]);}}return _0x478d22[_0x8d0e('0x42')](function(_0x474c04){return _0x478d22['models']['VoiceExtension'][_0x8d0e('0x43')]({'where':{'VoiceExtensionId':{'$in':_0x2cbb35}},'transaction':_0x474c04})[_0x8d0e('0x5')](function(_0x14835c){return _0x478d22[_0x8d0e('0x0')][_0x8d0e('0x2')][_0x8d0e('0x44')](_[_0x8d0e('0x45')](_0x483fd8,'priority'),{'transaction':_0x474c04});});});})[_0x8d0e('0x46')](function(_0x2db424){console[_0x8d0e('0x47')](_0x2db424);});}exports[_0x8d0e('0x48')]=rewrite;