Built motion from commit b0a9a629.|2.6.33
[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 _0xe622=['playback','hasOwnProperty','priority','extension','exten','extensions','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','inbound','CDR(routeid)=','outbound','push','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','tag','CDR(tag)=','$[${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}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','bulkCreate','sortBy','error','util','models','findAll','then','intervals','VoiceExtension','IntervalId','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xe622,0x1e4));var _0x2e62=function(_0x165f36,_0x5917ed){_0x165f36=_0x165f36-0x0;var _0x5eb673=_0xe622[_0x165f36];return _0x5eb673;};'use strict';var _=require('lodash');var util=require(_0x2e62('0x0'));function rewrite(_0x346745,_0x201730){var _0x38f61f=this;return _0x346745[_0x2e62('0x1')]['Interval'][_0x2e62('0x2')]({'raw':!![]})[_0x2e62('0x3')](function(_0x3632dc){_0x38f61f[_0x2e62('0x4')]=_0x3632dc;return _0x346745['models'][_0x2e62('0x5')][_0x2e62('0x2')]({'where':{'IntervalId':_0x201730[_0x2e62('0x6')]},'raw':!![]});})[_0x2e62('0x3')](function(_0x1d81a1){return _0x346745[_0x2e62('0x1')][_0x2e62('0x5')][_0x2e62('0x2')]({'where':{'exten':{'$in':_[_0x2e62('0x7')](_[_0x2e62('0x8')](_0x1d81a1,'exten'))}},'order':[{'raw':_0x2e62('0x9')}],'raw':!![]});})[_0x2e62('0x3')](function(_0x2f042b){var _0x3d271d=_[_0x2e62('0xa')](_0x2f042b,{'priority':'1'});var _0x23f60f=_[_0x2e62('0xa')](_0x2f042b,{'isApp':0x1});var _0x5b4f5f=_[_0x2e62('0xb')](_0x23f60f,'exten');var _0x2b27f1=[_0x2e62('0xc'),_0x2e62('0xd')];var _0x329607=[];var _0x2b0354=[];for(var _0x43483e in _0x5b4f5f){if(_0x5b4f5f[_0x2e62('0xe')](_0x43483e)){_0x38f61f[_0x2e62('0xf')]=0x2;_0x38f61f['extensions']=[];_0x38f61f[_0x2e62('0x10')]=_['find'](_0x3d271d,{'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')]});_0x38f61f[_0x2e62('0x12')]['push']({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':util[_0x2e62('0x15')](_0x2e62('0x16'),_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')]),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f['priority']++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});if(_0x5b4f5f[_0x43483e][0x0]['type']===_0x2e62('0x19')){_0x38f61f['extensions']['push']({'type':_0x5b4f5f[_0x43483e][0x0]['type'],'app':'Set','appdata':_0x2e62('0x1a')+_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')],'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});}else if(_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')]===_0x2e62('0x1b')){if(_0x38f61f['extension']){_0x38f61f[_0x2e62('0x12')][_0x2e62('0x1c')]({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x1d')+(_0x38f61f[_0x2e62('0x10')]['cutdigits']?_0x2e62('0x1e')+_0x38f61f['extension'][_0x2e62('0x1f')]+'}':_0x2e62('0x20')),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});}_0x38f61f[_0x2e62('0x12')][_0x2e62('0x1c')]({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x1a')+_0x5b4f5f[_0x43483e][0x0]['VoiceExtensionId'],'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0]['VoiceExtensionId']});var _0x3d4b2c=_0x38f61f[_0x2e62('0xf')]++;_0x38f61f[_0x2e62('0x12')][_0x2e62('0x1c')]({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x21'),'appdata':_0x2e62('0x22')+(_0x3d4b2c+0x2)+_0x2e62('0x23')+(_0x3d4b2c+0x1)+')','context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0]['exten'],'priority':_0x3d4b2c,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0]['VoiceExtensionId']});if(_0x38f61f[_0x2e62('0x10')]){_0x38f61f['extensions']['push']({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x38f61f[_0x2e62('0x10')][_0x2e62('0x1f')]?_0x2e62('0x24')+_0x38f61f[_0x2e62('0x10')][_0x2e62('0x1f')]+'}':_0x2e62('0x25'),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});}_0x38f61f[_0x2e62('0x12')][_0x2e62('0x1c')]({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x26')+_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')],'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f['priority']++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});if(_0x38f61f['extension']&&_0x38f61f[_0x2e62('0x10')][_0x2e62('0xe')]('recordingFormat')&&_0x38f61f[_0x2e62('0x10')][_0x2e62('0x27')]!=='none'){_0x38f61f[_0x2e62('0x12')][_0x2e62('0x1c')]({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x28'),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});_0x38f61f[_0x2e62('0x12')][_0x2e62('0x1c')]({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x38f61f[_0x2e62('0x10')][_0x2e62('0x27')]||_0x2e62('0x29'),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});}}_0x38f61f[_0x2e62('0x12')][_0x2e62('0x1c')]({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x2a'),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0]['exten'],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});_0x38f61f[_0x2e62('0x12')]['push']({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':'Set','appdata':_0x2e62('0x2b'),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0]['VoiceExtensionId']});_0x38f61f[_0x2e62('0x12')]['push']({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x2c'),'context':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x17')],'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'priority':_0x38f61f[_0x2e62('0xf')]++,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});for(var _0x1e7f2e=0x0,_0x2d1fe7=0x0;_0x1e7f2e<_0x5b4f5f[_0x43483e][_0x2e62('0x2d')];_0x1e7f2e+=0x1,_0x2d1fe7=0x0){var _0x29bd3b=_0x5b4f5f[_0x43483e][_0x1e7f2e];if(_0x29bd3b[_0x2e62('0x13')]){_0x29bd3b[_0x2e62('0x13')]=_0x29bd3b['type'][_0x2e62('0x2e')]();}var _0x43ff11=[];var _0x1127f5=[];delete _0x29bd3b['id'];delete _0x29bd3b[_0x2e62('0x2f')];delete _0x29bd3b[_0x2e62('0x30')];var _0x3c5d46=_0x29bd3b[_0x2e62('0x31')]!=='*,*,*,*'?[_0x29bd3b['interval']]:_0x29bd3b[_0x2e62('0x6')]?_[_0x2e62('0x8')](_[_0x2e62('0xa')](_0x38f61f[_0x2e62('0x4')],{'IntervalId':_0x29bd3b['IntervalId']}),_0x2e62('0x31')):[];if(_0x29bd3b[_0x2e62('0xe')](_0x2e62('0x32'))){if(_0x29bd3b[_0x2e62('0x32')]&&_0x29bd3b[_0x2e62('0x32')]!=='--'){_0x43ff11['push']({'type':_0x29bd3b[_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x33')+_0x29bd3b['tag'],'context':_0x29bd3b[_0x2e62('0x17')],'exten':_0x29bd3b[_0x2e62('0x11')],'priority':_0x3c5d46[_0x2e62('0x2d')]+_0x38f61f[_0x2e62('0xf')]+_0x2d1fe7++,'VoiceExtensionId':_0x29bd3b['VoiceExtensionId']});}}if(_0x29bd3b[_0x2e62('0x13')]===_0x2e62('0x1b')&&_0x29bd3b[_0x2e62('0xe')]('callerID')){if(_0x29bd3b['callerID']){_0x43ff11[_0x2e62('0x1c')]({'type':_0x29bd3b['type'],'app':_0x2e62('0x21'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x29bd3b['callerID']+')','context':_0x29bd3b[_0x2e62('0x17')],'exten':_0x29bd3b[_0x2e62('0x11')],'priority':_0x3c5d46[_0x2e62('0x2d')]+_0x38f61f[_0x2e62('0xf')]+_0x2d1fe7++,'VoiceExtensionId':_0x29bd3b[_0x2e62('0x18')]});}else{_0x43ff11[_0x2e62('0x1c')]({'type':_0x29bd3b[_0x2e62('0x13')],'app':_0x2e62('0x21'),'appdata':_0x2e62('0x34'),'context':_0x29bd3b[_0x2e62('0x17')],'exten':_0x29bd3b[_0x2e62('0x11')],'priority':_0x3c5d46[_0x2e62('0x2d')]+_0x38f61f[_0x2e62('0xf')]+_0x2d1fe7++,'VoiceExtensionId':_0x29bd3b['VoiceExtensionId']});}}if(_0x29bd3b['hasOwnProperty']('answer')){if(_0x2b27f1[_0x2e62('0x35')](_0x29bd3b[_0x2e62('0x36')]['toLowerCase']())>=0x0&&_0x29bd3b[_0x2e62('0x37')]!==_0x2e62('0x38')){if(_0x29bd3b[_0x2e62('0x39')]){_0x43ff11[_0x2e62('0x1c')]({'type':_0x29bd3b['type'],'app':_0x2e62('0x21'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x29bd3b[_0x2e62('0x17')],'exten':_0x29bd3b[_0x2e62('0x11')],'priority':_0x3c5d46['length']+_0x38f61f['priority']+_0x2d1fe7++,'VoiceExtensionId':_0x29bd3b[_0x2e62('0x18')]});_0x43ff11[_0x2e62('0x1c')]({'type':_0x29bd3b[_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x3a'),'context':_0x29bd3b[_0x2e62('0x17')],'exten':_0x29bd3b[_0x2e62('0x11')],'priority':_0x3c5d46[_0x2e62('0x2d')]+_0x38f61f['priority']+_0x2d1fe7++,'VoiceExtensionId':_0x29bd3b[_0x2e62('0x18')]});}else{_0x43ff11['push']({'type':_0x29bd3b[_0x2e62('0x13')],'app':_0x2e62('0x21'),'appdata':_0x2e62('0x3b'),'context':_0x29bd3b[_0x2e62('0x17')],'exten':_0x29bd3b[_0x2e62('0x11')],'priority':_0x3c5d46[_0x2e62('0x2d')]+_0x38f61f[_0x2e62('0xf')]+_0x2d1fe7++,'VoiceExtensionId':_0x29bd3b[_0x2e62('0x18')]});_0x43ff11[_0x2e62('0x1c')]({'type':_0x29bd3b[_0x2e62('0x13')],'app':_0x2e62('0x14'),'appdata':_0x2e62('0x3c'),'context':_0x29bd3b[_0x2e62('0x17')],'exten':_0x29bd3b[_0x2e62('0x11')],'priority':_0x3c5d46[_0x2e62('0x2d')]+_0x38f61f['priority']+_0x2d1fe7++,'VoiceExtensionId':_0x29bd3b[_0x2e62('0x18')]});}}}for(var _0x33f75c=0x0;_0x33f75c<_0x3c5d46[_0x2e62('0x2d')];_0x33f75c+=0x1){var _0x4bff2f=_0x38f61f['priority']+_0x3c5d46[_0x2e62('0x2d')];var _0xcc273d=_0x33f75c===_0x3c5d46[_0x2e62('0x2d')]-0x1?_0x38f61f[_0x2e62('0xf')]+_0x43ff11[_0x2e62('0x2d')]+_0x1127f5['length']+0x2:_0x38f61f[_0x2e62('0xf')]+_0x33f75c+0x1;_0x43ff11[_0x2e62('0x3d')](_0x33f75c,0x0,{'type':_0x29bd3b[_0x2e62('0x13')],'app':_0x2e62('0x3e'),'appdata':_0x3c5d46[_0x33f75c]+'?'+_0x29bd3b[_0x2e62('0x17')]+_0x2e62('0x3f')+_0x4bff2f+':'+_0x29bd3b[_0x2e62('0x17')]+_0x2e62('0x3f')+_0xcc273d,'exten':_0x29bd3b['exten'],'context':_0x29bd3b[_0x2e62('0x17')],'priority':_0x38f61f[_0x2e62('0xf')]+_0x33f75c,'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0]['VoiceExtensionId']});}_0x29bd3b[_0x2e62('0xf')]=_0x43ff11[_0x2e62('0x2d')]?_['last'](_0x43ff11)[_0x2e62('0xf')]+0x1:_0x38f61f['priority'];_0x38f61f['priority']=(_0x1127f5[_0x2e62('0x2d')]?_[_0x2e62('0x40')](_0x1127f5)['priority']:_0x29bd3b['priority'])+0x1;_0x38f61f[_0x2e62('0x12')]=_[_0x2e62('0x41')](_0x38f61f['extensions'],_0x43ff11,[_0x29bd3b],_0x1127f5);}_0x38f61f[_0x2e62('0x12')]['push']({'type':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x13')],'app':_0x2e62('0x42'),'exten':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x11')],'context':_0x5b4f5f[_0x43483e][0x0]['context'],'priority':_0x38f61f[_0x2e62('0xf')],'VoiceExtensionId':_0x5b4f5f[_0x43483e][0x0][_0x2e62('0x18')]});_0x329607[_0x2e62('0x1c')](_0x5b4f5f[_0x43483e][0x0]['VoiceExtensionId']);_0x2b0354=_[_0x2e62('0x41')](_0x2b0354,_0x38f61f[_0x2e62('0x12')]);}}return _0x346745[_0x2e62('0x43')](function(_0x328790){return _0x346745[_0x2e62('0x1')][_0x2e62('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x329607}},'transaction':_0x328790})[_0x2e62('0x3')](function(_0x48d7a2){return _0x346745[_0x2e62('0x1')][_0x2e62('0x5')][_0x2e62('0x44')](_[_0x2e62('0x45')](_0x2b0354,_0x2e62('0xf')),{'transaction':_0x328790});});});})['catch'](function(_0x105d1c){console[_0x2e62('0x46')](_0x105d1c);});}exports['rewrite']=rewrite;