Built motion from commit 19a84241.|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 _0xf598=['indexOf','app','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1',',${EXTEN},','last','concat','VoiceExtension','destroy','bulkCreate','sortBy','catch','error','rewrite','lodash','util','models','Interval','findAll','then','IntervalId','uniq','map','exten','filter','groupBy','queue','playback','hasOwnProperty','extension','push','type','format','CDR(type)=%s','priority','VoiceExtensionId','extensions','context','CDR(destination)=','cutdigits','${EXTEN}','Set','CDR(routeid)=','$[${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','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','intervals','tag','CDR(tag)=','outbound','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','answer'];(function(_0x2e2137,_0x15cee8){var _0x1bb12e=function(_0xe5c3fd){while(--_0xe5c3fd){_0x2e2137['push'](_0x2e2137['shift']());}};_0x1bb12e(++_0x15cee8);}(_0xf598,0x97));var _0x8f59=function(_0x31e27a,_0x30e2f5){_0x31e27a=_0x31e27a-0x0;var _0x453afe=_0xf598[_0x31e27a];return _0x453afe;};'use strict';var _=require(_0x8f59('0x0'));var util=require(_0x8f59('0x1'));function rewrite(_0x141ac1,_0x5583ba){var _0x448326=this;return _0x141ac1[_0x8f59('0x2')][_0x8f59('0x3')][_0x8f59('0x4')]({'raw':!![]})[_0x8f59('0x5')](function(_0x2d2053){_0x448326['intervals']=_0x2d2053;return _0x141ac1[_0x8f59('0x2')]['VoiceExtension'][_0x8f59('0x4')]({'where':{'IntervalId':_0x5583ba[_0x8f59('0x6')]},'raw':!![]});})[_0x8f59('0x5')](function(_0x5ae316){return _0x141ac1[_0x8f59('0x2')]['VoiceExtension'][_0x8f59('0x4')]({'where':{'exten':{'$in':_[_0x8f59('0x7')](_[_0x8f59('0x8')](_0x5ae316,_0x8f59('0x9')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})['then'](function(_0x7346b0){var _0xc275a5=_[_0x8f59('0xa')](_0x7346b0,{'priority':'1'});var _0x369476=_[_0x8f59('0xa')](_0x7346b0,{'isApp':0x1});var _0x2ee4b9=_[_0x8f59('0xb')](_0x369476,_0x8f59('0x9'));var _0x15e50d=[_0x8f59('0xc'),_0x8f59('0xd')];var _0x362b19=[];var _0x18ebd6=[];for(var _0x5f4908 in _0x2ee4b9){if(_0x2ee4b9[_0x8f59('0xe')](_0x5f4908)){_0x448326['priority']=0x2;_0x448326['extensions']=[];_0x448326[_0x8f59('0xf')]=_['find'](_0xc275a5,{'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')]});_0x448326['extensions'][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':'Set','appdata':util[_0x8f59('0x12')](_0x8f59('0x13'),_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')]),'context':_0x2ee4b9[_0x5f4908][0x0]['context'],'exten':_0x2ee4b9[_0x5f4908][0x0]['exten'],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});if(_0x2ee4b9[_0x5f4908][0x0]['type']==='inbound'){_0x448326[_0x8f59('0x16')][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0]['type'],'app':'Set','appdata':'CDR(routeid)='+_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')],'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'priority':_0x448326['priority']++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});}else if(_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')]==='outbound'){if(_0x448326[_0x8f59('0xf')]){_0x448326[_0x8f59('0x16')][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':'Set','appdata':_0x8f59('0x18')+(_0x448326[_0x8f59('0xf')][_0x8f59('0x19')]?'${EXTEN:'+_0x448326[_0x8f59('0xf')][_0x8f59('0x19')]+'}':_0x8f59('0x1a')),'context':_0x2ee4b9[_0x5f4908][0x0]['context'],'exten':_0x2ee4b9[_0x5f4908][0x0]['exten'],'priority':_0x448326['priority']++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});}_0x448326['extensions'][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x1c')+_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')],'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0]['VoiceExtensionId']});var _0x51db5b=_0x448326[_0x8f59('0x14')]++;_0x448326[_0x8f59('0x16')][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':'ExecIf','appdata':_0x8f59('0x1d')+(_0x51db5b+0x2)+'):Goto('+(_0x51db5b+0x1)+')','context':_0x2ee4b9[_0x5f4908][0x0]['context'],'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'priority':_0x51db5b,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0]['VoiceExtensionId']});if(_0x448326[_0x8f59('0xf')]){_0x448326[_0x8f59('0x16')][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0]['type'],'app':_0x8f59('0x1b'),'appdata':_0x448326[_0x8f59('0xf')][_0x8f59('0x19')]?_0x8f59('0x1e')+_0x448326['extension'][_0x8f59('0x19')]+'}':_0x8f59('0x1f'),'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0]['VoiceExtensionId']});}_0x448326[_0x8f59('0x16')][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x20')+_0x2ee4b9[_0x5f4908][0x0]['VoiceExtensionId'],'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'priority':_0x448326['priority']++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0]['VoiceExtensionId']});if(_0x448326[_0x8f59('0xf')]&&_0x448326[_0x8f59('0xf')][_0x8f59('0xe')](_0x8f59('0x21'))&&_0x448326[_0x8f59('0xf')]['recordingFormat']!==_0x8f59('0x22')){_0x448326['extensions'][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x23'),'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0]['exten'],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});_0x448326[_0x8f59('0x16')]['push']({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x24')+_0x448326[_0x8f59('0xf')]['recordingFormat']||_0x8f59('0x25'),'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0]['exten'],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});}}_0x448326[_0x8f59('0x16')][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x26'),'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});_0x448326['extensions'][_0x8f59('0x10')]({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':_0x8f59('0x1b'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});_0x448326[_0x8f59('0x16')]['push']({'type':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x11')],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x27'),'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'exten':_0x2ee4b9[_0x5f4908][0x0]['exten'],'priority':_0x448326[_0x8f59('0x14')]++,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0]['VoiceExtensionId']});for(var _0x561f62=0x0,_0xefdad3=0x0;_0x561f62<_0x2ee4b9[_0x5f4908][_0x8f59('0x28')];_0x561f62+=0x1,_0xefdad3=0x0){var _0xb0eecb=_0x2ee4b9[_0x5f4908][_0x561f62];if(_0xb0eecb[_0x8f59('0x11')]){_0xb0eecb[_0x8f59('0x11')]=_0xb0eecb[_0x8f59('0x11')][_0x8f59('0x29')]();}var _0x31a548=[];var _0x5aa4aa=[];delete _0xb0eecb['id'];delete _0xb0eecb[_0x8f59('0x2a')];delete _0xb0eecb[_0x8f59('0x2b')];var _0x52662d=_0xb0eecb[_0x8f59('0x2c')]!=='*,*,*,*'?[_0xb0eecb[_0x8f59('0x2c')]]:_0xb0eecb['IntervalId']?_[_0x8f59('0x8')](_[_0x8f59('0xa')](_0x448326[_0x8f59('0x2d')],{'IntervalId':_0xb0eecb['IntervalId']}),_0x8f59('0x2c')):[];if(_0xb0eecb[_0x8f59('0xe')](_0x8f59('0x2e'))){if(_0xb0eecb[_0x8f59('0x2e')]&&_0xb0eecb['tag']!=='--'){_0x31a548['push']({'type':_0xb0eecb['type'],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x2f')+_0xb0eecb[_0x8f59('0x2e')],'context':_0xb0eecb[_0x8f59('0x17')],'exten':_0xb0eecb[_0x8f59('0x9')],'priority':_0x52662d[_0x8f59('0x28')]+_0x448326[_0x8f59('0x14')]+_0xefdad3++,'VoiceExtensionId':_0xb0eecb[_0x8f59('0x15')]});}}if(_0xb0eecb['type']===_0x8f59('0x30')&&_0xb0eecb[_0x8f59('0xe')]('callerID')){if(_0xb0eecb[_0x8f59('0x31')]){_0x31a548[_0x8f59('0x10')]({'type':_0xb0eecb[_0x8f59('0x11')],'app':_0x8f59('0x32'),'appdata':_0x8f59('0x33')+_0xb0eecb[_0x8f59('0x31')]+')','context':_0xb0eecb[_0x8f59('0x17')],'exten':_0xb0eecb[_0x8f59('0x9')],'priority':_0x52662d[_0x8f59('0x28')]+_0x448326['priority']+_0xefdad3++,'VoiceExtensionId':_0xb0eecb[_0x8f59('0x15')]});}else{_0x31a548[_0x8f59('0x10')]({'type':_0xb0eecb[_0x8f59('0x11')],'app':_0x8f59('0x32'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0xb0eecb['context'],'exten':_0xb0eecb[_0x8f59('0x9')],'priority':_0x52662d[_0x8f59('0x28')]+_0x448326['priority']+_0xefdad3++,'VoiceExtensionId':_0xb0eecb[_0x8f59('0x15')]});}}if(_0xb0eecb[_0x8f59('0xe')](_0x8f59('0x34'))){if(_0x15e50d[_0x8f59('0x35')](_0xb0eecb[_0x8f59('0x36')][_0x8f59('0x29')]())>=0x0&&_0xb0eecb['appType']!=='custom'){if(_0xb0eecb[_0x8f59('0x34')]){_0x31a548[_0x8f59('0x10')]({'type':_0xb0eecb['type'],'app':_0x8f59('0x32'),'appdata':_0x8f59('0x37'),'context':_0xb0eecb['context'],'exten':_0xb0eecb[_0x8f59('0x9')],'priority':_0x52662d[_0x8f59('0x28')]+_0x448326['priority']+_0xefdad3++,'VoiceExtensionId':_0xb0eecb[_0x8f59('0x15')]});_0x31a548[_0x8f59('0x10')]({'type':_0xb0eecb['type'],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0xb0eecb[_0x8f59('0x17')],'exten':_0xb0eecb[_0x8f59('0x9')],'priority':_0x52662d[_0x8f59('0x28')]+_0x448326[_0x8f59('0x14')]+_0xefdad3++,'VoiceExtensionId':_0xb0eecb[_0x8f59('0x15')]});}else{_0x31a548[_0x8f59('0x10')]({'type':_0xb0eecb[_0x8f59('0x11')],'app':'ExecIf','appdata':_0x8f59('0x38'),'context':_0xb0eecb[_0x8f59('0x17')],'exten':_0xb0eecb['exten'],'priority':_0x52662d['length']+_0x448326[_0x8f59('0x14')]+_0xefdad3++,'VoiceExtensionId':_0xb0eecb[_0x8f59('0x15')]});_0x31a548[_0x8f59('0x10')]({'type':_0xb0eecb['type'],'app':_0x8f59('0x1b'),'appdata':_0x8f59('0x39'),'context':_0xb0eecb[_0x8f59('0x17')],'exten':_0xb0eecb[_0x8f59('0x9')],'priority':_0x52662d[_0x8f59('0x28')]+_0x448326['priority']+_0xefdad3++,'VoiceExtensionId':_0xb0eecb[_0x8f59('0x15')]});}}}for(var _0x4740b3=0x0;_0x4740b3<_0x52662d[_0x8f59('0x28')];_0x4740b3+=0x1){var _0x58422e=_0x448326['priority']+_0x52662d['length'];var _0x528d40=_0x4740b3===_0x52662d[_0x8f59('0x28')]-0x1?_0x448326[_0x8f59('0x14')]+_0x31a548[_0x8f59('0x28')]+_0x5aa4aa[_0x8f59('0x28')]+0x2:_0x448326['priority']+_0x4740b3+0x1;_0x31a548['splice'](_0x4740b3,0x0,{'type':_0xb0eecb['type'],'app':'GotoIfTime','appdata':_0x52662d[_0x4740b3]+'?'+_0xb0eecb[_0x8f59('0x17')]+_0x8f59('0x3a')+_0x58422e+':'+_0xb0eecb[_0x8f59('0x17')]+_0x8f59('0x3a')+_0x528d40,'exten':_0xb0eecb[_0x8f59('0x9')],'context':_0xb0eecb[_0x8f59('0x17')],'priority':_0x448326[_0x8f59('0x14')]+_0x4740b3,'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});}_0xb0eecb['priority']=_0x31a548[_0x8f59('0x28')]?_[_0x8f59('0x3b')](_0x31a548)['priority']+0x1:_0x448326['priority'];_0x448326[_0x8f59('0x14')]=(_0x5aa4aa[_0x8f59('0x28')]?_[_0x8f59('0x3b')](_0x5aa4aa)['priority']:_0xb0eecb[_0x8f59('0x14')])+0x1;_0x448326['extensions']=_[_0x8f59('0x3c')](_0x448326['extensions'],_0x31a548,[_0xb0eecb],_0x5aa4aa);}_0x448326[_0x8f59('0x16')]['push']({'type':_0x2ee4b9[_0x5f4908][0x0]['type'],'app':'Hangup','exten':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x9')],'context':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x17')],'priority':_0x448326[_0x8f59('0x14')],'VoiceExtensionId':_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]});_0x362b19['push'](_0x2ee4b9[_0x5f4908][0x0][_0x8f59('0x15')]);_0x18ebd6=_[_0x8f59('0x3c')](_0x18ebd6,_0x448326[_0x8f59('0x16')]);}}return _0x141ac1['transaction'](function(_0x1696e4){return _0x141ac1[_0x8f59('0x2')][_0x8f59('0x3d')][_0x8f59('0x3e')]({'where':{'VoiceExtensionId':{'$in':_0x362b19}},'transaction':_0x1696e4})[_0x8f59('0x5')](function(_0x11f7cc){return _0x141ac1[_0x8f59('0x2')][_0x8f59('0x3d')][_0x8f59('0x3f')](_[_0x8f59('0x40')](_0x18ebd6,'priority'),{'transaction':_0x1696e4});});});})[_0x8f59('0x41')](function(_0x478716){console[_0x8f59('0x42')](_0x478716);});}exports[_0x8f59('0x43')]=rewrite;