7fa5f2b19435f80146c18e9e09be36f28c447c8e
[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 _0x022d=['):Goto(','cutdigits','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','toLowerCase','createdAt','updatedAt','interval','intervals','hasOwnProperty','tag','CDR(tag)=','length','callerID','indexOf','app','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','transaction','destroy','sortBy','catch','error','rewrite','lodash','util','Interval','findAll','models','VoiceExtension','IntervalId','then','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','exten','queue','extensions','extension','find','push','type','Set','format','priority','VoiceExtensionId','inbound','CDR(routeid)=','context','outbound','CDR(destination)=','${EXTEN:','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('];(function(_0x618414,_0x1a7a60){var _0x21c19a=function(_0x507b17){while(--_0x507b17){_0x618414['push'](_0x618414['shift']());}};_0x21c19a(++_0x1a7a60);}(_0x022d,0x191));var _0xd022=function(_0x59e199,_0xced8dc){_0x59e199=_0x59e199-0x0;var _0x53361c=_0x022d[_0x59e199];return _0x53361c;};'use strict';var _=require(_0xd022('0x0'));var util=require(_0xd022('0x1'));function rewrite(_0x4e1dd2,_0x20c0dc){var _0x504fe3=this;return _0x4e1dd2['models'][_0xd022('0x2')][_0xd022('0x3')]({'raw':!![]})['then'](function(_0x3dfec1){_0x504fe3['intervals']=_0x3dfec1;return _0x4e1dd2[_0xd022('0x4')][_0xd022('0x5')][_0xd022('0x3')]({'where':{'IntervalId':_0x20c0dc[_0xd022('0x6')]},'raw':!![]});})[_0xd022('0x7')](function(_0x3ab0ae){return _0x4e1dd2[_0xd022('0x4')][_0xd022('0x5')][_0xd022('0x3')]({'where':{'exten':{'$in':_[_0xd022('0x8')](_[_0xd022('0x9')](_0x3ab0ae,'exten'))}},'order':[{'raw':_0xd022('0xa')}],'raw':!![]});})[_0xd022('0x7')](function(_0x17241e){var _0x17de55=_[_0xd022('0xb')](_0x17241e,{'priority':'1'});var _0x153c19=_[_0xd022('0xb')](_0x17241e,{'isApp':0x1});var _0xee84e8=_['groupBy'](_0x153c19,_0xd022('0xc'));var _0x3f4051=[_0xd022('0xd'),'playback'];var _0x501ef4=[];var _0x1afaf1=[];for(var _0x52d4fe in _0xee84e8){if(_0xee84e8['hasOwnProperty'](_0x52d4fe)){_0x504fe3['priority']=0x2;_0x504fe3[_0xd022('0xe')]=[];_0x504fe3[_0xd022('0xf')]=_[_0xd022('0x10')](_0x17de55,{'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')]});_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':_0xd022('0x13'),'appdata':util[_0xd022('0x14')]('CDR(type)=%s',_0xee84e8[_0x52d4fe][0x0]['type']),'context':_0xee84e8[_0x52d4fe][0x0]['context'],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x504fe3[_0xd022('0x15')]++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});if(_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')]===_0xd022('0x17')){_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0]['type'],'app':_0xd022('0x13'),'appdata':_0xd022('0x18')+_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')],'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0]['exten'],'priority':_0x504fe3[_0xd022('0x15')]++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});}else if(_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')]===_0xd022('0x1a')){if(_0x504fe3['extension']){_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':_0xd022('0x13'),'appdata':_0xd022('0x1b')+(_0x504fe3[_0xd022('0xf')]['cutdigits']?_0xd022('0x1c')+_0x504fe3[_0xd022('0xf')]['cutdigits']+'}':'${EXTEN}'),'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x504fe3[_0xd022('0x15')]++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});}_0x504fe3['extensions']['push']({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':'Set','appdata':_0xd022('0x18')+_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')],'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0]['exten'],'priority':_0x504fe3[_0xd022('0x15')]++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});var _0x5ad0d3=_0x504fe3[_0xd022('0x15')]++;_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':_0xd022('0x1d'),'appdata':_0xd022('0x1e')+(_0x5ad0d3+0x2)+_0xd022('0x1f')+(_0x5ad0d3+0x1)+')','context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x5ad0d3,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});if(_0x504fe3[_0xd022('0xf')]){_0x504fe3['extensions'][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':'Set','appdata':_0x504fe3['extension'][_0xd022('0x20')]?_0xd022('0x21')+_0x504fe3[_0xd022('0xf')]['cutdigits']+'}':_0xd022('0x22'),'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x504fe3['priority']++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});}_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':_0xd022('0x13'),'appdata':'outboundrouteid='+_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')],'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x504fe3['priority']++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});if(_0x504fe3[_0xd022('0xf')]&&_0x504fe3['extension']['hasOwnProperty'](_0xd022('0x23'))&&_0x504fe3[_0xd022('0xf')]['recordingFormat']!==_0xd022('0x24')){_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':'Set','appdata':_0xd022('0x25'),'context':_0xee84e8[_0x52d4fe][0x0]['context'],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x504fe3[_0xd022('0x15')]++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});_0x504fe3[_0xd022('0xe')]['push']({'type':_0xee84e8[_0x52d4fe][0x0]['type'],'app':'Set','appdata':_0xd022('0x26')+_0x504fe3[_0xd022('0xf')][_0xd022('0x23')]||_0xd022('0x27'),'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0]['exten'],'priority':_0x504fe3['priority']++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0]['VoiceExtensionId']});}}_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':_0xd022('0x13'),'appdata':_0xd022('0x28'),'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0]['exten'],'priority':_0x504fe3[_0xd022('0x15')]++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0xee84e8[_0x52d4fe][0x0]['context'],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x504fe3['priority']++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0]['VoiceExtensionId']});_0x504fe3[_0xd022('0xe')][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':_0xd022('0x13'),'appdata':_0xd022('0x29'),'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'priority':_0x504fe3[_0xd022('0x15')]++,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0]['VoiceExtensionId']});for(var _0x3d4106=0x0,_0x595852=0x0;_0x3d4106<_0xee84e8[_0x52d4fe]['length'];_0x3d4106+=0x1,_0x595852=0x0){var _0x8c0698=_0xee84e8[_0x52d4fe][_0x3d4106];if(_0x8c0698['type']){_0x8c0698[_0xd022('0x12')]=_0x8c0698[_0xd022('0x12')][_0xd022('0x2a')]();}var _0x31849c=[];var _0x382c13=[];delete _0x8c0698['id'];delete _0x8c0698[_0xd022('0x2b')];delete _0x8c0698[_0xd022('0x2c')];var _0x4d0bcf=_0x8c0698['interval']!=='*,*,*,*'?[_0x8c0698[_0xd022('0x2d')]]:_0x8c0698[_0xd022('0x6')]?_['map'](_[_0xd022('0xb')](_0x504fe3[_0xd022('0x2e')],{'IntervalId':_0x8c0698[_0xd022('0x6')]}),_0xd022('0x2d')):[];if(_0x8c0698[_0xd022('0x2f')](_0xd022('0x30'))){if(_0x8c0698[_0xd022('0x30')]&&_0x8c0698[_0xd022('0x30')]!=='--'){_0x31849c['push']({'type':_0x8c0698[_0xd022('0x12')],'app':_0xd022('0x13'),'appdata':_0xd022('0x31')+_0x8c0698['tag'],'context':_0x8c0698[_0xd022('0x19')],'exten':_0x8c0698[_0xd022('0xc')],'priority':_0x4d0bcf[_0xd022('0x32')]+_0x504fe3['priority']+_0x595852++,'VoiceExtensionId':_0x8c0698[_0xd022('0x16')]});}}if(_0x8c0698[_0xd022('0x12')]===_0xd022('0x1a')&&_0x8c0698['hasOwnProperty']('callerID')){if(_0x8c0698[_0xd022('0x33')]){_0x31849c[_0xd022('0x11')]({'type':_0x8c0698[_0xd022('0x12')],'app':_0xd022('0x1d'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x8c0698[_0xd022('0x33')]+')','context':_0x8c0698[_0xd022('0x19')],'exten':_0x8c0698[_0xd022('0xc')],'priority':_0x4d0bcf[_0xd022('0x32')]+_0x504fe3[_0xd022('0x15')]+_0x595852++,'VoiceExtensionId':_0x8c0698[_0xd022('0x16')]});}else{_0x31849c[_0xd022('0x11')]({'type':_0x8c0698['type'],'app':_0xd022('0x1d'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x8c0698[_0xd022('0x19')],'exten':_0x8c0698[_0xd022('0xc')],'priority':_0x4d0bcf[_0xd022('0x32')]+_0x504fe3['priority']+_0x595852++,'VoiceExtensionId':_0x8c0698[_0xd022('0x16')]});}}if(_0x8c0698[_0xd022('0x2f')]('answer')){if(_0x3f4051[_0xd022('0x34')](_0x8c0698[_0xd022('0x35')][_0xd022('0x2a')]())>=0x0&&_0x8c0698[_0xd022('0x36')]!==_0xd022('0x37')){if(_0x8c0698[_0xd022('0x38')]){_0x31849c[_0xd022('0x11')]({'type':_0x8c0698[_0xd022('0x12')],'app':_0xd022('0x1d'),'appdata':_0xd022('0x39'),'context':_0x8c0698[_0xd022('0x19')],'exten':_0x8c0698['exten'],'priority':_0x4d0bcf[_0xd022('0x32')]+_0x504fe3[_0xd022('0x15')]+_0x595852++,'VoiceExtensionId':_0x8c0698[_0xd022('0x16')]});_0x31849c['push']({'type':_0x8c0698[_0xd022('0x12')],'app':'Set','appdata':_0xd022('0x3a'),'context':_0x8c0698['context'],'exten':_0x8c0698[_0xd022('0xc')],'priority':_0x4d0bcf[_0xd022('0x32')]+_0x504fe3[_0xd022('0x15')]+_0x595852++,'VoiceExtensionId':_0x8c0698[_0xd022('0x16')]});}else{_0x31849c[_0xd022('0x11')]({'type':_0x8c0698['type'],'app':'ExecIf','appdata':_0xd022('0x3b'),'context':_0x8c0698[_0xd022('0x19')],'exten':_0x8c0698[_0xd022('0xc')],'priority':_0x4d0bcf['length']+_0x504fe3[_0xd022('0x15')]+_0x595852++,'VoiceExtensionId':_0x8c0698[_0xd022('0x16')]});_0x31849c[_0xd022('0x11')]({'type':_0x8c0698[_0xd022('0x12')],'app':_0xd022('0x13'),'appdata':_0xd022('0x3c'),'context':_0x8c0698[_0xd022('0x19')],'exten':_0x8c0698[_0xd022('0xc')],'priority':_0x4d0bcf[_0xd022('0x32')]+_0x504fe3[_0xd022('0x15')]+_0x595852++,'VoiceExtensionId':_0x8c0698[_0xd022('0x16')]});}}}for(var _0x3817a9=0x0;_0x3817a9<_0x4d0bcf[_0xd022('0x32')];_0x3817a9+=0x1){var _0x23b6ab=_0x504fe3[_0xd022('0x15')]+_0x4d0bcf[_0xd022('0x32')];var _0x5ed973=_0x3817a9===_0x4d0bcf[_0xd022('0x32')]-0x1?_0x504fe3['priority']+_0x31849c[_0xd022('0x32')]+_0x382c13[_0xd022('0x32')]+0x2:_0x504fe3['priority']+_0x3817a9+0x1;_0x31849c[_0xd022('0x3d')](_0x3817a9,0x0,{'type':_0x8c0698['type'],'app':_0xd022('0x3e'),'appdata':_0x4d0bcf[_0x3817a9]+'?'+_0x8c0698[_0xd022('0x19')]+_0xd022('0x3f')+_0x23b6ab+':'+_0x8c0698['context']+',${EXTEN},'+_0x5ed973,'exten':_0x8c0698[_0xd022('0xc')],'context':_0x8c0698['context'],'priority':_0x504fe3[_0xd022('0x15')]+_0x3817a9,'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});}_0x8c0698[_0xd022('0x15')]=_0x31849c[_0xd022('0x32')]?_[_0xd022('0x40')](_0x31849c)[_0xd022('0x15')]+0x1:_0x504fe3[_0xd022('0x15')];_0x504fe3['priority']=(_0x382c13[_0xd022('0x32')]?_[_0xd022('0x40')](_0x382c13)[_0xd022('0x15')]:_0x8c0698[_0xd022('0x15')])+0x1;_0x504fe3[_0xd022('0xe')]=_[_0xd022('0x41')](_0x504fe3[_0xd022('0xe')],_0x31849c,[_0x8c0698],_0x382c13);}_0x504fe3['extensions'][_0xd022('0x11')]({'type':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x12')],'app':'Hangup','exten':_0xee84e8[_0x52d4fe][0x0][_0xd022('0xc')],'context':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x19')],'priority':_0x504fe3['priority'],'VoiceExtensionId':_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]});_0x501ef4['push'](_0xee84e8[_0x52d4fe][0x0][_0xd022('0x16')]);_0x1afaf1=_[_0xd022('0x41')](_0x1afaf1,_0x504fe3[_0xd022('0xe')]);}}return _0x4e1dd2[_0xd022('0x42')](function(_0xcc6094){return _0x4e1dd2[_0xd022('0x4')][_0xd022('0x5')][_0xd022('0x43')]({'where':{'VoiceExtensionId':{'$in':_0x501ef4}},'transaction':_0xcc6094})[_0xd022('0x7')](function(_0x2c7a45){return _0x4e1dd2[_0xd022('0x4')][_0xd022('0x5')]['bulkCreate'](_[_0xd022('0x44')](_0x1afaf1,'priority'),{'transaction':_0xcc6094});});});})[_0xd022('0x45')](function(_0x35238a){console[_0xd022('0x46')](_0x35238a);});}exports[_0xd022('0x47')]=rewrite;