08a20f821abf30ddf3a9bcca21094cc3dd22c069
[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 _0x92f5=['hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','updatedAt','interval','*,*,*,*','tag','outbound','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','custom','answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1',',${EXTEN},','last','Hangup','transaction','destroy','bulkCreate','catch','rewrite','lodash','util','models','Interval','findAll','then','intervals','VoiceExtension','IntervalId','map','exten','filter','groupBy','queue','playback','priority','extensions','extension','find','push','Set','CDR(type)=%s','VoiceExtensionId','inbound','CDR(routeid)=','context','type','cutdigits','${EXTEN:','${EXTEN}','ExecIf','outboundrouteid='];(function(_0x198f82,_0x4d531d){var _0xc5da0d=function(_0xc4a2dd){while(--_0xc4a2dd){_0x198f82['push'](_0x198f82['shift']());}};_0xc5da0d(++_0x4d531d);}(_0x92f5,0x125));var _0x592f=function(_0x397004,_0x7949f){_0x397004=_0x397004-0x0;var _0xa7a10=_0x92f5[_0x397004];return _0xa7a10;};'use strict';var _=require(_0x592f('0x0'));var util=require(_0x592f('0x1'));function rewrite(_0x1a449c,_0x5ef679){var _0x4490b4=this;return _0x1a449c[_0x592f('0x2')][_0x592f('0x3')][_0x592f('0x4')]({'raw':!![]})[_0x592f('0x5')](function(_0x53e089){_0x4490b4[_0x592f('0x6')]=_0x53e089;return _0x1a449c[_0x592f('0x2')][_0x592f('0x7')][_0x592f('0x4')]({'where':{'IntervalId':_0x5ef679[_0x592f('0x8')]},'raw':!![]});})[_0x592f('0x5')](function(_0x585cbb){return _0x1a449c[_0x592f('0x2')][_0x592f('0x7')]['findAll']({'where':{'exten':{'$in':_['uniq'](_[_0x592f('0x9')](_0x585cbb,_0x592f('0xa')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x592f('0x5')](function(_0x4dd18c){var _0x59b86c=_[_0x592f('0xb')](_0x4dd18c,{'priority':'1'});var _0x4095c4=_[_0x592f('0xb')](_0x4dd18c,{'isApp':0x1});var _0x512e08=_[_0x592f('0xc')](_0x4095c4,_0x592f('0xa'));var _0x222e9f=[_0x592f('0xd'),_0x592f('0xe')];var _0x35ead0=[];var _0x5efc9c=[];for(var _0xb5f174 in _0x512e08){if(_0x512e08['hasOwnProperty'](_0xb5f174)){_0x4490b4[_0x592f('0xf')]=0x2;_0x4490b4[_0x592f('0x10')]=[];_0x4490b4[_0x592f('0x11')]=_[_0x592f('0x12')](_0x59b86c,{'exten':_0x512e08[_0xb5f174][0x0]['exten']});_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0]['type'],'app':_0x592f('0x14'),'appdata':util['format'](_0x592f('0x15'),_0x512e08[_0xb5f174][0x0]['type']),'context':_0x512e08[_0xb5f174][0x0]['context'],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4['priority']++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});if(_0x512e08[_0xb5f174][0x0]['type']===_0x592f('0x17')){_0x4490b4['extensions'][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0]['type'],'app':_0x592f('0x14'),'appdata':_0x592f('0x18')+_0x512e08[_0xb5f174][0x0][_0x592f('0x16')],'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4[_0x592f('0xf')]++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});}else if(_0x512e08[_0xb5f174][0x0]['type']==='outbound'){if(_0x4490b4[_0x592f('0x11')]){_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':'CDR(destination)='+(_0x4490b4[_0x592f('0x11')][_0x592f('0x1b')]?_0x592f('0x1c')+_0x4490b4[_0x592f('0x11')][_0x592f('0x1b')]+'}':_0x592f('0x1d')),'context':_0x512e08[_0xb5f174][0x0]['context'],'exten':_0x512e08[_0xb5f174][0x0]['exten'],'priority':_0x4490b4['priority']++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0]['VoiceExtensionId']});}_0x4490b4['extensions'][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':_0x592f('0x18')+_0x512e08[_0xb5f174][0x0]['VoiceExtensionId'],'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0]['exten'],'priority':_0x4490b4['priority']++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});var _0xdc1fc2=_0x4490b4[_0x592f('0xf')]++;_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':_0x592f('0x1e'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0xdc1fc2+0x2)+'):Goto('+(_0xdc1fc2+0x1)+')','context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0xdc1fc2,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});if(_0x4490b4[_0x592f('0x11')]){_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0]['type'],'app':_0x592f('0x14'),'appdata':_0x4490b4['extension'][_0x592f('0x1b')]?'CDR(prefix)=${EXTEN:0:'+_0x4490b4['extension'][_0x592f('0x1b')]+'}':'CDR(prefix)=noprefix','context':_0x512e08[_0xb5f174][0x0]['context'],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4[_0x592f('0xf')]++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});}_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':'Set','appdata':_0x592f('0x1f')+_0x512e08[_0xb5f174][0x0][_0x592f('0x16')],'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0]['exten'],'priority':_0x4490b4[_0x592f('0xf')]++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});if(_0x4490b4[_0x592f('0x11')]&&_0x4490b4[_0x592f('0x11')][_0x592f('0x20')](_0x592f('0x21'))&&_0x4490b4[_0x592f('0x11')]['recordingFormat']!==_0x592f('0x22')){_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0]['type'],'app':_0x592f('0x14'),'appdata':_0x592f('0x23'),'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4[_0x592f('0xf')]++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});_0x4490b4['extensions'][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':_0x592f('0x24')+_0x4490b4[_0x592f('0x11')][_0x592f('0x21')]||'wav','context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4['priority']++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});}}_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0]['type'],'app':_0x592f('0x14'),'appdata':_0x592f('0x25'),'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4[_0x592f('0xf')]++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});_0x4490b4['extensions'][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':_0x592f('0x26'),'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4['priority']++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});_0x4490b4[_0x592f('0x10')]['push']({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':_0x592f('0x27'),'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'priority':_0x4490b4[_0x592f('0xf')]++,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});for(var _0x5816c4=0x0,_0x1cfc8e=0x0;_0x5816c4<_0x512e08[_0xb5f174][_0x592f('0x28')];_0x5816c4+=0x1,_0x1cfc8e=0x0){var _0x378f6c=_0x512e08[_0xb5f174][_0x5816c4];if(_0x378f6c['type']){_0x378f6c[_0x592f('0x1a')]=_0x378f6c[_0x592f('0x1a')][_0x592f('0x29')]();}var _0x39a049=[];var _0x47e5ce=[];delete _0x378f6c['id'];delete _0x378f6c['createdAt'];delete _0x378f6c[_0x592f('0x2a')];var _0x374158=_0x378f6c[_0x592f('0x2b')]!==_0x592f('0x2c')?[_0x378f6c[_0x592f('0x2b')]]:_0x378f6c[_0x592f('0x8')]?_[_0x592f('0x9')](_[_0x592f('0xb')](_0x4490b4['intervals'],{'IntervalId':_0x378f6c['IntervalId']}),_0x592f('0x2b')):[];if(_0x378f6c[_0x592f('0x20')](_0x592f('0x2d'))){if(_0x378f6c[_0x592f('0x2d')]&&_0x378f6c[_0x592f('0x2d')]!=='--'){_0x39a049[_0x592f('0x13')]({'type':_0x378f6c[_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':'CDR(tag)='+_0x378f6c['tag'],'context':_0x378f6c[_0x592f('0x19')],'exten':_0x378f6c[_0x592f('0xa')],'priority':_0x374158[_0x592f('0x28')]+_0x4490b4[_0x592f('0xf')]+_0x1cfc8e++,'VoiceExtensionId':_0x378f6c[_0x592f('0x16')]});}}if(_0x378f6c[_0x592f('0x1a')]===_0x592f('0x2e')&&_0x378f6c[_0x592f('0x20')]('callerID')){if(_0x378f6c[_0x592f('0x2f')]){_0x39a049[_0x592f('0x13')]({'type':_0x378f6c['type'],'app':_0x592f('0x1e'),'appdata':_0x592f('0x30')+_0x378f6c[_0x592f('0x2f')]+')','context':_0x378f6c[_0x592f('0x19')],'exten':_0x378f6c[_0x592f('0xa')],'priority':_0x374158[_0x592f('0x28')]+_0x4490b4[_0x592f('0xf')]+_0x1cfc8e++,'VoiceExtensionId':_0x378f6c[_0x592f('0x16')]});}else{_0x39a049['push']({'type':_0x378f6c[_0x592f('0x1a')],'app':_0x592f('0x1e'),'appdata':_0x592f('0x31'),'context':_0x378f6c[_0x592f('0x19')],'exten':_0x378f6c[_0x592f('0xa')],'priority':_0x374158['length']+_0x4490b4['priority']+_0x1cfc8e++,'VoiceExtensionId':_0x378f6c['VoiceExtensionId']});}}if(_0x378f6c[_0x592f('0x20')]('answer')){if(_0x222e9f[_0x592f('0x32')](_0x378f6c[_0x592f('0x33')][_0x592f('0x29')]())>=0x0&&_0x378f6c[_0x592f('0x34')]!==_0x592f('0x35')){if(_0x378f6c[_0x592f('0x36')]){_0x39a049[_0x592f('0x13')]({'type':_0x378f6c['type'],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x378f6c[_0x592f('0x19')],'exten':_0x378f6c[_0x592f('0xa')],'priority':_0x374158[_0x592f('0x28')]+_0x4490b4[_0x592f('0xf')]+_0x1cfc8e++,'VoiceExtensionId':_0x378f6c[_0x592f('0x16')]});_0x39a049[_0x592f('0x13')]({'type':_0x378f6c[_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':_0x592f('0x37'),'context':_0x378f6c['context'],'exten':_0x378f6c[_0x592f('0xa')],'priority':_0x374158['length']+_0x4490b4[_0x592f('0xf')]+_0x1cfc8e++,'VoiceExtensionId':_0x378f6c['VoiceExtensionId']});}else{_0x39a049[_0x592f('0x13')]({'type':_0x378f6c[_0x592f('0x1a')],'app':_0x592f('0x1e'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x378f6c[_0x592f('0x19')],'exten':_0x378f6c[_0x592f('0xa')],'priority':_0x374158[_0x592f('0x28')]+_0x4490b4[_0x592f('0xf')]+_0x1cfc8e++,'VoiceExtensionId':_0x378f6c[_0x592f('0x16')]});_0x39a049[_0x592f('0x13')]({'type':_0x378f6c[_0x592f('0x1a')],'app':_0x592f('0x14'),'appdata':_0x592f('0x38'),'context':_0x378f6c['context'],'exten':_0x378f6c[_0x592f('0xa')],'priority':_0x374158[_0x592f('0x28')]+_0x4490b4[_0x592f('0xf')]+_0x1cfc8e++,'VoiceExtensionId':_0x378f6c[_0x592f('0x16')]});}}}for(var _0x4fc46d=0x0;_0x4fc46d<_0x374158[_0x592f('0x28')];_0x4fc46d+=0x1){var _0x53f686=_0x4490b4[_0x592f('0xf')]+_0x374158[_0x592f('0x28')];var _0x27cc35=_0x4fc46d===_0x374158['length']-0x1?_0x4490b4[_0x592f('0xf')]+_0x39a049[_0x592f('0x28')]+_0x47e5ce[_0x592f('0x28')]+0x2:_0x4490b4['priority']+_0x4fc46d+0x1;_0x39a049['splice'](_0x4fc46d,0x0,{'type':_0x378f6c['type'],'app':'GotoIfTime','appdata':_0x374158[_0x4fc46d]+'?'+_0x378f6c[_0x592f('0x19')]+_0x592f('0x39')+_0x53f686+':'+_0x378f6c['context']+_0x592f('0x39')+_0x27cc35,'exten':_0x378f6c[_0x592f('0xa')],'context':_0x378f6c['context'],'priority':_0x4490b4[_0x592f('0xf')]+_0x4fc46d,'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});}_0x378f6c[_0x592f('0xf')]=_0x39a049[_0x592f('0x28')]?_['last'](_0x39a049)['priority']+0x1:_0x4490b4[_0x592f('0xf')];_0x4490b4['priority']=(_0x47e5ce[_0x592f('0x28')]?_[_0x592f('0x3a')](_0x47e5ce)[_0x592f('0xf')]:_0x378f6c[_0x592f('0xf')])+0x1;_0x4490b4[_0x592f('0x10')]=_['concat'](_0x4490b4['extensions'],_0x39a049,[_0x378f6c],_0x47e5ce);}_0x4490b4[_0x592f('0x10')][_0x592f('0x13')]({'type':_0x512e08[_0xb5f174][0x0][_0x592f('0x1a')],'app':_0x592f('0x3b'),'exten':_0x512e08[_0xb5f174][0x0][_0x592f('0xa')],'context':_0x512e08[_0xb5f174][0x0][_0x592f('0x19')],'priority':_0x4490b4[_0x592f('0xf')],'VoiceExtensionId':_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]});_0x35ead0[_0x592f('0x13')](_0x512e08[_0xb5f174][0x0][_0x592f('0x16')]);_0x5efc9c=_['concat'](_0x5efc9c,_0x4490b4['extensions']);}}return _0x1a449c[_0x592f('0x3c')](function(_0x18f526){return _0x1a449c[_0x592f('0x2')][_0x592f('0x7')][_0x592f('0x3d')]({'where':{'VoiceExtensionId':{'$in':_0x35ead0}},'transaction':_0x18f526})['then'](function(_0x1a3ebf){return _0x1a449c[_0x592f('0x2')][_0x592f('0x7')][_0x592f('0x3e')](_['sortBy'](_0x5efc9c,_0x592f('0xf')),{'transaction':_0x18f526});});});})[_0x592f('0x3f')](function(_0x2463b2){console['error'](_0x2463b2);});}exports[_0x592f('0x40')]=rewrite;