Built motion from commit (unavailable).|2.5.6
[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 _0xc820=['CDR(destination)=','cutdigits','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','length','toLowerCase','interval','*,*,*,*','tag','outbound','callerID','ExecIf','answer','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','transaction','sortBy','catch','error','util','models','findAll','intervals','VoiceExtension','IntervalId','then','uniq','map','exten','filter','groupBy','playback','hasOwnProperty','priority','extensions','extension','push','Set','CDR(type)=%s','type','context','VoiceExtensionId'];(function(_0x5be9b4,_0x1c672f){var _0x1d1a9e=function(_0x4c06f8){while(--_0x4c06f8){_0x5be9b4['push'](_0x5be9b4['shift']());}};_0x1d1a9e(++_0x1c672f);}(_0xc820,0x13f));var _0x0c82=function(_0x12e4df,_0x5b5292){_0x12e4df=_0x12e4df-0x0;var _0x513e33=_0xc820[_0x12e4df];return _0x513e33;};'use strict';var _=require('lodash');var util=require(_0x0c82('0x0'));function rewrite(_0x44415e,_0x2cac3e){var _0xe6416b=this;return _0x44415e[_0x0c82('0x1')]['Interval'][_0x0c82('0x2')]({'raw':!![]})['then'](function(_0x3f7751){_0xe6416b[_0x0c82('0x3')]=_0x3f7751;return _0x44415e[_0x0c82('0x1')][_0x0c82('0x4')][_0x0c82('0x2')]({'where':{'IntervalId':_0x2cac3e[_0x0c82('0x5')]},'raw':!![]});})[_0x0c82('0x6')](function(_0x32e9ee){return _0x44415e[_0x0c82('0x1')][_0x0c82('0x4')][_0x0c82('0x2')]({'where':{'exten':{'$in':_[_0x0c82('0x7')](_[_0x0c82('0x8')](_0x32e9ee,_0x0c82('0x9')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x0c82('0x6')](function(_0xc0790d){var _0x6a8d30=_[_0x0c82('0xa')](_0xc0790d,{'priority':'1'});var _0xbe6336=_[_0x0c82('0xa')](_0xc0790d,{'isApp':0x1});var _0x240270=_[_0x0c82('0xb')](_0xbe6336,_0x0c82('0x9'));var _0x1e8188=['queue',_0x0c82('0xc')];var _0x54b6da=[];var _0x548cf5=[];for(var _0x2098ae in _0x240270){if(_0x240270[_0x0c82('0xd')](_0x2098ae)){_0xe6416b[_0x0c82('0xe')]=0x2;_0xe6416b[_0x0c82('0xf')]=[];_0xe6416b[_0x0c82('0x10')]=_['find'](_0x6a8d30,{'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')]});_0xe6416b[_0x0c82('0xf')][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0]['type'],'app':_0x0c82('0x12'),'appdata':util['format'](_0x0c82('0x13'),_0x240270[_0x2098ae][0x0][_0x0c82('0x14')]),'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0]['exten'],'priority':_0xe6416b['priority']++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});if(_0x240270[_0x2098ae][0x0][_0x0c82('0x14')]==='outbound'){if(_0xe6416b[_0x0c82('0x10')]){_0xe6416b['extensions'][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':'Set','appdata':_0x0c82('0x17')+(_0xe6416b['extension'][_0x0c82('0x18')]?'${EXTEN:'+_0xe6416b[_0x0c82('0x10')][_0x0c82('0x18')]+'}':'${EXTEN}'),'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'priority':_0xe6416b[_0x0c82('0xe')]++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0]['VoiceExtensionId']});}_0xe6416b[_0x0c82('0xf')][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':_0x0c82('0x12'),'appdata':'CDR(routeid)='+_0x240270[_0x2098ae][0x0][_0x0c82('0x16')],'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'priority':_0xe6416b[_0x0c82('0xe')]++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});var _0x1ba2bd=_0xe6416b[_0x0c82('0xe')]++;_0xe6416b['extensions'][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':'ExecIf','appdata':_0x0c82('0x19')+(_0x1ba2bd+0x2)+'):Goto('+(_0x1ba2bd+0x1)+')','context':_0x240270[_0x2098ae][0x0]['context'],'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'priority':_0x1ba2bd,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});if(_0xe6416b[_0x0c82('0x10')]){_0xe6416b[_0x0c82('0xf')][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':'Set','appdata':_0xe6416b[_0x0c82('0x10')]['cutdigits']?'CDR(prefix)=${EXTEN:0:'+_0xe6416b[_0x0c82('0x10')]['cutdigits']+'}':'CDR(prefix)=noprefix','context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0]['exten'],'priority':_0xe6416b['priority']++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});}_0xe6416b[_0x0c82('0xf')][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':_0x0c82('0x12'),'appdata':_0x0c82('0x1a')+_0x240270[_0x2098ae][0x0][_0x0c82('0x16')],'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'priority':_0xe6416b[_0x0c82('0xe')]++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});if(_0xe6416b[_0x0c82('0x10')]&&_0xe6416b['extension']['hasOwnProperty'](_0x0c82('0x1b'))&&_0xe6416b[_0x0c82('0x10')][_0x0c82('0x1b')]!==_0x0c82('0x1c')){_0xe6416b[_0x0c82('0xf')][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':'Set','appdata':_0x0c82('0x1d'),'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0]['exten'],'priority':_0xe6416b[_0x0c82('0xe')]++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0]['VoiceExtensionId']});_0xe6416b['extensions'][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0]['type'],'app':'Set','appdata':_0x0c82('0x1e')+_0xe6416b[_0x0c82('0x10')][_0x0c82('0x1b')]||_0x0c82('0x1f'),'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'priority':_0xe6416b['priority']++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0]['VoiceExtensionId']});}}_0xe6416b[_0x0c82('0xf')][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':'Set','appdata':_0x0c82('0x20'),'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0]['exten'],'priority':_0xe6416b[_0x0c82('0xe')]++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});_0xe6416b['extensions'][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':_0x0c82('0x12'),'appdata':_0x0c82('0x21'),'context':_0x240270[_0x2098ae][0x0]['context'],'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'priority':_0xe6416b[_0x0c82('0xe')]++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});_0xe6416b[_0x0c82('0xf')][_0x0c82('0x11')]({'type':_0x240270[_0x2098ae][0x0][_0x0c82('0x14')],'app':_0x0c82('0x12'),'appdata':'MONITOR_OPTIONS=ab','context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'priority':_0xe6416b['priority']++,'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});for(var _0x321082=0x0,_0x188f2f=0x0;_0x321082<_0x240270[_0x2098ae][_0x0c82('0x22')];_0x321082+=0x1,_0x188f2f=0x0){var _0x57ff5e=_0x240270[_0x2098ae][_0x321082];if(_0x57ff5e['type']){_0x57ff5e[_0x0c82('0x14')]=_0x57ff5e['type'][_0x0c82('0x23')]();}var _0xe53ca2=[];var _0x1c202a=[];delete _0x57ff5e['id'];delete _0x57ff5e['createdAt'];delete _0x57ff5e['updatedAt'];var _0x3b09f6=_0x57ff5e[_0x0c82('0x24')]!==_0x0c82('0x25')?[_0x57ff5e[_0x0c82('0x24')]]:_0x57ff5e[_0x0c82('0x5')]?_['map'](_['filter'](_0xe6416b[_0x0c82('0x3')],{'IntervalId':_0x57ff5e['IntervalId']}),'interval'):[];if(_0x57ff5e['hasOwnProperty'](_0x0c82('0x26'))){if(_0x57ff5e[_0x0c82('0x26')]&&_0x57ff5e['tag']!=='--'){_0xe53ca2[_0x0c82('0x11')]({'type':_0x57ff5e[_0x0c82('0x14')],'app':_0x0c82('0x12'),'appdata':'CDR(tag)='+_0x57ff5e['tag'],'context':_0x57ff5e[_0x0c82('0x15')],'exten':_0x57ff5e['exten'],'priority':_0x3b09f6[_0x0c82('0x22')]+_0xe6416b[_0x0c82('0xe')]+_0x188f2f++,'VoiceExtensionId':_0x57ff5e[_0x0c82('0x16')]});}}if(_0x57ff5e[_0x0c82('0x14')]===_0x0c82('0x27')&&_0x57ff5e[_0x0c82('0xd')](_0x0c82('0x28'))){if(_0x57ff5e[_0x0c82('0x28')]){_0xe53ca2[_0x0c82('0x11')]({'type':_0x57ff5e[_0x0c82('0x14')],'app':_0x0c82('0x29'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x57ff5e['callerID']+')','context':_0x57ff5e[_0x0c82('0x15')],'exten':_0x57ff5e[_0x0c82('0x9')],'priority':_0x3b09f6[_0x0c82('0x22')]+_0xe6416b['priority']+_0x188f2f++,'VoiceExtensionId':_0x57ff5e[_0x0c82('0x16')]});}else{_0xe53ca2[_0x0c82('0x11')]({'type':_0x57ff5e[_0x0c82('0x14')],'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x57ff5e[_0x0c82('0x15')],'exten':_0x57ff5e[_0x0c82('0x9')],'priority':_0x3b09f6['length']+_0xe6416b[_0x0c82('0xe')]+_0x188f2f++,'VoiceExtensionId':_0x57ff5e['VoiceExtensionId']});}}if(_0x57ff5e[_0x0c82('0xd')](_0x0c82('0x2a'))){if(_0x1e8188['indexOf'](_0x57ff5e[_0x0c82('0x2b')][_0x0c82('0x23')]())>=0x0&&_0x57ff5e[_0x0c82('0x2c')]!==_0x0c82('0x2d')){if(_0x57ff5e[_0x0c82('0x2a')]){_0xe53ca2[_0x0c82('0x11')]({'type':_0x57ff5e['type'],'app':'ExecIf','appdata':_0x0c82('0x2e'),'context':_0x57ff5e[_0x0c82('0x15')],'exten':_0x57ff5e[_0x0c82('0x9')],'priority':_0x3b09f6[_0x0c82('0x22')]+_0xe6416b[_0x0c82('0xe')]+_0x188f2f++,'VoiceExtensionId':_0x57ff5e[_0x0c82('0x16')]});_0xe53ca2[_0x0c82('0x11')]({'type':_0x57ff5e['type'],'app':'Set','appdata':_0x0c82('0x2f'),'context':_0x57ff5e['context'],'exten':_0x57ff5e[_0x0c82('0x9')],'priority':_0x3b09f6[_0x0c82('0x22')]+_0xe6416b['priority']+_0x188f2f++,'VoiceExtensionId':_0x57ff5e[_0x0c82('0x16')]});}else{_0xe53ca2[_0x0c82('0x11')]({'type':_0x57ff5e[_0x0c82('0x14')],'app':_0x0c82('0x29'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x57ff5e[_0x0c82('0x15')],'exten':_0x57ff5e[_0x0c82('0x9')],'priority':_0x3b09f6[_0x0c82('0x22')]+_0xe6416b[_0x0c82('0xe')]+_0x188f2f++,'VoiceExtensionId':_0x57ff5e[_0x0c82('0x16')]});_0xe53ca2['push']({'type':_0x57ff5e[_0x0c82('0x14')],'app':_0x0c82('0x12'),'appdata':_0x0c82('0x30'),'context':_0x57ff5e[_0x0c82('0x15')],'exten':_0x57ff5e[_0x0c82('0x9')],'priority':_0x3b09f6[_0x0c82('0x22')]+_0xe6416b[_0x0c82('0xe')]+_0x188f2f++,'VoiceExtensionId':_0x57ff5e[_0x0c82('0x16')]});}}}for(var _0x500e80=0x0;_0x500e80<_0x3b09f6[_0x0c82('0x22')];_0x500e80+=0x1){var _0x9986f5=_0xe6416b[_0x0c82('0xe')]+_0x3b09f6[_0x0c82('0x22')];var _0x477ea9=_0x500e80===_0x3b09f6[_0x0c82('0x22')]-0x1?_0xe6416b[_0x0c82('0xe')]+_0xe53ca2[_0x0c82('0x22')]+_0x1c202a[_0x0c82('0x22')]+0x2:_0xe6416b[_0x0c82('0xe')]+_0x500e80+0x1;_0xe53ca2[_0x0c82('0x31')](_0x500e80,0x0,{'type':_0x57ff5e[_0x0c82('0x14')],'app':_0x0c82('0x32'),'appdata':_0x3b09f6[_0x500e80]+'?'+_0x57ff5e['context']+_0x0c82('0x33')+_0x9986f5+':'+_0x57ff5e[_0x0c82('0x15')]+',${EXTEN},'+_0x477ea9,'exten':_0x57ff5e[_0x0c82('0x9')],'context':_0x57ff5e['context'],'priority':_0xe6416b['priority']+_0x500e80,'VoiceExtensionId':_0x240270[_0x2098ae][0x0]['VoiceExtensionId']});}_0x57ff5e[_0x0c82('0xe')]=_0xe53ca2[_0x0c82('0x22')]?_[_0x0c82('0x34')](_0xe53ca2)[_0x0c82('0xe')]+0x1:_0xe6416b[_0x0c82('0xe')];_0xe6416b[_0x0c82('0xe')]=(_0x1c202a[_0x0c82('0x22')]?_[_0x0c82('0x34')](_0x1c202a)[_0x0c82('0xe')]:_0x57ff5e['priority'])+0x1;_0xe6416b[_0x0c82('0xf')]=_['concat'](_0xe6416b['extensions'],_0xe53ca2,[_0x57ff5e],_0x1c202a);}_0xe6416b['extensions']['push']({'type':_0x240270[_0x2098ae][0x0]['type'],'app':'Hangup','exten':_0x240270[_0x2098ae][0x0][_0x0c82('0x9')],'context':_0x240270[_0x2098ae][0x0][_0x0c82('0x15')],'priority':_0xe6416b[_0x0c82('0xe')],'VoiceExtensionId':_0x240270[_0x2098ae][0x0][_0x0c82('0x16')]});_0x54b6da[_0x0c82('0x11')](_0x240270[_0x2098ae][0x0]['VoiceExtensionId']);_0x548cf5=_['concat'](_0x548cf5,_0xe6416b['extensions']);}}return _0x44415e[_0x0c82('0x35')](function(_0x52c168){return _0x44415e[_0x0c82('0x1')]['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x54b6da}},'transaction':_0x52c168})[_0x0c82('0x6')](function(_0x1ad770){return _0x44415e[_0x0c82('0x1')][_0x0c82('0x4')]['bulkCreate'](_[_0x0c82('0x36')](_0x548cf5,_0x0c82('0xe')),{'transaction':_0x52c168});});});})[_0x0c82('0x37')](function(_0x4b5704){console[_0x0c82('0x38')](_0x4b5704);});}exports['rewrite']=rewrite;