Built motion from commit 4e7c323b.|2.5.34
[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 _0x8772=['format','CDR(type)=%s','priority','VoiceExtensionId','inbound','Set','CDR(routeid)=','outbound','extension','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','context','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','createdAt','updatedAt','interval','map','tag','length','hasOwnProperty','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','transaction','destroy','bulkCreate','sortBy','catch','rewrite','lodash','util','models','Interval','then','intervals','VoiceExtension','findAll','IntervalId','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','queue','playback','extensions','find','push','type'];(function(_0x3daa13,_0x428866){var _0x283c29=function(_0x5455f7){while(--_0x5455f7){_0x3daa13['push'](_0x3daa13['shift']());}};_0x283c29(++_0x428866);}(_0x8772,0xc9));var _0x2877=function(_0x4d4f4f,_0x32b2e2){_0x4d4f4f=_0x4d4f4f-0x0;var _0x5d48bc=_0x8772[_0x4d4f4f];return _0x5d48bc;};'use strict';var _=require(_0x2877('0x0'));var util=require(_0x2877('0x1'));function rewrite(_0x59facf,_0x271f8f){var _0x5adf56=this;return _0x59facf[_0x2877('0x2')][_0x2877('0x3')]['findAll']({'raw':!![]})[_0x2877('0x4')](function(_0x2c99f5){_0x5adf56[_0x2877('0x5')]=_0x2c99f5;return _0x59facf[_0x2877('0x2')][_0x2877('0x6')][_0x2877('0x7')]({'where':{'IntervalId':_0x271f8f[_0x2877('0x8')]},'raw':!![]});})[_0x2877('0x4')](function(_0xf84c10){return _0x59facf[_0x2877('0x2')]['VoiceExtension'][_0x2877('0x7')]({'where':{'exten':{'$in':_['uniq'](_['map'](_0xf84c10,_0x2877('0x9')))}},'order':[{'raw':_0x2877('0xa')}],'raw':!![]});})[_0x2877('0x4')](function(_0x52ba66){var _0x30534f=_[_0x2877('0xb')](_0x52ba66,{'priority':'1'});var _0x22436b=_[_0x2877('0xb')](_0x52ba66,{'isApp':0x1});var _0x2c886c=_['groupBy'](_0x22436b,_0x2877('0x9'));var _0x24df07=[_0x2877('0xc'),_0x2877('0xd')];var _0x49a6ce=[];var _0x5f136a=[];for(var _0x1d3bc0 in _0x2c886c){if(_0x2c886c['hasOwnProperty'](_0x1d3bc0)){_0x5adf56['priority']=0x2;_0x5adf56[_0x2877('0xe')]=[];_0x5adf56['extension']=_[_0x2877('0xf')](_0x30534f,{'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')]});_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':'Set','appdata':util[_0x2877('0x12')](_0x2877('0x13'),_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')]),'context':_0x2c886c[_0x1d3bc0][0x0]['context'],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});if(_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')]===_0x2877('0x16')){_0x5adf56[_0x2877('0xe')]['push']({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':_0x2877('0x18')+_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')],'context':_0x2c886c[_0x1d3bc0][0x0]['context'],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});}else if(_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')]===_0x2877('0x19')){if(_0x5adf56[_0x2877('0x1a')]){_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':_0x2877('0x1b')+(_0x5adf56['extension'][_0x2877('0x1c')]?_0x2877('0x1d')+_0x5adf56[_0x2877('0x1a')][_0x2877('0x1c')]+'}':_0x2877('0x1e')),'context':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x1f')],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});}_0x5adf56['extensions'][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':'Set','appdata':_0x2877('0x18')+_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')],'context':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x1f')],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});var _0x512e37=_0x5adf56[_0x2877('0x14')]++;_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':_0x2877('0x20'),'appdata':_0x2877('0x21')+(_0x512e37+0x2)+'):Goto('+(_0x512e37+0x1)+')','context':_0x2c886c[_0x1d3bc0][0x0]['context'],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x512e37,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});if(_0x5adf56[_0x2877('0x1a')]){_0x5adf56[_0x2877('0xe')]['push']({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':_0x5adf56[_0x2877('0x1a')]['cutdigits']?_0x2877('0x22')+_0x5adf56[_0x2877('0x1a')][_0x2877('0x1c')]+'}':_0x2877('0x23'),'context':_0x2c886c[_0x1d3bc0][0x0]['context'],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56['priority']++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0]['VoiceExtensionId']});}_0x5adf56['extensions'][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':_0x2877('0x24')+_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')],'context':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x1f')],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});if(_0x5adf56[_0x2877('0x1a')]&&_0x5adf56['extension']['hasOwnProperty'](_0x2877('0x25'))&&_0x5adf56[_0x2877('0x1a')]['recordingFormat']!==_0x2877('0x26')){_0x5adf56['extensions']['push']({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':_0x2877('0x27'),'context':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x1f')],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0]['type'],'app':_0x2877('0x17'),'appdata':_0x2877('0x28')+_0x5adf56[_0x2877('0x1a')][_0x2877('0x25')]||_0x2877('0x29'),'context':_0x2c886c[_0x1d3bc0][0x0]['context'],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56['priority']++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});}}_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0]['type'],'app':_0x2877('0x17'),'appdata':_0x2877('0x2a'),'context':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x1f')],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0]['type'],'app':'Set','appdata':_0x2877('0x2b'),'context':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x1f')],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56[_0x2877('0x14')]++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':'MONITOR_OPTIONS=ab','context':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x1f')],'exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'priority':_0x5adf56['priority']++,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});for(var _0x226a31=0x0,_0x49352b=0x0;_0x226a31<_0x2c886c[_0x1d3bc0]['length'];_0x226a31+=0x1,_0x49352b=0x0){var _0x1c2595=_0x2c886c[_0x1d3bc0][_0x226a31];if(_0x1c2595[_0x2877('0x11')]){_0x1c2595['type']=_0x1c2595['type']['toLowerCase']();}var _0x5ed12b=[];var _0x15dc44=[];delete _0x1c2595['id'];delete _0x1c2595[_0x2877('0x2c')];delete _0x1c2595[_0x2877('0x2d')];var _0x204884=_0x1c2595[_0x2877('0x2e')]!=='*,*,*,*'?[_0x1c2595[_0x2877('0x2e')]]:_0x1c2595[_0x2877('0x8')]?_[_0x2877('0x2f')](_[_0x2877('0xb')](_0x5adf56['intervals'],{'IntervalId':_0x1c2595[_0x2877('0x8')]}),_0x2877('0x2e')):[];if(_0x1c2595['hasOwnProperty'](_0x2877('0x30'))){if(_0x1c2595[_0x2877('0x30')]&&_0x1c2595[_0x2877('0x30')]!=='--'){_0x5ed12b[_0x2877('0x10')]({'type':_0x1c2595[_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':'CDR(tag)='+_0x1c2595[_0x2877('0x30')],'context':_0x1c2595[_0x2877('0x1f')],'exten':_0x1c2595[_0x2877('0x9')],'priority':_0x204884[_0x2877('0x31')]+_0x5adf56[_0x2877('0x14')]+_0x49352b++,'VoiceExtensionId':_0x1c2595['VoiceExtensionId']});}}if(_0x1c2595['type']===_0x2877('0x19')&&_0x1c2595[_0x2877('0x32')](_0x2877('0x33'))){if(_0x1c2595[_0x2877('0x33')]){_0x5ed12b[_0x2877('0x10')]({'type':_0x1c2595[_0x2877('0x11')],'app':_0x2877('0x20'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x1c2595[_0x2877('0x33')]+')','context':_0x1c2595[_0x2877('0x1f')],'exten':_0x1c2595[_0x2877('0x9')],'priority':_0x204884['length']+_0x5adf56[_0x2877('0x14')]+_0x49352b++,'VoiceExtensionId':_0x1c2595[_0x2877('0x15')]});}else{_0x5ed12b[_0x2877('0x10')]({'type':_0x1c2595[_0x2877('0x11')],'app':_0x2877('0x20'),'appdata':_0x2877('0x34'),'context':_0x1c2595[_0x2877('0x1f')],'exten':_0x1c2595[_0x2877('0x9')],'priority':_0x204884['length']+_0x5adf56[_0x2877('0x14')]+_0x49352b++,'VoiceExtensionId':_0x1c2595[_0x2877('0x15')]});}}if(_0x1c2595[_0x2877('0x32')](_0x2877('0x35'))){if(_0x24df07[_0x2877('0x36')](_0x1c2595[_0x2877('0x37')]['toLowerCase']())>=0x0&&_0x1c2595[_0x2877('0x38')]!==_0x2877('0x39')){if(_0x1c2595[_0x2877('0x35')]){_0x5ed12b[_0x2877('0x10')]({'type':_0x1c2595[_0x2877('0x11')],'app':_0x2877('0x20'),'appdata':_0x2877('0x3a'),'context':_0x1c2595[_0x2877('0x1f')],'exten':_0x1c2595[_0x2877('0x9')],'priority':_0x204884[_0x2877('0x31')]+_0x5adf56[_0x2877('0x14')]+_0x49352b++,'VoiceExtensionId':_0x1c2595[_0x2877('0x15')]});_0x5ed12b['push']({'type':_0x1c2595['type'],'app':_0x2877('0x17'),'appdata':_0x2877('0x3b'),'context':_0x1c2595[_0x2877('0x1f')],'exten':_0x1c2595['exten'],'priority':_0x204884[_0x2877('0x31')]+_0x5adf56[_0x2877('0x14')]+_0x49352b++,'VoiceExtensionId':_0x1c2595[_0x2877('0x15')]});}else{_0x5ed12b[_0x2877('0x10')]({'type':_0x1c2595[_0x2877('0x11')],'app':_0x2877('0x20'),'appdata':_0x2877('0x3c'),'context':_0x1c2595['context'],'exten':_0x1c2595[_0x2877('0x9')],'priority':_0x204884[_0x2877('0x31')]+_0x5adf56['priority']+_0x49352b++,'VoiceExtensionId':_0x1c2595[_0x2877('0x15')]});_0x5ed12b[_0x2877('0x10')]({'type':_0x1c2595[_0x2877('0x11')],'app':_0x2877('0x17'),'appdata':_0x2877('0x3d'),'context':_0x1c2595[_0x2877('0x1f')],'exten':_0x1c2595[_0x2877('0x9')],'priority':_0x204884[_0x2877('0x31')]+_0x5adf56[_0x2877('0x14')]+_0x49352b++,'VoiceExtensionId':_0x1c2595[_0x2877('0x15')]});}}}for(var _0x479840=0x0;_0x479840<_0x204884[_0x2877('0x31')];_0x479840+=0x1){var _0x4fe254=_0x5adf56['priority']+_0x204884[_0x2877('0x31')];var _0x13b97c=_0x479840===_0x204884[_0x2877('0x31')]-0x1?_0x5adf56[_0x2877('0x14')]+_0x5ed12b[_0x2877('0x31')]+_0x15dc44[_0x2877('0x31')]+0x2:_0x5adf56[_0x2877('0x14')]+_0x479840+0x1;_0x5ed12b[_0x2877('0x3e')](_0x479840,0x0,{'type':_0x1c2595[_0x2877('0x11')],'app':_0x2877('0x3f'),'appdata':_0x204884[_0x479840]+'?'+_0x1c2595[_0x2877('0x1f')]+_0x2877('0x40')+_0x4fe254+':'+_0x1c2595[_0x2877('0x1f')]+_0x2877('0x40')+_0x13b97c,'exten':_0x1c2595[_0x2877('0x9')],'context':_0x1c2595[_0x2877('0x1f')],'priority':_0x5adf56[_0x2877('0x14')]+_0x479840,'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});}_0x1c2595[_0x2877('0x14')]=_0x5ed12b[_0x2877('0x31')]?_[_0x2877('0x41')](_0x5ed12b)[_0x2877('0x14')]+0x1:_0x5adf56['priority'];_0x5adf56[_0x2877('0x14')]=(_0x15dc44['length']?_[_0x2877('0x41')](_0x15dc44)[_0x2877('0x14')]:_0x1c2595[_0x2877('0x14')])+0x1;_0x5adf56[_0x2877('0xe')]=_[_0x2877('0x42')](_0x5adf56[_0x2877('0xe')],_0x5ed12b,[_0x1c2595],_0x15dc44);}_0x5adf56[_0x2877('0xe')][_0x2877('0x10')]({'type':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x11')],'app':'Hangup','exten':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x9')],'context':_0x2c886c[_0x1d3bc0][0x0]['context'],'priority':_0x5adf56[_0x2877('0x14')],'VoiceExtensionId':_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]});_0x49a6ce[_0x2877('0x10')](_0x2c886c[_0x1d3bc0][0x0][_0x2877('0x15')]);_0x5f136a=_[_0x2877('0x42')](_0x5f136a,_0x5adf56[_0x2877('0xe')]);}}return _0x59facf[_0x2877('0x43')](function(_0x2ac792){return _0x59facf['models'][_0x2877('0x6')][_0x2877('0x44')]({'where':{'VoiceExtensionId':{'$in':_0x49a6ce}},'transaction':_0x2ac792})[_0x2877('0x4')](function(_0x39c537){return _0x59facf[_0x2877('0x2')][_0x2877('0x6')][_0x2877('0x45')](_[_0x2877('0x46')](_0x5f136a,'priority'),{'transaction':_0x2ac792});});});})[_0x2877('0x47')](function(_0x352c13){console['error'](_0x352c13);});}exports[_0x2877('0x48')]=rewrite;