3252e17b812a8303f6337e5d0135ed3e9c77a409
[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 _0xc336=['format','context','VoiceExtensionId','outbound','push','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','Set','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','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)','indexOf','app','appType','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','Hangup','transaction','bulkCreate','sortBy','catch','error','rewrite','lodash','util','findAll','then','intervals','models','IntervalId','VoiceExtension','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','exten','queue','hasOwnProperty','priority','extensions','extension','find','type'];(function(_0x4dd479,_0x26d87a){var _0x1b6807=function(_0x2bec19){while(--_0x2bec19){_0x4dd479['push'](_0x4dd479['shift']());}};_0x1b6807(++_0x26d87a);}(_0xc336,0x1d6));var _0x6c33=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0xc336[_0x5c351c];return _0x26f3b3;};'use strict';var _=require(_0x6c33('0x0'));var util=require(_0x6c33('0x1'));function rewrite(_0x5b1ce4,_0x560ea6){var _0x932882=this;return _0x5b1ce4['models']['Interval'][_0x6c33('0x2')]({'raw':!![]})[_0x6c33('0x3')](function(_0x4bed8b){_0x932882[_0x6c33('0x4')]=_0x4bed8b;return _0x5b1ce4[_0x6c33('0x5')]['VoiceExtension']['findAll']({'where':{'IntervalId':_0x560ea6[_0x6c33('0x6')]},'raw':!![]});})[_0x6c33('0x3')](function(_0x5c5fdb){return _0x5b1ce4[_0x6c33('0x5')][_0x6c33('0x7')][_0x6c33('0x2')]({'where':{'exten':{'$in':_[_0x6c33('0x8')](_[_0x6c33('0x9')](_0x5c5fdb,'exten'))}},'order':[{'raw':_0x6c33('0xa')}],'raw':!![]});})['then'](function(_0xf4039b){var _0x31e6a6=_['filter'](_0xf4039b,{'priority':'1'});var _0x5b74e6=_[_0x6c33('0xb')](_0xf4039b,{'isApp':0x1});var _0x48e336=_['groupBy'](_0x5b74e6,_0x6c33('0xc'));var _0x4bff40=[_0x6c33('0xd'),'playback'];var _0x498de6=[];var _0xcb31d1=[];for(var _0x3e887d in _0x48e336){if(_0x48e336[_0x6c33('0xe')](_0x3e887d)){_0x932882[_0x6c33('0xf')]=0x2;_0x932882[_0x6c33('0x10')]=[];_0x932882[_0x6c33('0x11')]=_[_0x6c33('0x12')](_0x31e6a6,{'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')]});_0x932882[_0x6c33('0x10')]['push']({'type':_0x48e336[_0x3e887d][0x0][_0x6c33('0x13')],'app':'Set','appdata':util[_0x6c33('0x14')]('CDR(type)=%s',_0x48e336[_0x3e887d][0x0][_0x6c33('0x13')]),'context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'exten':_0x48e336[_0x3e887d][0x0]['exten'],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});if(_0x48e336[_0x3e887d][0x0][_0x6c33('0x13')]===_0x6c33('0x17')){if(_0x932882[_0x6c33('0x11')]){_0x932882['extensions'][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0][_0x6c33('0x13')],'app':'Set','appdata':_0x6c33('0x19')+(_0x932882[_0x6c33('0x11')][_0x6c33('0x1a')]?_0x6c33('0x1b')+_0x932882[_0x6c33('0x11')]['cutdigits']+'}':_0x6c33('0x1c')),'context':_0x48e336[_0x3e887d][0x0]['context'],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0]['VoiceExtensionId']});}_0x932882[_0x6c33('0x10')][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':'Set','appdata':'CDR(routeid)='+_0x48e336[_0x3e887d][0x0]['VoiceExtensionId'],'context':_0x48e336[_0x3e887d][0x0]['context'],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});var _0x2a5afb=_0x932882['priority']++;_0x932882['extensions'][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':_0x6c33('0x1d'),'appdata':_0x6c33('0x1e')+(_0x2a5afb+0x2)+'):Goto('+(_0x2a5afb+0x1)+')','context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x2a5afb,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});if(_0x932882[_0x6c33('0x11')]){_0x932882[_0x6c33('0x10')][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0][_0x6c33('0x13')],'app':_0x6c33('0x1f'),'appdata':_0x932882[_0x6c33('0x11')][_0x6c33('0x1a')]?'CDR(prefix)=${EXTEN:0:'+_0x932882[_0x6c33('0x11')][_0x6c33('0x1a')]+'}':_0x6c33('0x20'),'context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x932882['priority']++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0]['VoiceExtensionId']});}_0x932882[_0x6c33('0x10')][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':'Set','appdata':_0x6c33('0x21')+_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')],'context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});if(_0x932882[_0x6c33('0x11')]&&_0x932882[_0x6c33('0x11')]['hasOwnProperty'](_0x6c33('0x22'))&&_0x932882[_0x6c33('0x11')][_0x6c33('0x22')]!==_0x6c33('0x23')){_0x932882[_0x6c33('0x10')][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':_0x6c33('0x1f'),'appdata':_0x6c33('0x24'),'context':_0x48e336[_0x3e887d][0x0]['context'],'exten':_0x48e336[_0x3e887d][0x0]['exten'],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});_0x932882[_0x6c33('0x10')][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':_0x6c33('0x1f'),'appdata':_0x6c33('0x25')+_0x932882['extension'][_0x6c33('0x22')]||_0x6c33('0x26'),'context':_0x48e336[_0x3e887d][0x0]['context'],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0]['VoiceExtensionId']});}}_0x932882[_0x6c33('0x10')]['push']({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':_0x6c33('0x1f'),'appdata':_0x6c33('0x27'),'context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'exten':_0x48e336[_0x3e887d][0x0]['exten'],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});_0x932882[_0x6c33('0x10')]['push']({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':_0x6c33('0x1f'),'appdata':_0x6c33('0x28'),'context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x932882[_0x6c33('0xf')]++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});_0x932882['extensions'][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0]['type'],'app':_0x6c33('0x1f'),'appdata':_0x6c33('0x29'),'context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'priority':_0x932882['priority']++,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});for(var _0x85c24e=0x0,_0x5ee8ae=0x0;_0x85c24e<_0x48e336[_0x3e887d][_0x6c33('0x2a')];_0x85c24e+=0x1,_0x5ee8ae=0x0){var _0x3a97bb=_0x48e336[_0x3e887d][_0x85c24e];if(_0x3a97bb['type']){_0x3a97bb[_0x6c33('0x13')]=_0x3a97bb[_0x6c33('0x13')][_0x6c33('0x2b')]();}var _0x3bc2cb=[];var _0x5a86c5=[];delete _0x3a97bb['id'];delete _0x3a97bb[_0x6c33('0x2c')];delete _0x3a97bb[_0x6c33('0x2d')];var _0x22f168=_0x3a97bb[_0x6c33('0x2e')]!==_0x6c33('0x2f')?[_0x3a97bb[_0x6c33('0x2e')]]:_0x3a97bb[_0x6c33('0x6')]?_[_0x6c33('0x9')](_[_0x6c33('0xb')](_0x932882['intervals'],{'IntervalId':_0x3a97bb[_0x6c33('0x6')]}),_0x6c33('0x2e')):[];if(_0x3a97bb[_0x6c33('0xe')](_0x6c33('0x30'))){if(_0x3a97bb['tag']&&_0x3a97bb[_0x6c33('0x30')]!=='--'){_0x3bc2cb[_0x6c33('0x18')]({'type':_0x3a97bb[_0x6c33('0x13')],'app':_0x6c33('0x1f'),'appdata':'CDR(tag)='+_0x3a97bb['tag'],'context':_0x3a97bb[_0x6c33('0x15')],'exten':_0x3a97bb['exten'],'priority':_0x22f168[_0x6c33('0x2a')]+_0x932882['priority']+_0x5ee8ae++,'VoiceExtensionId':_0x3a97bb[_0x6c33('0x16')]});}}if(_0x3a97bb[_0x6c33('0x13')]==='outbound'&&_0x3a97bb[_0x6c33('0xe')](_0x6c33('0x31'))){if(_0x3a97bb[_0x6c33('0x31')]){_0x3bc2cb['push']({'type':_0x3a97bb[_0x6c33('0x13')],'app':_0x6c33('0x1d'),'appdata':_0x6c33('0x32')+_0x3a97bb['callerID']+')','context':_0x3a97bb[_0x6c33('0x15')],'exten':_0x3a97bb['exten'],'priority':_0x22f168['length']+_0x932882[_0x6c33('0xf')]+_0x5ee8ae++,'VoiceExtensionId':_0x3a97bb[_0x6c33('0x16')]});}else{_0x3bc2cb[_0x6c33('0x18')]({'type':_0x3a97bb[_0x6c33('0x13')],'app':_0x6c33('0x1d'),'appdata':_0x6c33('0x33'),'context':_0x3a97bb[_0x6c33('0x15')],'exten':_0x3a97bb[_0x6c33('0xc')],'priority':_0x22f168[_0x6c33('0x2a')]+_0x932882[_0x6c33('0xf')]+_0x5ee8ae++,'VoiceExtensionId':_0x3a97bb[_0x6c33('0x16')]});}}if(_0x3a97bb[_0x6c33('0xe')]('answer')){if(_0x4bff40[_0x6c33('0x34')](_0x3a97bb[_0x6c33('0x35')][_0x6c33('0x2b')]())>=0x0&&_0x3a97bb[_0x6c33('0x36')]!=='custom'){if(_0x3a97bb['answer']){_0x3bc2cb[_0x6c33('0x18')]({'type':_0x3a97bb[_0x6c33('0x13')],'app':_0x6c33('0x1d'),'appdata':_0x6c33('0x37'),'context':_0x3a97bb[_0x6c33('0x15')],'exten':_0x3a97bb[_0x6c33('0xc')],'priority':_0x22f168[_0x6c33('0x2a')]+_0x932882[_0x6c33('0xf')]+_0x5ee8ae++,'VoiceExtensionId':_0x3a97bb[_0x6c33('0x16')]});_0x3bc2cb[_0x6c33('0x18')]({'type':_0x3a97bb[_0x6c33('0x13')],'app':_0x6c33('0x1f'),'appdata':_0x6c33('0x38'),'context':_0x3a97bb[_0x6c33('0x15')],'exten':_0x3a97bb[_0x6c33('0xc')],'priority':_0x22f168['length']+_0x932882['priority']+_0x5ee8ae++,'VoiceExtensionId':_0x3a97bb[_0x6c33('0x16')]});}else{_0x3bc2cb[_0x6c33('0x18')]({'type':_0x3a97bb['type'],'app':_0x6c33('0x1d'),'appdata':_0x6c33('0x39'),'context':_0x3a97bb[_0x6c33('0x15')],'exten':_0x3a97bb[_0x6c33('0xc')],'priority':_0x22f168[_0x6c33('0x2a')]+_0x932882['priority']+_0x5ee8ae++,'VoiceExtensionId':_0x3a97bb['VoiceExtensionId']});_0x3bc2cb[_0x6c33('0x18')]({'type':_0x3a97bb['type'],'app':'Set','appdata':_0x6c33('0x3a'),'context':_0x3a97bb[_0x6c33('0x15')],'exten':_0x3a97bb[_0x6c33('0xc')],'priority':_0x22f168['length']+_0x932882[_0x6c33('0xf')]+_0x5ee8ae++,'VoiceExtensionId':_0x3a97bb['VoiceExtensionId']});}}}for(var _0x279765=0x0;_0x279765<_0x22f168[_0x6c33('0x2a')];_0x279765+=0x1){var _0xb98e8b=_0x932882[_0x6c33('0xf')]+_0x22f168[_0x6c33('0x2a')];var _0x129121=_0x279765===_0x22f168[_0x6c33('0x2a')]-0x1?_0x932882[_0x6c33('0xf')]+_0x3bc2cb[_0x6c33('0x2a')]+_0x5a86c5[_0x6c33('0x2a')]+0x2:_0x932882[_0x6c33('0xf')]+_0x279765+0x1;_0x3bc2cb[_0x6c33('0x3b')](_0x279765,0x0,{'type':_0x3a97bb['type'],'app':_0x6c33('0x3c'),'appdata':_0x22f168[_0x279765]+'?'+_0x3a97bb[_0x6c33('0x15')]+_0x6c33('0x3d')+_0xb98e8b+':'+_0x3a97bb[_0x6c33('0x15')]+_0x6c33('0x3d')+_0x129121,'exten':_0x3a97bb[_0x6c33('0xc')],'context':_0x3a97bb[_0x6c33('0x15')],'priority':_0x932882[_0x6c33('0xf')]+_0x279765,'VoiceExtensionId':_0x48e336[_0x3e887d][0x0]['VoiceExtensionId']});}_0x3a97bb['priority']=_0x3bc2cb[_0x6c33('0x2a')]?_[_0x6c33('0x3e')](_0x3bc2cb)[_0x6c33('0xf')]+0x1:_0x932882[_0x6c33('0xf')];_0x932882[_0x6c33('0xf')]=(_0x5a86c5['length']?_[_0x6c33('0x3e')](_0x5a86c5)[_0x6c33('0xf')]:_0x3a97bb[_0x6c33('0xf')])+0x1;_0x932882[_0x6c33('0x10')]=_['concat'](_0x932882[_0x6c33('0x10')],_0x3bc2cb,[_0x3a97bb],_0x5a86c5);}_0x932882[_0x6c33('0x10')][_0x6c33('0x18')]({'type':_0x48e336[_0x3e887d][0x0][_0x6c33('0x13')],'app':_0x6c33('0x3f'),'exten':_0x48e336[_0x3e887d][0x0][_0x6c33('0xc')],'context':_0x48e336[_0x3e887d][0x0][_0x6c33('0x15')],'priority':_0x932882['priority'],'VoiceExtensionId':_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]});_0x498de6[_0x6c33('0x18')](_0x48e336[_0x3e887d][0x0][_0x6c33('0x16')]);_0xcb31d1=_['concat'](_0xcb31d1,_0x932882[_0x6c33('0x10')]);}}return _0x5b1ce4[_0x6c33('0x40')](function(_0x28ed16){return _0x5b1ce4[_0x6c33('0x5')]['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x498de6}},'transaction':_0x28ed16})[_0x6c33('0x3')](function(_0x472ec5){return _0x5b1ce4['models'][_0x6c33('0x7')][_0x6c33('0x41')](_[_0x6c33('0x42')](_0xcb31d1,_0x6c33('0xf')),{'transaction':_0x28ed16});});});})[_0x6c33('0x43')](function(_0x545784){console[_0x6c33('0x44')](_0x545784);});}exports[_0x6c33('0x45')]=rewrite;