5732f4ef8169a26934d4f3220b049d622eb1fa7b
[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 _0x049e=['$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice',',${EXTEN},','last','concat','Hangup','transaction','destroy','sortBy','catch','error','rewrite','lodash','util','models','Interval','findAll','then','VoiceExtension','IntervalId','uniq','map','groupBy','exten','queue','playback','hasOwnProperty','priority','extensions','extension','type','Set','CDR(type)=%s','push','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','context','VoiceExtensionId','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','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','interval','*,*,*,*','intervals','tag','CDR(tag)=','outbound','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','app','toLowerCase','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1'];(function(_0x4c348f,_0x4f7b5f){var _0x273668=function(_0x473225){while(--_0x473225){_0x4c348f['push'](_0x4c348f['shift']());}};_0x273668(++_0x4f7b5f);}(_0x049e,0x16a));var _0xe049=function(_0x1b3a5c,_0x2f9d5f){_0x1b3a5c=_0x1b3a5c-0x0;var _0x2ae8cb=_0x049e[_0x1b3a5c];return _0x2ae8cb;};'use strict';var _=require(_0xe049('0x0'));var util=require(_0xe049('0x1'));function rewrite(_0x5efb24,_0x30ed85){var _0x47aa93=this;return _0x5efb24[_0xe049('0x2')][_0xe049('0x3')][_0xe049('0x4')]({'raw':!![]})[_0xe049('0x5')](function(_0x2abd06){_0x47aa93['intervals']=_0x2abd06;return _0x5efb24[_0xe049('0x2')][_0xe049('0x6')][_0xe049('0x4')]({'where':{'IntervalId':_0x30ed85[_0xe049('0x7')]},'raw':!![]});})[_0xe049('0x5')](function(_0x17945b){return _0x5efb24[_0xe049('0x2')]['VoiceExtension'][_0xe049('0x4')]({'where':{'exten':{'$in':_[_0xe049('0x8')](_[_0xe049('0x9')](_0x17945b,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0xe049('0x5')](function(_0x2ac671){var _0x32a065=_['filter'](_0x2ac671,{'priority':'1'});var _0x49e2fe=_['filter'](_0x2ac671,{'isApp':0x1});var _0x25830d=_[_0xe049('0xa')](_0x49e2fe,_0xe049('0xb'));var _0x359931=[_0xe049('0xc'),_0xe049('0xd')];var _0xdd1814=[];var _0xd19623=[];for(var _0x5272f4 in _0x25830d){if(_0x25830d[_0xe049('0xe')](_0x5272f4)){_0x47aa93[_0xe049('0xf')]=0x2;_0x47aa93[_0xe049('0x10')]=[];_0x47aa93[_0xe049('0x11')]=_['find'](_0x32a065,{'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')]});_0x47aa93[_0xe049('0x10')]['push']({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':util['format'](_0xe049('0x14'),_0x25830d[_0x5272f4][0x0][_0xe049('0x12')]),'context':_0x25830d[_0x5272f4][0x0]['context'],'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'priority':_0x47aa93['priority']++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});if(_0x25830d[_0x5272f4][0x0][_0xe049('0x12')]==='outbound'){if(_0x47aa93['extension']){_0x47aa93[_0xe049('0x10')][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0]['type'],'app':'Set','appdata':_0xe049('0x16')+(_0x47aa93[_0xe049('0x11')][_0xe049('0x17')]?_0xe049('0x18')+_0x47aa93['extension']['cutdigits']+'}':_0xe049('0x19')),'context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'exten':_0x25830d[_0x5272f4][0x0]['exten'],'priority':_0x47aa93[_0xe049('0xf')]++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0][_0xe049('0x1b')]});}_0x47aa93[_0xe049('0x10')]['push']({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':'CDR(routeid)='+_0x25830d[_0x5272f4][0x0]['VoiceExtensionId'],'context':_0x25830d[_0x5272f4][0x0]['context'],'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'priority':_0x47aa93['priority']++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});var _0x1aafd1=_0x47aa93[_0xe049('0xf')]++;_0x47aa93['extensions'][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x1c'),'appdata':_0xe049('0x1d')+(_0x1aafd1+0x2)+_0xe049('0x1e')+(_0x1aafd1+0x1)+')','context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'exten':_0x25830d[_0x5272f4][0x0]['exten'],'priority':_0x1aafd1,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});if(_0x47aa93[_0xe049('0x11')]){_0x47aa93['extensions'][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0]['type'],'app':_0xe049('0x13'),'appdata':_0x47aa93[_0xe049('0x11')]['cutdigits']?_0xe049('0x1f')+_0x47aa93[_0xe049('0x11')][_0xe049('0x17')]+'}':_0xe049('0x20'),'context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'priority':_0x47aa93[_0xe049('0xf')]++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0][_0xe049('0x1b')]});}_0x47aa93[_0xe049('0x10')][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':'Set','appdata':_0xe049('0x21')+_0x25830d[_0x5272f4][0x0][_0xe049('0x1b')],'context':_0x25830d[_0x5272f4][0x0]['context'],'exten':_0x25830d[_0x5272f4][0x0]['exten'],'priority':_0x47aa93['priority']++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});if(_0x47aa93[_0xe049('0x11')]&&_0x47aa93[_0xe049('0x11')][_0xe049('0xe')](_0xe049('0x22'))&&_0x47aa93[_0xe049('0x11')]['recordingFormat']!==_0xe049('0x23')){_0x47aa93[_0xe049('0x10')][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'exten':_0x25830d[_0x5272f4][0x0]['exten'],'priority':_0x47aa93[_0xe049('0xf')]++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});_0x47aa93[_0xe049('0x10')][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':_0xe049('0x24')+_0x47aa93[_0xe049('0x11')][_0xe049('0x22')]||_0xe049('0x25'),'context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'priority':_0x47aa93[_0xe049('0xf')]++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});}}_0x47aa93[_0xe049('0x10')][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':_0xe049('0x26'),'context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'priority':_0x47aa93[_0xe049('0xf')]++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});_0x47aa93[_0xe049('0x10')][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':_0xe049('0x27'),'context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'priority':_0x47aa93[_0xe049('0xf')]++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0][_0xe049('0x1b')]});_0x47aa93[_0xe049('0x10')]['push']({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':_0xe049('0x28'),'context':_0x25830d[_0x5272f4][0x0]['context'],'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'priority':_0x47aa93['priority']++,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']});for(var _0x19dbc4=0x0,_0x5f06d9=0x0;_0x19dbc4<_0x25830d[_0x5272f4][_0xe049('0x29')];_0x19dbc4+=0x1,_0x5f06d9=0x0){var _0x29e029=_0x25830d[_0x5272f4][_0x19dbc4];if(_0x29e029[_0xe049('0x12')]){_0x29e029[_0xe049('0x12')]=_0x29e029[_0xe049('0x12')]['toLowerCase']();}var _0x4261da=[];var _0x921743=[];delete _0x29e029['id'];delete _0x29e029['createdAt'];delete _0x29e029['updatedAt'];var _0x29915f=_0x29e029[_0xe049('0x2a')]!==_0xe049('0x2b')?[_0x29e029[_0xe049('0x2a')]]:_0x29e029[_0xe049('0x7')]?_[_0xe049('0x9')](_['filter'](_0x47aa93[_0xe049('0x2c')],{'IntervalId':_0x29e029[_0xe049('0x7')]}),'interval'):[];if(_0x29e029[_0xe049('0xe')](_0xe049('0x2d'))){if(_0x29e029[_0xe049('0x2d')]&&_0x29e029[_0xe049('0x2d')]!=='--'){_0x4261da[_0xe049('0x15')]({'type':_0x29e029['type'],'app':'Set','appdata':_0xe049('0x2e')+_0x29e029[_0xe049('0x2d')],'context':_0x29e029[_0xe049('0x1a')],'exten':_0x29e029[_0xe049('0xb')],'priority':_0x29915f[_0xe049('0x29')]+_0x47aa93[_0xe049('0xf')]+_0x5f06d9++,'VoiceExtensionId':_0x29e029['VoiceExtensionId']});}}if(_0x29e029[_0xe049('0x12')]===_0xe049('0x2f')&&_0x29e029['hasOwnProperty'](_0xe049('0x30'))){if(_0x29e029['callerID']){_0x4261da[_0xe049('0x15')]({'type':_0x29e029['type'],'app':_0xe049('0x1c'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x29e029[_0xe049('0x30')]+')','context':_0x29e029[_0xe049('0x1a')],'exten':_0x29e029[_0xe049('0xb')],'priority':_0x29915f[_0xe049('0x29')]+_0x47aa93[_0xe049('0xf')]+_0x5f06d9++,'VoiceExtensionId':_0x29e029['VoiceExtensionId']});}else{_0x4261da[_0xe049('0x15')]({'type':_0x29e029[_0xe049('0x12')],'app':_0xe049('0x1c'),'appdata':_0xe049('0x31'),'context':_0x29e029[_0xe049('0x1a')],'exten':_0x29e029[_0xe049('0xb')],'priority':_0x29915f[_0xe049('0x29')]+_0x47aa93[_0xe049('0xf')]+_0x5f06d9++,'VoiceExtensionId':_0x29e029[_0xe049('0x1b')]});}}if(_0x29e029['hasOwnProperty']('answer')){if(_0x359931[_0xe049('0x32')](_0x29e029[_0xe049('0x33')][_0xe049('0x34')]())>=0x0&&_0x29e029[_0xe049('0x35')]!==_0xe049('0x36')){if(_0x29e029[_0xe049('0x37')]){_0x4261da[_0xe049('0x15')]({'type':_0x29e029[_0xe049('0x12')],'app':_0xe049('0x1c'),'appdata':_0xe049('0x38'),'context':_0x29e029[_0xe049('0x1a')],'exten':_0x29e029['exten'],'priority':_0x29915f[_0xe049('0x29')]+_0x47aa93[_0xe049('0xf')]+_0x5f06d9++,'VoiceExtensionId':_0x29e029[_0xe049('0x1b')]});_0x4261da[_0xe049('0x15')]({'type':_0x29e029[_0xe049('0x12')],'app':_0xe049('0x13'),'appdata':_0xe049('0x39'),'context':_0x29e029['context'],'exten':_0x29e029['exten'],'priority':_0x29915f['length']+_0x47aa93[_0xe049('0xf')]+_0x5f06d9++,'VoiceExtensionId':_0x29e029[_0xe049('0x1b')]});}else{_0x4261da['push']({'type':_0x29e029[_0xe049('0x12')],'app':_0xe049('0x1c'),'appdata':_0xe049('0x3a'),'context':_0x29e029[_0xe049('0x1a')],'exten':_0x29e029['exten'],'priority':_0x29915f['length']+_0x47aa93[_0xe049('0xf')]+_0x5f06d9++,'VoiceExtensionId':_0x29e029[_0xe049('0x1b')]});_0x4261da['push']({'type':_0x29e029['type'],'app':_0xe049('0x13'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x29e029[_0xe049('0x1a')],'exten':_0x29e029[_0xe049('0xb')],'priority':_0x29915f['length']+_0x47aa93[_0xe049('0xf')]+_0x5f06d9++,'VoiceExtensionId':_0x29e029['VoiceExtensionId']});}}}for(var _0x356605=0x0;_0x356605<_0x29915f[_0xe049('0x29')];_0x356605+=0x1){var _0x4a2cdd=_0x47aa93[_0xe049('0xf')]+_0x29915f[_0xe049('0x29')];var _0x21c0dc=_0x356605===_0x29915f[_0xe049('0x29')]-0x1?_0x47aa93[_0xe049('0xf')]+_0x4261da[_0xe049('0x29')]+_0x921743[_0xe049('0x29')]+0x2:_0x47aa93[_0xe049('0xf')]+_0x356605+0x1;_0x4261da[_0xe049('0x3b')](_0x356605,0x0,{'type':_0x29e029[_0xe049('0x12')],'app':'GotoIfTime','appdata':_0x29915f[_0x356605]+'?'+_0x29e029[_0xe049('0x1a')]+_0xe049('0x3c')+_0x4a2cdd+':'+_0x29e029[_0xe049('0x1a')]+',${EXTEN},'+_0x21c0dc,'exten':_0x29e029[_0xe049('0xb')],'context':_0x29e029[_0xe049('0x1a')],'priority':_0x47aa93[_0xe049('0xf')]+_0x356605,'VoiceExtensionId':_0x25830d[_0x5272f4][0x0][_0xe049('0x1b')]});}_0x29e029[_0xe049('0xf')]=_0x4261da[_0xe049('0x29')]?_[_0xe049('0x3d')](_0x4261da)['priority']+0x1:_0x47aa93[_0xe049('0xf')];_0x47aa93['priority']=(_0x921743[_0xe049('0x29')]?_['last'](_0x921743)[_0xe049('0xf')]:_0x29e029[_0xe049('0xf')])+0x1;_0x47aa93[_0xe049('0x10')]=_[_0xe049('0x3e')](_0x47aa93[_0xe049('0x10')],_0x4261da,[_0x29e029],_0x921743);}_0x47aa93['extensions'][_0xe049('0x15')]({'type':_0x25830d[_0x5272f4][0x0][_0xe049('0x12')],'app':_0xe049('0x3f'),'exten':_0x25830d[_0x5272f4][0x0][_0xe049('0xb')],'context':_0x25830d[_0x5272f4][0x0][_0xe049('0x1a')],'priority':_0x47aa93[_0xe049('0xf')],'VoiceExtensionId':_0x25830d[_0x5272f4][0x0][_0xe049('0x1b')]});_0xdd1814[_0xe049('0x15')](_0x25830d[_0x5272f4][0x0]['VoiceExtensionId']);_0xd19623=_['concat'](_0xd19623,_0x47aa93[_0xe049('0x10')]);}}return _0x5efb24[_0xe049('0x40')](function(_0x4f657d){return _0x5efb24[_0xe049('0x2')][_0xe049('0x6')][_0xe049('0x41')]({'where':{'VoiceExtensionId':{'$in':_0xdd1814}},'transaction':_0x4f657d})[_0xe049('0x5')](function(_0x503f09){return _0x5efb24['models'][_0xe049('0x6')]['bulkCreate'](_[_0xe049('0x42')](_0xd19623,_0xe049('0xf')),{'transaction':_0x4f657d});});});})[_0xe049('0x43')](function(_0x1a109a){console[_0xe049('0x44')](_0x1a109a);});}exports[_0xe049('0x45')]=rewrite;