6018cb278ab5d503448c2fa90985c23165017108
[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 _0x201d=['catch','error','rewrite','lodash','util','models','Interval','findAll','intervals','VoiceExtension','IntervalId','then','uniq','exten','filter','queue','playback','hasOwnProperty','extensions','push','type','Set','context','VoiceExtensionId','CDR(routeid)=','priority','outbound','extension','CDR(destination)=','cutdigits','${EXTEN:','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','recordingFormat','none','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','updatedAt','interval','map','tag','CDR(tag)=','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','app','toLowerCase','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','sortBy'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x201d,0x17d));var _0xd201=function(_0x5e4c76,_0x3c43d6){_0x5e4c76=_0x5e4c76-0x0;var _0x3229d4=_0x201d[_0x5e4c76];return _0x3229d4;};'use strict';var _=require(_0xd201('0x0'));var util=require(_0xd201('0x1'));function rewrite(_0x38d86c,_0x5e66e0){var _0xefe2a8=this;return _0x38d86c[_0xd201('0x2')][_0xd201('0x3')][_0xd201('0x4')]({'raw':!![]})['then'](function(_0x825b1){_0xefe2a8[_0xd201('0x5')]=_0x825b1;return _0x38d86c[_0xd201('0x2')][_0xd201('0x6')]['findAll']({'where':{'IntervalId':_0x5e66e0[_0xd201('0x7')]},'raw':!![]});})[_0xd201('0x8')](function(_0x2c7021){return _0x38d86c[_0xd201('0x2')]['VoiceExtension'][_0xd201('0x4')]({'where':{'exten':{'$in':_[_0xd201('0x9')](_['map'](_0x2c7021,_0xd201('0xa')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0xd201('0x8')](function(_0x5a5496){var _0x18261d=_[_0xd201('0xb')](_0x5a5496,{'priority':'1'});var _0x4756c4=_[_0xd201('0xb')](_0x5a5496,{'isApp':0x1});var _0x51862b=_['groupBy'](_0x4756c4,_0xd201('0xa'));var _0x1d320c=[_0xd201('0xc'),_0xd201('0xd')];var _0x1d14c9=[];var _0x569610=[];for(var _0x4cfcf4 in _0x51862b){if(_0x51862b[_0xd201('0xe')](_0x4cfcf4)){_0xefe2a8['priority']=0x2;_0xefe2a8['extensions']=[];_0xefe2a8['extension']=_['find'](_0x18261d,{'exten':_0x51862b[_0x4cfcf4][0x0]['exten']});_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':util['format']('CDR(type)=%s',_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')]),'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8['priority']++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});if(_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')]==='inbound'){_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0]['type'],'app':_0xd201('0x12'),'appdata':_0xd201('0x15')+_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')],'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8[_0xd201('0x16')]++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});}else if(_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')]===_0xd201('0x17')){if(_0xefe2a8[_0xd201('0x18')]){_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':_0xd201('0x19')+(_0xefe2a8['extension'][_0xd201('0x1a')]?_0xd201('0x1b')+_0xefe2a8[_0xd201('0x18')]['cutdigits']+'}':'${EXTEN}'),'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8[_0xd201('0x16')]++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});}_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':_0xd201('0x15')+_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')],'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8['priority']++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});var _0x1569e8=_0xefe2a8[_0xd201('0x16')]++;_0xefe2a8[_0xd201('0xf')]['push']({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':'ExecIf','appdata':_0xd201('0x1c')+(_0x1569e8+0x2)+'):Goto('+(_0x1569e8+0x1)+')','context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0x1569e8,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});if(_0xefe2a8[_0xd201('0x18')]){_0xefe2a8['extensions'][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0]['type'],'app':_0xd201('0x12'),'appdata':_0xefe2a8[_0xd201('0x18')][_0xd201('0x1a')]?_0xd201('0x1d')+_0xefe2a8[_0xd201('0x18')][_0xd201('0x1a')]+'}':'CDR(prefix)=noprefix','context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0]['exten'],'priority':_0xefe2a8[_0xd201('0x16')]++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});}_0xefe2a8['extensions'][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':'outboundrouteid='+_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')],'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8[_0xd201('0x16')]++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});if(_0xefe2a8[_0xd201('0x18')]&&_0xefe2a8[_0xd201('0x18')][_0xd201('0xe')](_0xd201('0x1e'))&&_0xefe2a8['extension'][_0xd201('0x1e')]!==_0xd201('0x1f')){_0xefe2a8['extensions'][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x51862b[_0x4cfcf4][0x0]['context'],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8[_0xd201('0x16')]++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0xefe2a8[_0xd201('0x18')][_0xd201('0x1e')]||'wav','context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8['priority']++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0]['VoiceExtensionId']});}}_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':'Set','appdata':_0xd201('0x20'),'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0]['exten'],'priority':_0xefe2a8[_0xd201('0x16')]++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0]['VoiceExtensionId']});_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0]['type'],'app':'Set','appdata':_0xd201('0x21'),'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8['priority']++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});_0xefe2a8[_0xd201('0xf')]['push']({'type':_0x51862b[_0x4cfcf4][0x0]['type'],'app':'Set','appdata':_0xd201('0x22'),'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'exten':_0x51862b[_0x4cfcf4][0x0][_0xd201('0xa')],'priority':_0xefe2a8[_0xd201('0x16')]++,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});for(var _0x27c0f2=0x0,_0x1354e3=0x0;_0x27c0f2<_0x51862b[_0x4cfcf4][_0xd201('0x23')];_0x27c0f2+=0x1,_0x1354e3=0x0){var _0x339e28=_0x51862b[_0x4cfcf4][_0x27c0f2];if(_0x339e28[_0xd201('0x11')]){_0x339e28[_0xd201('0x11')]=_0x339e28['type']['toLowerCase']();}var _0x1b40e8=[];var _0x13332d=[];delete _0x339e28['id'];delete _0x339e28['createdAt'];delete _0x339e28[_0xd201('0x24')];var _0x9e64a9=_0x339e28[_0xd201('0x25')]!=='*,*,*,*'?[_0x339e28['interval']]:_0x339e28[_0xd201('0x7')]?_[_0xd201('0x26')](_[_0xd201('0xb')](_0xefe2a8['intervals'],{'IntervalId':_0x339e28[_0xd201('0x7')]}),_0xd201('0x25')):[];if(_0x339e28[_0xd201('0xe')](_0xd201('0x27'))){if(_0x339e28[_0xd201('0x27')]&&_0x339e28['tag']!=='--'){_0x1b40e8[_0xd201('0x10')]({'type':_0x339e28[_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':_0xd201('0x28')+_0x339e28[_0xd201('0x27')],'context':_0x339e28['context'],'exten':_0x339e28[_0xd201('0xa')],'priority':_0x9e64a9[_0xd201('0x23')]+_0xefe2a8[_0xd201('0x16')]+_0x1354e3++,'VoiceExtensionId':_0x339e28[_0xd201('0x14')]});}}if(_0x339e28['type']===_0xd201('0x17')&&_0x339e28[_0xd201('0xe')]('callerID')){if(_0x339e28[_0xd201('0x29')]){_0x1b40e8[_0xd201('0x10')]({'type':_0x339e28[_0xd201('0x11')],'app':_0xd201('0x2a'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x339e28[_0xd201('0x29')]+')','context':_0x339e28[_0xd201('0x13')],'exten':_0x339e28[_0xd201('0xa')],'priority':_0x9e64a9[_0xd201('0x23')]+_0xefe2a8['priority']+_0x1354e3++,'VoiceExtensionId':_0x339e28['VoiceExtensionId']});}else{_0x1b40e8[_0xd201('0x10')]({'type':_0x339e28[_0xd201('0x11')],'app':_0xd201('0x2a'),'appdata':_0xd201('0x2b'),'context':_0x339e28[_0xd201('0x13')],'exten':_0x339e28['exten'],'priority':_0x9e64a9[_0xd201('0x23')]+_0xefe2a8[_0xd201('0x16')]+_0x1354e3++,'VoiceExtensionId':_0x339e28['VoiceExtensionId']});}}if(_0x339e28[_0xd201('0xe')]('answer')){if(_0x1d320c[_0xd201('0x2c')](_0x339e28[_0xd201('0x2d')][_0xd201('0x2e')]())>=0x0&&_0x339e28[_0xd201('0x2f')]!==_0xd201('0x30')){if(_0x339e28[_0xd201('0x31')]){_0x1b40e8[_0xd201('0x10')]({'type':_0x339e28[_0xd201('0x11')],'app':_0xd201('0x2a'),'appdata':_0xd201('0x32'),'context':_0x339e28['context'],'exten':_0x339e28['exten'],'priority':_0x9e64a9[_0xd201('0x23')]+_0xefe2a8['priority']+_0x1354e3++,'VoiceExtensionId':_0x339e28['VoiceExtensionId']});_0x1b40e8['push']({'type':_0x339e28[_0xd201('0x11')],'app':'Set','appdata':_0xd201('0x33'),'context':_0x339e28[_0xd201('0x13')],'exten':_0x339e28[_0xd201('0xa')],'priority':_0x9e64a9[_0xd201('0x23')]+_0xefe2a8['priority']+_0x1354e3++,'VoiceExtensionId':_0x339e28[_0xd201('0x14')]});}else{_0x1b40e8[_0xd201('0x10')]({'type':_0x339e28[_0xd201('0x11')],'app':'ExecIf','appdata':_0xd201('0x34'),'context':_0x339e28['context'],'exten':_0x339e28[_0xd201('0xa')],'priority':_0x9e64a9['length']+_0xefe2a8[_0xd201('0x16')]+_0x1354e3++,'VoiceExtensionId':_0x339e28[_0xd201('0x14')]});_0x1b40e8[_0xd201('0x10')]({'type':_0x339e28[_0xd201('0x11')],'app':_0xd201('0x12'),'appdata':_0xd201('0x35'),'context':_0x339e28[_0xd201('0x13')],'exten':_0x339e28[_0xd201('0xa')],'priority':_0x9e64a9[_0xd201('0x23')]+_0xefe2a8['priority']+_0x1354e3++,'VoiceExtensionId':_0x339e28[_0xd201('0x14')]});}}}for(var _0x1ae485=0x0;_0x1ae485<_0x9e64a9[_0xd201('0x23')];_0x1ae485+=0x1){var _0x4f413d=_0xefe2a8[_0xd201('0x16')]+_0x9e64a9[_0xd201('0x23')];var _0x26cfa0=_0x1ae485===_0x9e64a9[_0xd201('0x23')]-0x1?_0xefe2a8[_0xd201('0x16')]+_0x1b40e8[_0xd201('0x23')]+_0x13332d['length']+0x2:_0xefe2a8[_0xd201('0x16')]+_0x1ae485+0x1;_0x1b40e8[_0xd201('0x36')](_0x1ae485,0x0,{'type':_0x339e28[_0xd201('0x11')],'app':_0xd201('0x37'),'appdata':_0x9e64a9[_0x1ae485]+'?'+_0x339e28[_0xd201('0x13')]+_0xd201('0x38')+_0x4f413d+':'+_0x339e28['context']+_0xd201('0x38')+_0x26cfa0,'exten':_0x339e28[_0xd201('0xa')],'context':_0x339e28[_0xd201('0x13')],'priority':_0xefe2a8[_0xd201('0x16')]+_0x1ae485,'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});}_0x339e28['priority']=_0x1b40e8[_0xd201('0x23')]?_[_0xd201('0x39')](_0x1b40e8)[_0xd201('0x16')]+0x1:_0xefe2a8[_0xd201('0x16')];_0xefe2a8[_0xd201('0x16')]=(_0x13332d[_0xd201('0x23')]?_[_0xd201('0x39')](_0x13332d)[_0xd201('0x16')]:_0x339e28['priority'])+0x1;_0xefe2a8[_0xd201('0xf')]=_[_0xd201('0x3a')](_0xefe2a8['extensions'],_0x1b40e8,[_0x339e28],_0x13332d);}_0xefe2a8[_0xd201('0xf')][_0xd201('0x10')]({'type':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x11')],'app':'Hangup','exten':_0x51862b[_0x4cfcf4][0x0]['exten'],'context':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x13')],'priority':_0xefe2a8['priority'],'VoiceExtensionId':_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]});_0x1d14c9[_0xd201('0x10')](_0x51862b[_0x4cfcf4][0x0][_0xd201('0x14')]);_0x569610=_[_0xd201('0x3a')](_0x569610,_0xefe2a8[_0xd201('0xf')]);}}return _0x38d86c['transaction'](function(_0x43c0ef){return _0x38d86c[_0xd201('0x2')][_0xd201('0x6')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x1d14c9}},'transaction':_0x43c0ef})['then'](function(_0x23a11f){return _0x38d86c[_0xd201('0x2')][_0xd201('0x6')]['bulkCreate'](_[_0xd201('0x3b')](_0x569610,_0xd201('0x16')),{'transaction':_0x43c0ef});});});})[_0xd201('0x3c')](function(_0x2e532e){console[_0xd201('0x3d')](_0x2e532e);});}exports[_0xd201('0x3e')]=rewrite;