efb57bbce6fc503ee014854b2a9d972339c4c2f6
[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 _0xb7e1=['*,*,*,*','tag','CDR(tag)=','length','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','answer','toLowerCase','appType','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','transaction','catch','error','rewrite','util','Interval','findAll','intervals','models','VoiceExtension','IntervalId','map','exten','CAST(priority\x20AS\x20UNSIGNED)','then','filter','groupBy','hasOwnProperty','priority','extensions','extension','find','type','CDR(type)=%s','VoiceExtensionId','inbound','push','Set','CDR(routeid)=','outbound','${EXTEN:','${EXTEN}','context','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','cutdigits','CDR(prefix)=${EXTEN:0:','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','updatedAt','interval'];(function(_0x3a0538,_0x3f7e29){var _0x49e6ef=function(_0x7fa737){while(--_0x7fa737){_0x3a0538['push'](_0x3a0538['shift']());}};_0x49e6ef(++_0x3f7e29);}(_0xb7e1,0x11a));var _0x1b7e=function(_0x28baab,_0x34af5f){_0x28baab=_0x28baab-0x0;var _0x35a3a5=_0xb7e1[_0x28baab];return _0x35a3a5;};'use strict';var _=require('lodash');var util=require(_0x1b7e('0x0'));function rewrite(_0x52a1eb,_0x404dbb){var _0x312694=this;return _0x52a1eb['models'][_0x1b7e('0x1')][_0x1b7e('0x2')]({'raw':!![]})['then'](function(_0x2e969f){_0x312694[_0x1b7e('0x3')]=_0x2e969f;return _0x52a1eb[_0x1b7e('0x4')][_0x1b7e('0x5')][_0x1b7e('0x2')]({'where':{'IntervalId':_0x404dbb[_0x1b7e('0x6')]},'raw':!![]});})['then'](function(_0x318a66){return _0x52a1eb['models'][_0x1b7e('0x5')][_0x1b7e('0x2')]({'where':{'exten':{'$in':_['uniq'](_[_0x1b7e('0x7')](_0x318a66,_0x1b7e('0x8')))}},'order':[{'raw':_0x1b7e('0x9')}],'raw':!![]});})[_0x1b7e('0xa')](function(_0x4bf42d){var _0x520dff=_[_0x1b7e('0xb')](_0x4bf42d,{'priority':'1'});var _0x4724b4=_[_0x1b7e('0xb')](_0x4bf42d,{'isApp':0x1});var _0x48591a=_[_0x1b7e('0xc')](_0x4724b4,_0x1b7e('0x8'));var _0x49b386=['queue','playback'];var _0x28ff6b=[];var _0x314d6c=[];for(var _0x121142 in _0x48591a){if(_0x48591a[_0x1b7e('0xd')](_0x121142)){_0x312694[_0x1b7e('0xe')]=0x2;_0x312694[_0x1b7e('0xf')]=[];_0x312694[_0x1b7e('0x10')]=_[_0x1b7e('0x11')](_0x520dff,{'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')]});_0x312694['extensions']['push']({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':'Set','appdata':util['format'](_0x1b7e('0x13'),_0x48591a[_0x121142][0x0][_0x1b7e('0x12')]),'context':_0x48591a[_0x121142][0x0]['context'],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694['priority']++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});if(_0x48591a[_0x121142][0x0][_0x1b7e('0x12')]===_0x1b7e('0x15')){_0x312694['extensions'][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x1b7e('0x18')+_0x48591a[_0x121142][0x0][_0x1b7e('0x14')],'context':_0x48591a[_0x121142][0x0]['context'],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694['priority']++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});}else if(_0x48591a[_0x121142][0x0][_0x1b7e('0x12')]===_0x1b7e('0x19')){if(_0x312694[_0x1b7e('0x10')]){_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0]['type'],'app':_0x1b7e('0x17'),'appdata':'CDR(destination)='+(_0x312694[_0x1b7e('0x10')]['cutdigits']?_0x1b7e('0x1a')+_0x312694[_0x1b7e('0x10')]['cutdigits']+'}':_0x1b7e('0x1b')),'context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694[_0x1b7e('0xe')]++,'VoiceExtensionId':_0x48591a[_0x121142][0x0]['VoiceExtensionId']});}_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':'CDR(routeid)='+_0x48591a[_0x121142][0x0][_0x1b7e('0x14')],'context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694[_0x1b7e('0xe')]++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});var _0xf0066c=_0x312694['priority']++;_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':'ExecIf','appdata':_0x1b7e('0x1d')+(_0xf0066c+0x2)+_0x1b7e('0x1e')+(_0xf0066c+0x1)+')','context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0]['exten'],'priority':_0xf0066c,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});if(_0x312694['extension']){_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x312694[_0x1b7e('0x10')][_0x1b7e('0x1f')]?_0x1b7e('0x20')+_0x312694[_0x1b7e('0x10')][_0x1b7e('0x1f')]+'}':'CDR(prefix)=noprefix','context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694[_0x1b7e('0xe')]++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});}_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x1b7e('0x21')+_0x48591a[_0x121142][0x0][_0x1b7e('0x14')],'context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694[_0x1b7e('0xe')]++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});if(_0x312694['extension']&&_0x312694['extension'][_0x1b7e('0xd')](_0x1b7e('0x22'))&&_0x312694[_0x1b7e('0x10')][_0x1b7e('0x22')]!==_0x1b7e('0x23')){_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x48591a[_0x121142][0x0]['context'],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694['priority']++,'VoiceExtensionId':_0x48591a[_0x121142][0x0]['VoiceExtensionId']});_0x312694[_0x1b7e('0xf')]['push']({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x1b7e('0x24')+_0x312694[_0x1b7e('0x10')][_0x1b7e('0x22')]||_0x1b7e('0x25'),'context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694['priority']++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});}}_0x312694[_0x1b7e('0xf')]['push']({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x1b7e('0x26'),'context':_0x48591a[_0x121142][0x0]['context'],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694[_0x1b7e('0xe')]++,'VoiceExtensionId':_0x48591a[_0x121142][0x0]['VoiceExtensionId']});_0x312694[_0x1b7e('0xf')]['push']({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':'Set','appdata':_0x1b7e('0x27'),'context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694[_0x1b7e('0xe')]++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x1b7e('0x28'),'context':_0x48591a[_0x121142][0x0][_0x1b7e('0x1c')],'exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'priority':_0x312694[_0x1b7e('0xe')]++,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});for(var _0x5a0ae6=0x0,_0x4bf6d5=0x0;_0x5a0ae6<_0x48591a[_0x121142]['length'];_0x5a0ae6+=0x1,_0x4bf6d5=0x0){var _0x2ad79b=_0x48591a[_0x121142][_0x5a0ae6];if(_0x2ad79b[_0x1b7e('0x12')]){_0x2ad79b[_0x1b7e('0x12')]=_0x2ad79b['type']['toLowerCase']();}var _0x1d716d=[];var _0x5ecafa=[];delete _0x2ad79b['id'];delete _0x2ad79b['createdAt'];delete _0x2ad79b[_0x1b7e('0x29')];var _0x269fdc=_0x2ad79b[_0x1b7e('0x2a')]!==_0x1b7e('0x2b')?[_0x2ad79b[_0x1b7e('0x2a')]]:_0x2ad79b[_0x1b7e('0x6')]?_['map'](_[_0x1b7e('0xb')](_0x312694[_0x1b7e('0x3')],{'IntervalId':_0x2ad79b[_0x1b7e('0x6')]}),_0x1b7e('0x2a')):[];if(_0x2ad79b[_0x1b7e('0xd')](_0x1b7e('0x2c'))){if(_0x2ad79b[_0x1b7e('0x2c')]&&_0x2ad79b[_0x1b7e('0x2c')]!=='--'){_0x1d716d[_0x1b7e('0x16')]({'type':_0x2ad79b[_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x1b7e('0x2d')+_0x2ad79b[_0x1b7e('0x2c')],'context':_0x2ad79b['context'],'exten':_0x2ad79b[_0x1b7e('0x8')],'priority':_0x269fdc[_0x1b7e('0x2e')]+_0x312694[_0x1b7e('0xe')]+_0x4bf6d5++,'VoiceExtensionId':_0x2ad79b['VoiceExtensionId']});}}if(_0x2ad79b['type']===_0x1b7e('0x19')&&_0x2ad79b[_0x1b7e('0xd')](_0x1b7e('0x2f'))){if(_0x2ad79b[_0x1b7e('0x2f')]){_0x1d716d[_0x1b7e('0x16')]({'type':_0x2ad79b[_0x1b7e('0x12')],'app':_0x1b7e('0x30'),'appdata':_0x1b7e('0x31')+_0x2ad79b[_0x1b7e('0x2f')]+')','context':_0x2ad79b['context'],'exten':_0x2ad79b['exten'],'priority':_0x269fdc['length']+_0x312694['priority']+_0x4bf6d5++,'VoiceExtensionId':_0x2ad79b['VoiceExtensionId']});}else{_0x1d716d[_0x1b7e('0x16')]({'type':_0x2ad79b[_0x1b7e('0x12')],'app':_0x1b7e('0x30'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x2ad79b[_0x1b7e('0x1c')],'exten':_0x2ad79b[_0x1b7e('0x8')],'priority':_0x269fdc[_0x1b7e('0x2e')]+_0x312694[_0x1b7e('0xe')]+_0x4bf6d5++,'VoiceExtensionId':_0x2ad79b[_0x1b7e('0x14')]});}}if(_0x2ad79b[_0x1b7e('0xd')](_0x1b7e('0x32'))){if(_0x49b386['indexOf'](_0x2ad79b['app'][_0x1b7e('0x33')]())>=0x0&&_0x2ad79b[_0x1b7e('0x34')]!=='custom'){if(_0x2ad79b[_0x1b7e('0x32')]){_0x1d716d[_0x1b7e('0x16')]({'type':_0x2ad79b[_0x1b7e('0x12')],'app':_0x1b7e('0x30'),'appdata':_0x1b7e('0x35'),'context':_0x2ad79b[_0x1b7e('0x1c')],'exten':_0x2ad79b[_0x1b7e('0x8')],'priority':_0x269fdc[_0x1b7e('0x2e')]+_0x312694[_0x1b7e('0xe')]+_0x4bf6d5++,'VoiceExtensionId':_0x2ad79b[_0x1b7e('0x14')]});_0x1d716d[_0x1b7e('0x16')]({'type':_0x2ad79b[_0x1b7e('0x12')],'app':_0x1b7e('0x17'),'appdata':_0x1b7e('0x36'),'context':_0x2ad79b[_0x1b7e('0x1c')],'exten':_0x2ad79b[_0x1b7e('0x8')],'priority':_0x269fdc[_0x1b7e('0x2e')]+_0x312694[_0x1b7e('0xe')]+_0x4bf6d5++,'VoiceExtensionId':_0x2ad79b[_0x1b7e('0x14')]});}else{_0x1d716d['push']({'type':_0x2ad79b[_0x1b7e('0x12')],'app':_0x1b7e('0x30'),'appdata':_0x1b7e('0x37'),'context':_0x2ad79b[_0x1b7e('0x1c')],'exten':_0x2ad79b['exten'],'priority':_0x269fdc[_0x1b7e('0x2e')]+_0x312694[_0x1b7e('0xe')]+_0x4bf6d5++,'VoiceExtensionId':_0x2ad79b[_0x1b7e('0x14')]});_0x1d716d['push']({'type':_0x2ad79b[_0x1b7e('0x12')],'app':'Set','appdata':_0x1b7e('0x38'),'context':_0x2ad79b[_0x1b7e('0x1c')],'exten':_0x2ad79b['exten'],'priority':_0x269fdc['length']+_0x312694['priority']+_0x4bf6d5++,'VoiceExtensionId':_0x2ad79b[_0x1b7e('0x14')]});}}}for(var _0x5e6a47=0x0;_0x5e6a47<_0x269fdc['length'];_0x5e6a47+=0x1){var _0x4619dd=_0x312694[_0x1b7e('0xe')]+_0x269fdc[_0x1b7e('0x2e')];var _0x56ce70=_0x5e6a47===_0x269fdc[_0x1b7e('0x2e')]-0x1?_0x312694[_0x1b7e('0xe')]+_0x1d716d[_0x1b7e('0x2e')]+_0x5ecafa[_0x1b7e('0x2e')]+0x2:_0x312694['priority']+_0x5e6a47+0x1;_0x1d716d['splice'](_0x5e6a47,0x0,{'type':_0x2ad79b[_0x1b7e('0x12')],'app':_0x1b7e('0x39'),'appdata':_0x269fdc[_0x5e6a47]+'?'+_0x2ad79b[_0x1b7e('0x1c')]+_0x1b7e('0x3a')+_0x4619dd+':'+_0x2ad79b['context']+_0x1b7e('0x3a')+_0x56ce70,'exten':_0x2ad79b[_0x1b7e('0x8')],'context':_0x2ad79b[_0x1b7e('0x1c')],'priority':_0x312694[_0x1b7e('0xe')]+_0x5e6a47,'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});}_0x2ad79b[_0x1b7e('0xe')]=_0x1d716d[_0x1b7e('0x2e')]?_[_0x1b7e('0x3b')](_0x1d716d)[_0x1b7e('0xe')]+0x1:_0x312694[_0x1b7e('0xe')];_0x312694[_0x1b7e('0xe')]=(_0x5ecafa[_0x1b7e('0x2e')]?_['last'](_0x5ecafa)[_0x1b7e('0xe')]:_0x2ad79b[_0x1b7e('0xe')])+0x1;_0x312694['extensions']=_[_0x1b7e('0x3c')](_0x312694[_0x1b7e('0xf')],_0x1d716d,[_0x2ad79b],_0x5ecafa);}_0x312694[_0x1b7e('0xf')][_0x1b7e('0x16')]({'type':_0x48591a[_0x121142][0x0][_0x1b7e('0x12')],'app':'Hangup','exten':_0x48591a[_0x121142][0x0][_0x1b7e('0x8')],'context':_0x48591a[_0x121142][0x0]['context'],'priority':_0x312694[_0x1b7e('0xe')],'VoiceExtensionId':_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]});_0x28ff6b['push'](_0x48591a[_0x121142][0x0][_0x1b7e('0x14')]);_0x314d6c=_[_0x1b7e('0x3c')](_0x314d6c,_0x312694['extensions']);}}return _0x52a1eb[_0x1b7e('0x3d')](function(_0x2d9f3c){return _0x52a1eb[_0x1b7e('0x4')][_0x1b7e('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x28ff6b}},'transaction':_0x2d9f3c})['then'](function(_0x4f344b){return _0x52a1eb[_0x1b7e('0x4')][_0x1b7e('0x5')]['bulkCreate'](_['sortBy'](_0x314d6c,'priority'),{'transaction':_0x2d9f3c});});});})[_0x1b7e('0x3e')](function(_0x3b557d){console[_0x1b7e('0x3f')](_0x3b557d);});}exports[_0x1b7e('0x40')]=rewrite;