28a54e434cf660f9016b1b9833b0e4e522f77109
[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 _0x3e9e=['CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','filter','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','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','bulkCreate','sortBy','catch','error','rewrite','util','models','findAll','intervals','IntervalId','VoiceExtension','uniq','map','then','groupBy','exten','playback','hasOwnProperty','priority','extension','find','extensions','push','type','Set','CDR(type)=%s','VoiceExtensionId','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','context'];(function(_0x138ecd,_0x19ee86){var _0x2d2331=function(_0x76be6c){while(--_0x76be6c){_0x138ecd['push'](_0x138ecd['shift']());}};_0x2d2331(++_0x19ee86);}(_0x3e9e,0x13d));var _0xe3e9=function(_0x2fcc0b,_0x4adca3){_0x2fcc0b=_0x2fcc0b-0x0;var _0x395e80=_0x3e9e[_0x2fcc0b];return _0x395e80;};'use strict';var _=require('lodash');var util=require(_0xe3e9('0x0'));function rewrite(_0x5f18b7,_0xca8454){var _0x57b28b=this;return _0x5f18b7[_0xe3e9('0x1')]['Interval'][_0xe3e9('0x2')]({'raw':!![]})['then'](function(_0x22b4b4){_0x57b28b[_0xe3e9('0x3')]=_0x22b4b4;return _0x5f18b7['models']['VoiceExtension']['findAll']({'where':{'IntervalId':_0xca8454[_0xe3e9('0x4')]},'raw':!![]});})['then'](function(_0x55cb83){return _0x5f18b7[_0xe3e9('0x1')][_0xe3e9('0x5')][_0xe3e9('0x2')]({'where':{'exten':{'$in':_[_0xe3e9('0x6')](_[_0xe3e9('0x7')](_0x55cb83,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0xe3e9('0x8')](function(_0x5506cb){var _0xe5665f=_['filter'](_0x5506cb,{'priority':'1'});var _0x26075d=_['filter'](_0x5506cb,{'isApp':0x1});var _0x3a88a0=_[_0xe3e9('0x9')](_0x26075d,_0xe3e9('0xa'));var _0x2f0a87=['queue',_0xe3e9('0xb')];var _0x71a031=[];var _0x5107d9=[];for(var _0x480753 in _0x3a88a0){if(_0x3a88a0[_0xe3e9('0xc')](_0x480753)){_0x57b28b[_0xe3e9('0xd')]=0x2;_0x57b28b['extensions']=[];_0x57b28b[_0xe3e9('0xe')]=_[_0xe3e9('0xf')](_0xe5665f,{'exten':_0x3a88a0[_0x480753][0x0]['exten']});_0x57b28b[_0xe3e9('0x10')][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x13'),'appdata':util['format'](_0xe3e9('0x14'),_0x3a88a0[_0x480753][0x0]['type']),'context':_0x3a88a0[_0x480753][0x0]['context'],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b[_0xe3e9('0xd')]++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});if(_0x3a88a0[_0x480753][0x0]['type']===_0xe3e9('0x16')){if(_0x57b28b[_0xe3e9('0xe')]){_0x57b28b[_0xe3e9('0x10')]['push']({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':'Set','appdata':_0xe3e9('0x17')+(_0x57b28b['extension'][_0xe3e9('0x18')]?_0xe3e9('0x19')+_0x57b28b[_0xe3e9('0xe')][_0xe3e9('0x18')]+'}':_0xe3e9('0x1a')),'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b['priority']++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});}_0x57b28b[_0xe3e9('0x10')][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x13'),'appdata':_0xe3e9('0x1c')+_0x3a88a0[_0x480753][0x0]['VoiceExtensionId'],'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b[_0xe3e9('0xd')]++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});var _0x400844=_0x57b28b[_0xe3e9('0xd')]++;_0x57b28b[_0xe3e9('0x10')][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x1d'),'appdata':_0xe3e9('0x1e')+(_0x400844+0x2)+'):Goto('+(_0x400844+0x1)+')','context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x400844,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});if(_0x57b28b['extension']){_0x57b28b['extensions'][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x13'),'appdata':_0x57b28b['extension'][_0xe3e9('0x18')]?_0xe3e9('0x1f')+_0x57b28b['extension'][_0xe3e9('0x18')]+'}':_0xe3e9('0x20'),'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b[_0xe3e9('0xd')]++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});}_0x57b28b[_0xe3e9('0x10')][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0]['type'],'app':_0xe3e9('0x13'),'appdata':'outboundrouteid='+_0x3a88a0[_0x480753][0x0]['VoiceExtensionId'],'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b['priority']++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});if(_0x57b28b[_0xe3e9('0xe')]&&_0x57b28b[_0xe3e9('0xe')][_0xe3e9('0xc')](_0xe3e9('0x21'))&&_0x57b28b[_0xe3e9('0xe')][_0xe3e9('0x21')]!==_0xe3e9('0x22')){_0x57b28b['extensions'][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x13'),'appdata':_0xe3e9('0x23'),'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b[_0xe3e9('0xd')]++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});_0x57b28b['extensions'][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':'Set','appdata':_0xe3e9('0x24')+_0x57b28b[_0xe3e9('0xe')][_0xe3e9('0x21')]||'wav','context':_0x3a88a0[_0x480753][0x0]['context'],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b[_0xe3e9('0xd')]++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0]['VoiceExtensionId']});}}_0x57b28b[_0xe3e9('0x10')][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x13'),'appdata':_0xe3e9('0x25'),'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0]['exten'],'priority':_0x57b28b[_0xe3e9('0xd')]++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});_0x57b28b[_0xe3e9('0x10')]['push']({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x13'),'appdata':_0xe3e9('0x26'),'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'priority':_0x57b28b['priority']++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});_0x57b28b[_0xe3e9('0x10')][_0xe3e9('0x11')]({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x13'),'appdata':_0xe3e9('0x27'),'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'exten':_0x3a88a0[_0x480753][0x0]['exten'],'priority':_0x57b28b['priority']++,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});for(var _0x1a466d=0x0,_0x30d9fb=0x0;_0x1a466d<_0x3a88a0[_0x480753][_0xe3e9('0x28')];_0x1a466d+=0x1,_0x30d9fb=0x0){var _0x281701=_0x3a88a0[_0x480753][_0x1a466d];if(_0x281701[_0xe3e9('0x12')]){_0x281701[_0xe3e9('0x12')]=_0x281701['type'][_0xe3e9('0x29')]();}var _0x3bcf17=[];var _0x4514b8=[];delete _0x281701['id'];delete _0x281701[_0xe3e9('0x2a')];delete _0x281701[_0xe3e9('0x2b')];var _0x342a26=_0x281701[_0xe3e9('0x2c')]!=='*,*,*,*'?[_0x281701[_0xe3e9('0x2c')]]:_0x281701[_0xe3e9('0x4')]?_['map'](_[_0xe3e9('0x2d')](_0x57b28b[_0xe3e9('0x3')],{'IntervalId':_0x281701['IntervalId']}),'interval'):[];if(_0x281701[_0xe3e9('0xc')](_0xe3e9('0x2e'))){if(_0x281701['tag']&&_0x281701[_0xe3e9('0x2e')]!=='--'){_0x3bcf17[_0xe3e9('0x11')]({'type':_0x281701['type'],'app':'Set','appdata':_0xe3e9('0x2f')+_0x281701[_0xe3e9('0x2e')],'context':_0x281701[_0xe3e9('0x1b')],'exten':_0x281701['exten'],'priority':_0x342a26[_0xe3e9('0x28')]+_0x57b28b[_0xe3e9('0xd')]+_0x30d9fb++,'VoiceExtensionId':_0x281701['VoiceExtensionId']});}}if(_0x281701[_0xe3e9('0x12')]===_0xe3e9('0x16')&&_0x281701[_0xe3e9('0xc')]('callerID')){if(_0x281701[_0xe3e9('0x30')]){_0x3bcf17[_0xe3e9('0x11')]({'type':_0x281701[_0xe3e9('0x12')],'app':_0xe3e9('0x1d'),'appdata':_0xe3e9('0x31')+_0x281701[_0xe3e9('0x30')]+')','context':_0x281701[_0xe3e9('0x1b')],'exten':_0x281701[_0xe3e9('0xa')],'priority':_0x342a26[_0xe3e9('0x28')]+_0x57b28b[_0xe3e9('0xd')]+_0x30d9fb++,'VoiceExtensionId':_0x281701[_0xe3e9('0x15')]});}else{_0x3bcf17[_0xe3e9('0x11')]({'type':_0x281701[_0xe3e9('0x12')],'app':_0xe3e9('0x1d'),'appdata':_0xe3e9('0x32'),'context':_0x281701[_0xe3e9('0x1b')],'exten':_0x281701['exten'],'priority':_0x342a26[_0xe3e9('0x28')]+_0x57b28b['priority']+_0x30d9fb++,'VoiceExtensionId':_0x281701[_0xe3e9('0x15')]});}}if(_0x281701[_0xe3e9('0xc')](_0xe3e9('0x33'))){if(_0x2f0a87[_0xe3e9('0x34')](_0x281701['app'][_0xe3e9('0x29')]())>=0x0&&_0x281701['appType']!==_0xe3e9('0x35')){if(_0x281701[_0xe3e9('0x33')]){_0x3bcf17[_0xe3e9('0x11')]({'type':_0x281701[_0xe3e9('0x12')],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x281701['context'],'exten':_0x281701[_0xe3e9('0xa')],'priority':_0x342a26['length']+_0x57b28b[_0xe3e9('0xd')]+_0x30d9fb++,'VoiceExtensionId':_0x281701[_0xe3e9('0x15')]});_0x3bcf17['push']({'type':_0x281701[_0xe3e9('0x12')],'app':'Set','appdata':_0xe3e9('0x36'),'context':_0x281701[_0xe3e9('0x1b')],'exten':_0x281701[_0xe3e9('0xa')],'priority':_0x342a26['length']+_0x57b28b['priority']+_0x30d9fb++,'VoiceExtensionId':_0x281701[_0xe3e9('0x15')]});}else{_0x3bcf17[_0xe3e9('0x11')]({'type':_0x281701[_0xe3e9('0x12')],'app':'ExecIf','appdata':_0xe3e9('0x37'),'context':_0x281701[_0xe3e9('0x1b')],'exten':_0x281701['exten'],'priority':_0x342a26[_0xe3e9('0x28')]+_0x57b28b['priority']+_0x30d9fb++,'VoiceExtensionId':_0x281701['VoiceExtensionId']});_0x3bcf17[_0xe3e9('0x11')]({'type':_0x281701['type'],'app':_0xe3e9('0x13'),'appdata':_0xe3e9('0x38'),'context':_0x281701[_0xe3e9('0x1b')],'exten':_0x281701[_0xe3e9('0xa')],'priority':_0x342a26[_0xe3e9('0x28')]+_0x57b28b['priority']+_0x30d9fb++,'VoiceExtensionId':_0x281701[_0xe3e9('0x15')]});}}}for(var _0x47b895=0x0;_0x47b895<_0x342a26[_0xe3e9('0x28')];_0x47b895+=0x1){var _0x29e844=_0x57b28b['priority']+_0x342a26[_0xe3e9('0x28')];var _0x2e69b3=_0x47b895===_0x342a26[_0xe3e9('0x28')]-0x1?_0x57b28b['priority']+_0x3bcf17['length']+_0x4514b8[_0xe3e9('0x28')]+0x2:_0x57b28b[_0xe3e9('0xd')]+_0x47b895+0x1;_0x3bcf17[_0xe3e9('0x39')](_0x47b895,0x0,{'type':_0x281701[_0xe3e9('0x12')],'app':_0xe3e9('0x3a'),'appdata':_0x342a26[_0x47b895]+'?'+_0x281701[_0xe3e9('0x1b')]+',${EXTEN},'+_0x29e844+':'+_0x281701[_0xe3e9('0x1b')]+_0xe3e9('0x3b')+_0x2e69b3,'exten':_0x281701[_0xe3e9('0xa')],'context':_0x281701[_0xe3e9('0x1b')],'priority':_0x57b28b[_0xe3e9('0xd')]+_0x47b895,'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});}_0x281701[_0xe3e9('0xd')]=_0x3bcf17['length']?_[_0xe3e9('0x3c')](_0x3bcf17)['priority']+0x1:_0x57b28b[_0xe3e9('0xd')];_0x57b28b[_0xe3e9('0xd')]=(_0x4514b8[_0xe3e9('0x28')]?_['last'](_0x4514b8)['priority']:_0x281701[_0xe3e9('0xd')])+0x1;_0x57b28b[_0xe3e9('0x10')]=_[_0xe3e9('0x3d')](_0x57b28b[_0xe3e9('0x10')],_0x3bcf17,[_0x281701],_0x4514b8);}_0x57b28b[_0xe3e9('0x10')]['push']({'type':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x12')],'app':_0xe3e9('0x3e'),'exten':_0x3a88a0[_0x480753][0x0][_0xe3e9('0xa')],'context':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x1b')],'priority':_0x57b28b['priority'],'VoiceExtensionId':_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]});_0x71a031['push'](_0x3a88a0[_0x480753][0x0][_0xe3e9('0x15')]);_0x5107d9=_[_0xe3e9('0x3d')](_0x5107d9,_0x57b28b['extensions']);}}return _0x5f18b7[_0xe3e9('0x3f')](function(_0x528a1e){return _0x5f18b7[_0xe3e9('0x1')]['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x71a031}},'transaction':_0x528a1e})[_0xe3e9('0x8')](function(_0x7851d9){return _0x5f18b7[_0xe3e9('0x1')][_0xe3e9('0x5')][_0xe3e9('0x40')](_[_0xe3e9('0x41')](_0x5107d9,_0xe3e9('0xd')),{'transaction':_0x528a1e});});});})[_0xe3e9('0x42')](function(_0x59658c){console[_0xe3e9('0x43')](_0x59658c);});}exports[_0xe3e9('0x44')]=rewrite;