b391167a8e3809be91d74bc713d3c6415dcce26d
[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 _0xe00f=['groupBy','queue','playback','priority','extensions','extension','find','Set','format','CDR(type)=%s','type','VoiceExtensionId','push','CDR(routeid)=','context','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','map','intervals','tag','CDR(tag)=','length','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)','indexOf','app','appType','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','transaction','destroy','sortBy','catch','error','rewrite','lodash','models','Interval','findAll','VoiceExtension','IntervalId','then','exten','CAST(priority\x20AS\x20UNSIGNED)','filter'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe00f,0x122));var _0xfe00=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0xe00f[_0x5ddb1c];return _0x354adc;};'use strict';var _=require(_0xfe00('0x0'));var util=require('util');function rewrite(_0x4f4e5b,_0x5affa6){var _0x483277=this;return _0x4f4e5b[_0xfe00('0x1')][_0xfe00('0x2')][_0xfe00('0x3')]({'raw':!![]})['then'](function(_0x43f82e){_0x483277['intervals']=_0x43f82e;return _0x4f4e5b[_0xfe00('0x1')][_0xfe00('0x4')]['findAll']({'where':{'IntervalId':_0x5affa6[_0xfe00('0x5')]},'raw':!![]});})[_0xfe00('0x6')](function(_0x4394ca){return _0x4f4e5b[_0xfe00('0x1')][_0xfe00('0x4')][_0xfe00('0x3')]({'where':{'exten':{'$in':_['uniq'](_['map'](_0x4394ca,_0xfe00('0x7')))}},'order':[{'raw':_0xfe00('0x8')}],'raw':!![]});})[_0xfe00('0x6')](function(_0x2a0642){var _0x20e06b=_[_0xfe00('0x9')](_0x2a0642,{'priority':'1'});var _0x2e1b70=_['filter'](_0x2a0642,{'isApp':0x1});var _0x4d53a5=_[_0xfe00('0xa')](_0x2e1b70,_0xfe00('0x7'));var _0x5a8832=[_0xfe00('0xb'),_0xfe00('0xc')];var _0x5f5145=[];var _0x1263bb=[];for(var _0x566199 in _0x4d53a5){if(_0x4d53a5['hasOwnProperty'](_0x566199)){_0x483277[_0xfe00('0xd')]=0x2;_0x483277[_0xfe00('0xe')]=[];_0x483277[_0xfe00('0xf')]=_[_0xfe00('0x10')](_0x20e06b,{'exten':_0x4d53a5[_0x566199][0x0]['exten']});_0x483277['extensions']['push']({'type':_0x4d53a5[_0x566199][0x0]['type'],'app':_0xfe00('0x11'),'appdata':util[_0xfe00('0x12')](_0xfe00('0x13'),_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')]),'context':_0x4d53a5[_0x566199][0x0]['context'],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277['priority']++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});if(_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')]==='inbound'){_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0]['type'],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x17')+_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')],'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});}else if(_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')]===_0xfe00('0x19')){if(_0x483277[_0xfe00('0xf')]){_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x1a')+(_0x483277[_0xfe00('0xf')][_0xfe00('0x1b')]?_0xfe00('0x1c')+_0x483277[_0xfe00('0xf')][_0xfe00('0x1b')]+'}':_0xfe00('0x1d')),'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});}_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':_0xfe00('0x11'),'appdata':'CDR(routeid)='+_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')],'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});var _0xf04f9a=_0x483277[_0xfe00('0xd')]++;_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':_0xfe00('0x1e'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0xf04f9a+0x2)+_0xfe00('0x1f')+(_0xf04f9a+0x1)+')','context':_0x4d53a5[_0x566199][0x0]['context'],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0xf04f9a,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});if(_0x483277[_0xfe00('0xf')]){_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':_0xfe00('0x11'),'appdata':_0x483277['extension']['cutdigits']?_0xfe00('0x20')+_0x483277[_0xfe00('0xf')][_0xfe00('0x1b')]+'}':_0xfe00('0x21'),'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0]['VoiceExtensionId']});}_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x22')+_0x4d53a5[_0x566199][0x0]['VoiceExtensionId'],'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});if(_0x483277[_0xfe00('0xf')]&&_0x483277[_0xfe00('0xf')][_0xfe00('0x23')](_0xfe00('0x24'))&&_0x483277[_0xfe00('0xf')]['recordingFormat']!==_0xfe00('0x25')){_0x483277['extensions'][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0]['type'],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x26'),'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0]['VoiceExtensionId']});_0x483277['extensions'][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x27')+_0x483277[_0xfe00('0xf')][_0xfe00('0x24')]||'wav','context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});}}_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0]['type'],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x28'),'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0]['VoiceExtensionId']});_0x483277['extensions'][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x29'),'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0]['exten'],'priority':_0x483277['priority']++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});_0x483277[_0xfe00('0xe')][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':'Set','appdata':_0xfe00('0x2a'),'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'priority':_0x483277[_0xfe00('0xd')]++,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});for(var _0xfcd701=0x0,_0x17c04c=0x0;_0xfcd701<_0x4d53a5[_0x566199]['length'];_0xfcd701+=0x1,_0x17c04c=0x0){var _0xf45d4=_0x4d53a5[_0x566199][_0xfcd701];if(_0xf45d4[_0xfe00('0x14')]){_0xf45d4[_0xfe00('0x14')]=_0xf45d4[_0xfe00('0x14')][_0xfe00('0x2b')]();}var _0x3d1e47=[];var _0x4a4013=[];delete _0xf45d4['id'];delete _0xf45d4[_0xfe00('0x2c')];delete _0xf45d4[_0xfe00('0x2d')];var _0x50ad07=_0xf45d4[_0xfe00('0x2e')]!==_0xfe00('0x2f')?[_0xf45d4[_0xfe00('0x2e')]]:_0xf45d4['IntervalId']?_[_0xfe00('0x30')](_[_0xfe00('0x9')](_0x483277[_0xfe00('0x31')],{'IntervalId':_0xf45d4[_0xfe00('0x5')]}),_0xfe00('0x2e')):[];if(_0xf45d4[_0xfe00('0x23')](_0xfe00('0x32'))){if(_0xf45d4[_0xfe00('0x32')]&&_0xf45d4[_0xfe00('0x32')]!=='--'){_0x3d1e47[_0xfe00('0x16')]({'type':_0xf45d4['type'],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x33')+_0xf45d4[_0xfe00('0x32')],'context':_0xf45d4[_0xfe00('0x18')],'exten':_0xf45d4[_0xfe00('0x7')],'priority':_0x50ad07[_0xfe00('0x34')]+_0x483277[_0xfe00('0xd')]+_0x17c04c++,'VoiceExtensionId':_0xf45d4[_0xfe00('0x15')]});}}if(_0xf45d4[_0xfe00('0x14')]===_0xfe00('0x19')&&_0xf45d4['hasOwnProperty'](_0xfe00('0x35'))){if(_0xf45d4[_0xfe00('0x35')]){_0x3d1e47[_0xfe00('0x16')]({'type':_0xf45d4[_0xfe00('0x14')],'app':_0xfe00('0x1e'),'appdata':_0xfe00('0x36')+_0xf45d4[_0xfe00('0x35')]+')','context':_0xf45d4['context'],'exten':_0xf45d4['exten'],'priority':_0x50ad07[_0xfe00('0x34')]+_0x483277[_0xfe00('0xd')]+_0x17c04c++,'VoiceExtensionId':_0xf45d4[_0xfe00('0x15')]});}else{_0x3d1e47[_0xfe00('0x16')]({'type':_0xf45d4['type'],'app':_0xfe00('0x1e'),'appdata':_0xfe00('0x37'),'context':_0xf45d4[_0xfe00('0x18')],'exten':_0xf45d4['exten'],'priority':_0x50ad07[_0xfe00('0x34')]+_0x483277[_0xfe00('0xd')]+_0x17c04c++,'VoiceExtensionId':_0xf45d4[_0xfe00('0x15')]});}}if(_0xf45d4['hasOwnProperty']('answer')){if(_0x5a8832[_0xfe00('0x38')](_0xf45d4[_0xfe00('0x39')]['toLowerCase']())>=0x0&&_0xf45d4[_0xfe00('0x3a')]!=='custom'){if(_0xf45d4[_0xfe00('0x3b')]){_0x3d1e47[_0xfe00('0x16')]({'type':_0xf45d4[_0xfe00('0x14')],'app':_0xfe00('0x1e'),'appdata':_0xfe00('0x3c'),'context':_0xf45d4['context'],'exten':_0xf45d4[_0xfe00('0x7')],'priority':_0x50ad07[_0xfe00('0x34')]+_0x483277[_0xfe00('0xd')]+_0x17c04c++,'VoiceExtensionId':_0xf45d4[_0xfe00('0x15')]});_0x3d1e47[_0xfe00('0x16')]({'type':_0xf45d4['type'],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x3d'),'context':_0xf45d4[_0xfe00('0x18')],'exten':_0xf45d4[_0xfe00('0x7')],'priority':_0x50ad07[_0xfe00('0x34')]+_0x483277[_0xfe00('0xd')]+_0x17c04c++,'VoiceExtensionId':_0xf45d4[_0xfe00('0x15')]});}else{_0x3d1e47['push']({'type':_0xf45d4[_0xfe00('0x14')],'app':_0xfe00('0x1e'),'appdata':_0xfe00('0x3e'),'context':_0xf45d4[_0xfe00('0x18')],'exten':_0xf45d4[_0xfe00('0x7')],'priority':_0x50ad07[_0xfe00('0x34')]+_0x483277[_0xfe00('0xd')]+_0x17c04c++,'VoiceExtensionId':_0xf45d4[_0xfe00('0x15')]});_0x3d1e47['push']({'type':_0xf45d4[_0xfe00('0x14')],'app':_0xfe00('0x11'),'appdata':_0xfe00('0x3f'),'context':_0xf45d4['context'],'exten':_0xf45d4[_0xfe00('0x7')],'priority':_0x50ad07['length']+_0x483277['priority']+_0x17c04c++,'VoiceExtensionId':_0xf45d4['VoiceExtensionId']});}}}for(var _0x3e44c8=0x0;_0x3e44c8<_0x50ad07[_0xfe00('0x34')];_0x3e44c8+=0x1){var _0x2e1e13=_0x483277[_0xfe00('0xd')]+_0x50ad07['length'];var _0x455809=_0x3e44c8===_0x50ad07[_0xfe00('0x34')]-0x1?_0x483277[_0xfe00('0xd')]+_0x3d1e47['length']+_0x4a4013[_0xfe00('0x34')]+0x2:_0x483277['priority']+_0x3e44c8+0x1;_0x3d1e47[_0xfe00('0x40')](_0x3e44c8,0x0,{'type':_0xf45d4[_0xfe00('0x14')],'app':_0xfe00('0x41'),'appdata':_0x50ad07[_0x3e44c8]+'?'+_0xf45d4[_0xfe00('0x18')]+',${EXTEN},'+_0x2e1e13+':'+_0xf45d4['context']+_0xfe00('0x42')+_0x455809,'exten':_0xf45d4[_0xfe00('0x7')],'context':_0xf45d4[_0xfe00('0x18')],'priority':_0x483277[_0xfe00('0xd')]+_0x3e44c8,'VoiceExtensionId':_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]});}_0xf45d4[_0xfe00('0xd')]=_0x3d1e47['length']?_[_0xfe00('0x43')](_0x3d1e47)['priority']+0x1:_0x483277[_0xfe00('0xd')];_0x483277[_0xfe00('0xd')]=(_0x4a4013[_0xfe00('0x34')]?_[_0xfe00('0x43')](_0x4a4013)['priority']:_0xf45d4[_0xfe00('0xd')])+0x1;_0x483277[_0xfe00('0xe')]=_[_0xfe00('0x44')](_0x483277['extensions'],_0x3d1e47,[_0xf45d4],_0x4a4013);}_0x483277['extensions'][_0xfe00('0x16')]({'type':_0x4d53a5[_0x566199][0x0][_0xfe00('0x14')],'app':'Hangup','exten':_0x4d53a5[_0x566199][0x0][_0xfe00('0x7')],'context':_0x4d53a5[_0x566199][0x0][_0xfe00('0x18')],'priority':_0x483277[_0xfe00('0xd')],'VoiceExtensionId':_0x4d53a5[_0x566199][0x0]['VoiceExtensionId']});_0x5f5145[_0xfe00('0x16')](_0x4d53a5[_0x566199][0x0][_0xfe00('0x15')]);_0x1263bb=_[_0xfe00('0x44')](_0x1263bb,_0x483277[_0xfe00('0xe')]);}}return _0x4f4e5b[_0xfe00('0x45')](function(_0x477678){return _0x4f4e5b[_0xfe00('0x1')][_0xfe00('0x4')][_0xfe00('0x46')]({'where':{'VoiceExtensionId':{'$in':_0x5f5145}},'transaction':_0x477678})[_0xfe00('0x6')](function(_0x5af44a){return _0x4f4e5b[_0xfe00('0x1')][_0xfe00('0x4')]['bulkCreate'](_[_0xfe00('0x47')](_0x1263bb,_0xfe00('0xd')),{'transaction':_0x477678});});});})[_0xfe00('0x48')](function(_0x2e2407){console[_0xfe00('0x49')](_0x2e2407);});}exports[_0xfe00('0x4a')]=rewrite;