Built motion from commit 092f8824.|2.5.49
[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 _0xafcf=['inbound','push','Set','CDR(routeid)=','VoiceExtensionId','CDR(destination)=','cutdigits','${EXTEN:','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','recordingFormat','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','length','toLowerCase','updatedAt','interval','*,*,*,*','intervals','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','ExecIf','answer','indexOf','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','destroy','bulkCreate','sortBy','catch','error','rewrite','lodash','models','Interval','findAll','then','VoiceExtension','IntervalId','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','queue','playback','hasOwnProperty','priority','extensions','extension','find','type','CDR(type)=%s','context'];(function(_0x26c530,_0x3a9512){var _0x58bfff=function(_0x4ea4af){while(--_0x4ea4af){_0x26c530['push'](_0x26c530['shift']());}};_0x58bfff(++_0x3a9512);}(_0xafcf,0x1c6));var _0xfafc=function(_0x56cc28,_0x4a921e){_0x56cc28=_0x56cc28-0x0;var _0x1f5798=_0xafcf[_0x56cc28];return _0x1f5798;};'use strict';var _=require(_0xfafc('0x0'));var util=require('util');function rewrite(_0x3a4eae,_0x1e9c58){var _0x110ed2=this;return _0x3a4eae[_0xfafc('0x1')][_0xfafc('0x2')][_0xfafc('0x3')]({'raw':!![]})[_0xfafc('0x4')](function(_0x5dda3b){_0x110ed2['intervals']=_0x5dda3b;return _0x3a4eae[_0xfafc('0x1')][_0xfafc('0x5')]['findAll']({'where':{'IntervalId':_0x1e9c58[_0xfafc('0x6')]},'raw':!![]});})[_0xfafc('0x4')](function(_0x24d02c){return _0x3a4eae[_0xfafc('0x1')][_0xfafc('0x5')]['findAll']({'where':{'exten':{'$in':_[_0xfafc('0x7')](_[_0xfafc('0x8')](_0x24d02c,_0xfafc('0x9')))}},'order':[{'raw':_0xfafc('0xa')}],'raw':!![]});})[_0xfafc('0x4')](function(_0x4e68b4){var _0x29092c=_[_0xfafc('0xb')](_0x4e68b4,{'priority':'1'});var _0x4154a1=_[_0xfafc('0xb')](_0x4e68b4,{'isApp':0x1});var _0x82ca42=_['groupBy'](_0x4154a1,_0xfafc('0x9'));var _0x5c628b=[_0xfafc('0xc'),_0xfafc('0xd')];var _0x49c186=[];var _0x4b332e=[];for(var _0x3e8673 in _0x82ca42){if(_0x82ca42[_0xfafc('0xe')](_0x3e8673)){_0x110ed2[_0xfafc('0xf')]=0x2;_0x110ed2[_0xfafc('0x10')]=[];_0x110ed2[_0xfafc('0x11')]=_[_0xfafc('0x12')](_0x29092c,{'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')]});_0x110ed2[_0xfafc('0x10')]['push']({'type':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')],'app':'Set','appdata':util['format'](_0xfafc('0x14'),_0x82ca42[_0x3e8673][0x0]['type']),'context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2[_0xfafc('0xf')]++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0]['VoiceExtensionId']});if(_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')]===_0xfafc('0x16')){_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')],'app':_0xfafc('0x18'),'appdata':_0xfafc('0x19')+_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')],'context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2[_0xfafc('0xf')]++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});}else if(_0x82ca42[_0x3e8673][0x0]['type']==='outbound'){if(_0x110ed2[_0xfafc('0x11')]){_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')],'app':'Set','appdata':_0xfafc('0x1b')+(_0x110ed2[_0xfafc('0x11')][_0xfafc('0x1c')]?_0xfafc('0x1d')+_0x110ed2[_0xfafc('0x11')][_0xfafc('0x1c')]+'}':'${EXTEN}'),'context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0]['exten'],'priority':_0x110ed2['priority']++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});}_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')],'app':'Set','appdata':'CDR(routeid)='+_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')],'context':_0x82ca42[_0x3e8673][0x0]['context'],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2[_0xfafc('0xf')]++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});var _0x7370aa=_0x110ed2[_0xfafc('0xf')]++;_0x110ed2['extensions'][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')],'app':'ExecIf','appdata':_0xfafc('0x1e')+(_0x7370aa+0x2)+_0xfafc('0x1f')+(_0x7370aa+0x1)+')','context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x7370aa,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});if(_0x110ed2[_0xfafc('0x11')]){_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')],'app':_0xfafc('0x18'),'appdata':_0x110ed2[_0xfafc('0x11')][_0xfafc('0x1c')]?_0xfafc('0x20')+_0x110ed2['extension'][_0xfafc('0x1c')]+'}':'CDR(prefix)=noprefix','context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2['priority']++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0]['VoiceExtensionId']});}_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0]['type'],'app':'Set','appdata':'outboundrouteid='+_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')],'context':_0x82ca42[_0x3e8673][0x0]['context'],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2['priority']++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});if(_0x110ed2[_0xfafc('0x11')]&&_0x110ed2[_0xfafc('0x11')][_0xfafc('0xe')](_0xfafc('0x21'))&&_0x110ed2['extension'][_0xfafc('0x21')]!=='none'){_0x110ed2['extensions'][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0]['type'],'app':_0xfafc('0x18'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0]['exten'],'priority':_0x110ed2['priority']++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0]['type'],'app':_0xfafc('0x18'),'appdata':_0xfafc('0x22')+_0x110ed2[_0xfafc('0x11')]['recordingFormat']||_0xfafc('0x23'),'context':_0x82ca42[_0x3e8673][0x0]['context'],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2[_0xfafc('0xf')]++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});}}_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0]['type'],'app':_0xfafc('0x18'),'appdata':_0xfafc('0x24'),'context':_0x82ca42[_0x3e8673][0x0]['context'],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2[_0xfafc('0xf')]++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});_0x110ed2['extensions'][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0]['type'],'app':'Set','appdata':_0xfafc('0x25'),'context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x9')],'priority':_0x110ed2[_0xfafc('0xf')]++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x13')],'app':'Set','appdata':'MONITOR_OPTIONS=ab','context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'exten':_0x82ca42[_0x3e8673][0x0]['exten'],'priority':_0x110ed2[_0xfafc('0xf')]++,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});for(var _0x223b82=0x0,_0x582ea6=0x0;_0x223b82<_0x82ca42[_0x3e8673][_0xfafc('0x26')];_0x223b82+=0x1,_0x582ea6=0x0){var _0x40afdc=_0x82ca42[_0x3e8673][_0x223b82];if(_0x40afdc[_0xfafc('0x13')]){_0x40afdc[_0xfafc('0x13')]=_0x40afdc['type'][_0xfafc('0x27')]();}var _0x240642=[];var _0x59e440=[];delete _0x40afdc['id'];delete _0x40afdc['createdAt'];delete _0x40afdc[_0xfafc('0x28')];var _0xcd3105=_0x40afdc[_0xfafc('0x29')]!==_0xfafc('0x2a')?[_0x40afdc[_0xfafc('0x29')]]:_0x40afdc[_0xfafc('0x6')]?_[_0xfafc('0x8')](_['filter'](_0x110ed2[_0xfafc('0x2b')],{'IntervalId':_0x40afdc[_0xfafc('0x6')]}),'interval'):[];if(_0x40afdc[_0xfafc('0xe')](_0xfafc('0x2c'))){if(_0x40afdc['tag']&&_0x40afdc[_0xfafc('0x2c')]!=='--'){_0x240642[_0xfafc('0x17')]({'type':_0x40afdc['type'],'app':'Set','appdata':_0xfafc('0x2d')+_0x40afdc['tag'],'context':_0x40afdc[_0xfafc('0x15')],'exten':_0x40afdc[_0xfafc('0x9')],'priority':_0xcd3105[_0xfafc('0x26')]+_0x110ed2['priority']+_0x582ea6++,'VoiceExtensionId':_0x40afdc[_0xfafc('0x1a')]});}}if(_0x40afdc[_0xfafc('0x13')]==='outbound'&&_0x40afdc[_0xfafc('0xe')]('callerID')){if(_0x40afdc[_0xfafc('0x2e')]){_0x240642[_0xfafc('0x17')]({'type':_0x40afdc[_0xfafc('0x13')],'app':'ExecIf','appdata':_0xfafc('0x2f')+_0x40afdc['callerID']+')','context':_0x40afdc[_0xfafc('0x15')],'exten':_0x40afdc['exten'],'priority':_0xcd3105[_0xfafc('0x26')]+_0x110ed2['priority']+_0x582ea6++,'VoiceExtensionId':_0x40afdc[_0xfafc('0x1a')]});}else{_0x240642['push']({'type':_0x40afdc[_0xfafc('0x13')],'app':_0xfafc('0x30'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x40afdc[_0xfafc('0x15')],'exten':_0x40afdc[_0xfafc('0x9')],'priority':_0xcd3105[_0xfafc('0x26')]+_0x110ed2['priority']+_0x582ea6++,'VoiceExtensionId':_0x40afdc[_0xfafc('0x1a')]});}}if(_0x40afdc[_0xfafc('0xe')](_0xfafc('0x31'))){if(_0x5c628b[_0xfafc('0x32')](_0x40afdc[_0xfafc('0x33')]['toLowerCase']())>=0x0&&_0x40afdc[_0xfafc('0x34')]!==_0xfafc('0x35')){if(_0x40afdc[_0xfafc('0x31')]){_0x240642[_0xfafc('0x17')]({'type':_0x40afdc['type'],'app':_0xfafc('0x30'),'appdata':_0xfafc('0x36'),'context':_0x40afdc[_0xfafc('0x15')],'exten':_0x40afdc[_0xfafc('0x9')],'priority':_0xcd3105[_0xfafc('0x26')]+_0x110ed2[_0xfafc('0xf')]+_0x582ea6++,'VoiceExtensionId':_0x40afdc[_0xfafc('0x1a')]});_0x240642['push']({'type':_0x40afdc[_0xfafc('0x13')],'app':'Set','appdata':_0xfafc('0x37'),'context':_0x40afdc['context'],'exten':_0x40afdc['exten'],'priority':_0xcd3105[_0xfafc('0x26')]+_0x110ed2[_0xfafc('0xf')]+_0x582ea6++,'VoiceExtensionId':_0x40afdc[_0xfafc('0x1a')]});}else{_0x240642[_0xfafc('0x17')]({'type':_0x40afdc[_0xfafc('0x13')],'app':_0xfafc('0x30'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x40afdc[_0xfafc('0x15')],'exten':_0x40afdc[_0xfafc('0x9')],'priority':_0xcd3105[_0xfafc('0x26')]+_0x110ed2[_0xfafc('0xf')]+_0x582ea6++,'VoiceExtensionId':_0x40afdc['VoiceExtensionId']});_0x240642[_0xfafc('0x17')]({'type':_0x40afdc['type'],'app':_0xfafc('0x18'),'appdata':_0xfafc('0x38'),'context':_0x40afdc['context'],'exten':_0x40afdc[_0xfafc('0x9')],'priority':_0xcd3105['length']+_0x110ed2[_0xfafc('0xf')]+_0x582ea6++,'VoiceExtensionId':_0x40afdc[_0xfafc('0x1a')]});}}}for(var _0x57b311=0x0;_0x57b311<_0xcd3105[_0xfafc('0x26')];_0x57b311+=0x1){var _0xfe54f9=_0x110ed2['priority']+_0xcd3105[_0xfafc('0x26')];var _0x4a72d=_0x57b311===_0xcd3105[_0xfafc('0x26')]-0x1?_0x110ed2[_0xfafc('0xf')]+_0x240642[_0xfafc('0x26')]+_0x59e440[_0xfafc('0x26')]+0x2:_0x110ed2[_0xfafc('0xf')]+_0x57b311+0x1;_0x240642['splice'](_0x57b311,0x0,{'type':_0x40afdc[_0xfafc('0x13')],'app':_0xfafc('0x39'),'appdata':_0xcd3105[_0x57b311]+'?'+_0x40afdc[_0xfafc('0x15')]+_0xfafc('0x3a')+_0xfe54f9+':'+_0x40afdc[_0xfafc('0x15')]+',${EXTEN},'+_0x4a72d,'exten':_0x40afdc[_0xfafc('0x9')],'context':_0x40afdc[_0xfafc('0x15')],'priority':_0x110ed2['priority']+_0x57b311,'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});}_0x40afdc[_0xfafc('0xf')]=_0x240642[_0xfafc('0x26')]?_['last'](_0x240642)['priority']+0x1:_0x110ed2['priority'];_0x110ed2[_0xfafc('0xf')]=(_0x59e440[_0xfafc('0x26')]?_[_0xfafc('0x3b')](_0x59e440)[_0xfafc('0xf')]:_0x40afdc['priority'])+0x1;_0x110ed2[_0xfafc('0x10')]=_[_0xfafc('0x3c')](_0x110ed2[_0xfafc('0x10')],_0x240642,[_0x40afdc],_0x59e440);}_0x110ed2[_0xfafc('0x10')][_0xfafc('0x17')]({'type':_0x82ca42[_0x3e8673][0x0]['type'],'app':_0xfafc('0x3d'),'exten':_0x82ca42[_0x3e8673][0x0]['exten'],'context':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x15')],'priority':_0x110ed2[_0xfafc('0xf')],'VoiceExtensionId':_0x82ca42[_0x3e8673][0x0][_0xfafc('0x1a')]});_0x49c186[_0xfafc('0x17')](_0x82ca42[_0x3e8673][0x0]['VoiceExtensionId']);_0x4b332e=_[_0xfafc('0x3c')](_0x4b332e,_0x110ed2['extensions']);}}return _0x3a4eae['transaction'](function(_0xcf803e){return _0x3a4eae[_0xfafc('0x1')][_0xfafc('0x5')][_0xfafc('0x3e')]({'where':{'VoiceExtensionId':{'$in':_0x49c186}},'transaction':_0xcf803e})['then'](function(_0x2f75d3){return _0x3a4eae['models'][_0xfafc('0x5')][_0xfafc('0x3f')](_[_0xfafc('0x40')](_0x4b332e,'priority'),{'transaction':_0xcf803e});});});})[_0xfafc('0x41')](function(_0x2b3999){console[_0xfafc('0x42')](_0x2b3999);});}exports[_0xfafc('0x43')]=rewrite;