494ecbc6c49afe159fd44075b788a1900a7c44ff
[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 _0x3aa2=['):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','length','updatedAt','interval','*,*,*,*','intervals','tag','CDR(tag)=','outbound','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','app','toLowerCase','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','last','Hangup','concat','transaction','destroy','bulkCreate','sortBy','catch','error','lodash','util','Interval','findAll','models','VoiceExtension','IntervalId','then','uniq','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','playback','hasOwnProperty','priority','extensions','extension','exten','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','push','cutdigits','${EXTEN}','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('];(function(_0x3c5cc8,_0x336027){var _0x44675c=function(_0xf9543e){while(--_0xf9543e){_0x3c5cc8['push'](_0x3c5cc8['shift']());}};_0x44675c(++_0x336027);}(_0x3aa2,0x13b));var _0x23aa=function(_0x257841,_0x389b4d){_0x257841=_0x257841-0x0;var _0x1b87ed=_0x3aa2[_0x257841];return _0x1b87ed;};'use strict';var _=require(_0x23aa('0x0'));var util=require(_0x23aa('0x1'));function rewrite(_0x546b6c,_0x151513){var _0x57325d=this;return _0x546b6c['models'][_0x23aa('0x2')][_0x23aa('0x3')]({'raw':!![]})['then'](function(_0x38c0ab){_0x57325d['intervals']=_0x38c0ab;return _0x546b6c[_0x23aa('0x4')][_0x23aa('0x5')]['findAll']({'where':{'IntervalId':_0x151513[_0x23aa('0x6')]},'raw':!![]});})[_0x23aa('0x7')](function(_0x31e9e4){return _0x546b6c['models'][_0x23aa('0x5')][_0x23aa('0x3')]({'where':{'exten':{'$in':_[_0x23aa('0x8')](_['map'](_0x31e9e4,'exten'))}},'order':[{'raw':_0x23aa('0x9')}],'raw':!![]});})['then'](function(_0x3f9456){var _0x155c20=_[_0x23aa('0xa')](_0x3f9456,{'priority':'1'});var _0x1891c7=_[_0x23aa('0xa')](_0x3f9456,{'isApp':0x1});var _0x459412=_[_0x23aa('0xb')](_0x1891c7,'exten');var _0x4fdd70=['queue',_0x23aa('0xc')];var _0x1c664b=[];var _0x109649=[];for(var _0x1d3725 in _0x459412){if(_0x459412[_0x23aa('0xd')](_0x1d3725)){_0x57325d[_0x23aa('0xe')]=0x2;_0x57325d[_0x23aa('0xf')]=[];_0x57325d[_0x23aa('0x10')]=_['find'](_0x155c20,{'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')]});_0x57325d['extensions']['push']({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':util[_0x23aa('0x14')](_0x23aa('0x15'),_0x459412[_0x1d3725][0x0][_0x23aa('0x12')]),'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0]['exten'],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});if(_0x459412[_0x1d3725][0x0]['type']==='outbound'){if(_0x57325d['extension']){_0x57325d['extensions'][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':'CDR(destination)='+(_0x57325d[_0x23aa('0x10')][_0x23aa('0x19')]?'${EXTEN:'+_0x57325d[_0x23aa('0x10')][_0x23aa('0x19')]+'}':_0x23aa('0x1a')),'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});}_0x57325d[_0x23aa('0xf')][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0]['type'],'app':_0x23aa('0x13'),'appdata':_0x23aa('0x1b')+_0x459412[_0x1d3725][0x0][_0x23aa('0x17')],'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0]['exten'],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0]['VoiceExtensionId']});var _0x44b337=_0x57325d[_0x23aa('0xe')]++;_0x57325d[_0x23aa('0xf')]['push']({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x1c'),'appdata':_0x23aa('0x1d')+(_0x44b337+0x2)+_0x23aa('0x1e')+(_0x44b337+0x1)+')','context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0]['exten'],'priority':_0x44b337,'VoiceExtensionId':_0x459412[_0x1d3725][0x0]['VoiceExtensionId']});if(_0x57325d[_0x23aa('0x10')]){_0x57325d[_0x23aa('0xf')][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':_0x57325d[_0x23aa('0x10')][_0x23aa('0x19')]?_0x23aa('0x1f')+_0x57325d[_0x23aa('0x10')][_0x23aa('0x19')]+'}':_0x23aa('0x20'),'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0]['VoiceExtensionId']});}_0x57325d['extensions'][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':'outboundrouteid='+_0x459412[_0x1d3725][0x0]['VoiceExtensionId'],'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0]['VoiceExtensionId']});if(_0x57325d[_0x23aa('0x10')]&&_0x57325d[_0x23aa('0x10')]['hasOwnProperty'](_0x23aa('0x21'))&&_0x57325d[_0x23aa('0x10')]['recordingFormat']!==_0x23aa('0x22')){_0x57325d[_0x23aa('0xf')]['push']({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':_0x23aa('0x23'),'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});_0x57325d['extensions'][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x57325d['extension'][_0x23aa('0x21')]||_0x23aa('0x24'),'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0]['exten'],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});}}_0x57325d[_0x23aa('0xf')][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0][_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':_0x23aa('0x25'),'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});_0x57325d[_0x23aa('0xf')]['push']({'type':_0x459412[_0x1d3725][0x0]['type'],'app':_0x23aa('0x13'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x459412[_0x1d3725][0x0]['context'],'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'priority':_0x57325d['priority']++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});_0x57325d[_0x23aa('0xf')][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0]['type'],'app':_0x23aa('0x13'),'appdata':_0x23aa('0x26'),'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'priority':_0x57325d[_0x23aa('0xe')]++,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});for(var _0x20b565=0x0,_0x5c8c42=0x0;_0x20b565<_0x459412[_0x1d3725][_0x23aa('0x27')];_0x20b565+=0x1,_0x5c8c42=0x0){var _0x49f994=_0x459412[_0x1d3725][_0x20b565];if(_0x49f994[_0x23aa('0x12')]){_0x49f994['type']=_0x49f994['type']['toLowerCase']();}var _0x284b94=[];var _0x4e04de=[];delete _0x49f994['id'];delete _0x49f994['createdAt'];delete _0x49f994[_0x23aa('0x28')];var _0x173007=_0x49f994[_0x23aa('0x29')]!==_0x23aa('0x2a')?[_0x49f994[_0x23aa('0x29')]]:_0x49f994['IntervalId']?_['map'](_[_0x23aa('0xa')](_0x57325d[_0x23aa('0x2b')],{'IntervalId':_0x49f994[_0x23aa('0x6')]}),'interval'):[];if(_0x49f994[_0x23aa('0xd')]('tag')){if(_0x49f994[_0x23aa('0x2c')]&&_0x49f994[_0x23aa('0x2c')]!=='--'){_0x284b94[_0x23aa('0x18')]({'type':_0x49f994['type'],'app':_0x23aa('0x13'),'appdata':_0x23aa('0x2d')+_0x49f994['tag'],'context':_0x49f994[_0x23aa('0x16')],'exten':_0x49f994['exten'],'priority':_0x173007[_0x23aa('0x27')]+_0x57325d[_0x23aa('0xe')]+_0x5c8c42++,'VoiceExtensionId':_0x49f994[_0x23aa('0x17')]});}}if(_0x49f994[_0x23aa('0x12')]===_0x23aa('0x2e')&&_0x49f994['hasOwnProperty'](_0x23aa('0x2f'))){if(_0x49f994[_0x23aa('0x2f')]){_0x284b94['push']({'type':_0x49f994[_0x23aa('0x12')],'app':_0x23aa('0x1c'),'appdata':_0x23aa('0x30')+_0x49f994['callerID']+')','context':_0x49f994[_0x23aa('0x16')],'exten':_0x49f994['exten'],'priority':_0x173007[_0x23aa('0x27')]+_0x57325d[_0x23aa('0xe')]+_0x5c8c42++,'VoiceExtensionId':_0x49f994[_0x23aa('0x17')]});}else{_0x284b94[_0x23aa('0x18')]({'type':_0x49f994[_0x23aa('0x12')],'app':'ExecIf','appdata':_0x23aa('0x31'),'context':_0x49f994[_0x23aa('0x16')],'exten':_0x49f994['exten'],'priority':_0x173007[_0x23aa('0x27')]+_0x57325d[_0x23aa('0xe')]+_0x5c8c42++,'VoiceExtensionId':_0x49f994[_0x23aa('0x17')]});}}if(_0x49f994[_0x23aa('0xd')](_0x23aa('0x32'))){if(_0x4fdd70['indexOf'](_0x49f994[_0x23aa('0x33')][_0x23aa('0x34')]())>=0x0&&_0x49f994[_0x23aa('0x35')]!==_0x23aa('0x36')){if(_0x49f994[_0x23aa('0x32')]){_0x284b94[_0x23aa('0x18')]({'type':_0x49f994[_0x23aa('0x12')],'app':_0x23aa('0x1c'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x49f994[_0x23aa('0x16')],'exten':_0x49f994[_0x23aa('0x11')],'priority':_0x173007[_0x23aa('0x27')]+_0x57325d[_0x23aa('0xe')]+_0x5c8c42++,'VoiceExtensionId':_0x49f994['VoiceExtensionId']});_0x284b94[_0x23aa('0x18')]({'type':_0x49f994[_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':_0x23aa('0x37'),'context':_0x49f994['context'],'exten':_0x49f994['exten'],'priority':_0x173007[_0x23aa('0x27')]+_0x57325d[_0x23aa('0xe')]+_0x5c8c42++,'VoiceExtensionId':_0x49f994[_0x23aa('0x17')]});}else{_0x284b94[_0x23aa('0x18')]({'type':_0x49f994[_0x23aa('0x12')],'app':_0x23aa('0x1c'),'appdata':_0x23aa('0x38'),'context':_0x49f994[_0x23aa('0x16')],'exten':_0x49f994[_0x23aa('0x11')],'priority':_0x173007[_0x23aa('0x27')]+_0x57325d[_0x23aa('0xe')]+_0x5c8c42++,'VoiceExtensionId':_0x49f994[_0x23aa('0x17')]});_0x284b94[_0x23aa('0x18')]({'type':_0x49f994[_0x23aa('0x12')],'app':_0x23aa('0x13'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x49f994[_0x23aa('0x16')],'exten':_0x49f994[_0x23aa('0x11')],'priority':_0x173007[_0x23aa('0x27')]+_0x57325d[_0x23aa('0xe')]+_0x5c8c42++,'VoiceExtensionId':_0x49f994[_0x23aa('0x17')]});}}}for(var _0x37aca6=0x0;_0x37aca6<_0x173007[_0x23aa('0x27')];_0x37aca6+=0x1){var _0x47924c=_0x57325d[_0x23aa('0xe')]+_0x173007[_0x23aa('0x27')];var _0x544aa3=_0x37aca6===_0x173007[_0x23aa('0x27')]-0x1?_0x57325d[_0x23aa('0xe')]+_0x284b94[_0x23aa('0x27')]+_0x4e04de[_0x23aa('0x27')]+0x2:_0x57325d[_0x23aa('0xe')]+_0x37aca6+0x1;_0x284b94[_0x23aa('0x39')](_0x37aca6,0x0,{'type':_0x49f994['type'],'app':_0x23aa('0x3a'),'appdata':_0x173007[_0x37aca6]+'?'+_0x49f994[_0x23aa('0x16')]+_0x23aa('0x3b')+_0x47924c+':'+_0x49f994[_0x23aa('0x16')]+',${EXTEN},'+_0x544aa3,'exten':_0x49f994[_0x23aa('0x11')],'context':_0x49f994[_0x23aa('0x16')],'priority':_0x57325d[_0x23aa('0xe')]+_0x37aca6,'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});}_0x49f994[_0x23aa('0xe')]=_0x284b94[_0x23aa('0x27')]?_[_0x23aa('0x3c')](_0x284b94)[_0x23aa('0xe')]+0x1:_0x57325d[_0x23aa('0xe')];_0x57325d[_0x23aa('0xe')]=(_0x4e04de[_0x23aa('0x27')]?_[_0x23aa('0x3c')](_0x4e04de)['priority']:_0x49f994[_0x23aa('0xe')])+0x1;_0x57325d[_0x23aa('0xf')]=_['concat'](_0x57325d[_0x23aa('0xf')],_0x284b94,[_0x49f994],_0x4e04de);}_0x57325d['extensions'][_0x23aa('0x18')]({'type':_0x459412[_0x1d3725][0x0]['type'],'app':_0x23aa('0x3d'),'exten':_0x459412[_0x1d3725][0x0][_0x23aa('0x11')],'context':_0x459412[_0x1d3725][0x0][_0x23aa('0x16')],'priority':_0x57325d[_0x23aa('0xe')],'VoiceExtensionId':_0x459412[_0x1d3725][0x0][_0x23aa('0x17')]});_0x1c664b[_0x23aa('0x18')](_0x459412[_0x1d3725][0x0]['VoiceExtensionId']);_0x109649=_[_0x23aa('0x3e')](_0x109649,_0x57325d['extensions']);}}return _0x546b6c[_0x23aa('0x3f')](function(_0x29ddb9){return _0x546b6c['models'][_0x23aa('0x5')][_0x23aa('0x40')]({'where':{'VoiceExtensionId':{'$in':_0x1c664b}},'transaction':_0x29ddb9})[_0x23aa('0x7')](function(_0x121076){return _0x546b6c['models'][_0x23aa('0x5')][_0x23aa('0x41')](_[_0x23aa('0x42')](_0x109649,_0x23aa('0xe')),{'transaction':_0x29ddb9});});});})[_0x23aa('0x43')](function(_0x4fe580){console[_0x23aa('0x44')](_0x4fe580);});}exports['rewrite']=rewrite;