2e5717dbcc534fbe0a2bbe5e2a991ebb791b1474
[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 _0xb64b=['push','type','format','CDR(type)=%s','context','priority','inbound','Set','VoiceExtensionId','CDR(destination)=','cutdigits','${EXTEN}','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','interval','*,*,*,*','tag','CDR(tag)=','length','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','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime','last','concat','Hangup','transaction','bulkCreate','sortBy','catch','error','rewrite','lodash','models','Interval','intervals','findAll','IntervalId','then','VoiceExtension','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','playback','hasOwnProperty','extension','find','extensions'];(function(_0x298ad8,_0x351904){var _0xb68f4c=function(_0xcd3d3){while(--_0xcd3d3){_0x298ad8['push'](_0x298ad8['shift']());}};_0xb68f4c(++_0x351904);}(_0xb64b,0x76));var _0xbb64=function(_0x1b5bc2,_0x453d84){_0x1b5bc2=_0x1b5bc2-0x0;var _0x1a5382=_0xb64b[_0x1b5bc2];return _0x1a5382;};'use strict';var _=require(_0xbb64('0x0'));var util=require('util');function rewrite(_0x300dd1,_0x25a31c){var _0x16b655=this;return _0x300dd1[_0xbb64('0x1')][_0xbb64('0x2')]['findAll']({'raw':!![]})['then'](function(_0x2b6a7e){_0x16b655[_0xbb64('0x3')]=_0x2b6a7e;return _0x300dd1[_0xbb64('0x1')]['VoiceExtension'][_0xbb64('0x4')]({'where':{'IntervalId':_0x25a31c[_0xbb64('0x5')]},'raw':!![]});})[_0xbb64('0x6')](function(_0x48d378){return _0x300dd1['models'][_0xbb64('0x7')]['findAll']({'where':{'exten':{'$in':_['uniq'](_[_0xbb64('0x8')](_0x48d378,_0xbb64('0x9')))}},'order':[{'raw':_0xbb64('0xa')}],'raw':!![]});})['then'](function(_0x342b88){var _0x265739=_[_0xbb64('0xb')](_0x342b88,{'priority':'1'});var _0x66d19=_[_0xbb64('0xb')](_0x342b88,{'isApp':0x1});var _0x4513ed=_[_0xbb64('0xc')](_0x66d19,_0xbb64('0x9'));var _0x421dd7=['queue',_0xbb64('0xd')];var _0xdcf9eb=[];var _0x5e59fa=[];for(var _0x30d2fa in _0x4513ed){if(_0x4513ed[_0xbb64('0xe')](_0x30d2fa)){_0x16b655['priority']=0x2;_0x16b655['extensions']=[];_0x16b655[_0xbb64('0xf')]=_[_0xbb64('0x10')](_0x265739,{'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')]});_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')],'app':'Set','appdata':util[_0xbb64('0x14')](_0xbb64('0x15'),_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')]),'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'priority':_0x16b655[_0xbb64('0x17')]++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0]['VoiceExtensionId']});if(_0x4513ed[_0x30d2fa][0x0]['type']===_0xbb64('0x18')){_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0]['type'],'app':_0xbb64('0x19'),'appdata':'CDR(routeid)='+_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')],'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0]['exten'],'priority':_0x16b655[_0xbb64('0x17')]++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});}else if(_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')]==='outbound'){if(_0x16b655[_0xbb64('0xf')]){_0x16b655[_0xbb64('0x11')]['push']({'type':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')],'app':'Set','appdata':_0xbb64('0x1b')+(_0x16b655['extension'][_0xbb64('0x1c')]?'${EXTEN:'+_0x16b655['extension']['cutdigits']+'}':_0xbb64('0x1d')),'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'priority':_0x16b655[_0xbb64('0x17')]++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});}_0x16b655['extensions']['push']({'type':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')],'app':_0xbb64('0x19'),'appdata':_0xbb64('0x1e')+_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')],'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'priority':_0x16b655['priority']++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});var _0x5ddee2=_0x16b655[_0xbb64('0x17')]++;_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0]['type'],'app':_0xbb64('0x1f'),'appdata':_0xbb64('0x20')+(_0x5ddee2+0x2)+'):Goto('+(_0x5ddee2+0x1)+')','context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0]['exten'],'priority':_0x5ddee2,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});if(_0x16b655['extension']){_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')],'app':'Set','appdata':_0x16b655['extension'][_0xbb64('0x1c')]?_0xbb64('0x21')+_0x16b655['extension']['cutdigits']+'}':'CDR(prefix)=noprefix','context':_0x4513ed[_0x30d2fa][0x0]['context'],'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'priority':_0x16b655['priority']++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});}_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0]['type'],'app':'Set','appdata':_0xbb64('0x22')+_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')],'context':_0x4513ed[_0x30d2fa][0x0]['context'],'exten':_0x4513ed[_0x30d2fa][0x0]['exten'],'priority':_0x16b655['priority']++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});if(_0x16b655[_0xbb64('0xf')]&&_0x16b655[_0xbb64('0xf')][_0xbb64('0xe')]('recordingFormat')&&_0x16b655[_0xbb64('0xf')][_0xbb64('0x23')]!=='none'){_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0]['type'],'app':_0xbb64('0x19'),'appdata':_0xbb64('0x24'),'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0]['exten'],'priority':_0x16b655['priority']++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0]['type'],'app':_0xbb64('0x19'),'appdata':_0xbb64('0x25')+_0x16b655[_0xbb64('0xf')]['recordingFormat']||'wav','context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'priority':_0x16b655['priority']++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});}}_0x16b655['extensions'][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')],'app':'Set','appdata':_0xbb64('0x26'),'context':_0x4513ed[_0x30d2fa][0x0]['context'],'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'priority':_0x16b655['priority']++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});_0x16b655[_0xbb64('0x11')]['push']({'type':_0x4513ed[_0x30d2fa][0x0]['type'],'app':_0xbb64('0x19'),'appdata':_0xbb64('0x27'),'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'priority':_0x16b655['priority']++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});_0x16b655[_0xbb64('0x11')][_0xbb64('0x12')]({'type':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')],'app':'Set','appdata':_0xbb64('0x28'),'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'exten':_0x4513ed[_0x30d2fa][0x0]['exten'],'priority':_0x16b655[_0xbb64('0x17')]++,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});for(var _0x551bc2=0x0,_0x24fb7f=0x0;_0x551bc2<_0x4513ed[_0x30d2fa]['length'];_0x551bc2+=0x1,_0x24fb7f=0x0){var _0x420501=_0x4513ed[_0x30d2fa][_0x551bc2];if(_0x420501[_0xbb64('0x13')]){_0x420501[_0xbb64('0x13')]=_0x420501[_0xbb64('0x13')]['toLowerCase']();}var _0xe415a2=[];var _0x38daa3=[];delete _0x420501['id'];delete _0x420501['createdAt'];delete _0x420501['updatedAt'];var _0x2d9384=_0x420501[_0xbb64('0x29')]!==_0xbb64('0x2a')?[_0x420501[_0xbb64('0x29')]]:_0x420501[_0xbb64('0x5')]?_['map'](_[_0xbb64('0xb')](_0x16b655[_0xbb64('0x3')],{'IntervalId':_0x420501[_0xbb64('0x5')]}),_0xbb64('0x29')):[];if(_0x420501[_0xbb64('0xe')](_0xbb64('0x2b'))){if(_0x420501[_0xbb64('0x2b')]&&_0x420501['tag']!=='--'){_0xe415a2['push']({'type':_0x420501[_0xbb64('0x13')],'app':_0xbb64('0x19'),'appdata':_0xbb64('0x2c')+_0x420501[_0xbb64('0x2b')],'context':_0x420501[_0xbb64('0x16')],'exten':_0x420501['exten'],'priority':_0x2d9384[_0xbb64('0x2d')]+_0x16b655[_0xbb64('0x17')]+_0x24fb7f++,'VoiceExtensionId':_0x420501[_0xbb64('0x1a')]});}}if(_0x420501[_0xbb64('0x13')]===_0xbb64('0x2e')&&_0x420501['hasOwnProperty'](_0xbb64('0x2f'))){if(_0x420501[_0xbb64('0x2f')]){_0xe415a2[_0xbb64('0x12')]({'type':_0x420501[_0xbb64('0x13')],'app':_0xbb64('0x1f'),'appdata':_0xbb64('0x30')+_0x420501[_0xbb64('0x2f')]+')','context':_0x420501['context'],'exten':_0x420501['exten'],'priority':_0x2d9384['length']+_0x16b655[_0xbb64('0x17')]+_0x24fb7f++,'VoiceExtensionId':_0x420501[_0xbb64('0x1a')]});}else{_0xe415a2[_0xbb64('0x12')]({'type':_0x420501['type'],'app':_0xbb64('0x1f'),'appdata':_0xbb64('0x31'),'context':_0x420501[_0xbb64('0x16')],'exten':_0x420501[_0xbb64('0x9')],'priority':_0x2d9384[_0xbb64('0x2d')]+_0x16b655[_0xbb64('0x17')]+_0x24fb7f++,'VoiceExtensionId':_0x420501[_0xbb64('0x1a')]});}}if(_0x420501['hasOwnProperty'](_0xbb64('0x32'))){if(_0x421dd7['indexOf'](_0x420501[_0xbb64('0x33')]['toLowerCase']())>=0x0&&_0x420501[_0xbb64('0x34')]!==_0xbb64('0x35')){if(_0x420501[_0xbb64('0x32')]){_0xe415a2['push']({'type':_0x420501[_0xbb64('0x13')],'app':_0xbb64('0x1f'),'appdata':_0xbb64('0x36'),'context':_0x420501['context'],'exten':_0x420501[_0xbb64('0x9')],'priority':_0x2d9384[_0xbb64('0x2d')]+_0x16b655['priority']+_0x24fb7f++,'VoiceExtensionId':_0x420501[_0xbb64('0x1a')]});_0xe415a2['push']({'type':_0x420501['type'],'app':'Set','appdata':_0xbb64('0x37'),'context':_0x420501[_0xbb64('0x16')],'exten':_0x420501['exten'],'priority':_0x2d9384['length']+_0x16b655[_0xbb64('0x17')]+_0x24fb7f++,'VoiceExtensionId':_0x420501[_0xbb64('0x1a')]});}else{_0xe415a2[_0xbb64('0x12')]({'type':_0x420501[_0xbb64('0x13')],'app':_0xbb64('0x1f'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x420501[_0xbb64('0x16')],'exten':_0x420501[_0xbb64('0x9')],'priority':_0x2d9384[_0xbb64('0x2d')]+_0x16b655[_0xbb64('0x17')]+_0x24fb7f++,'VoiceExtensionId':_0x420501['VoiceExtensionId']});_0xe415a2[_0xbb64('0x12')]({'type':_0x420501[_0xbb64('0x13')],'app':_0xbb64('0x19'),'appdata':_0xbb64('0x38'),'context':_0x420501[_0xbb64('0x16')],'exten':_0x420501[_0xbb64('0x9')],'priority':_0x2d9384[_0xbb64('0x2d')]+_0x16b655[_0xbb64('0x17')]+_0x24fb7f++,'VoiceExtensionId':_0x420501[_0xbb64('0x1a')]});}}}for(var _0x18115e=0x0;_0x18115e<_0x2d9384[_0xbb64('0x2d')];_0x18115e+=0x1){var _0x182b44=_0x16b655['priority']+_0x2d9384[_0xbb64('0x2d')];var _0x2666a3=_0x18115e===_0x2d9384[_0xbb64('0x2d')]-0x1?_0x16b655[_0xbb64('0x17')]+_0xe415a2['length']+_0x38daa3[_0xbb64('0x2d')]+0x2:_0x16b655['priority']+_0x18115e+0x1;_0xe415a2[_0xbb64('0x39')](_0x18115e,0x0,{'type':_0x420501[_0xbb64('0x13')],'app':_0xbb64('0x3a'),'appdata':_0x2d9384[_0x18115e]+'?'+_0x420501[_0xbb64('0x16')]+',${EXTEN},'+_0x182b44+':'+_0x420501[_0xbb64('0x16')]+',${EXTEN},'+_0x2666a3,'exten':_0x420501[_0xbb64('0x9')],'context':_0x420501[_0xbb64('0x16')],'priority':_0x16b655[_0xbb64('0x17')]+_0x18115e,'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});}_0x420501['priority']=_0xe415a2['length']?_[_0xbb64('0x3b')](_0xe415a2)[_0xbb64('0x17')]+0x1:_0x16b655[_0xbb64('0x17')];_0x16b655[_0xbb64('0x17')]=(_0x38daa3[_0xbb64('0x2d')]?_[_0xbb64('0x3b')](_0x38daa3)[_0xbb64('0x17')]:_0x420501[_0xbb64('0x17')])+0x1;_0x16b655[_0xbb64('0x11')]=_[_0xbb64('0x3c')](_0x16b655[_0xbb64('0x11')],_0xe415a2,[_0x420501],_0x38daa3);}_0x16b655['extensions']['push']({'type':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x13')],'app':_0xbb64('0x3d'),'exten':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x9')],'context':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x16')],'priority':_0x16b655[_0xbb64('0x17')],'VoiceExtensionId':_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]});_0xdcf9eb['push'](_0x4513ed[_0x30d2fa][0x0][_0xbb64('0x1a')]);_0x5e59fa=_[_0xbb64('0x3c')](_0x5e59fa,_0x16b655[_0xbb64('0x11')]);}}return _0x300dd1[_0xbb64('0x3e')](function(_0x48bd0d){return _0x300dd1['models']['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0xdcf9eb}},'transaction':_0x48bd0d})['then'](function(_0xb91c32){return _0x300dd1['models'][_0xbb64('0x7')][_0xbb64('0x3f')](_[_0xbb64('0x40')](_0x5e59fa,_0xbb64('0x17')),{'transaction':_0x48bd0d});});});})[_0xbb64('0x41')](function(_0x45c71d){console[_0xbb64('0x42')](_0x45c71d);});}exports[_0xbb64('0x43')]=rewrite;