fccb08dba943ff459eedbc1cee51a44575bc57c5
[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 _0xa4b8=['${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','MONITOR_OPTIONS=ab','createdAt','updatedAt','interval','*,*,*,*','IntervalId','tag','length','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','indexOf','app','toLowerCase','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','last','concat','transaction','destroy','bulkCreate','sortBy','catch','error','util','models','Interval','then','intervals','findAll','VoiceExtension','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','exten','playback','hasOwnProperty','priority','extensions','extension','find','push','type','Set','format','CDR(type)=%s','VoiceExtensionId','inbound','CDR(routeid)=','context','outbound','CDR(destination)=','cutdigits'];(function(_0x310ca4,_0x195e91){var _0x303c6f=function(_0x53dbf2){while(--_0x53dbf2){_0x310ca4['push'](_0x310ca4['shift']());}};_0x303c6f(++_0x195e91);}(_0xa4b8,0x197));var _0x8a4b=function(_0x2edf70,_0x3b24e1){_0x2edf70=_0x2edf70-0x0;var _0x193515=_0xa4b8[_0x2edf70];return _0x193515;};'use strict';var _=require('lodash');var util=require(_0x8a4b('0x0'));function rewrite(_0x2cc344,_0x3b57ef){var _0x3c8ec6=this;return _0x2cc344[_0x8a4b('0x1')][_0x8a4b('0x2')]['findAll']({'raw':!![]})[_0x8a4b('0x3')](function(_0x5683e0){_0x3c8ec6[_0x8a4b('0x4')]=_0x5683e0;return _0x2cc344['models']['VoiceExtension'][_0x8a4b('0x5')]({'where':{'IntervalId':_0x3b57ef['IntervalId']},'raw':!![]});})[_0x8a4b('0x3')](function(_0x2e899b){return _0x2cc344[_0x8a4b('0x1')][_0x8a4b('0x6')][_0x8a4b('0x5')]({'where':{'exten':{'$in':_[_0x8a4b('0x7')](_[_0x8a4b('0x8')](_0x2e899b,'exten'))}},'order':[{'raw':_0x8a4b('0x9')}],'raw':!![]});})[_0x8a4b('0x3')](function(_0x483aee){var _0x4f581d=_[_0x8a4b('0xa')](_0x483aee,{'priority':'1'});var _0x37fb6e=_['filter'](_0x483aee,{'isApp':0x1});var _0x11d1f9=_[_0x8a4b('0xb')](_0x37fb6e,_0x8a4b('0xc'));var _0x424b8d=['queue',_0x8a4b('0xd')];var _0x4c738e=[];var _0x4360ad=[];for(var _0x234acd in _0x11d1f9){if(_0x11d1f9[_0x8a4b('0xe')](_0x234acd)){_0x3c8ec6[_0x8a4b('0xf')]=0x2;_0x3c8ec6[_0x8a4b('0x10')]=[];_0x3c8ec6[_0x8a4b('0x11')]=_[_0x8a4b('0x12')](_0x4f581d,{'exten':_0x11d1f9[_0x234acd][0x0]['exten']});_0x3c8ec6[_0x8a4b('0x10')][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':util[_0x8a4b('0x16')](_0x8a4b('0x17'),_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')]),'context':_0x11d1f9[_0x234acd][0x0]['context'],'exten':_0x11d1f9[_0x234acd][0x0]['exten'],'priority':_0x3c8ec6['priority']++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});if(_0x11d1f9[_0x234acd][0x0]['type']===_0x8a4b('0x19')){_0x3c8ec6[_0x8a4b('0x10')]['push']({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':'Set','appdata':_0x8a4b('0x1a')+_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')],'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'priority':_0x3c8ec6['priority']++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});}else if(_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')]===_0x8a4b('0x1c')){if(_0x3c8ec6['extension']){_0x3c8ec6['extensions'][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':_0x8a4b('0x1d')+(_0x3c8ec6[_0x8a4b('0x11')][_0x8a4b('0x1e')]?_0x8a4b('0x1f')+_0x3c8ec6[_0x8a4b('0x11')]['cutdigits']+'}':_0x8a4b('0x20')),'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'priority':_0x3c8ec6[_0x8a4b('0xf')]++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});}_0x3c8ec6[_0x8a4b('0x10')][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0]['type'],'app':_0x8a4b('0x15'),'appdata':'CDR(routeid)='+_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')],'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'priority':_0x3c8ec6[_0x8a4b('0xf')]++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});var _0xcb1fde=_0x3c8ec6[_0x8a4b('0xf')]++;_0x3c8ec6[_0x8a4b('0x10')][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0]['type'],'app':_0x8a4b('0x21'),'appdata':_0x8a4b('0x22')+(_0xcb1fde+0x2)+_0x8a4b('0x23')+(_0xcb1fde+0x1)+')','context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0]['exten'],'priority':_0xcb1fde,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});if(_0x3c8ec6[_0x8a4b('0x11')]){_0x3c8ec6['extensions'][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':_0x3c8ec6[_0x8a4b('0x11')]['cutdigits']?_0x8a4b('0x24')+_0x3c8ec6[_0x8a4b('0x11')][_0x8a4b('0x1e')]+'}':_0x8a4b('0x25'),'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0]['exten'],'priority':_0x3c8ec6[_0x8a4b('0xf')]++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});}_0x3c8ec6['extensions'][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':'outboundrouteid='+_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')],'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'priority':_0x3c8ec6[_0x8a4b('0xf')]++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});if(_0x3c8ec6[_0x8a4b('0x11')]&&_0x3c8ec6['extension'][_0x8a4b('0xe')]('recordingFormat')&&_0x3c8ec6['extension'][_0x8a4b('0x26')]!==_0x8a4b('0x27')){_0x3c8ec6['extensions'][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0]['type'],'app':_0x8a4b('0x15'),'appdata':_0x8a4b('0x28'),'context':_0x11d1f9[_0x234acd][0x0]['context'],'exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'priority':_0x3c8ec6[_0x8a4b('0xf')]++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});_0x3c8ec6[_0x8a4b('0x10')][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0]['type'],'app':_0x8a4b('0x15'),'appdata':_0x8a4b('0x29')+_0x3c8ec6[_0x8a4b('0x11')]['recordingFormat']||_0x8a4b('0x2a'),'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'priority':_0x3c8ec6[_0x8a4b('0xf')]++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0]['VoiceExtensionId']});}}_0x3c8ec6[_0x8a4b('0x10')][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0]['exten'],'priority':_0x3c8ec6['priority']++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0]['VoiceExtensionId']});_0x3c8ec6[_0x8a4b('0x10')][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0]['exten'],'priority':_0x3c8ec6[_0x8a4b('0xf')]++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});_0x3c8ec6['extensions']['push']({'type':_0x11d1f9[_0x234acd][0x0]['type'],'app':_0x8a4b('0x15'),'appdata':_0x8a4b('0x2b'),'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'priority':_0x3c8ec6['priority']++,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});for(var _0x3c79fd=0x0,_0x4de2f0=0x0;_0x3c79fd<_0x11d1f9[_0x234acd]['length'];_0x3c79fd+=0x1,_0x4de2f0=0x0){var _0x59e9f2=_0x11d1f9[_0x234acd][_0x3c79fd];if(_0x59e9f2[_0x8a4b('0x14')]){_0x59e9f2[_0x8a4b('0x14')]=_0x59e9f2['type']['toLowerCase']();}var _0x423fed=[];var _0x3804f6=[];delete _0x59e9f2['id'];delete _0x59e9f2[_0x8a4b('0x2c')];delete _0x59e9f2[_0x8a4b('0x2d')];var _0x23fd6d=_0x59e9f2[_0x8a4b('0x2e')]!==_0x8a4b('0x2f')?[_0x59e9f2['interval']]:_0x59e9f2['IntervalId']?_[_0x8a4b('0x8')](_[_0x8a4b('0xa')](_0x3c8ec6[_0x8a4b('0x4')],{'IntervalId':_0x59e9f2[_0x8a4b('0x30')]}),_0x8a4b('0x2e')):[];if(_0x59e9f2['hasOwnProperty'](_0x8a4b('0x31'))){if(_0x59e9f2[_0x8a4b('0x31')]&&_0x59e9f2[_0x8a4b('0x31')]!=='--'){_0x423fed[_0x8a4b('0x13')]({'type':_0x59e9f2[_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':'CDR(tag)='+_0x59e9f2[_0x8a4b('0x31')],'context':_0x59e9f2[_0x8a4b('0x1b')],'exten':_0x59e9f2[_0x8a4b('0xc')],'priority':_0x23fd6d[_0x8a4b('0x32')]+_0x3c8ec6[_0x8a4b('0xf')]+_0x4de2f0++,'VoiceExtensionId':_0x59e9f2['VoiceExtensionId']});}}if(_0x59e9f2['type']===_0x8a4b('0x1c')&&_0x59e9f2[_0x8a4b('0xe')]('callerID')){if(_0x59e9f2[_0x8a4b('0x33')]){_0x423fed[_0x8a4b('0x13')]({'type':_0x59e9f2[_0x8a4b('0x14')],'app':_0x8a4b('0x21'),'appdata':_0x8a4b('0x34')+_0x59e9f2[_0x8a4b('0x33')]+')','context':_0x59e9f2[_0x8a4b('0x1b')],'exten':_0x59e9f2['exten'],'priority':_0x23fd6d[_0x8a4b('0x32')]+_0x3c8ec6[_0x8a4b('0xf')]+_0x4de2f0++,'VoiceExtensionId':_0x59e9f2[_0x8a4b('0x18')]});}else{_0x423fed[_0x8a4b('0x13')]({'type':_0x59e9f2[_0x8a4b('0x14')],'app':_0x8a4b('0x21'),'appdata':_0x8a4b('0x35'),'context':_0x59e9f2['context'],'exten':_0x59e9f2[_0x8a4b('0xc')],'priority':_0x23fd6d['length']+_0x3c8ec6['priority']+_0x4de2f0++,'VoiceExtensionId':_0x59e9f2['VoiceExtensionId']});}}if(_0x59e9f2[_0x8a4b('0xe')](_0x8a4b('0x36'))){if(_0x424b8d[_0x8a4b('0x37')](_0x59e9f2[_0x8a4b('0x38')][_0x8a4b('0x39')]())>=0x0&&_0x59e9f2[_0x8a4b('0x3a')]!==_0x8a4b('0x3b')){if(_0x59e9f2['answer']){_0x423fed[_0x8a4b('0x13')]({'type':_0x59e9f2['type'],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x59e9f2[_0x8a4b('0x1b')],'exten':_0x59e9f2[_0x8a4b('0xc')],'priority':_0x23fd6d[_0x8a4b('0x32')]+_0x3c8ec6['priority']+_0x4de2f0++,'VoiceExtensionId':_0x59e9f2[_0x8a4b('0x18')]});_0x423fed[_0x8a4b('0x13')]({'type':_0x59e9f2[_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':_0x8a4b('0x3c'),'context':_0x59e9f2['context'],'exten':_0x59e9f2['exten'],'priority':_0x23fd6d[_0x8a4b('0x32')]+_0x3c8ec6['priority']+_0x4de2f0++,'VoiceExtensionId':_0x59e9f2[_0x8a4b('0x18')]});}else{_0x423fed[_0x8a4b('0x13')]({'type':_0x59e9f2[_0x8a4b('0x14')],'app':_0x8a4b('0x21'),'appdata':_0x8a4b('0x3d'),'context':_0x59e9f2[_0x8a4b('0x1b')],'exten':_0x59e9f2[_0x8a4b('0xc')],'priority':_0x23fd6d[_0x8a4b('0x32')]+_0x3c8ec6[_0x8a4b('0xf')]+_0x4de2f0++,'VoiceExtensionId':_0x59e9f2[_0x8a4b('0x18')]});_0x423fed[_0x8a4b('0x13')]({'type':_0x59e9f2[_0x8a4b('0x14')],'app':_0x8a4b('0x15'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x59e9f2[_0x8a4b('0x1b')],'exten':_0x59e9f2[_0x8a4b('0xc')],'priority':_0x23fd6d[_0x8a4b('0x32')]+_0x3c8ec6[_0x8a4b('0xf')]+_0x4de2f0++,'VoiceExtensionId':_0x59e9f2[_0x8a4b('0x18')]});}}}for(var _0x3d1e4b=0x0;_0x3d1e4b<_0x23fd6d[_0x8a4b('0x32')];_0x3d1e4b+=0x1){var _0x3bef3a=_0x3c8ec6['priority']+_0x23fd6d[_0x8a4b('0x32')];var _0x4edd02=_0x3d1e4b===_0x23fd6d[_0x8a4b('0x32')]-0x1?_0x3c8ec6[_0x8a4b('0xf')]+_0x423fed[_0x8a4b('0x32')]+_0x3804f6[_0x8a4b('0x32')]+0x2:_0x3c8ec6['priority']+_0x3d1e4b+0x1;_0x423fed[_0x8a4b('0x3e')](_0x3d1e4b,0x0,{'type':_0x59e9f2['type'],'app':_0x8a4b('0x3f'),'appdata':_0x23fd6d[_0x3d1e4b]+'?'+_0x59e9f2[_0x8a4b('0x1b')]+_0x8a4b('0x40')+_0x3bef3a+':'+_0x59e9f2['context']+_0x8a4b('0x40')+_0x4edd02,'exten':_0x59e9f2[_0x8a4b('0xc')],'context':_0x59e9f2[_0x8a4b('0x1b')],'priority':_0x3c8ec6[_0x8a4b('0xf')]+_0x3d1e4b,'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});}_0x59e9f2['priority']=_0x423fed[_0x8a4b('0x32')]?_[_0x8a4b('0x41')](_0x423fed)[_0x8a4b('0xf')]+0x1:_0x3c8ec6[_0x8a4b('0xf')];_0x3c8ec6['priority']=(_0x3804f6['length']?_[_0x8a4b('0x41')](_0x3804f6)[_0x8a4b('0xf')]:_0x59e9f2[_0x8a4b('0xf')])+0x1;_0x3c8ec6[_0x8a4b('0x10')]=_['concat'](_0x3c8ec6[_0x8a4b('0x10')],_0x423fed,[_0x59e9f2],_0x3804f6);}_0x3c8ec6['extensions'][_0x8a4b('0x13')]({'type':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x14')],'app':'Hangup','exten':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0xc')],'context':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x1b')],'priority':_0x3c8ec6[_0x8a4b('0xf')],'VoiceExtensionId':_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]});_0x4c738e[_0x8a4b('0x13')](_0x11d1f9[_0x234acd][0x0][_0x8a4b('0x18')]);_0x4360ad=_[_0x8a4b('0x42')](_0x4360ad,_0x3c8ec6[_0x8a4b('0x10')]);}}return _0x2cc344[_0x8a4b('0x43')](function(_0x4ee17b){return _0x2cc344[_0x8a4b('0x1')][_0x8a4b('0x6')][_0x8a4b('0x44')]({'where':{'VoiceExtensionId':{'$in':_0x4c738e}},'transaction':_0x4ee17b})[_0x8a4b('0x3')](function(_0x2638ba){return _0x2cc344[_0x8a4b('0x1')]['VoiceExtension'][_0x8a4b('0x45')](_[_0x8a4b('0x46')](_0x4360ad,_0x8a4b('0xf')),{'transaction':_0x4ee17b});});});})[_0x8a4b('0x47')](function(_0x1c7831){console[_0x8a4b('0x48')](_0x1c7831);});}exports['rewrite']=rewrite;