3b9ca8c8fc41a8761a278b408cd75aa0b0079bc7
[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 _0x609f=['extensions','extension','find','push','type','Set','format','context','VoiceExtensionId','inbound','CDR(routeid)=','outbound','CDR(destination)=','cutdigits','${EXTEN:','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','*,*,*,*','interval','tag','CDR(tag)=','callerID','ExecIf','$[${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','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','bulkCreate','sortBy','catch','error','rewrite','lodash','models','Interval','findAll','then','intervals','IntervalId','VoiceExtension','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority'];(function(_0x4e7012,_0x5d5f73){var _0xcd56d5=function(_0x330847){while(--_0x330847){_0x4e7012['push'](_0x4e7012['shift']());}};_0xcd56d5(++_0x5d5f73);}(_0x609f,0x1ed));var _0xf609=function(_0x33c32a,_0x2143db){_0x33c32a=_0x33c32a-0x0;var _0x221571=_0x609f[_0x33c32a];return _0x221571;};'use strict';var _=require(_0xf609('0x0'));var util=require('util');function rewrite(_0x23f89a,_0x46f0b3){var _0x56705b=this;return _0x23f89a[_0xf609('0x1')][_0xf609('0x2')][_0xf609('0x3')]({'raw':!![]})[_0xf609('0x4')](function(_0x146f4a){_0x56705b[_0xf609('0x5')]=_0x146f4a;return _0x23f89a[_0xf609('0x1')]['VoiceExtension'][_0xf609('0x3')]({'where':{'IntervalId':_0x46f0b3[_0xf609('0x6')]},'raw':!![]});})[_0xf609('0x4')](function(_0x3701b0){return _0x23f89a[_0xf609('0x1')][_0xf609('0x7')][_0xf609('0x3')]({'where':{'exten':{'$in':_[_0xf609('0x8')](_[_0xf609('0x9')](_0x3701b0,_0xf609('0xa')))}},'order':[{'raw':_0xf609('0xb')}],'raw':!![]});})['then'](function(_0x2a3dcf){var _0x1f11f3=_['filter'](_0x2a3dcf,{'priority':'1'});var _0x20b21e=_[_0xf609('0xc')](_0x2a3dcf,{'isApp':0x1});var _0x11a2cd=_[_0xf609('0xd')](_0x20b21e,_0xf609('0xa'));var _0x53ba51=[_0xf609('0xe'),_0xf609('0xf')];var _0x56160d=[];var _0x32f05c=[];for(var _0xf800da in _0x11a2cd){if(_0x11a2cd[_0xf609('0x10')](_0xf800da)){_0x56705b[_0xf609('0x11')]=0x2;_0x56705b[_0xf609('0x12')]=[];_0x56705b[_0xf609('0x13')]=_[_0xf609('0x14')](_0x1f11f3,{'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')]});_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':util[_0xf609('0x18')]('CDR(type)=%s',_0x11a2cd[_0xf800da][0x0]['type']),'context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});if(_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')]===_0xf609('0x1b')){_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0]['type'],'app':_0xf609('0x17'),'appdata':_0xf609('0x1c')+_0x11a2cd[_0xf800da][0x0]['VoiceExtensionId'],'context':_0x11a2cd[_0xf800da][0x0]['context'],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b['priority']++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0]['VoiceExtensionId']});}else if(_0x11a2cd[_0xf800da][0x0]['type']===_0xf609('0x1d')){if(_0x56705b[_0xf609('0x13')]){_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':_0xf609('0x1e')+(_0x56705b[_0xf609('0x13')][_0xf609('0x1f')]?_0xf609('0x20')+_0x56705b[_0xf609('0x13')]['cutdigits']+'}':'${EXTEN}'),'context':_0x11a2cd[_0xf800da][0x0]['context'],'exten':_0x11a2cd[_0xf800da][0x0]['exten'],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});}_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':_0xf609('0x1c')+_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')],'context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});var _0x23617f=_0x56705b[_0xf609('0x11')]++;_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':'ExecIf','appdata':_0xf609('0x21')+(_0x23617f+0x2)+'):Goto('+(_0x23617f+0x1)+')','context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x23617f,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});if(_0x56705b[_0xf609('0x13')]){_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0]['type'],'app':_0xf609('0x17'),'appdata':_0x56705b['extension']['cutdigits']?_0xf609('0x22')+_0x56705b[_0xf609('0x13')][_0xf609('0x1f')]+'}':'CDR(prefix)=noprefix','context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});}_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':_0xf609('0x23')+_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')],'context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0]['exten'],'priority':_0x56705b['priority']++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});if(_0x56705b[_0xf609('0x13')]&&_0x56705b[_0xf609('0x13')][_0xf609('0x10')](_0xf609('0x24'))&&_0x56705b[_0xf609('0x13')]['recordingFormat']!==_0xf609('0x25')){_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0]['type'],'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':_0xf609('0x26')+_0x56705b[_0xf609('0x13')][_0xf609('0x24')]||_0xf609('0x27'),'context':_0x11a2cd[_0xf800da][0x0]['context'],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});}}_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':'Set','appdata':_0xf609('0x28'),'context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});_0x56705b[_0xf609('0x12')]['push']({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':_0xf609('0x29'),'context':_0x11a2cd[_0xf800da][0x0]['context'],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});_0x56705b['extensions']['push']({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':'Set','appdata':_0xf609('0x2a'),'context':_0x11a2cd[_0xf800da][0x0][_0xf609('0x19')],'exten':_0x11a2cd[_0xf800da][0x0][_0xf609('0xa')],'priority':_0x56705b[_0xf609('0x11')]++,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});for(var _0xb21e1f=0x0,_0xc1e428=0x0;_0xb21e1f<_0x11a2cd[_0xf800da][_0xf609('0x2b')];_0xb21e1f+=0x1,_0xc1e428=0x0){var _0x396a8e=_0x11a2cd[_0xf800da][_0xb21e1f];if(_0x396a8e[_0xf609('0x16')]){_0x396a8e[_0xf609('0x16')]=_0x396a8e['type'][_0xf609('0x2c')]();}var _0x2fb71d=[];var _0x457121=[];delete _0x396a8e['id'];delete _0x396a8e[_0xf609('0x2d')];delete _0x396a8e['updatedAt'];var _0x5df3f7=_0x396a8e['interval']!==_0xf609('0x2e')?[_0x396a8e[_0xf609('0x2f')]]:_0x396a8e[_0xf609('0x6')]?_[_0xf609('0x9')](_[_0xf609('0xc')](_0x56705b['intervals'],{'IntervalId':_0x396a8e[_0xf609('0x6')]}),_0xf609('0x2f')):[];if(_0x396a8e[_0xf609('0x10')](_0xf609('0x30'))){if(_0x396a8e['tag']&&_0x396a8e[_0xf609('0x30')]!=='--'){_0x2fb71d[_0xf609('0x15')]({'type':_0x396a8e['type'],'app':_0xf609('0x17'),'appdata':_0xf609('0x31')+_0x396a8e[_0xf609('0x30')],'context':_0x396a8e[_0xf609('0x19')],'exten':_0x396a8e[_0xf609('0xa')],'priority':_0x5df3f7['length']+_0x56705b[_0xf609('0x11')]+_0xc1e428++,'VoiceExtensionId':_0x396a8e[_0xf609('0x1a')]});}}if(_0x396a8e[_0xf609('0x16')]==='outbound'&&_0x396a8e['hasOwnProperty'](_0xf609('0x32'))){if(_0x396a8e[_0xf609('0x32')]){_0x2fb71d['push']({'type':_0x396a8e[_0xf609('0x16')],'app':_0xf609('0x33'),'appdata':_0xf609('0x34')+_0x396a8e[_0xf609('0x32')]+')','context':_0x396a8e[_0xf609('0x19')],'exten':_0x396a8e[_0xf609('0xa')],'priority':_0x5df3f7['length']+_0x56705b[_0xf609('0x11')]+_0xc1e428++,'VoiceExtensionId':_0x396a8e[_0xf609('0x1a')]});}else{_0x2fb71d[_0xf609('0x15')]({'type':_0x396a8e['type'],'app':'ExecIf','appdata':_0xf609('0x35'),'context':_0x396a8e[_0xf609('0x19')],'exten':_0x396a8e[_0xf609('0xa')],'priority':_0x5df3f7[_0xf609('0x2b')]+_0x56705b[_0xf609('0x11')]+_0xc1e428++,'VoiceExtensionId':_0x396a8e[_0xf609('0x1a')]});}}if(_0x396a8e['hasOwnProperty']('answer')){if(_0x53ba51[_0xf609('0x36')](_0x396a8e[_0xf609('0x37')][_0xf609('0x2c')]())>=0x0&&_0x396a8e[_0xf609('0x38')]!=='custom'){if(_0x396a8e[_0xf609('0x39')]){_0x2fb71d[_0xf609('0x15')]({'type':_0x396a8e[_0xf609('0x16')],'app':_0xf609('0x33'),'appdata':_0xf609('0x3a'),'context':_0x396a8e['context'],'exten':_0x396a8e[_0xf609('0xa')],'priority':_0x5df3f7[_0xf609('0x2b')]+_0x56705b[_0xf609('0x11')]+_0xc1e428++,'VoiceExtensionId':_0x396a8e['VoiceExtensionId']});_0x2fb71d['push']({'type':_0x396a8e[_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x396a8e[_0xf609('0x19')],'exten':_0x396a8e[_0xf609('0xa')],'priority':_0x5df3f7['length']+_0x56705b[_0xf609('0x11')]+_0xc1e428++,'VoiceExtensionId':_0x396a8e['VoiceExtensionId']});}else{_0x2fb71d[_0xf609('0x15')]({'type':_0x396a8e[_0xf609('0x16')],'app':_0xf609('0x33'),'appdata':_0xf609('0x3b'),'context':_0x396a8e[_0xf609('0x19')],'exten':_0x396a8e['exten'],'priority':_0x5df3f7['length']+_0x56705b[_0xf609('0x11')]+_0xc1e428++,'VoiceExtensionId':_0x396a8e['VoiceExtensionId']});_0x2fb71d['push']({'type':_0x396a8e[_0xf609('0x16')],'app':_0xf609('0x17'),'appdata':_0xf609('0x3c'),'context':_0x396a8e['context'],'exten':_0x396a8e[_0xf609('0xa')],'priority':_0x5df3f7['length']+_0x56705b[_0xf609('0x11')]+_0xc1e428++,'VoiceExtensionId':_0x396a8e[_0xf609('0x1a')]});}}}for(var _0x3d245d=0x0;_0x3d245d<_0x5df3f7[_0xf609('0x2b')];_0x3d245d+=0x1){var _0x4b0aa5=_0x56705b[_0xf609('0x11')]+_0x5df3f7['length'];var _0x2ed04c=_0x3d245d===_0x5df3f7[_0xf609('0x2b')]-0x1?_0x56705b[_0xf609('0x11')]+_0x2fb71d[_0xf609('0x2b')]+_0x457121['length']+0x2:_0x56705b[_0xf609('0x11')]+_0x3d245d+0x1;_0x2fb71d['splice'](_0x3d245d,0x0,{'type':_0x396a8e[_0xf609('0x16')],'app':_0xf609('0x3d'),'appdata':_0x5df3f7[_0x3d245d]+'?'+_0x396a8e[_0xf609('0x19')]+_0xf609('0x3e')+_0x4b0aa5+':'+_0x396a8e[_0xf609('0x19')]+_0xf609('0x3e')+_0x2ed04c,'exten':_0x396a8e['exten'],'context':_0x396a8e[_0xf609('0x19')],'priority':_0x56705b[_0xf609('0x11')]+_0x3d245d,'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]});}_0x396a8e[_0xf609('0x11')]=_0x2fb71d['length']?_[_0xf609('0x3f')](_0x2fb71d)['priority']+0x1:_0x56705b[_0xf609('0x11')];_0x56705b[_0xf609('0x11')]=(_0x457121[_0xf609('0x2b')]?_[_0xf609('0x3f')](_0x457121)[_0xf609('0x11')]:_0x396a8e[_0xf609('0x11')])+0x1;_0x56705b['extensions']=_[_0xf609('0x40')](_0x56705b['extensions'],_0x2fb71d,[_0x396a8e],_0x457121);}_0x56705b[_0xf609('0x12')][_0xf609('0x15')]({'type':_0x11a2cd[_0xf800da][0x0][_0xf609('0x16')],'app':_0xf609('0x41'),'exten':_0x11a2cd[_0xf800da][0x0]['exten'],'context':_0x11a2cd[_0xf800da][0x0]['context'],'priority':_0x56705b[_0xf609('0x11')],'VoiceExtensionId':_0x11a2cd[_0xf800da][0x0]['VoiceExtensionId']});_0x56160d[_0xf609('0x15')](_0x11a2cd[_0xf800da][0x0][_0xf609('0x1a')]);_0x32f05c=_[_0xf609('0x40')](_0x32f05c,_0x56705b[_0xf609('0x12')]);}}return _0x23f89a[_0xf609('0x42')](function(_0xa207c3){return _0x23f89a[_0xf609('0x1')][_0xf609('0x7')][_0xf609('0x43')]({'where':{'VoiceExtensionId':{'$in':_0x56160d}},'transaction':_0xa207c3})[_0xf609('0x4')](function(_0x19dfc3){return _0x23f89a[_0xf609('0x1')][_0xf609('0x7')][_0xf609('0x44')](_[_0xf609('0x45')](_0x32f05c,_0xf609('0x11')),{'transaction':_0xa207c3});});});})[_0xf609('0x46')](function(_0x2fe81e){console[_0xf609('0x47')](_0x2fe81e);});}exports[_0xf609('0x48')]=rewrite;