Built motion from commit 00bf23f6.|2.6.16
[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 _0xc2c3=['_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','toLowerCase','createdAt','updatedAt','interval','tag','CDR(tag)=','outbound','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','length','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','app','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','sortBy','catch','error','rewrite','lodash','util','models','Interval','then','intervals','VoiceExtension','findAll','IntervalId','uniq','map','exten','filter','groupBy','queue','hasOwnProperty','priority','extensions','extension','find','push','type','Set','format','CDR(type)=%s','context','inbound','CDR(routeid)=','VoiceExtensionId','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}'];(function(_0x281bbf,_0x5a9912){var _0x4e1446=function(_0x26f687){while(--_0x26f687){_0x281bbf['push'](_0x281bbf['shift']());}};_0x4e1446(++_0x5a9912);}(_0xc2c3,0x17f));var _0x3c2c=function(_0x339844,_0x2ed765){_0x339844=_0x339844-0x0;var _0x3200f3=_0xc2c3[_0x339844];return _0x3200f3;};'use strict';var _=require(_0x3c2c('0x0'));var util=require(_0x3c2c('0x1'));function rewrite(_0xfbc5ec,_0x1ff7c4){var _0x165174=this;return _0xfbc5ec[_0x3c2c('0x2')][_0x3c2c('0x3')]['findAll']({'raw':!![]})[_0x3c2c('0x4')](function(_0x24ae95){_0x165174[_0x3c2c('0x5')]=_0x24ae95;return _0xfbc5ec[_0x3c2c('0x2')][_0x3c2c('0x6')][_0x3c2c('0x7')]({'where':{'IntervalId':_0x1ff7c4[_0x3c2c('0x8')]},'raw':!![]});})['then'](function(_0x4632f8){return _0xfbc5ec[_0x3c2c('0x2')][_0x3c2c('0x6')]['findAll']({'where':{'exten':{'$in':_[_0x3c2c('0x9')](_[_0x3c2c('0xa')](_0x4632f8,_0x3c2c('0xb')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x3c2c('0x4')](function(_0x5431b4){var _0x2dbcda=_[_0x3c2c('0xc')](_0x5431b4,{'priority':'1'});var _0xf5bc64=_[_0x3c2c('0xc')](_0x5431b4,{'isApp':0x1});var _0x27fbea=_[_0x3c2c('0xd')](_0xf5bc64,_0x3c2c('0xb'));var _0xc0ac0c=[_0x3c2c('0xe'),'playback'];var _0x1db795=[];var _0x511ef2=[];for(var _0x2ff898 in _0x27fbea){if(_0x27fbea[_0x3c2c('0xf')](_0x2ff898)){_0x165174[_0x3c2c('0x10')]=0x2;_0x165174[_0x3c2c('0x11')]=[];_0x165174[_0x3c2c('0x12')]=_[_0x3c2c('0x13')](_0x2dbcda,{'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')]});_0x165174[_0x3c2c('0x11')][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':util[_0x3c2c('0x17')](_0x3c2c('0x18'),_0x27fbea[_0x2ff898][0x0]['type']),'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x165174[_0x3c2c('0x10')]++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0]['VoiceExtensionId']});if(_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')]===_0x3c2c('0x1a')){_0x165174[_0x3c2c('0x11')]['push']({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':_0x3c2c('0x1b')+_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')],'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0]['exten'],'priority':_0x165174[_0x3c2c('0x10')]++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});}else if(_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')]==='outbound'){if(_0x165174[_0x3c2c('0x12')]){_0x165174[_0x3c2c('0x11')][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':'CDR(destination)='+(_0x165174[_0x3c2c('0x12')]['cutdigits']?'${EXTEN:'+_0x165174[_0x3c2c('0x12')][_0x3c2c('0x1d')]+'}':_0x3c2c('0x1e')),'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x165174[_0x3c2c('0x10')]++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});}_0x165174['extensions'][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':_0x3c2c('0x1b')+_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')],'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x165174[_0x3c2c('0x10')]++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});var _0x5b83f3=_0x165174[_0x3c2c('0x10')]++;_0x165174[_0x3c2c('0x11')][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0]['type'],'app':_0x3c2c('0x1f'),'appdata':_0x3c2c('0x20')+(_0x5b83f3+0x2)+_0x3c2c('0x21')+(_0x5b83f3+0x1)+')','context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x5b83f3,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0]['VoiceExtensionId']});if(_0x165174[_0x3c2c('0x12')]){_0x165174[_0x3c2c('0x11')][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0]['type'],'app':_0x3c2c('0x16'),'appdata':_0x165174['extension']['cutdigits']?_0x3c2c('0x22')+_0x165174['extension'][_0x3c2c('0x1d')]+'}':'CDR(prefix)=noprefix','context':_0x27fbea[_0x2ff898][0x0]['context'],'exten':_0x27fbea[_0x2ff898][0x0]['exten'],'priority':_0x165174['priority']++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});}_0x165174['extensions'][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':'outboundrouteid='+_0x27fbea[_0x2ff898][0x0]['VoiceExtensionId'],'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x165174[_0x3c2c('0x10')]++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});if(_0x165174[_0x3c2c('0x12')]&&_0x165174['extension'][_0x3c2c('0xf')]('recordingFormat')&&_0x165174['extension']['recordingFormat']!==_0x3c2c('0x23')){_0x165174[_0x3c2c('0x11')]['push']({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':'Set','appdata':_0x3c2c('0x24'),'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0]['exten'],'priority':_0x165174[_0x3c2c('0x10')]++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});_0x165174[_0x3c2c('0x11')]['push']({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':_0x3c2c('0x25')+_0x165174[_0x3c2c('0x12')]['recordingFormat']||_0x3c2c('0x26'),'context':_0x27fbea[_0x2ff898][0x0]['context'],'exten':_0x27fbea[_0x2ff898][0x0]['exten'],'priority':_0x165174['priority']++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});}}_0x165174[_0x3c2c('0x11')][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0]['type'],'app':_0x3c2c('0x16'),'appdata':_0x3c2c('0x27'),'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x165174['priority']++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});_0x165174['extensions'][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x27fbea[_0x2ff898][0x0]['context'],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x165174['priority']++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0]['VoiceExtensionId']});_0x165174['extensions'][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':'MONITOR_OPTIONS=ab','context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'exten':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0xb')],'priority':_0x165174[_0x3c2c('0x10')]++,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});for(var _0x461d12=0x0,_0x2d40f1=0x0;_0x461d12<_0x27fbea[_0x2ff898]['length'];_0x461d12+=0x1,_0x2d40f1=0x0){var _0x1a8d02=_0x27fbea[_0x2ff898][_0x461d12];if(_0x1a8d02['type']){_0x1a8d02['type']=_0x1a8d02['type'][_0x3c2c('0x28')]();}var _0x25ecf0=[];var _0x2ac757=[];delete _0x1a8d02['id'];delete _0x1a8d02[_0x3c2c('0x29')];delete _0x1a8d02[_0x3c2c('0x2a')];var _0x16d28a=_0x1a8d02['interval']!=='*,*,*,*'?[_0x1a8d02[_0x3c2c('0x2b')]]:_0x1a8d02['IntervalId']?_['map'](_[_0x3c2c('0xc')](_0x165174['intervals'],{'IntervalId':_0x1a8d02['IntervalId']}),_0x3c2c('0x2b')):[];if(_0x1a8d02[_0x3c2c('0xf')](_0x3c2c('0x2c'))){if(_0x1a8d02['tag']&&_0x1a8d02[_0x3c2c('0x2c')]!=='--'){_0x25ecf0['push']({'type':_0x1a8d02[_0x3c2c('0x15')],'app':'Set','appdata':_0x3c2c('0x2d')+_0x1a8d02[_0x3c2c('0x2c')],'context':_0x1a8d02[_0x3c2c('0x19')],'exten':_0x1a8d02[_0x3c2c('0xb')],'priority':_0x16d28a['length']+_0x165174['priority']+_0x2d40f1++,'VoiceExtensionId':_0x1a8d02['VoiceExtensionId']});}}if(_0x1a8d02[_0x3c2c('0x15')]===_0x3c2c('0x2e')&&_0x1a8d02['hasOwnProperty'](_0x3c2c('0x2f'))){if(_0x1a8d02[_0x3c2c('0x2f')]){_0x25ecf0[_0x3c2c('0x14')]({'type':_0x1a8d02[_0x3c2c('0x15')],'app':'ExecIf','appdata':_0x3c2c('0x30')+_0x1a8d02[_0x3c2c('0x2f')]+')','context':_0x1a8d02[_0x3c2c('0x19')],'exten':_0x1a8d02[_0x3c2c('0xb')],'priority':_0x16d28a[_0x3c2c('0x31')]+_0x165174[_0x3c2c('0x10')]+_0x2d40f1++,'VoiceExtensionId':_0x1a8d02['VoiceExtensionId']});}else{_0x25ecf0[_0x3c2c('0x14')]({'type':_0x1a8d02[_0x3c2c('0x15')],'app':_0x3c2c('0x1f'),'appdata':_0x3c2c('0x32'),'context':_0x1a8d02[_0x3c2c('0x19')],'exten':_0x1a8d02[_0x3c2c('0xb')],'priority':_0x16d28a[_0x3c2c('0x31')]+_0x165174['priority']+_0x2d40f1++,'VoiceExtensionId':_0x1a8d02['VoiceExtensionId']});}}if(_0x1a8d02[_0x3c2c('0xf')]('answer')){if(_0xc0ac0c[_0x3c2c('0x33')](_0x1a8d02[_0x3c2c('0x34')]['toLowerCase']())>=0x0&&_0x1a8d02['appType']!==_0x3c2c('0x35')){if(_0x1a8d02[_0x3c2c('0x36')]){_0x25ecf0['push']({'type':_0x1a8d02[_0x3c2c('0x15')],'app':_0x3c2c('0x1f'),'appdata':_0x3c2c('0x37'),'context':_0x1a8d02[_0x3c2c('0x19')],'exten':_0x1a8d02[_0x3c2c('0xb')],'priority':_0x16d28a[_0x3c2c('0x31')]+_0x165174[_0x3c2c('0x10')]+_0x2d40f1++,'VoiceExtensionId':_0x1a8d02[_0x3c2c('0x1c')]});_0x25ecf0[_0x3c2c('0x14')]({'type':_0x1a8d02[_0x3c2c('0x15')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x1a8d02[_0x3c2c('0x19')],'exten':_0x1a8d02[_0x3c2c('0xb')],'priority':_0x16d28a[_0x3c2c('0x31')]+_0x165174[_0x3c2c('0x10')]+_0x2d40f1++,'VoiceExtensionId':_0x1a8d02[_0x3c2c('0x1c')]});}else{_0x25ecf0[_0x3c2c('0x14')]({'type':_0x1a8d02['type'],'app':_0x3c2c('0x1f'),'appdata':_0x3c2c('0x38'),'context':_0x1a8d02['context'],'exten':_0x1a8d02[_0x3c2c('0xb')],'priority':_0x16d28a[_0x3c2c('0x31')]+_0x165174[_0x3c2c('0x10')]+_0x2d40f1++,'VoiceExtensionId':_0x1a8d02[_0x3c2c('0x1c')]});_0x25ecf0[_0x3c2c('0x14')]({'type':_0x1a8d02[_0x3c2c('0x15')],'app':_0x3c2c('0x16'),'appdata':_0x3c2c('0x39'),'context':_0x1a8d02[_0x3c2c('0x19')],'exten':_0x1a8d02[_0x3c2c('0xb')],'priority':_0x16d28a[_0x3c2c('0x31')]+_0x165174[_0x3c2c('0x10')]+_0x2d40f1++,'VoiceExtensionId':_0x1a8d02['VoiceExtensionId']});}}}for(var _0xfc3362=0x0;_0xfc3362<_0x16d28a[_0x3c2c('0x31')];_0xfc3362+=0x1){var _0x3435d6=_0x165174[_0x3c2c('0x10')]+_0x16d28a['length'];var _0x214538=_0xfc3362===_0x16d28a[_0x3c2c('0x31')]-0x1?_0x165174[_0x3c2c('0x10')]+_0x25ecf0[_0x3c2c('0x31')]+_0x2ac757[_0x3c2c('0x31')]+0x2:_0x165174[_0x3c2c('0x10')]+_0xfc3362+0x1;_0x25ecf0[_0x3c2c('0x3a')](_0xfc3362,0x0,{'type':_0x1a8d02[_0x3c2c('0x15')],'app':_0x3c2c('0x3b'),'appdata':_0x16d28a[_0xfc3362]+'?'+_0x1a8d02[_0x3c2c('0x19')]+_0x3c2c('0x3c')+_0x3435d6+':'+_0x1a8d02[_0x3c2c('0x19')]+_0x3c2c('0x3c')+_0x214538,'exten':_0x1a8d02['exten'],'context':_0x1a8d02['context'],'priority':_0x165174[_0x3c2c('0x10')]+_0xfc3362,'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});}_0x1a8d02[_0x3c2c('0x10')]=_0x25ecf0[_0x3c2c('0x31')]?_[_0x3c2c('0x3d')](_0x25ecf0)[_0x3c2c('0x10')]+0x1:_0x165174[_0x3c2c('0x10')];_0x165174[_0x3c2c('0x10')]=(_0x2ac757[_0x3c2c('0x31')]?_[_0x3c2c('0x3d')](_0x2ac757)[_0x3c2c('0x10')]:_0x1a8d02['priority'])+0x1;_0x165174[_0x3c2c('0x11')]=_[_0x3c2c('0x3e')](_0x165174[_0x3c2c('0x11')],_0x25ecf0,[_0x1a8d02],_0x2ac757);}_0x165174[_0x3c2c('0x11')][_0x3c2c('0x14')]({'type':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x15')],'app':_0x3c2c('0x3f'),'exten':_0x27fbea[_0x2ff898][0x0]['exten'],'context':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x19')],'priority':_0x165174[_0x3c2c('0x10')],'VoiceExtensionId':_0x27fbea[_0x2ff898][0x0][_0x3c2c('0x1c')]});_0x1db795[_0x3c2c('0x14')](_0x27fbea[_0x2ff898][0x0]['VoiceExtensionId']);_0x511ef2=_[_0x3c2c('0x3e')](_0x511ef2,_0x165174[_0x3c2c('0x11')]);}}return _0xfbc5ec[_0x3c2c('0x40')](function(_0x24fa36){return _0xfbc5ec[_0x3c2c('0x2')][_0x3c2c('0x6')][_0x3c2c('0x41')]({'where':{'VoiceExtensionId':{'$in':_0x1db795}},'transaction':_0x24fa36})[_0x3c2c('0x4')](function(_0x1abf76){return _0xfbc5ec['models'][_0x3c2c('0x6')]['bulkCreate'](_[_0x3c2c('0x42')](_0x511ef2,_0x3c2c('0x10')),{'transaction':_0x24fa36});});});})[_0x3c2c('0x43')](function(_0x342fb3){console[_0x3c2c('0x44')](_0x342fb3);});}exports[_0x3c2c('0x45')]=rewrite;