Built motion from commit 497d3d92.|2.5.43
[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 _0xd0ef=['$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','updatedAt','interval','*,*,*,*','map','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','concat','Hangup','transaction','destroy','bulkCreate','sortBy','catch','error','rewrite','util','models','intervals','VoiceExtension','findAll','IntervalId','then','groupBy','exten','queue','playback','hasOwnProperty','priority','extensions','extension','find','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','inbound','push','CDR(routeid)=','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf'];(function(_0x62c958,_0x2bfdbc){var _0x57ec61=function(_0x5c0094){while(--_0x5c0094){_0x62c958['push'](_0x62c958['shift']());}};_0x57ec61(++_0x2bfdbc);}(_0xd0ef,0x1d2));var _0xfd0e=function(_0xbc386,_0x44e915){_0xbc386=_0xbc386-0x0;var _0x2f576e=_0xd0ef[_0xbc386];return _0x2f576e;};'use strict';var _=require('lodash');var util=require(_0xfd0e('0x0'));function rewrite(_0x4a8ffb,_0x4cf416){var _0x11d124=this;return _0x4a8ffb[_0xfd0e('0x1')]['Interval']['findAll']({'raw':!![]})['then'](function(_0x2512f8){_0x11d124[_0xfd0e('0x2')]=_0x2512f8;return _0x4a8ffb[_0xfd0e('0x1')][_0xfd0e('0x3')][_0xfd0e('0x4')]({'where':{'IntervalId':_0x4cf416[_0xfd0e('0x5')]},'raw':!![]});})[_0xfd0e('0x6')](function(_0x5bfe51){return _0x4a8ffb[_0xfd0e('0x1')][_0xfd0e('0x3')][_0xfd0e('0x4')]({'where':{'exten':{'$in':_['uniq'](_['map'](_0x5bfe51,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0xfd0e('0x6')](function(_0x1a680f){var _0x4ce1e1=_['filter'](_0x1a680f,{'priority':'1'});var _0x54b293=_['filter'](_0x1a680f,{'isApp':0x1});var _0x43afa1=_[_0xfd0e('0x7')](_0x54b293,_0xfd0e('0x8'));var _0x4b5e83=[_0xfd0e('0x9'),_0xfd0e('0xa')];var _0x214120=[];var _0xbd56e2=[];for(var _0x198a1b in _0x43afa1){if(_0x43afa1[_0xfd0e('0xb')](_0x198a1b)){_0x11d124[_0xfd0e('0xc')]=0x2;_0x11d124[_0xfd0e('0xd')]=[];_0x11d124[_0xfd0e('0xe')]=_[_0xfd0e('0xf')](_0x4ce1e1,{'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')]});_0x11d124[_0xfd0e('0xd')]['push']({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x11'),'appdata':util[_0xfd0e('0x12')](_0xfd0e('0x13'),_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')]),'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124[_0xfd0e('0xc')]++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});if(_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')]===_0xfd0e('0x16')){_0x11d124['extensions'][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x18')+_0x43afa1[_0x198a1b][0x0]['VoiceExtensionId'],'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124[_0xfd0e('0xc')]++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});}else if(_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')]===_0xfd0e('0x19')){if(_0x11d124[_0xfd0e('0xe')]){_0x11d124[_0xfd0e('0xd')][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x1a')+(_0x11d124[_0xfd0e('0xe')][_0xfd0e('0x1b')]?_0xfd0e('0x1c')+_0x11d124['extension'][_0xfd0e('0x1b')]+'}':_0xfd0e('0x1d')),'context':_0x43afa1[_0x198a1b][0x0]['context'],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124['priority']++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});}_0x11d124['extensions'][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0]['type'],'app':'Set','appdata':_0xfd0e('0x18')+_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')],'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0]['exten'],'priority':_0x11d124[_0xfd0e('0xc')]++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0]['VoiceExtensionId']});var _0x45acda=_0x11d124[_0xfd0e('0xc')]++;_0x11d124[_0xfd0e('0xd')][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0]['type'],'app':_0xfd0e('0x1e'),'appdata':_0xfd0e('0x1f')+(_0x45acda+0x2)+_0xfd0e('0x20')+(_0x45acda+0x1)+')','context':_0x43afa1[_0x198a1b][0x0]['context'],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x45acda,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0]['VoiceExtensionId']});if(_0x11d124[_0xfd0e('0xe')]){_0x11d124['extensions']['push']({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x11'),'appdata':_0x11d124[_0xfd0e('0xe')][_0xfd0e('0x1b')]?_0xfd0e('0x21')+_0x11d124[_0xfd0e('0xe')][_0xfd0e('0x1b')]+'}':_0xfd0e('0x22'),'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124['priority']++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});}_0x11d124['extensions'][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0]['type'],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x23')+_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')],'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124['priority']++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});if(_0x11d124[_0xfd0e('0xe')]&&_0x11d124['extension']['hasOwnProperty'](_0xfd0e('0x24'))&&_0x11d124[_0xfd0e('0xe')][_0xfd0e('0x24')]!==_0xfd0e('0x25')){_0x11d124[_0xfd0e('0xd')]['push']({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x26'),'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0]['exten'],'priority':_0x11d124['priority']++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});_0x11d124[_0xfd0e('0xd')][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0]['type'],'app':'Set','appdata':_0xfd0e('0x27')+_0x11d124[_0xfd0e('0xe')]['recordingFormat']||'wav','context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0]['exten'],'priority':_0x11d124[_0xfd0e('0xc')]++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});}}_0x11d124[_0xfd0e('0xd')][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0]['type'],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x28'),'context':_0x43afa1[_0x198a1b][0x0]['context'],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124['priority']++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0]['VoiceExtensionId']});_0x11d124[_0xfd0e('0xd')]['push']({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x29'),'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124[_0xfd0e('0xc')]++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});_0x11d124[_0xfd0e('0xd')]['push']({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x2a'),'context':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x14')],'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'priority':_0x11d124['priority']++,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});for(var _0x430e15=0x0,_0x13d0c5=0x0;_0x430e15<_0x43afa1[_0x198a1b][_0xfd0e('0x2b')];_0x430e15+=0x1,_0x13d0c5=0x0){var _0x4f9ec5=_0x43afa1[_0x198a1b][_0x430e15];if(_0x4f9ec5[_0xfd0e('0x10')]){_0x4f9ec5[_0xfd0e('0x10')]=_0x4f9ec5['type']['toLowerCase']();}var _0x406552=[];var _0x407f94=[];delete _0x4f9ec5['id'];delete _0x4f9ec5['createdAt'];delete _0x4f9ec5[_0xfd0e('0x2c')];var _0x4b4cbd=_0x4f9ec5[_0xfd0e('0x2d')]!==_0xfd0e('0x2e')?[_0x4f9ec5[_0xfd0e('0x2d')]]:_0x4f9ec5[_0xfd0e('0x5')]?_[_0xfd0e('0x2f')](_['filter'](_0x11d124[_0xfd0e('0x2')],{'IntervalId':_0x4f9ec5['IntervalId']}),_0xfd0e('0x2d')):[];if(_0x4f9ec5['hasOwnProperty']('tag')){if(_0x4f9ec5[_0xfd0e('0x30')]&&_0x4f9ec5[_0xfd0e('0x30')]!=='--'){_0x406552['push']({'type':_0x4f9ec5['type'],'app':_0xfd0e('0x11'),'appdata':_0xfd0e('0x31')+_0x4f9ec5['tag'],'context':_0x4f9ec5[_0xfd0e('0x14')],'exten':_0x4f9ec5[_0xfd0e('0x8')],'priority':_0x4b4cbd[_0xfd0e('0x2b')]+_0x11d124[_0xfd0e('0xc')]+_0x13d0c5++,'VoiceExtensionId':_0x4f9ec5[_0xfd0e('0x15')]});}}if(_0x4f9ec5[_0xfd0e('0x10')]===_0xfd0e('0x19')&&_0x4f9ec5[_0xfd0e('0xb')](_0xfd0e('0x32'))){if(_0x4f9ec5[_0xfd0e('0x32')]){_0x406552['push']({'type':_0x4f9ec5[_0xfd0e('0x10')],'app':_0xfd0e('0x1e'),'appdata':_0xfd0e('0x33')+_0x4f9ec5[_0xfd0e('0x32')]+')','context':_0x4f9ec5['context'],'exten':_0x4f9ec5[_0xfd0e('0x8')],'priority':_0x4b4cbd[_0xfd0e('0x2b')]+_0x11d124['priority']+_0x13d0c5++,'VoiceExtensionId':_0x4f9ec5['VoiceExtensionId']});}else{_0x406552[_0xfd0e('0x17')]({'type':_0x4f9ec5[_0xfd0e('0x10')],'app':'ExecIf','appdata':_0xfd0e('0x34'),'context':_0x4f9ec5[_0xfd0e('0x14')],'exten':_0x4f9ec5[_0xfd0e('0x8')],'priority':_0x4b4cbd[_0xfd0e('0x2b')]+_0x11d124[_0xfd0e('0xc')]+_0x13d0c5++,'VoiceExtensionId':_0x4f9ec5['VoiceExtensionId']});}}if(_0x4f9ec5[_0xfd0e('0xb')](_0xfd0e('0x35'))){if(_0x4b5e83[_0xfd0e('0x36')](_0x4f9ec5[_0xfd0e('0x37')]['toLowerCase']())>=0x0&&_0x4f9ec5[_0xfd0e('0x38')]!=='custom'){if(_0x4f9ec5[_0xfd0e('0x35')]){_0x406552['push']({'type':_0x4f9ec5[_0xfd0e('0x10')],'app':'ExecIf','appdata':_0xfd0e('0x39'),'context':_0x4f9ec5[_0xfd0e('0x14')],'exten':_0x4f9ec5[_0xfd0e('0x8')],'priority':_0x4b4cbd['length']+_0x11d124[_0xfd0e('0xc')]+_0x13d0c5++,'VoiceExtensionId':_0x4f9ec5[_0xfd0e('0x15')]});_0x406552[_0xfd0e('0x17')]({'type':_0x4f9ec5[_0xfd0e('0x10')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x4f9ec5['context'],'exten':_0x4f9ec5[_0xfd0e('0x8')],'priority':_0x4b4cbd['length']+_0x11d124['priority']+_0x13d0c5++,'VoiceExtensionId':_0x4f9ec5[_0xfd0e('0x15')]});}else{_0x406552[_0xfd0e('0x17')]({'type':_0x4f9ec5['type'],'app':_0xfd0e('0x1e'),'appdata':_0xfd0e('0x3a'),'context':_0x4f9ec5[_0xfd0e('0x14')],'exten':_0x4f9ec5['exten'],'priority':_0x4b4cbd[_0xfd0e('0x2b')]+_0x11d124['priority']+_0x13d0c5++,'VoiceExtensionId':_0x4f9ec5[_0xfd0e('0x15')]});_0x406552[_0xfd0e('0x17')]({'type':_0x4f9ec5[_0xfd0e('0x10')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x4f9ec5['context'],'exten':_0x4f9ec5[_0xfd0e('0x8')],'priority':_0x4b4cbd[_0xfd0e('0x2b')]+_0x11d124[_0xfd0e('0xc')]+_0x13d0c5++,'VoiceExtensionId':_0x4f9ec5[_0xfd0e('0x15')]});}}}for(var _0x3408d3=0x0;_0x3408d3<_0x4b4cbd[_0xfd0e('0x2b')];_0x3408d3+=0x1){var _0x2673f5=_0x11d124[_0xfd0e('0xc')]+_0x4b4cbd['length'];var _0x49d5f9=_0x3408d3===_0x4b4cbd[_0xfd0e('0x2b')]-0x1?_0x11d124[_0xfd0e('0xc')]+_0x406552[_0xfd0e('0x2b')]+_0x407f94[_0xfd0e('0x2b')]+0x2:_0x11d124[_0xfd0e('0xc')]+_0x3408d3+0x1;_0x406552[_0xfd0e('0x3b')](_0x3408d3,0x0,{'type':_0x4f9ec5[_0xfd0e('0x10')],'app':_0xfd0e('0x3c'),'appdata':_0x4b4cbd[_0x3408d3]+'?'+_0x4f9ec5[_0xfd0e('0x14')]+_0xfd0e('0x3d')+_0x2673f5+':'+_0x4f9ec5[_0xfd0e('0x14')]+_0xfd0e('0x3d')+_0x49d5f9,'exten':_0x4f9ec5[_0xfd0e('0x8')],'context':_0x4f9ec5[_0xfd0e('0x14')],'priority':_0x11d124['priority']+_0x3408d3,'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0]['VoiceExtensionId']});}_0x4f9ec5[_0xfd0e('0xc')]=_0x406552['length']?_['last'](_0x406552)[_0xfd0e('0xc')]+0x1:_0x11d124['priority'];_0x11d124[_0xfd0e('0xc')]=(_0x407f94[_0xfd0e('0x2b')]?_['last'](_0x407f94)[_0xfd0e('0xc')]:_0x4f9ec5['priority'])+0x1;_0x11d124[_0xfd0e('0xd')]=_[_0xfd0e('0x3e')](_0x11d124['extensions'],_0x406552,[_0x4f9ec5],_0x407f94);}_0x11d124[_0xfd0e('0xd')][_0xfd0e('0x17')]({'type':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x10')],'app':_0xfd0e('0x3f'),'exten':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x8')],'context':_0x43afa1[_0x198a1b][0x0]['context'],'priority':_0x11d124[_0xfd0e('0xc')],'VoiceExtensionId':_0x43afa1[_0x198a1b][0x0][_0xfd0e('0x15')]});_0x214120[_0xfd0e('0x17')](_0x43afa1[_0x198a1b][0x0]['VoiceExtensionId']);_0xbd56e2=_['concat'](_0xbd56e2,_0x11d124['extensions']);}}return _0x4a8ffb[_0xfd0e('0x40')](function(_0x4adcb7){return _0x4a8ffb[_0xfd0e('0x1')][_0xfd0e('0x3')][_0xfd0e('0x41')]({'where':{'VoiceExtensionId':{'$in':_0x214120}},'transaction':_0x4adcb7})[_0xfd0e('0x6')](function(_0x458244){return _0x4a8ffb[_0xfd0e('0x1')][_0xfd0e('0x3')][_0xfd0e('0x42')](_[_0xfd0e('0x43')](_0xbd56e2,_0xfd0e('0xc')),{'transaction':_0x4adcb7});});});})[_0xfd0e('0x44')](function(_0x25d694){console[_0xfd0e('0x45')](_0x25d694);});}exports[_0xfd0e('0x46')]=rewrite;