1f2cadf9915f022f649402a903b48f84ea500fac
[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 _0x5d31=['filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','find','push','Set','format','CDR(type)=%s','type','context','exten','VoiceExtensionId','outbound','${EXTEN:','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-PROGRESS=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)=','answer','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress',',${EXTEN},','last','Hangup','concat','destroy','bulkCreate','sortBy','error','util','models','then','intervals','findAll','IntervalId','VoiceExtension','map','CAST(priority\x20AS\x20UNSIGNED)'];(function(_0x39709c,_0x341236){var _0x220cd3=function(_0x4fa012){while(--_0x4fa012){_0x39709c['push'](_0x39709c['shift']());}};_0x220cd3(++_0x341236);}(_0x5d31,0xf7));var _0x15d3=function(_0x2bbbc2,_0x2fd8b9){_0x2bbbc2=_0x2bbbc2-0x0;var _0x1f0319=_0x5d31[_0x2bbbc2];return _0x1f0319;};'use strict';var _=require('lodash');var util=require(_0x15d3('0x0'));function rewrite(_0x2ba43c,_0xd3d88d){var _0x503ea0=this;return _0x2ba43c[_0x15d3('0x1')]['Interval']['findAll']({'raw':!![]})[_0x15d3('0x2')](function(_0x2a8bbe){_0x503ea0[_0x15d3('0x3')]=_0x2a8bbe;return _0x2ba43c[_0x15d3('0x1')]['VoiceExtension'][_0x15d3('0x4')]({'where':{'IntervalId':_0xd3d88d[_0x15d3('0x5')]},'raw':!![]});})[_0x15d3('0x2')](function(_0x28a293){return _0x2ba43c['models'][_0x15d3('0x6')]['findAll']({'where':{'exten':{'$in':_['uniq'](_[_0x15d3('0x7')](_0x28a293,'exten'))}},'order':[{'raw':_0x15d3('0x8')}],'raw':!![]});})['then'](function(_0x582816){var _0x3afd0f=_[_0x15d3('0x9')](_0x582816,{'priority':'1'});var _0x35c726=_[_0x15d3('0x9')](_0x582816,{'isApp':0x1});var _0x147137=_[_0x15d3('0xa')](_0x35c726,'exten');var _0x219867=[_0x15d3('0xb'),_0x15d3('0xc')];var _0x209104=[];var _0x36ab99=[];for(var _0x1360dd in _0x147137){if(_0x147137[_0x15d3('0xd')](_0x1360dd)){_0x503ea0[_0x15d3('0xe')]=0x2;_0x503ea0[_0x15d3('0xf')]=[];_0x503ea0[_0x15d3('0x10')]=_[_0x15d3('0x11')](_0x3afd0f,{'exten':_0x147137[_0x1360dd][0x0]['exten']});_0x503ea0[_0x15d3('0xf')][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0]['type'],'app':_0x15d3('0x13'),'appdata':util[_0x15d3('0x14')](_0x15d3('0x15'),_0x147137[_0x1360dd][0x0][_0x15d3('0x16')]),'context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0[_0x15d3('0xe')]++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});if(_0x147137[_0x1360dd][0x0][_0x15d3('0x16')]===_0x15d3('0x1a')){if(_0x503ea0[_0x15d3('0x10')]){_0x503ea0['extensions'][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':'Set','appdata':'CDR(destination)='+(_0x503ea0['extension']['cutdigits']?_0x15d3('0x1b')+_0x503ea0[_0x15d3('0x10')][_0x15d3('0x1c')]+'}':_0x15d3('0x1d')),'context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0['priority']++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0]['VoiceExtensionId']});}_0x503ea0[_0x15d3('0xf')][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x13'),'appdata':'CDR(routeid)='+_0x147137[_0x1360dd][0x0][_0x15d3('0x19')],'context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0[_0x15d3('0xe')]++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});var _0x240cf4=_0x503ea0['priority']++;_0x503ea0['extensions']['push']({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x1e'),'appdata':_0x15d3('0x1f')+(_0x240cf4+0x2)+_0x15d3('0x20')+(_0x240cf4+0x1)+')','context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x240cf4,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});if(_0x503ea0[_0x15d3('0x10')]){_0x503ea0[_0x15d3('0xf')]['push']({'type':_0x147137[_0x1360dd][0x0]['type'],'app':_0x15d3('0x13'),'appdata':_0x503ea0['extension'][_0x15d3('0x1c')]?'CDR(prefix)=${EXTEN:0:'+_0x503ea0[_0x15d3('0x10')][_0x15d3('0x1c')]+'}':'CDR(prefix)=noprefix','context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0[_0x15d3('0xe')]++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});}_0x503ea0[_0x15d3('0xf')][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x13'),'appdata':_0x15d3('0x21')+_0x147137[_0x1360dd][0x0][_0x15d3('0x19')],'context':_0x147137[_0x1360dd][0x0]['context'],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0[_0x15d3('0xe')]++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});if(_0x503ea0[_0x15d3('0x10')]&&_0x503ea0[_0x15d3('0x10')][_0x15d3('0xd')](_0x15d3('0x22'))&&_0x503ea0[_0x15d3('0x10')]['recordingFormat']!==_0x15d3('0x23')){_0x503ea0['extensions'][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x13'),'appdata':_0x15d3('0x24'),'context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0[_0x15d3('0xe')]++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});_0x503ea0[_0x15d3('0xf')][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x13'),'appdata':_0x15d3('0x25')+_0x503ea0[_0x15d3('0x10')][_0x15d3('0x22')]||'wav','context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0['priority']++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});}}_0x503ea0[_0x15d3('0xf')][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0]['type'],'app':_0x15d3('0x13'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0['priority']++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});_0x503ea0[_0x15d3('0xf')][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x13'),'appdata':_0x15d3('0x26'),'context':_0x147137[_0x1360dd][0x0]['context'],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0['priority']++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});_0x503ea0[_0x15d3('0xf')][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x13'),'appdata':_0x15d3('0x27'),'context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'exten':_0x147137[_0x1360dd][0x0][_0x15d3('0x18')],'priority':_0x503ea0[_0x15d3('0xe')]++,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});for(var _0x5a18b6=0x0,_0x45b51c=0x0;_0x5a18b6<_0x147137[_0x1360dd][_0x15d3('0x28')];_0x5a18b6+=0x1,_0x45b51c=0x0){var _0x5589d0=_0x147137[_0x1360dd][_0x5a18b6];if(_0x5589d0['type']){_0x5589d0[_0x15d3('0x16')]=_0x5589d0[_0x15d3('0x16')][_0x15d3('0x29')]();}var _0x20ecab=[];var _0x1f19b2=[];delete _0x5589d0['id'];delete _0x5589d0[_0x15d3('0x2a')];delete _0x5589d0[_0x15d3('0x2b')];var _0x442faf=_0x5589d0[_0x15d3('0x2c')]!==_0x15d3('0x2d')?[_0x5589d0['interval']]:_0x5589d0[_0x15d3('0x5')]?_[_0x15d3('0x7')](_['filter'](_0x503ea0[_0x15d3('0x3')],{'IntervalId':_0x5589d0['IntervalId']}),'interval'):[];if(_0x5589d0[_0x15d3('0xd')](_0x15d3('0x2e'))){if(_0x5589d0[_0x15d3('0x2e')]&&_0x5589d0['tag']!=='--'){_0x20ecab[_0x15d3('0x12')]({'type':_0x5589d0['type'],'app':_0x15d3('0x13'),'appdata':_0x15d3('0x2f')+_0x5589d0[_0x15d3('0x2e')],'context':_0x5589d0[_0x15d3('0x17')],'exten':_0x5589d0[_0x15d3('0x18')],'priority':_0x442faf['length']+_0x503ea0['priority']+_0x45b51c++,'VoiceExtensionId':_0x5589d0['VoiceExtensionId']});}}if(_0x5589d0[_0x15d3('0x16')]==='outbound'&&_0x5589d0[_0x15d3('0xd')](_0x15d3('0x30'))){if(_0x5589d0[_0x15d3('0x30')]){_0x20ecab['push']({'type':_0x5589d0[_0x15d3('0x16')],'app':_0x15d3('0x1e'),'appdata':_0x15d3('0x31')+_0x5589d0[_0x15d3('0x30')]+')','context':_0x5589d0[_0x15d3('0x17')],'exten':_0x5589d0[_0x15d3('0x18')],'priority':_0x442faf[_0x15d3('0x28')]+_0x503ea0[_0x15d3('0xe')]+_0x45b51c++,'VoiceExtensionId':_0x5589d0[_0x15d3('0x19')]});}else{_0x20ecab[_0x15d3('0x12')]({'type':_0x5589d0[_0x15d3('0x16')],'app':_0x15d3('0x1e'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x5589d0['context'],'exten':_0x5589d0[_0x15d3('0x18')],'priority':_0x442faf[_0x15d3('0x28')]+_0x503ea0[_0x15d3('0xe')]+_0x45b51c++,'VoiceExtensionId':_0x5589d0['VoiceExtensionId']});}}if(_0x5589d0['hasOwnProperty'](_0x15d3('0x32'))){if(_0x219867['indexOf'](_0x5589d0[_0x15d3('0x33')]['toLowerCase']())>=0x0&&_0x5589d0[_0x15d3('0x34')]!==_0x15d3('0x35')){if(_0x5589d0['answer']){_0x20ecab['push']({'type':_0x5589d0['type'],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x5589d0[_0x15d3('0x17')],'exten':_0x5589d0[_0x15d3('0x18')],'priority':_0x442faf['length']+_0x503ea0[_0x15d3('0xe')]+_0x45b51c++,'VoiceExtensionId':_0x5589d0[_0x15d3('0x19')]});_0x20ecab[_0x15d3('0x12')]({'type':_0x5589d0['type'],'app':_0x15d3('0x13'),'appdata':_0x15d3('0x36'),'context':_0x5589d0[_0x15d3('0x17')],'exten':_0x5589d0[_0x15d3('0x18')],'priority':_0x442faf[_0x15d3('0x28')]+_0x503ea0[_0x15d3('0xe')]+_0x45b51c++,'VoiceExtensionId':_0x5589d0['VoiceExtensionId']});}else{_0x20ecab[_0x15d3('0x12')]({'type':_0x5589d0['type'],'app':'ExecIf','appdata':_0x15d3('0x37'),'context':_0x5589d0['context'],'exten':_0x5589d0[_0x15d3('0x18')],'priority':_0x442faf['length']+_0x503ea0[_0x15d3('0xe')]+_0x45b51c++,'VoiceExtensionId':_0x5589d0[_0x15d3('0x19')]});_0x20ecab[_0x15d3('0x12')]({'type':_0x5589d0[_0x15d3('0x16')],'app':_0x15d3('0x13'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x5589d0['context'],'exten':_0x5589d0[_0x15d3('0x18')],'priority':_0x442faf['length']+_0x503ea0[_0x15d3('0xe')]+_0x45b51c++,'VoiceExtensionId':_0x5589d0[_0x15d3('0x19')]});}}}for(var _0x3cccc5=0x0;_0x3cccc5<_0x442faf[_0x15d3('0x28')];_0x3cccc5+=0x1){var _0x235be9=_0x503ea0[_0x15d3('0xe')]+_0x442faf[_0x15d3('0x28')];var _0x5cf111=_0x3cccc5===_0x442faf[_0x15d3('0x28')]-0x1?_0x503ea0[_0x15d3('0xe')]+_0x20ecab[_0x15d3('0x28')]+_0x1f19b2[_0x15d3('0x28')]+0x2:_0x503ea0[_0x15d3('0xe')]+_0x3cccc5+0x1;_0x20ecab['splice'](_0x3cccc5,0x0,{'type':_0x5589d0[_0x15d3('0x16')],'app':'GotoIfTime','appdata':_0x442faf[_0x3cccc5]+'?'+_0x5589d0['context']+_0x15d3('0x38')+_0x235be9+':'+_0x5589d0[_0x15d3('0x17')]+_0x15d3('0x38')+_0x5cf111,'exten':_0x5589d0[_0x15d3('0x18')],'context':_0x5589d0[_0x15d3('0x17')],'priority':_0x503ea0['priority']+_0x3cccc5,'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});}_0x5589d0[_0x15d3('0xe')]=_0x20ecab[_0x15d3('0x28')]?_[_0x15d3('0x39')](_0x20ecab)['priority']+0x1:_0x503ea0[_0x15d3('0xe')];_0x503ea0[_0x15d3('0xe')]=(_0x1f19b2[_0x15d3('0x28')]?_[_0x15d3('0x39')](_0x1f19b2)[_0x15d3('0xe')]:_0x5589d0[_0x15d3('0xe')])+0x1;_0x503ea0[_0x15d3('0xf')]=_['concat'](_0x503ea0[_0x15d3('0xf')],_0x20ecab,[_0x5589d0],_0x1f19b2);}_0x503ea0['extensions'][_0x15d3('0x12')]({'type':_0x147137[_0x1360dd][0x0][_0x15d3('0x16')],'app':_0x15d3('0x3a'),'exten':_0x147137[_0x1360dd][0x0]['exten'],'context':_0x147137[_0x1360dd][0x0][_0x15d3('0x17')],'priority':_0x503ea0['priority'],'VoiceExtensionId':_0x147137[_0x1360dd][0x0][_0x15d3('0x19')]});_0x209104[_0x15d3('0x12')](_0x147137[_0x1360dd][0x0]['VoiceExtensionId']);_0x36ab99=_[_0x15d3('0x3b')](_0x36ab99,_0x503ea0['extensions']);}}return _0x2ba43c['transaction'](function(_0x5340be){return _0x2ba43c['models'][_0x15d3('0x6')][_0x15d3('0x3c')]({'where':{'VoiceExtensionId':{'$in':_0x209104}},'transaction':_0x5340be})[_0x15d3('0x2')](function(_0x3b8ae4){return _0x2ba43c['models'][_0x15d3('0x6')][_0x15d3('0x3d')](_[_0x15d3('0x3e')](_0x36ab99,_0x15d3('0xe')),{'transaction':_0x5340be});});});})['catch'](function(_0x5eef5c){console[_0x15d3('0x3f')](_0x5eef5c);});}exports['rewrite']=rewrite;