Built motion from commit 994c64e1.|2.6.1
[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 _0x4b5e=['$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','destroy','bulkCreate','catch','rewrite','lodash','util','models','Interval','findAll','then','intervals','IntervalId','VoiceExtension','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','exten','queue','hasOwnProperty','priority','extensions','extension','find','push','type','format','CDR(type)=%s','context','inbound','CDR(routeid)=','VoiceExtensionId','outbound','cutdigits','${EXTEN:','${EXTEN}','Set','ExecIf','CDR(prefix)=${EXTEN:0:','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x4b5e,0x118));var _0xe4b5=function(_0x1da6d5,_0x1e7015){_0x1da6d5=_0x1da6d5-0x0;var _0x200cca=_0x4b5e[_0x1da6d5];return _0x200cca;};'use strict';var _=require(_0xe4b5('0x0'));var util=require(_0xe4b5('0x1'));function rewrite(_0xbb89d7,_0x3893a9){var _0x41d0f1=this;return _0xbb89d7[_0xe4b5('0x2')][_0xe4b5('0x3')][_0xe4b5('0x4')]({'raw':!![]})[_0xe4b5('0x5')](function(_0x556574){_0x41d0f1[_0xe4b5('0x6')]=_0x556574;return _0xbb89d7[_0xe4b5('0x2')]['VoiceExtension']['findAll']({'where':{'IntervalId':_0x3893a9[_0xe4b5('0x7')]},'raw':!![]});})[_0xe4b5('0x5')](function(_0x4c96c2){return _0xbb89d7[_0xe4b5('0x2')][_0xe4b5('0x8')][_0xe4b5('0x4')]({'where':{'exten':{'$in':_[_0xe4b5('0x9')](_[_0xe4b5('0xa')](_0x4c96c2,'exten'))}},'order':[{'raw':_0xe4b5('0xb')}],'raw':!![]});})[_0xe4b5('0x5')](function(_0x9c0abe){var _0x472eb3=_['filter'](_0x9c0abe,{'priority':'1'});var _0x5068a1=_[_0xe4b5('0xc')](_0x9c0abe,{'isApp':0x1});var _0x161cc8=_['groupBy'](_0x5068a1,_0xe4b5('0xd'));var _0x5e45ca=[_0xe4b5('0xe'),'playback'];var _0x47e040=[];var _0x5c088e=[];for(var _0x34d331 in _0x161cc8){if(_0x161cc8[_0xe4b5('0xf')](_0x34d331)){_0x41d0f1[_0xe4b5('0x10')]=0x2;_0x41d0f1[_0xe4b5('0x11')]=[];_0x41d0f1[_0xe4b5('0x12')]=_[_0xe4b5('0x13')](_0x472eb3,{'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')]});_0x41d0f1[_0xe4b5('0x11')][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':'Set','appdata':util[_0xe4b5('0x16')](_0xe4b5('0x17'),_0x161cc8[_0x34d331][0x0]['type']),'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0]['VoiceExtensionId']});if(_0x161cc8[_0x34d331][0x0]['type']===_0xe4b5('0x19')){_0x41d0f1[_0xe4b5('0x11')]['push']({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':'Set','appdata':_0xe4b5('0x1a')+_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')],'context':_0x161cc8[_0x34d331][0x0]['context'],'exten':_0x161cc8[_0x34d331][0x0]['exten'],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});}else if(_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')]===_0xe4b5('0x1c')){if(_0x41d0f1[_0xe4b5('0x12')]){_0x41d0f1[_0xe4b5('0x11')][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':'Set','appdata':'CDR(destination)='+(_0x41d0f1[_0xe4b5('0x12')][_0xe4b5('0x1d')]?_0xe4b5('0x1e')+_0x41d0f1[_0xe4b5('0x12')][_0xe4b5('0x1d')]+'}':_0xe4b5('0x1f')),'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0]['exten'],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0]['VoiceExtensionId']});}_0x41d0f1[_0xe4b5('0x11')][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':_0xe4b5('0x20'),'appdata':_0xe4b5('0x1a')+_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')],'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});var _0x271c15=_0x41d0f1[_0xe4b5('0x10')]++;_0x41d0f1[_0xe4b5('0x11')]['push']({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':_0xe4b5('0x21'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x271c15+0x2)+'):Goto('+(_0x271c15+0x1)+')','context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x271c15,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});if(_0x41d0f1['extension']){_0x41d0f1[_0xe4b5('0x11')][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':_0xe4b5('0x20'),'appdata':_0x41d0f1[_0xe4b5('0x12')][_0xe4b5('0x1d')]?_0xe4b5('0x22')+_0x41d0f1[_0xe4b5('0x12')][_0xe4b5('0x1d')]+'}':'CDR(prefix)=noprefix','context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});}_0x41d0f1['extensions'][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':'Set','appdata':'outboundrouteid='+_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')],'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});if(_0x41d0f1[_0xe4b5('0x12')]&&_0x41d0f1[_0xe4b5('0x12')][_0xe4b5('0xf')]('recordingFormat')&&_0x41d0f1[_0xe4b5('0x12')][_0xe4b5('0x23')]!=='none'){_0x41d0f1[_0xe4b5('0x11')]['push']({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':'Set','appdata':_0xe4b5('0x24'),'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});_0x41d0f1['extensions'][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0]['type'],'app':_0xe4b5('0x20'),'appdata':_0xe4b5('0x25')+_0x41d0f1[_0xe4b5('0x12')][_0xe4b5('0x23')]||_0xe4b5('0x26'),'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});}}_0x41d0f1[_0xe4b5('0x11')]['push']({'type':_0x161cc8[_0x34d331][0x0]['type'],'app':'Set','appdata':_0xe4b5('0x27'),'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1['priority']++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});_0x41d0f1[_0xe4b5('0x11')][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':_0xe4b5('0x20'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0]['VoiceExtensionId']});_0x41d0f1[_0xe4b5('0x11')][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':_0xe4b5('0x20'),'appdata':_0xe4b5('0x28'),'context':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x18')],'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'priority':_0x41d0f1[_0xe4b5('0x10')]++,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});for(var _0x203c9f=0x0,_0x150471=0x0;_0x203c9f<_0x161cc8[_0x34d331][_0xe4b5('0x29')];_0x203c9f+=0x1,_0x150471=0x0){var _0x33d4c9=_0x161cc8[_0x34d331][_0x203c9f];if(_0x33d4c9[_0xe4b5('0x15')]){_0x33d4c9[_0xe4b5('0x15')]=_0x33d4c9[_0xe4b5('0x15')][_0xe4b5('0x2a')]();}var _0x58b358=[];var _0x3bdb5a=[];delete _0x33d4c9['id'];delete _0x33d4c9[_0xe4b5('0x2b')];delete _0x33d4c9[_0xe4b5('0x2c')];var _0x13c630=_0x33d4c9[_0xe4b5('0x2d')]!=='*,*,*,*'?[_0x33d4c9[_0xe4b5('0x2d')]]:_0x33d4c9[_0xe4b5('0x7')]?_[_0xe4b5('0xa')](_[_0xe4b5('0xc')](_0x41d0f1['intervals'],{'IntervalId':_0x33d4c9[_0xe4b5('0x7')]}),'interval'):[];if(_0x33d4c9[_0xe4b5('0xf')]('tag')){if(_0x33d4c9['tag']&&_0x33d4c9[_0xe4b5('0x2e')]!=='--'){_0x58b358[_0xe4b5('0x14')]({'type':_0x33d4c9[_0xe4b5('0x15')],'app':'Set','appdata':_0xe4b5('0x2f')+_0x33d4c9[_0xe4b5('0x2e')],'context':_0x33d4c9[_0xe4b5('0x18')],'exten':_0x33d4c9['exten'],'priority':_0x13c630['length']+_0x41d0f1['priority']+_0x150471++,'VoiceExtensionId':_0x33d4c9[_0xe4b5('0x1b')]});}}if(_0x33d4c9[_0xe4b5('0x15')]===_0xe4b5('0x1c')&&_0x33d4c9[_0xe4b5('0xf')](_0xe4b5('0x30'))){if(_0x33d4c9['callerID']){_0x58b358['push']({'type':_0x33d4c9[_0xe4b5('0x15')],'app':_0xe4b5('0x21'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x33d4c9[_0xe4b5('0x30')]+')','context':_0x33d4c9[_0xe4b5('0x18')],'exten':_0x33d4c9[_0xe4b5('0xd')],'priority':_0x13c630[_0xe4b5('0x29')]+_0x41d0f1['priority']+_0x150471++,'VoiceExtensionId':_0x33d4c9[_0xe4b5('0x1b')]});}else{_0x58b358[_0xe4b5('0x14')]({'type':_0x33d4c9[_0xe4b5('0x15')],'app':_0xe4b5('0x21'),'appdata':_0xe4b5('0x31'),'context':_0x33d4c9[_0xe4b5('0x18')],'exten':_0x33d4c9[_0xe4b5('0xd')],'priority':_0x13c630['length']+_0x41d0f1['priority']+_0x150471++,'VoiceExtensionId':_0x33d4c9[_0xe4b5('0x1b')]});}}if(_0x33d4c9[_0xe4b5('0xf')](_0xe4b5('0x32'))){if(_0x5e45ca['indexOf'](_0x33d4c9['app'][_0xe4b5('0x2a')]())>=0x0&&_0x33d4c9[_0xe4b5('0x33')]!==_0xe4b5('0x34')){if(_0x33d4c9[_0xe4b5('0x32')]){_0x58b358[_0xe4b5('0x14')]({'type':_0x33d4c9[_0xe4b5('0x15')],'app':'ExecIf','appdata':_0xe4b5('0x35'),'context':_0x33d4c9[_0xe4b5('0x18')],'exten':_0x33d4c9['exten'],'priority':_0x13c630[_0xe4b5('0x29')]+_0x41d0f1[_0xe4b5('0x10')]+_0x150471++,'VoiceExtensionId':_0x33d4c9[_0xe4b5('0x1b')]});_0x58b358[_0xe4b5('0x14')]({'type':_0x33d4c9[_0xe4b5('0x15')],'app':_0xe4b5('0x20'),'appdata':_0xe4b5('0x36'),'context':_0x33d4c9[_0xe4b5('0x18')],'exten':_0x33d4c9['exten'],'priority':_0x13c630['length']+_0x41d0f1[_0xe4b5('0x10')]+_0x150471++,'VoiceExtensionId':_0x33d4c9[_0xe4b5('0x1b')]});}else{_0x58b358[_0xe4b5('0x14')]({'type':_0x33d4c9[_0xe4b5('0x15')],'app':'ExecIf','appdata':_0xe4b5('0x37'),'context':_0x33d4c9['context'],'exten':_0x33d4c9[_0xe4b5('0xd')],'priority':_0x13c630[_0xe4b5('0x29')]+_0x41d0f1['priority']+_0x150471++,'VoiceExtensionId':_0x33d4c9[_0xe4b5('0x1b')]});_0x58b358['push']({'type':_0x33d4c9[_0xe4b5('0x15')],'app':_0xe4b5('0x20'),'appdata':_0xe4b5('0x38'),'context':_0x33d4c9[_0xe4b5('0x18')],'exten':_0x33d4c9['exten'],'priority':_0x13c630[_0xe4b5('0x29')]+_0x41d0f1[_0xe4b5('0x10')]+_0x150471++,'VoiceExtensionId':_0x33d4c9['VoiceExtensionId']});}}}for(var _0x2b5500=0x0;_0x2b5500<_0x13c630[_0xe4b5('0x29')];_0x2b5500+=0x1){var _0x4c6896=_0x41d0f1[_0xe4b5('0x10')]+_0x13c630['length'];var _0x2fc140=_0x2b5500===_0x13c630['length']-0x1?_0x41d0f1[_0xe4b5('0x10')]+_0x58b358[_0xe4b5('0x29')]+_0x3bdb5a['length']+0x2:_0x41d0f1['priority']+_0x2b5500+0x1;_0x58b358[_0xe4b5('0x39')](_0x2b5500,0x0,{'type':_0x33d4c9[_0xe4b5('0x15')],'app':_0xe4b5('0x3a'),'appdata':_0x13c630[_0x2b5500]+'?'+_0x33d4c9['context']+_0xe4b5('0x3b')+_0x4c6896+':'+_0x33d4c9[_0xe4b5('0x18')]+',${EXTEN},'+_0x2fc140,'exten':_0x33d4c9[_0xe4b5('0xd')],'context':_0x33d4c9[_0xe4b5('0x18')],'priority':_0x41d0f1[_0xe4b5('0x10')]+_0x2b5500,'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});}_0x33d4c9['priority']=_0x58b358['length']?_[_0xe4b5('0x3c')](_0x58b358)[_0xe4b5('0x10')]+0x1:_0x41d0f1[_0xe4b5('0x10')];_0x41d0f1['priority']=(_0x3bdb5a[_0xe4b5('0x29')]?_[_0xe4b5('0x3c')](_0x3bdb5a)[_0xe4b5('0x10')]:_0x33d4c9[_0xe4b5('0x10')])+0x1;_0x41d0f1[_0xe4b5('0x11')]=_[_0xe4b5('0x3d')](_0x41d0f1[_0xe4b5('0x11')],_0x58b358,[_0x33d4c9],_0x3bdb5a);}_0x41d0f1[_0xe4b5('0x11')][_0xe4b5('0x14')]({'type':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x15')],'app':_0xe4b5('0x3e'),'exten':_0x161cc8[_0x34d331][0x0][_0xe4b5('0xd')],'context':_0x161cc8[_0x34d331][0x0]['context'],'priority':_0x41d0f1[_0xe4b5('0x10')],'VoiceExtensionId':_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]});_0x47e040[_0xe4b5('0x14')](_0x161cc8[_0x34d331][0x0][_0xe4b5('0x1b')]);_0x5c088e=_[_0xe4b5('0x3d')](_0x5c088e,_0x41d0f1[_0xe4b5('0x11')]);}}return _0xbb89d7['transaction'](function(_0x237e37){return _0xbb89d7['models'][_0xe4b5('0x8')][_0xe4b5('0x3f')]({'where':{'VoiceExtensionId':{'$in':_0x47e040}},'transaction':_0x237e37})[_0xe4b5('0x5')](function(_0x3d2a55){return _0xbb89d7[_0xe4b5('0x2')][_0xe4b5('0x8')][_0xe4b5('0x40')](_['sortBy'](_0x5c088e,_0xe4b5('0x10')),{'transaction':_0x237e37});});});})[_0xe4b5('0x41')](function(_0xfca5d4){console['error'](_0xfca5d4);});}exports[_0xe4b5('0x42')]=rewrite;