e843ce6597b802460f5a0ba6644f9292aac19ba4
[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 _0x36c5=['length','toLowerCase','createdAt','updatedAt','*,*,*,*','interval','tag','CDR(tag)=','outbound','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','concat','Hangup','destroy','catch','rewrite','lodash','util','models','then','intervals','VoiceExtension','findAll','IntervalId','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','push','type','format','CDR(type)=%s','context','inbound','CDR(routeid)=','VoiceExtensionId','Set','CDR(destination)=','extension','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab'];(function(_0x16d10f,_0x2ba2d5){var _0x50c823=function(_0x44e43f){while(--_0x44e43f){_0x16d10f['push'](_0x16d10f['shift']());}};_0x50c823(++_0x2ba2d5);}(_0x36c5,0x16d));var _0x536c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x36c5[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x536c('0x0'));var util=require(_0x536c('0x1'));function rewrite(_0x40be5f,_0x2bc0a2){var _0x39a1f6=this;return _0x40be5f[_0x536c('0x2')]['Interval']['findAll']({'raw':!![]})[_0x536c('0x3')](function(_0x29d901){_0x39a1f6[_0x536c('0x4')]=_0x29d901;return _0x40be5f[_0x536c('0x2')][_0x536c('0x5')][_0x536c('0x6')]({'where':{'IntervalId':_0x2bc0a2[_0x536c('0x7')]},'raw':!![]});})[_0x536c('0x3')](function(_0x38a1b8){return _0x40be5f[_0x536c('0x2')]['VoiceExtension'][_0x536c('0x6')]({'where':{'exten':{'$in':_['uniq'](_[_0x536c('0x8')](_0x38a1b8,_0x536c('0x9')))}},'order':[{'raw':_0x536c('0xa')}],'raw':!![]});})['then'](function(_0x26f85d){var _0x5163e8=_['filter'](_0x26f85d,{'priority':'1'});var _0x5de9ae=_[_0x536c('0xb')](_0x26f85d,{'isApp':0x1});var _0xf40f9b=_[_0x536c('0xc')](_0x5de9ae,_0x536c('0x9'));var _0x213c90=[_0x536c('0xd'),_0x536c('0xe')];var _0x45c261=[];var _0x1bf06e=[];for(var _0x4e17fc in _0xf40f9b){if(_0xf40f9b[_0x536c('0xf')](_0x4e17fc)){_0x39a1f6[_0x536c('0x10')]=0x2;_0x39a1f6[_0x536c('0x11')]=[];_0x39a1f6['extension']=_['find'](_0x5163e8,{'exten':_0xf40f9b[_0x4e17fc][0x0]['exten']});_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':'Set','appdata':util[_0x536c('0x14')](_0x536c('0x15'),_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')]),'context':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x16')],'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0]['VoiceExtensionId']});if(_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')]===_0x536c('0x17')){_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':'Set','appdata':_0x536c('0x18')+_0xf40f9b[_0x4e17fc][0x0]['VoiceExtensionId'],'context':_0xf40f9b[_0x4e17fc][0x0]['context'],'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});}else if(_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')]==='outbound'){if(_0x39a1f6['extension']){_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':_0x536c('0x1b')+(_0x39a1f6[_0x536c('0x1c')][_0x536c('0x1d')]?'${EXTEN:'+_0x39a1f6[_0x536c('0x1c')][_0x536c('0x1d')]+'}':_0x536c('0x1e')),'context':_0xf40f9b[_0x4e17fc][0x0]['context'],'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'priority':_0x39a1f6['priority']++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});}_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':'Set','appdata':_0x536c('0x18')+_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')],'context':_0xf40f9b[_0x4e17fc][0x0]['context'],'exten':_0xf40f9b[_0x4e17fc][0x0]['exten'],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});var _0x303f1c=_0x39a1f6[_0x536c('0x10')]++;_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x1f'),'appdata':_0x536c('0x20')+(_0x303f1c+0x2)+_0x536c('0x21')+(_0x303f1c+0x1)+')','context':_0xf40f9b[_0x4e17fc][0x0]['context'],'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'priority':_0x303f1c,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});if(_0x39a1f6[_0x536c('0x1c')]){_0x39a1f6['extensions'][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':_0x39a1f6[_0x536c('0x1c')]['cutdigits']?_0x536c('0x22')+_0x39a1f6['extension'][_0x536c('0x1d')]+'}':_0x536c('0x23'),'context':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x16')],'exten':_0xf40f9b[_0x4e17fc][0x0]['exten'],'priority':_0x39a1f6['priority']++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});}_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':'Set','appdata':_0x536c('0x24')+_0xf40f9b[_0x4e17fc][0x0]['VoiceExtensionId'],'context':_0xf40f9b[_0x4e17fc][0x0]['context'],'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});if(_0x39a1f6['extension']&&_0x39a1f6[_0x536c('0x1c')][_0x536c('0xf')]('recordingFormat')&&_0x39a1f6[_0x536c('0x1c')][_0x536c('0x25')]!==_0x536c('0x26')){_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x16')],'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':_0x536c('0x27')+_0x39a1f6[_0x536c('0x1c')]['recordingFormat']||_0x536c('0x28'),'context':_0xf40f9b[_0x4e17fc][0x0]['context'],'exten':_0xf40f9b[_0x4e17fc][0x0]['exten'],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});}}_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':_0x536c('0x29'),'context':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x16')],'exten':_0xf40f9b[_0x4e17fc][0x0]['exten'],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});_0x39a1f6['extensions']['push']({'type':_0xf40f9b[_0x4e17fc][0x0]['type'],'app':_0x536c('0x1a'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x16')],'exten':_0xf40f9b[_0x4e17fc][0x0]['exten'],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0]['VoiceExtensionId']});_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':_0x536c('0x2a'),'context':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x16')],'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'priority':_0x39a1f6[_0x536c('0x10')]++,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});for(var _0x99fbe3=0x0,_0x37762f=0x0;_0x99fbe3<_0xf40f9b[_0x4e17fc][_0x536c('0x2b')];_0x99fbe3+=0x1,_0x37762f=0x0){var _0x544bac=_0xf40f9b[_0x4e17fc][_0x99fbe3];if(_0x544bac[_0x536c('0x13')]){_0x544bac['type']=_0x544bac[_0x536c('0x13')][_0x536c('0x2c')]();}var _0x8dc9e1=[];var _0x2cf3f7=[];delete _0x544bac['id'];delete _0x544bac[_0x536c('0x2d')];delete _0x544bac[_0x536c('0x2e')];var _0x327565=_0x544bac['interval']!==_0x536c('0x2f')?[_0x544bac[_0x536c('0x30')]]:_0x544bac['IntervalId']?_['map'](_[_0x536c('0xb')](_0x39a1f6[_0x536c('0x4')],{'IntervalId':_0x544bac['IntervalId']}),_0x536c('0x30')):[];if(_0x544bac[_0x536c('0xf')](_0x536c('0x31'))){if(_0x544bac[_0x536c('0x31')]&&_0x544bac[_0x536c('0x31')]!=='--'){_0x8dc9e1[_0x536c('0x12')]({'type':_0x544bac[_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':_0x536c('0x32')+_0x544bac[_0x536c('0x31')],'context':_0x544bac[_0x536c('0x16')],'exten':_0x544bac[_0x536c('0x9')],'priority':_0x327565['length']+_0x39a1f6[_0x536c('0x10')]+_0x37762f++,'VoiceExtensionId':_0x544bac[_0x536c('0x19')]});}}if(_0x544bac[_0x536c('0x13')]===_0x536c('0x33')&&_0x544bac[_0x536c('0xf')](_0x536c('0x34'))){if(_0x544bac['callerID']){_0x8dc9e1[_0x536c('0x12')]({'type':_0x544bac[_0x536c('0x13')],'app':_0x536c('0x1f'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x544bac[_0x536c('0x34')]+')','context':_0x544bac['context'],'exten':_0x544bac[_0x536c('0x9')],'priority':_0x327565['length']+_0x39a1f6[_0x536c('0x10')]+_0x37762f++,'VoiceExtensionId':_0x544bac[_0x536c('0x19')]});}else{_0x8dc9e1[_0x536c('0x12')]({'type':_0x544bac[_0x536c('0x13')],'app':_0x536c('0x1f'),'appdata':_0x536c('0x35'),'context':_0x544bac[_0x536c('0x16')],'exten':_0x544bac[_0x536c('0x9')],'priority':_0x327565['length']+_0x39a1f6['priority']+_0x37762f++,'VoiceExtensionId':_0x544bac[_0x536c('0x19')]});}}if(_0x544bac['hasOwnProperty']('answer')){if(_0x213c90[_0x536c('0x36')](_0x544bac['app'][_0x536c('0x2c')]())>=0x0&&_0x544bac[_0x536c('0x37')]!==_0x536c('0x38')){if(_0x544bac['answer']){_0x8dc9e1[_0x536c('0x12')]({'type':_0x544bac[_0x536c('0x13')],'app':_0x536c('0x1f'),'appdata':_0x536c('0x39'),'context':_0x544bac[_0x536c('0x16')],'exten':_0x544bac['exten'],'priority':_0x327565['length']+_0x39a1f6['priority']+_0x37762f++,'VoiceExtensionId':_0x544bac[_0x536c('0x19')]});_0x8dc9e1[_0x536c('0x12')]({'type':_0x544bac['type'],'app':_0x536c('0x1a'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x544bac[_0x536c('0x16')],'exten':_0x544bac[_0x536c('0x9')],'priority':_0x327565['length']+_0x39a1f6[_0x536c('0x10')]+_0x37762f++,'VoiceExtensionId':_0x544bac[_0x536c('0x19')]});}else{_0x8dc9e1[_0x536c('0x12')]({'type':_0x544bac[_0x536c('0x13')],'app':'ExecIf','appdata':_0x536c('0x3a'),'context':_0x544bac[_0x536c('0x16')],'exten':_0x544bac[_0x536c('0x9')],'priority':_0x327565[_0x536c('0x2b')]+_0x39a1f6[_0x536c('0x10')]+_0x37762f++,'VoiceExtensionId':_0x544bac[_0x536c('0x19')]});_0x8dc9e1[_0x536c('0x12')]({'type':_0x544bac[_0x536c('0x13')],'app':_0x536c('0x1a'),'appdata':_0x536c('0x3b'),'context':_0x544bac[_0x536c('0x16')],'exten':_0x544bac[_0x536c('0x9')],'priority':_0x327565[_0x536c('0x2b')]+_0x39a1f6[_0x536c('0x10')]+_0x37762f++,'VoiceExtensionId':_0x544bac['VoiceExtensionId']});}}}for(var _0x49eccc=0x0;_0x49eccc<_0x327565[_0x536c('0x2b')];_0x49eccc+=0x1){var _0x48e3ea=_0x39a1f6[_0x536c('0x10')]+_0x327565[_0x536c('0x2b')];var _0x15c86f=_0x49eccc===_0x327565[_0x536c('0x2b')]-0x1?_0x39a1f6[_0x536c('0x10')]+_0x8dc9e1[_0x536c('0x2b')]+_0x2cf3f7['length']+0x2:_0x39a1f6['priority']+_0x49eccc+0x1;_0x8dc9e1[_0x536c('0x3c')](_0x49eccc,0x0,{'type':_0x544bac[_0x536c('0x13')],'app':_0x536c('0x3d'),'appdata':_0x327565[_0x49eccc]+'?'+_0x544bac['context']+_0x536c('0x3e')+_0x48e3ea+':'+_0x544bac[_0x536c('0x16')]+_0x536c('0x3e')+_0x15c86f,'exten':_0x544bac['exten'],'context':_0x544bac[_0x536c('0x16')],'priority':_0x39a1f6[_0x536c('0x10')]+_0x49eccc,'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0]['VoiceExtensionId']});}_0x544bac[_0x536c('0x10')]=_0x8dc9e1[_0x536c('0x2b')]?_['last'](_0x8dc9e1)[_0x536c('0x10')]+0x1:_0x39a1f6[_0x536c('0x10')];_0x39a1f6[_0x536c('0x10')]=(_0x2cf3f7['length']?_['last'](_0x2cf3f7)[_0x536c('0x10')]:_0x544bac['priority'])+0x1;_0x39a1f6[_0x536c('0x11')]=_[_0x536c('0x3f')](_0x39a1f6[_0x536c('0x11')],_0x8dc9e1,[_0x544bac],_0x2cf3f7);}_0x39a1f6[_0x536c('0x11')][_0x536c('0x12')]({'type':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x13')],'app':_0x536c('0x40'),'exten':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x9')],'context':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x16')],'priority':_0x39a1f6[_0x536c('0x10')],'VoiceExtensionId':_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]});_0x45c261['push'](_0xf40f9b[_0x4e17fc][0x0][_0x536c('0x19')]);_0x1bf06e=_[_0x536c('0x3f')](_0x1bf06e,_0x39a1f6[_0x536c('0x11')]);}}return _0x40be5f['transaction'](function(_0x22a825){return _0x40be5f[_0x536c('0x2')][_0x536c('0x5')][_0x536c('0x41')]({'where':{'VoiceExtensionId':{'$in':_0x45c261}},'transaction':_0x22a825})[_0x536c('0x3')](function(_0x2764b6){return _0x40be5f[_0x536c('0x2')][_0x536c('0x5')]['bulkCreate'](_['sortBy'](_0x1bf06e,_0x536c('0x10')),{'transaction':_0x22a825});});});})[_0x536c('0x42')](function(_0x32797b){console['error'](_0x32797b);});}exports[_0x536c('0x43')]=rewrite;