Built motion from commit (unavailable).|2.5.29
[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 _0xae0d=['$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','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)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1',',${EXTEN},','last','concat','transaction','destroy','sortBy','catch','rewrite','lodash','util','models','Interval','findAll','then','intervals','VoiceExtension','IntervalId','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','exten','queue','playback','hasOwnProperty','priority','extension','find','extensions','push','Set','format','context','VoiceExtensionId','outbound','type','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf'];(function(_0x2859b0,_0x7a0771){var _0x5dc854=function(_0x5a70aa){while(--_0x5a70aa){_0x2859b0['push'](_0x2859b0['shift']());}};_0x5dc854(++_0x7a0771);}(_0xae0d,0x188));var _0xdae0=function(_0x8dd158,_0x534f8b){_0x8dd158=_0x8dd158-0x0;var _0x58ce02=_0xae0d[_0x8dd158];return _0x58ce02;};'use strict';var _=require(_0xdae0('0x0'));var util=require(_0xdae0('0x1'));function rewrite(_0x1c5738,_0xc70763){var _0x4cab61=this;return _0x1c5738[_0xdae0('0x2')][_0xdae0('0x3')][_0xdae0('0x4')]({'raw':!![]})[_0xdae0('0x5')](function(_0x37466a){_0x4cab61[_0xdae0('0x6')]=_0x37466a;return _0x1c5738[_0xdae0('0x2')][_0xdae0('0x7')][_0xdae0('0x4')]({'where':{'IntervalId':_0xc70763[_0xdae0('0x8')]},'raw':!![]});})['then'](function(_0x5036a9){return _0x1c5738[_0xdae0('0x2')][_0xdae0('0x7')]['findAll']({'where':{'exten':{'$in':_[_0xdae0('0x9')](_[_0xdae0('0xa')](_0x5036a9,'exten'))}},'order':[{'raw':_0xdae0('0xb')}],'raw':!![]});})[_0xdae0('0x5')](function(_0x2f18e7){var _0x5f4fc5=_[_0xdae0('0xc')](_0x2f18e7,{'priority':'1'});var _0x218f0a=_[_0xdae0('0xc')](_0x2f18e7,{'isApp':0x1});var _0x32f2ee=_[_0xdae0('0xd')](_0x218f0a,_0xdae0('0xe'));var _0x54ca2c=[_0xdae0('0xf'),_0xdae0('0x10')];var _0x42d830=[];var _0x3eb503=[];for(var _0x3d1747 in _0x32f2ee){if(_0x32f2ee[_0xdae0('0x11')](_0x3d1747)){_0x4cab61[_0xdae0('0x12')]=0x2;_0x4cab61['extensions']=[];_0x4cab61[_0xdae0('0x13')]=_[_0xdae0('0x14')](_0x5f4fc5,{'exten':_0x32f2ee[_0x3d1747][0x0]['exten']});_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0]['type'],'app':_0xdae0('0x17'),'appdata':util[_0xdae0('0x18')]('CDR(type)=%s',_0x32f2ee[_0x3d1747][0x0]['type']),'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0]['exten'],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});if(_0x32f2ee[_0x3d1747][0x0]['type']===_0xdae0('0x1b')){if(_0x4cab61[_0xdae0('0x13')]){_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x1d')+(_0x4cab61[_0xdae0('0x13')][_0xdae0('0x1e')]?_0xdae0('0x1f')+_0x4cab61[_0xdae0('0x13')][_0xdae0('0x1e')]+'}':_0xdae0('0x20')),'context':_0x32f2ee[_0x3d1747][0x0]['context'],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x4cab61['priority']++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});}_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':'CDR(routeid)='+_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')],'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});var _0x39d79a=_0x4cab61[_0xdae0('0x12')]++;_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x21'),'appdata':_0xdae0('0x22')+(_0x39d79a+0x2)+'):Goto('+(_0x39d79a+0x1)+')','context':_0x32f2ee[_0x3d1747][0x0]['context'],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x39d79a,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0]['VoiceExtensionId']});if(_0x4cab61[_0xdae0('0x13')]){_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0x4cab61[_0xdae0('0x13')][_0xdae0('0x1e')]?'CDR(prefix)=${EXTEN:0:'+_0x4cab61[_0xdae0('0x13')][_0xdae0('0x1e')]+'}':_0xdae0('0x23'),'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});}_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x24')+_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')],'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0]['exten'],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});if(_0x4cab61[_0xdae0('0x13')]&&_0x4cab61[_0xdae0('0x13')]['hasOwnProperty'](_0xdae0('0x25'))&&_0x4cab61[_0xdae0('0x13')]['recordingFormat']!==_0xdae0('0x26')){_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x27'),'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});_0x4cab61[_0xdae0('0x15')]['push']({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x28')+_0x4cab61['extension'][_0xdae0('0x25')]||_0xdae0('0x29'),'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0]['exten'],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0]['VoiceExtensionId']});}}_0x4cab61[_0xdae0('0x15')]['push']({'type':_0x32f2ee[_0x3d1747][0x0]['type'],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x2a'),'context':_0x32f2ee[_0x3d1747][0x0]['context'],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x2b'),'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0]['VoiceExtensionId']});_0x4cab61['extensions']['push']({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x2c'),'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'priority':_0x4cab61[_0xdae0('0x12')]++,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});for(var _0x3126e3=0x0,_0x5e0136=0x0;_0x3126e3<_0x32f2ee[_0x3d1747][_0xdae0('0x2d')];_0x3126e3+=0x1,_0x5e0136=0x0){var _0x5cf39b=_0x32f2ee[_0x3d1747][_0x3126e3];if(_0x5cf39b[_0xdae0('0x1c')]){_0x5cf39b[_0xdae0('0x1c')]=_0x5cf39b['type'][_0xdae0('0x2e')]();}var _0x2b08a2=[];var _0xacf5b4=[];delete _0x5cf39b['id'];delete _0x5cf39b[_0xdae0('0x2f')];delete _0x5cf39b[_0xdae0('0x30')];var _0x42d44b=_0x5cf39b['interval']!==_0xdae0('0x31')?[_0x5cf39b[_0xdae0('0x32')]]:_0x5cf39b['IntervalId']?_[_0xdae0('0xa')](_['filter'](_0x4cab61[_0xdae0('0x6')],{'IntervalId':_0x5cf39b[_0xdae0('0x8')]}),_0xdae0('0x32')):[];if(_0x5cf39b[_0xdae0('0x11')](_0xdae0('0x33'))){if(_0x5cf39b['tag']&&_0x5cf39b['tag']!=='--'){_0x2b08a2[_0xdae0('0x16')]({'type':_0x5cf39b[_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x34')+_0x5cf39b[_0xdae0('0x33')],'context':_0x5cf39b['context'],'exten':_0x5cf39b[_0xdae0('0xe')],'priority':_0x42d44b[_0xdae0('0x2d')]+_0x4cab61[_0xdae0('0x12')]+_0x5e0136++,'VoiceExtensionId':_0x5cf39b[_0xdae0('0x1a')]});}}if(_0x5cf39b['type']===_0xdae0('0x1b')&&_0x5cf39b[_0xdae0('0x11')](_0xdae0('0x35'))){if(_0x5cf39b['callerID']){_0x2b08a2[_0xdae0('0x16')]({'type':_0x5cf39b[_0xdae0('0x1c')],'app':'ExecIf','appdata':_0xdae0('0x36')+_0x5cf39b[_0xdae0('0x35')]+')','context':_0x5cf39b[_0xdae0('0x19')],'exten':_0x5cf39b[_0xdae0('0xe')],'priority':_0x42d44b['length']+_0x4cab61['priority']+_0x5e0136++,'VoiceExtensionId':_0x5cf39b[_0xdae0('0x1a')]});}else{_0x2b08a2[_0xdae0('0x16')]({'type':_0x5cf39b['type'],'app':_0xdae0('0x21'),'appdata':_0xdae0('0x37'),'context':_0x5cf39b[_0xdae0('0x19')],'exten':_0x5cf39b['exten'],'priority':_0x42d44b[_0xdae0('0x2d')]+_0x4cab61['priority']+_0x5e0136++,'VoiceExtensionId':_0x5cf39b[_0xdae0('0x1a')]});}}if(_0x5cf39b[_0xdae0('0x11')](_0xdae0('0x38'))){if(_0x54ca2c[_0xdae0('0x39')](_0x5cf39b[_0xdae0('0x3a')][_0xdae0('0x2e')]())>=0x0&&_0x5cf39b['appType']!=='custom'){if(_0x5cf39b[_0xdae0('0x38')]){_0x2b08a2[_0xdae0('0x16')]({'type':_0x5cf39b[_0xdae0('0x1c')],'app':_0xdae0('0x21'),'appdata':_0xdae0('0x3b'),'context':_0x5cf39b[_0xdae0('0x19')],'exten':_0x5cf39b[_0xdae0('0xe')],'priority':_0x42d44b[_0xdae0('0x2d')]+_0x4cab61['priority']+_0x5e0136++,'VoiceExtensionId':_0x5cf39b[_0xdae0('0x1a')]});_0x2b08a2[_0xdae0('0x16')]({'type':_0x5cf39b[_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x3c'),'context':_0x5cf39b[_0xdae0('0x19')],'exten':_0x5cf39b['exten'],'priority':_0x42d44b['length']+_0x4cab61[_0xdae0('0x12')]+_0x5e0136++,'VoiceExtensionId':_0x5cf39b[_0xdae0('0x1a')]});}else{_0x2b08a2[_0xdae0('0x16')]({'type':_0x5cf39b[_0xdae0('0x1c')],'app':_0xdae0('0x21'),'appdata':_0xdae0('0x3d'),'context':_0x5cf39b[_0xdae0('0x19')],'exten':_0x5cf39b['exten'],'priority':_0x42d44b[_0xdae0('0x2d')]+_0x4cab61['priority']+_0x5e0136++,'VoiceExtensionId':_0x5cf39b[_0xdae0('0x1a')]});_0x2b08a2['push']({'type':_0x5cf39b[_0xdae0('0x1c')],'app':_0xdae0('0x17'),'appdata':_0xdae0('0x3e'),'context':_0x5cf39b[_0xdae0('0x19')],'exten':_0x5cf39b[_0xdae0('0xe')],'priority':_0x42d44b['length']+_0x4cab61[_0xdae0('0x12')]+_0x5e0136++,'VoiceExtensionId':_0x5cf39b[_0xdae0('0x1a')]});}}}for(var _0x572795=0x0;_0x572795<_0x42d44b['length'];_0x572795+=0x1){var _0x5e6b6a=_0x4cab61['priority']+_0x42d44b['length'];var _0x332233=_0x572795===_0x42d44b[_0xdae0('0x2d')]-0x1?_0x4cab61[_0xdae0('0x12')]+_0x2b08a2[_0xdae0('0x2d')]+_0xacf5b4[_0xdae0('0x2d')]+0x2:_0x4cab61[_0xdae0('0x12')]+_0x572795+0x1;_0x2b08a2['splice'](_0x572795,0x0,{'type':_0x5cf39b[_0xdae0('0x1c')],'app':'GotoIfTime','appdata':_0x42d44b[_0x572795]+'?'+_0x5cf39b[_0xdae0('0x19')]+_0xdae0('0x3f')+_0x5e6b6a+':'+_0x5cf39b[_0xdae0('0x19')]+_0xdae0('0x3f')+_0x332233,'exten':_0x5cf39b[_0xdae0('0xe')],'context':_0x5cf39b[_0xdae0('0x19')],'priority':_0x4cab61['priority']+_0x572795,'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});}_0x5cf39b[_0xdae0('0x12')]=_0x2b08a2[_0xdae0('0x2d')]?_['last'](_0x2b08a2)[_0xdae0('0x12')]+0x1:_0x4cab61[_0xdae0('0x12')];_0x4cab61[_0xdae0('0x12')]=(_0xacf5b4[_0xdae0('0x2d')]?_[_0xdae0('0x40')](_0xacf5b4)[_0xdae0('0x12')]:_0x5cf39b[_0xdae0('0x12')])+0x1;_0x4cab61[_0xdae0('0x15')]=_[_0xdae0('0x41')](_0x4cab61[_0xdae0('0x15')],_0x2b08a2,[_0x5cf39b],_0xacf5b4);}_0x4cab61[_0xdae0('0x15')][_0xdae0('0x16')]({'type':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1c')],'app':'Hangup','exten':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0xe')],'context':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x19')],'priority':_0x4cab61[_0xdae0('0x12')],'VoiceExtensionId':_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]});_0x42d830[_0xdae0('0x16')](_0x32f2ee[_0x3d1747][0x0][_0xdae0('0x1a')]);_0x3eb503=_[_0xdae0('0x41')](_0x3eb503,_0x4cab61[_0xdae0('0x15')]);}}return _0x1c5738[_0xdae0('0x42')](function(_0x3c018c){return _0x1c5738[_0xdae0('0x2')][_0xdae0('0x7')][_0xdae0('0x43')]({'where':{'VoiceExtensionId':{'$in':_0x42d830}},'transaction':_0x3c018c})['then'](function(_0x2e8e22){return _0x1c5738[_0xdae0('0x2')]['VoiceExtension']['bulkCreate'](_[_0xdae0('0x44')](_0x3eb503,_0xdae0('0x12')),{'transaction':_0x3c018c});});});})[_0xdae0('0x45')](function(_0x3ca1db){console['error'](_0x3ca1db);});}exports[_0xdae0('0x46')]=rewrite;