32a84c4cc7fc97276cbb55742d67db47168a5d0d
[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 _0x8529=['context','outbound','extensions','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)=','VoiceExtensionId','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','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','createdAt','*,*,*,*','interval','IntervalId','tag','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','toLowerCase','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','destroy','bulkCreate','sortBy','error','rewrite','findAll','then','intervals','models','VoiceExtension','uniq','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','playback','hasOwnProperty','priority','extension','find','push','type','Set','format','CDR(type)=%s'];(function(_0xd256a1,_0x2aae80){var _0x2a11a4=function(_0x4a74f3){while(--_0x4a74f3){_0xd256a1['push'](_0xd256a1['shift']());}};_0x2a11a4(++_0x2aae80);}(_0x8529,0x73));var _0x9852=function(_0x355e15,_0x1e2160){_0x355e15=_0x355e15-0x0;var _0x247a0b=_0x8529[_0x355e15];return _0x247a0b;};'use strict';var _=require('lodash');var util=require('util');function rewrite(_0x2eb534,_0x22ebdc){var _0x1b8058=this;return _0x2eb534['models']['Interval'][_0x9852('0x0')]({'raw':!![]})[_0x9852('0x1')](function(_0x30a990){_0x1b8058[_0x9852('0x2')]=_0x30a990;return _0x2eb534[_0x9852('0x3')][_0x9852('0x4')]['findAll']({'where':{'IntervalId':_0x22ebdc['IntervalId']},'raw':!![]});})[_0x9852('0x1')](function(_0x46db54){return _0x2eb534['models']['VoiceExtension'][_0x9852('0x0')]({'where':{'exten':{'$in':_[_0x9852('0x5')](_['map'](_0x46db54,_0x9852('0x6')))}},'order':[{'raw':_0x9852('0x7')}],'raw':!![]});})['then'](function(_0x2636a1){var _0x565e1c=_[_0x9852('0x8')](_0x2636a1,{'priority':'1'});var _0x3d9929=_[_0x9852('0x8')](_0x2636a1,{'isApp':0x1});var _0x2c7d26=_['groupBy'](_0x3d9929,_0x9852('0x6'));var _0x3d0649=['queue',_0x9852('0x9')];var _0x1b76d1=[];var _0x154721=[];for(var _0x30d551 in _0x2c7d26){if(_0x2c7d26[_0x9852('0xa')](_0x30d551)){_0x1b8058[_0x9852('0xb')]=0x2;_0x1b8058['extensions']=[];_0x1b8058[_0x9852('0xc')]=_[_0x9852('0xd')](_0x565e1c,{'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')]});_0x1b8058['extensions'][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':util[_0x9852('0x11')](_0x9852('0x12'),_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')]),'context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0]['exten'],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0]['VoiceExtensionId']});if(_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')]===_0x9852('0x14')){if(_0x1b8058[_0x9852('0xc')]){_0x1b8058[_0x9852('0x15')]['push']({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':_0x9852('0x16')+(_0x1b8058[_0x9852('0xc')][_0x9852('0x17')]?_0x9852('0x18')+_0x1b8058['extension'][_0x9852('0x17')]+'}':_0x9852('0x19')),'context':_0x2c7d26[_0x30d551][0x0]['context'],'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'priority':_0x1b8058['priority']++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0]['VoiceExtensionId']});}_0x1b8058[_0x9852('0x15')][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':_0x9852('0x1a')+_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')],'context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]});var _0x19f8a5=_0x1b8058['priority']++;_0x1b8058['extensions'][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':'ExecIf','appdata':_0x9852('0x1c')+(_0x19f8a5+0x2)+'):Goto('+(_0x19f8a5+0x1)+')','context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'priority':_0x19f8a5,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]});if(_0x1b8058[_0x9852('0xc')]){_0x1b8058[_0x9852('0x15')][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':_0x1b8058['extension'][_0x9852('0x17')]?'CDR(prefix)=${EXTEN:0:'+_0x1b8058[_0x9852('0xc')][_0x9852('0x17')]+'}':_0x9852('0x1d'),'context':_0x2c7d26[_0x30d551][0x0]['context'],'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0]['VoiceExtensionId']});}_0x1b8058[_0x9852('0x15')][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':'Set','appdata':_0x9852('0x1e')+_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')],'context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0]['exten'],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0]['VoiceExtensionId']});if(_0x1b8058['extension']&&_0x1b8058[_0x9852('0xc')]['hasOwnProperty'](_0x9852('0x1f'))&&_0x1b8058[_0x9852('0xc')][_0x9852('0x1f')]!==_0x9852('0x20')){_0x1b8058[_0x9852('0x15')][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':_0x9852('0x21'),'context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]});_0x1b8058['extensions'][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':_0x9852('0x22')+_0x1b8058[_0x9852('0xc')]['recordingFormat']||_0x9852('0x23'),'context':_0x2c7d26[_0x30d551][0x0]['context'],'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]});}}_0x1b8058['extensions'][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0]['type'],'app':_0x9852('0x10'),'appdata':_0x9852('0x24'),'context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0]['exten'],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]});_0x1b8058[_0x9852('0x15')]['push']({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':_0x9852('0x25'),'context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0]['exten'],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0]['VoiceExtensionId']});_0x1b8058[_0x9852('0x15')][_0x9852('0xe')]({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':_0x9852('0x26'),'context':_0x2c7d26[_0x30d551][0x0][_0x9852('0x13')],'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'priority':_0x1b8058[_0x9852('0xb')]++,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]});for(var _0x1ce175=0x0,_0x426108=0x0;_0x1ce175<_0x2c7d26[_0x30d551][_0x9852('0x27')];_0x1ce175+=0x1,_0x426108=0x0){var _0x26a898=_0x2c7d26[_0x30d551][_0x1ce175];if(_0x26a898['type']){_0x26a898[_0x9852('0xf')]=_0x26a898[_0x9852('0xf')]['toLowerCase']();}var _0x1d49f5=[];var _0x33a103=[];delete _0x26a898['id'];delete _0x26a898[_0x9852('0x28')];delete _0x26a898['updatedAt'];var _0x38cf4b=_0x26a898['interval']!==_0x9852('0x29')?[_0x26a898[_0x9852('0x2a')]]:_0x26a898[_0x9852('0x2b')]?_['map'](_[_0x9852('0x8')](_0x1b8058['intervals'],{'IntervalId':_0x26a898[_0x9852('0x2b')]}),_0x9852('0x2a')):[];if(_0x26a898['hasOwnProperty'](_0x9852('0x2c'))){if(_0x26a898[_0x9852('0x2c')]&&_0x26a898[_0x9852('0x2c')]!=='--'){_0x1d49f5['push']({'type':_0x26a898[_0x9852('0xf')],'app':_0x9852('0x10'),'appdata':'CDR(tag)='+_0x26a898[_0x9852('0x2c')],'context':_0x26a898[_0x9852('0x13')],'exten':_0x26a898[_0x9852('0x6')],'priority':_0x38cf4b[_0x9852('0x27')]+_0x1b8058[_0x9852('0xb')]+_0x426108++,'VoiceExtensionId':_0x26a898[_0x9852('0x1b')]});}}if(_0x26a898['type']==='outbound'&&_0x26a898[_0x9852('0xa')]('callerID')){if(_0x26a898['callerID']){_0x1d49f5[_0x9852('0xe')]({'type':_0x26a898[_0x9852('0xf')],'app':_0x9852('0x2d'),'appdata':_0x9852('0x2e')+_0x26a898[_0x9852('0x2f')]+')','context':_0x26a898[_0x9852('0x13')],'exten':_0x26a898['exten'],'priority':_0x38cf4b['length']+_0x1b8058[_0x9852('0xb')]+_0x426108++,'VoiceExtensionId':_0x26a898[_0x9852('0x1b')]});}else{_0x1d49f5[_0x9852('0xe')]({'type':_0x26a898[_0x9852('0xf')],'app':'ExecIf','appdata':_0x9852('0x30'),'context':_0x26a898[_0x9852('0x13')],'exten':_0x26a898[_0x9852('0x6')],'priority':_0x38cf4b[_0x9852('0x27')]+_0x1b8058['priority']+_0x426108++,'VoiceExtensionId':_0x26a898['VoiceExtensionId']});}}if(_0x26a898[_0x9852('0xa')]('answer')){if(_0x3d0649[_0x9852('0x31')](_0x26a898['app'][_0x9852('0x32')]())>=0x0&&_0x26a898[_0x9852('0x33')]!==_0x9852('0x34')){if(_0x26a898[_0x9852('0x35')]){_0x1d49f5['push']({'type':_0x26a898['type'],'app':'ExecIf','appdata':_0x9852('0x36'),'context':_0x26a898[_0x9852('0x13')],'exten':_0x26a898[_0x9852('0x6')],'priority':_0x38cf4b[_0x9852('0x27')]+_0x1b8058[_0x9852('0xb')]+_0x426108++,'VoiceExtensionId':_0x26a898[_0x9852('0x1b')]});_0x1d49f5['push']({'type':_0x26a898['type'],'app':_0x9852('0x10'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x26a898[_0x9852('0x13')],'exten':_0x26a898[_0x9852('0x6')],'priority':_0x38cf4b[_0x9852('0x27')]+_0x1b8058[_0x9852('0xb')]+_0x426108++,'VoiceExtensionId':_0x26a898[_0x9852('0x1b')]});}else{_0x1d49f5[_0x9852('0xe')]({'type':_0x26a898[_0x9852('0xf')],'app':'ExecIf','appdata':_0x9852('0x37'),'context':_0x26a898[_0x9852('0x13')],'exten':_0x26a898[_0x9852('0x6')],'priority':_0x38cf4b['length']+_0x1b8058[_0x9852('0xb')]+_0x426108++,'VoiceExtensionId':_0x26a898[_0x9852('0x1b')]});_0x1d49f5[_0x9852('0xe')]({'type':_0x26a898[_0x9852('0xf')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x26a898['context'],'exten':_0x26a898['exten'],'priority':_0x38cf4b['length']+_0x1b8058['priority']+_0x426108++,'VoiceExtensionId':_0x26a898[_0x9852('0x1b')]});}}}for(var _0x582c12=0x0;_0x582c12<_0x38cf4b['length'];_0x582c12+=0x1){var _0x1d00bd=_0x1b8058[_0x9852('0xb')]+_0x38cf4b[_0x9852('0x27')];var _0x487009=_0x582c12===_0x38cf4b[_0x9852('0x27')]-0x1?_0x1b8058[_0x9852('0xb')]+_0x1d49f5[_0x9852('0x27')]+_0x33a103[_0x9852('0x27')]+0x2:_0x1b8058['priority']+_0x582c12+0x1;_0x1d49f5[_0x9852('0x38')](_0x582c12,0x0,{'type':_0x26a898[_0x9852('0xf')],'app':_0x9852('0x39'),'appdata':_0x38cf4b[_0x582c12]+'?'+_0x26a898[_0x9852('0x13')]+_0x9852('0x3a')+_0x1d00bd+':'+_0x26a898[_0x9852('0x13')]+_0x9852('0x3a')+_0x487009,'exten':_0x26a898[_0x9852('0x6')],'context':_0x26a898[_0x9852('0x13')],'priority':_0x1b8058[_0x9852('0xb')]+_0x582c12,'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0]['VoiceExtensionId']});}_0x26a898[_0x9852('0xb')]=_0x1d49f5['length']?_[_0x9852('0x3b')](_0x1d49f5)[_0x9852('0xb')]+0x1:_0x1b8058[_0x9852('0xb')];_0x1b8058['priority']=(_0x33a103[_0x9852('0x27')]?_['last'](_0x33a103)[_0x9852('0xb')]:_0x26a898[_0x9852('0xb')])+0x1;_0x1b8058[_0x9852('0x15')]=_[_0x9852('0x3c')](_0x1b8058[_0x9852('0x15')],_0x1d49f5,[_0x26a898],_0x33a103);}_0x1b8058['extensions']['push']({'type':_0x2c7d26[_0x30d551][0x0][_0x9852('0xf')],'app':_0x9852('0x3d'),'exten':_0x2c7d26[_0x30d551][0x0][_0x9852('0x6')],'context':_0x2c7d26[_0x30d551][0x0]['context'],'priority':_0x1b8058[_0x9852('0xb')],'VoiceExtensionId':_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]});_0x1b76d1[_0x9852('0xe')](_0x2c7d26[_0x30d551][0x0][_0x9852('0x1b')]);_0x154721=_[_0x9852('0x3c')](_0x154721,_0x1b8058['extensions']);}}return _0x2eb534['transaction'](function(_0x48893b){return _0x2eb534[_0x9852('0x3')][_0x9852('0x4')][_0x9852('0x3e')]({'where':{'VoiceExtensionId':{'$in':_0x1b76d1}},'transaction':_0x48893b})[_0x9852('0x1')](function(_0x19107b){return _0x2eb534[_0x9852('0x3')]['VoiceExtension'][_0x9852('0x3f')](_[_0x9852('0x40')](_0x154721,_0x9852('0xb')),{'transaction':_0x48893b});});});})['catch'](function(_0x3ad245){console[_0x9852('0x41')](_0x3ad245);});}exports[_0x9852('0x42')]=rewrite;