Built motion from commit 449495f6.|2.6.27
[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 _0x0c4d=['custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','bulkCreate','catch','lodash','models','Interval','findAll','then','intervals','VoiceExtension','IntervalId','uniq','filter','groupBy','hasOwnProperty','priority','extensions','extension','exten','push','Set','format','CDR(type)=%s','type','VoiceExtensionId','CDR(routeid)=','context','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','wav','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','outbound','ExecIf','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','toLowerCase'];(function(_0x29e3b6,_0x40b0b4){var _0x55d4b0=function(_0x55c58e){while(--_0x55c58e){_0x29e3b6['push'](_0x29e3b6['shift']());}};_0x55d4b0(++_0x40b0b4);}(_0x0c4d,0x115));var _0xd0c4=function(_0x5cc70a,_0x222265){_0x5cc70a=_0x5cc70a-0x0;var _0x190fab=_0x0c4d[_0x5cc70a];return _0x190fab;};'use strict';var _=require(_0xd0c4('0x0'));var util=require('util');function rewrite(_0x18b8ae,_0x2cd20b){var _0x3633a1=this;return _0x18b8ae[_0xd0c4('0x1')][_0xd0c4('0x2')][_0xd0c4('0x3')]({'raw':!![]})[_0xd0c4('0x4')](function(_0x4e6130){_0x3633a1[_0xd0c4('0x5')]=_0x4e6130;return _0x18b8ae[_0xd0c4('0x1')][_0xd0c4('0x6')][_0xd0c4('0x3')]({'where':{'IntervalId':_0x2cd20b[_0xd0c4('0x7')]},'raw':!![]});})[_0xd0c4('0x4')](function(_0x3b5571){return _0x18b8ae[_0xd0c4('0x1')]['VoiceExtension'][_0xd0c4('0x3')]({'where':{'exten':{'$in':_[_0xd0c4('0x8')](_['map'](_0x3b5571,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0xd0c4('0x4')](function(_0xbdf6d5){var _0x4a5bf9=_['filter'](_0xbdf6d5,{'priority':'1'});var _0x2482ee=_[_0xd0c4('0x9')](_0xbdf6d5,{'isApp':0x1});var _0x40279e=_[_0xd0c4('0xa')](_0x2482ee,'exten');var _0x22e018=['queue','playback'];var _0x23174c=[];var _0x59c1b6=[];for(var _0x120e5b in _0x40279e){if(_0x40279e[_0xd0c4('0xb')](_0x120e5b)){_0x3633a1[_0xd0c4('0xc')]=0x2;_0x3633a1[_0xd0c4('0xd')]=[];_0x3633a1[_0xd0c4('0xe')]=_['find'](_0x4a5bf9,{'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')]});_0x3633a1['extensions'][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0]['type'],'app':_0xd0c4('0x11'),'appdata':util[_0xd0c4('0x12')](_0xd0c4('0x13'),_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')]),'context':_0x40279e[_0x120e5b][0x0]['context'],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});if(_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')]==='inbound'){_0x3633a1['extensions'][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0]['type'],'app':_0xd0c4('0x11'),'appdata':_0xd0c4('0x16')+_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')],'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0]['VoiceExtensionId']});}else if(_0x40279e[_0x120e5b][0x0]['type']==='outbound'){if(_0x3633a1[_0xd0c4('0xe')]){_0x3633a1[_0xd0c4('0xd')][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')],'app':_0xd0c4('0x11'),'appdata':_0xd0c4('0x18')+(_0x3633a1['extension'][_0xd0c4('0x19')]?_0xd0c4('0x1a')+_0x3633a1['extension']['cutdigits']+'}':_0xd0c4('0x1b')),'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});}_0x3633a1['extensions'][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0]['type'],'app':'Set','appdata':_0xd0c4('0x16')+_0x40279e[_0x120e5b][0x0]['VoiceExtensionId'],'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});var _0x42f061=_0x3633a1[_0xd0c4('0xc')]++;_0x3633a1[_0xd0c4('0xd')][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')],'app':'ExecIf','appdata':_0xd0c4('0x1c')+(_0x42f061+0x2)+_0xd0c4('0x1d')+(_0x42f061+0x1)+')','context':_0x40279e[_0x120e5b][0x0]['context'],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x42f061,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});if(_0x3633a1[_0xd0c4('0xe')]){_0x3633a1[_0xd0c4('0xd')]['push']({'type':_0x40279e[_0x120e5b][0x0]['type'],'app':_0xd0c4('0x11'),'appdata':_0x3633a1['extension'][_0xd0c4('0x19')]?_0xd0c4('0x1e')+_0x3633a1[_0xd0c4('0xe')][_0xd0c4('0x19')]+'}':_0xd0c4('0x1f'),'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0]['exten'],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});}_0x3633a1['extensions'][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0]['type'],'app':_0xd0c4('0x11'),'appdata':_0xd0c4('0x20')+_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')],'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0]['exten'],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});if(_0x3633a1[_0xd0c4('0xe')]&&_0x3633a1[_0xd0c4('0xe')][_0xd0c4('0xb')](_0xd0c4('0x21'))&&_0x3633a1['extension'][_0xd0c4('0x21')]!=='none'){_0x3633a1[_0xd0c4('0xd')]['push']({'type':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')],'app':_0xd0c4('0x11'),'appdata':_0xd0c4('0x22'),'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0]['VoiceExtensionId']});_0x3633a1[_0xd0c4('0xd')][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')],'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x3633a1[_0xd0c4('0xe')]['recordingFormat']||_0xd0c4('0x23'),'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0]['VoiceExtensionId']});}}_0x3633a1['extensions'][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')],'app':_0xd0c4('0x11'),'appdata':_0xd0c4('0x24'),'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0]['exten'],'priority':_0x3633a1['priority']++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});_0x3633a1[_0xd0c4('0xd')][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')],'app':_0xd0c4('0x11'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0]['VoiceExtensionId']});_0x3633a1[_0xd0c4('0xd')][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x14')],'app':_0xd0c4('0x11'),'appdata':_0xd0c4('0x25'),'context':_0x40279e[_0x120e5b][0x0]['context'],'exten':_0x40279e[_0x120e5b][0x0]['exten'],'priority':_0x3633a1[_0xd0c4('0xc')]++,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});for(var _0x3462db=0x0,_0x2f4c7d=0x0;_0x3462db<_0x40279e[_0x120e5b][_0xd0c4('0x26')];_0x3462db+=0x1,_0x2f4c7d=0x0){var _0x15ce9c=_0x40279e[_0x120e5b][_0x3462db];if(_0x15ce9c[_0xd0c4('0x14')]){_0x15ce9c[_0xd0c4('0x14')]=_0x15ce9c[_0xd0c4('0x14')]['toLowerCase']();}var _0x228fe3=[];var _0x231898=[];delete _0x15ce9c['id'];delete _0x15ce9c[_0xd0c4('0x27')];delete _0x15ce9c[_0xd0c4('0x28')];var _0x302618=_0x15ce9c[_0xd0c4('0x29')]!==_0xd0c4('0x2a')?[_0x15ce9c[_0xd0c4('0x29')]]:_0x15ce9c[_0xd0c4('0x7')]?_['map'](_['filter'](_0x3633a1['intervals'],{'IntervalId':_0x15ce9c[_0xd0c4('0x7')]}),'interval'):[];if(_0x15ce9c[_0xd0c4('0xb')]('tag')){if(_0x15ce9c[_0xd0c4('0x2b')]&&_0x15ce9c[_0xd0c4('0x2b')]!=='--'){_0x228fe3['push']({'type':_0x15ce9c[_0xd0c4('0x14')],'app':'Set','appdata':_0xd0c4('0x2c')+_0x15ce9c[_0xd0c4('0x2b')],'context':_0x15ce9c[_0xd0c4('0x17')],'exten':_0x15ce9c[_0xd0c4('0xf')],'priority':_0x302618[_0xd0c4('0x26')]+_0x3633a1[_0xd0c4('0xc')]+_0x2f4c7d++,'VoiceExtensionId':_0x15ce9c['VoiceExtensionId']});}}if(_0x15ce9c['type']===_0xd0c4('0x2d')&&_0x15ce9c['hasOwnProperty']('callerID')){if(_0x15ce9c['callerID']){_0x228fe3['push']({'type':_0x15ce9c['type'],'app':_0xd0c4('0x2e'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x15ce9c[_0xd0c4('0x2f')]+')','context':_0x15ce9c[_0xd0c4('0x17')],'exten':_0x15ce9c[_0xd0c4('0xf')],'priority':_0x302618['length']+_0x3633a1['priority']+_0x2f4c7d++,'VoiceExtensionId':_0x15ce9c[_0xd0c4('0x15')]});}else{_0x228fe3[_0xd0c4('0x10')]({'type':_0x15ce9c[_0xd0c4('0x14')],'app':'ExecIf','appdata':_0xd0c4('0x30'),'context':_0x15ce9c[_0xd0c4('0x17')],'exten':_0x15ce9c[_0xd0c4('0xf')],'priority':_0x302618[_0xd0c4('0x26')]+_0x3633a1[_0xd0c4('0xc')]+_0x2f4c7d++,'VoiceExtensionId':_0x15ce9c['VoiceExtensionId']});}}if(_0x15ce9c['hasOwnProperty'](_0xd0c4('0x31'))){if(_0x22e018[_0xd0c4('0x32')](_0x15ce9c[_0xd0c4('0x33')][_0xd0c4('0x34')]())>=0x0&&_0x15ce9c['appType']!==_0xd0c4('0x35')){if(_0x15ce9c[_0xd0c4('0x31')]){_0x228fe3[_0xd0c4('0x10')]({'type':_0x15ce9c[_0xd0c4('0x14')],'app':_0xd0c4('0x2e'),'appdata':_0xd0c4('0x36'),'context':_0x15ce9c[_0xd0c4('0x17')],'exten':_0x15ce9c[_0xd0c4('0xf')],'priority':_0x302618[_0xd0c4('0x26')]+_0x3633a1[_0xd0c4('0xc')]+_0x2f4c7d++,'VoiceExtensionId':_0x15ce9c[_0xd0c4('0x15')]});_0x228fe3[_0xd0c4('0x10')]({'type':_0x15ce9c[_0xd0c4('0x14')],'app':_0xd0c4('0x11'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x15ce9c[_0xd0c4('0x17')],'exten':_0x15ce9c[_0xd0c4('0xf')],'priority':_0x302618['length']+_0x3633a1[_0xd0c4('0xc')]+_0x2f4c7d++,'VoiceExtensionId':_0x15ce9c['VoiceExtensionId']});}else{_0x228fe3[_0xd0c4('0x10')]({'type':_0x15ce9c['type'],'app':_0xd0c4('0x2e'),'appdata':_0xd0c4('0x37'),'context':_0x15ce9c['context'],'exten':_0x15ce9c[_0xd0c4('0xf')],'priority':_0x302618[_0xd0c4('0x26')]+_0x3633a1[_0xd0c4('0xc')]+_0x2f4c7d++,'VoiceExtensionId':_0x15ce9c[_0xd0c4('0x15')]});_0x228fe3['push']({'type':_0x15ce9c['type'],'app':_0xd0c4('0x11'),'appdata':_0xd0c4('0x38'),'context':_0x15ce9c['context'],'exten':_0x15ce9c[_0xd0c4('0xf')],'priority':_0x302618['length']+_0x3633a1['priority']+_0x2f4c7d++,'VoiceExtensionId':_0x15ce9c[_0xd0c4('0x15')]});}}}for(var _0x1057e0=0x0;_0x1057e0<_0x302618[_0xd0c4('0x26')];_0x1057e0+=0x1){var _0x2963cb=_0x3633a1[_0xd0c4('0xc')]+_0x302618['length'];var _0xc8010d=_0x1057e0===_0x302618[_0xd0c4('0x26')]-0x1?_0x3633a1[_0xd0c4('0xc')]+_0x228fe3['length']+_0x231898[_0xd0c4('0x26')]+0x2:_0x3633a1['priority']+_0x1057e0+0x1;_0x228fe3['splice'](_0x1057e0,0x0,{'type':_0x15ce9c[_0xd0c4('0x14')],'app':_0xd0c4('0x39'),'appdata':_0x302618[_0x1057e0]+'?'+_0x15ce9c[_0xd0c4('0x17')]+_0xd0c4('0x3a')+_0x2963cb+':'+_0x15ce9c['context']+',${EXTEN},'+_0xc8010d,'exten':_0x15ce9c[_0xd0c4('0xf')],'context':_0x15ce9c[_0xd0c4('0x17')],'priority':_0x3633a1[_0xd0c4('0xc')]+_0x1057e0,'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});}_0x15ce9c[_0xd0c4('0xc')]=_0x228fe3[_0xd0c4('0x26')]?_[_0xd0c4('0x3b')](_0x228fe3)[_0xd0c4('0xc')]+0x1:_0x3633a1[_0xd0c4('0xc')];_0x3633a1[_0xd0c4('0xc')]=(_0x231898[_0xd0c4('0x26')]?_[_0xd0c4('0x3b')](_0x231898)[_0xd0c4('0xc')]:_0x15ce9c[_0xd0c4('0xc')])+0x1;_0x3633a1[_0xd0c4('0xd')]=_[_0xd0c4('0x3c')](_0x3633a1['extensions'],_0x228fe3,[_0x15ce9c],_0x231898);}_0x3633a1['extensions'][_0xd0c4('0x10')]({'type':_0x40279e[_0x120e5b][0x0]['type'],'app':_0xd0c4('0x3d'),'exten':_0x40279e[_0x120e5b][0x0][_0xd0c4('0xf')],'context':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x17')],'priority':_0x3633a1[_0xd0c4('0xc')],'VoiceExtensionId':_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]});_0x23174c[_0xd0c4('0x10')](_0x40279e[_0x120e5b][0x0][_0xd0c4('0x15')]);_0x59c1b6=_['concat'](_0x59c1b6,_0x3633a1[_0xd0c4('0xd')]);}}return _0x18b8ae[_0xd0c4('0x3e')](function(_0x13e129){return _0x18b8ae['models'][_0xd0c4('0x6')][_0xd0c4('0x3f')]({'where':{'VoiceExtensionId':{'$in':_0x23174c}},'transaction':_0x13e129})[_0xd0c4('0x4')](function(_0x1d44c3){return _0x18b8ae[_0xd0c4('0x1')]['VoiceExtension'][_0xd0c4('0x40')](_['sortBy'](_0x59c1b6,'priority'),{'transaction':_0x13e129});});});})[_0xd0c4('0x41')](function(_0x43355e){console['error'](_0x43355e);});}exports['rewrite']=rewrite;