Built motion from commit d5e4af8c.|2.6.23
[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 _0x556c=['XCALLY-MOTION-ANSWER=1','splice','GotoIfTime','last','concat','transaction','bulkCreate','catch','error','rewrite','models','Interval','findAll','intervals','IntervalId','VoiceExtension','uniq','map','then','filter','groupBy','exten','queue','playback','hasOwnProperty','extensions','extension','find','type','CDR(type)=%s','context','priority','VoiceExtensionId','push','Set','CDR(routeid)=','outbound','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','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','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer'];(function(_0x4f02e,_0x4ac328){var _0x5a09cd=function(_0x358155){while(--_0x358155){_0x4f02e['push'](_0x4f02e['shift']());}};_0x5a09cd(++_0x4ac328);}(_0x556c,0x1df));var _0xc556=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x556c[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var util=require('util');function rewrite(_0x5aae13,_0x384f03){var _0x5addd6=this;return _0x5aae13[_0xc556('0x0')][_0xc556('0x1')][_0xc556('0x2')]({'raw':!![]})['then'](function(_0x1be160){_0x5addd6[_0xc556('0x3')]=_0x1be160;return _0x5aae13[_0xc556('0x0')]['VoiceExtension'][_0xc556('0x2')]({'where':{'IntervalId':_0x384f03[_0xc556('0x4')]},'raw':!![]});})['then'](function(_0x239dc8){return _0x5aae13[_0xc556('0x0')][_0xc556('0x5')]['findAll']({'where':{'exten':{'$in':_[_0xc556('0x6')](_[_0xc556('0x7')](_0x239dc8,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0xc556('0x8')](function(_0x1d3b99){var _0x4dcaff=_[_0xc556('0x9')](_0x1d3b99,{'priority':'1'});var _0x390a46=_[_0xc556('0x9')](_0x1d3b99,{'isApp':0x1});var _0x34e24e=_[_0xc556('0xa')](_0x390a46,_0xc556('0xb'));var _0x2387e8=[_0xc556('0xc'),_0xc556('0xd')];var _0x38324f=[];var _0x3615d6=[];for(var _0x37655c in _0x34e24e){if(_0x34e24e[_0xc556('0xe')](_0x37655c)){_0x5addd6['priority']=0x2;_0x5addd6[_0xc556('0xf')]=[];_0x5addd6[_0xc556('0x10')]=_[_0xc556('0x11')](_0x4dcaff,{'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')]});_0x5addd6['extensions']['push']({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':'Set','appdata':util['format'](_0xc556('0x13'),_0x34e24e[_0x37655c][0x0]['type']),'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});if(_0x34e24e[_0x37655c][0x0][_0xc556('0x12')]==='inbound'){_0x5addd6['extensions'][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':_0xc556('0x19')+_0x34e24e[_0x37655c][0x0]['VoiceExtensionId'],'context':_0x34e24e[_0x37655c][0x0]['context'],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0]['VoiceExtensionId']});}else if(_0x34e24e[_0x37655c][0x0][_0xc556('0x12')]===_0xc556('0x1a')){if(_0x5addd6[_0xc556('0x10')]){_0x5addd6['extensions'][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':'CDR(destination)='+(_0x5addd6['extension'][_0xc556('0x1b')]?_0xc556('0x1c')+_0x5addd6[_0xc556('0x10')][_0xc556('0x1b')]+'}':_0xc556('0x1d')),'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0]['VoiceExtensionId']});}_0x5addd6[_0xc556('0xf')]['push']({'type':_0x34e24e[_0x37655c][0x0]['type'],'app':'Set','appdata':'CDR(routeid)='+_0x34e24e[_0x37655c][0x0][_0xc556('0x16')],'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0]['exten'],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});var _0xa0245d=_0x5addd6[_0xc556('0x15')]++;_0x5addd6[_0xc556('0xf')]['push']({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x1e'),'appdata':_0xc556('0x1f')+(_0xa0245d+0x2)+_0xc556('0x20')+(_0xa0245d+0x1)+')','context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0xa0245d,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});if(_0x5addd6['extension']){_0x5addd6[_0xc556('0xf')][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':_0x5addd6[_0xc556('0x10')][_0xc556('0x1b')]?'CDR(prefix)=${EXTEN:0:'+_0x5addd6[_0xc556('0x10')][_0xc556('0x1b')]+'}':_0xc556('0x21'),'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6['priority']++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});}_0x5addd6[_0xc556('0xf')][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':_0xc556('0x22')+_0x34e24e[_0x37655c][0x0]['VoiceExtensionId'],'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0]['VoiceExtensionId']});if(_0x5addd6[_0xc556('0x10')]&&_0x5addd6[_0xc556('0x10')][_0xc556('0xe')](_0xc556('0x23'))&&_0x5addd6[_0xc556('0x10')][_0xc556('0x23')]!==_0xc556('0x24')){_0x5addd6['extensions'][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0]['exten'],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});_0x5addd6[_0xc556('0xf')][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':_0xc556('0x25')+_0x5addd6[_0xc556('0x10')][_0xc556('0x23')]||_0xc556('0x26'),'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0]['VoiceExtensionId']});}}_0x5addd6[_0xc556('0xf')][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':_0xc556('0x27'),'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});_0x5addd6[_0xc556('0xf')][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x34e24e[_0x37655c][0x0]['context'],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});_0x5addd6[_0xc556('0xf')]['push']({'type':_0x34e24e[_0x37655c][0x0]['type'],'app':_0xc556('0x18'),'appdata':_0xc556('0x28'),'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'priority':_0x5addd6[_0xc556('0x15')]++,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0]['VoiceExtensionId']});for(var _0x23aab4=0x0,_0x3d4050=0x0;_0x23aab4<_0x34e24e[_0x37655c][_0xc556('0x29')];_0x23aab4+=0x1,_0x3d4050=0x0){var _0x54c7a1=_0x34e24e[_0x37655c][_0x23aab4];if(_0x54c7a1[_0xc556('0x12')]){_0x54c7a1[_0xc556('0x12')]=_0x54c7a1[_0xc556('0x12')][_0xc556('0x2a')]();}var _0x19e6aa=[];var _0x1b32f4=[];delete _0x54c7a1['id'];delete _0x54c7a1[_0xc556('0x2b')];delete _0x54c7a1[_0xc556('0x2c')];var _0x5a86c0=_0x54c7a1[_0xc556('0x2d')]!==_0xc556('0x2e')?[_0x54c7a1[_0xc556('0x2d')]]:_0x54c7a1[_0xc556('0x4')]?_['map'](_[_0xc556('0x9')](_0x5addd6['intervals'],{'IntervalId':_0x54c7a1[_0xc556('0x4')]}),'interval'):[];if(_0x54c7a1['hasOwnProperty'](_0xc556('0x2f'))){if(_0x54c7a1[_0xc556('0x2f')]&&_0x54c7a1[_0xc556('0x2f')]!=='--'){_0x19e6aa[_0xc556('0x17')]({'type':_0x54c7a1['type'],'app':_0xc556('0x18'),'appdata':_0xc556('0x30')+_0x54c7a1['tag'],'context':_0x54c7a1[_0xc556('0x14')],'exten':_0x54c7a1[_0xc556('0xb')],'priority':_0x5a86c0[_0xc556('0x29')]+_0x5addd6[_0xc556('0x15')]+_0x3d4050++,'VoiceExtensionId':_0x54c7a1['VoiceExtensionId']});}}if(_0x54c7a1[_0xc556('0x12')]===_0xc556('0x1a')&&_0x54c7a1[_0xc556('0xe')](_0xc556('0x31'))){if(_0x54c7a1[_0xc556('0x31')]){_0x19e6aa['push']({'type':_0x54c7a1[_0xc556('0x12')],'app':_0xc556('0x1e'),'appdata':_0xc556('0x32')+_0x54c7a1[_0xc556('0x31')]+')','context':_0x54c7a1['context'],'exten':_0x54c7a1[_0xc556('0xb')],'priority':_0x5a86c0[_0xc556('0x29')]+_0x5addd6['priority']+_0x3d4050++,'VoiceExtensionId':_0x54c7a1[_0xc556('0x16')]});}else{_0x19e6aa[_0xc556('0x17')]({'type':_0x54c7a1[_0xc556('0x12')],'app':_0xc556('0x1e'),'appdata':_0xc556('0x33'),'context':_0x54c7a1[_0xc556('0x14')],'exten':_0x54c7a1[_0xc556('0xb')],'priority':_0x5a86c0[_0xc556('0x29')]+_0x5addd6[_0xc556('0x15')]+_0x3d4050++,'VoiceExtensionId':_0x54c7a1['VoiceExtensionId']});}}if(_0x54c7a1[_0xc556('0xe')](_0xc556('0x34'))){if(_0x2387e8[_0xc556('0x35')](_0x54c7a1['app'][_0xc556('0x2a')]())>=0x0&&_0x54c7a1[_0xc556('0x36')]!==_0xc556('0x37')){if(_0x54c7a1['answer']){_0x19e6aa['push']({'type':_0x54c7a1['type'],'app':_0xc556('0x1e'),'appdata':_0xc556('0x38'),'context':_0x54c7a1['context'],'exten':_0x54c7a1[_0xc556('0xb')],'priority':_0x5a86c0[_0xc556('0x29')]+_0x5addd6['priority']+_0x3d4050++,'VoiceExtensionId':_0x54c7a1[_0xc556('0x16')]});_0x19e6aa['push']({'type':_0x54c7a1[_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':_0xc556('0x39'),'context':_0x54c7a1[_0xc556('0x14')],'exten':_0x54c7a1[_0xc556('0xb')],'priority':_0x5a86c0[_0xc556('0x29')]+_0x5addd6[_0xc556('0x15')]+_0x3d4050++,'VoiceExtensionId':_0x54c7a1[_0xc556('0x16')]});}else{_0x19e6aa[_0xc556('0x17')]({'type':_0x54c7a1[_0xc556('0x12')],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x54c7a1[_0xc556('0x14')],'exten':_0x54c7a1[_0xc556('0xb')],'priority':_0x5a86c0[_0xc556('0x29')]+_0x5addd6[_0xc556('0x15')]+_0x3d4050++,'VoiceExtensionId':_0x54c7a1[_0xc556('0x16')]});_0x19e6aa[_0xc556('0x17')]({'type':_0x54c7a1[_0xc556('0x12')],'app':_0xc556('0x18'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x54c7a1[_0xc556('0x14')],'exten':_0x54c7a1[_0xc556('0xb')],'priority':_0x5a86c0[_0xc556('0x29')]+_0x5addd6[_0xc556('0x15')]+_0x3d4050++,'VoiceExtensionId':_0x54c7a1[_0xc556('0x16')]});}}}for(var _0x444e00=0x0;_0x444e00<_0x5a86c0[_0xc556('0x29')];_0x444e00+=0x1){var _0x1fbb36=_0x5addd6[_0xc556('0x15')]+_0x5a86c0[_0xc556('0x29')];var _0x1e0fe7=_0x444e00===_0x5a86c0[_0xc556('0x29')]-0x1?_0x5addd6[_0xc556('0x15')]+_0x19e6aa[_0xc556('0x29')]+_0x1b32f4[_0xc556('0x29')]+0x2:_0x5addd6[_0xc556('0x15')]+_0x444e00+0x1;_0x19e6aa[_0xc556('0x3a')](_0x444e00,0x0,{'type':_0x54c7a1['type'],'app':_0xc556('0x3b'),'appdata':_0x5a86c0[_0x444e00]+'?'+_0x54c7a1['context']+',${EXTEN},'+_0x1fbb36+':'+_0x54c7a1[_0xc556('0x14')]+',${EXTEN},'+_0x1e0fe7,'exten':_0x54c7a1['exten'],'context':_0x54c7a1[_0xc556('0x14')],'priority':_0x5addd6[_0xc556('0x15')]+_0x444e00,'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});}_0x54c7a1[_0xc556('0x15')]=_0x19e6aa[_0xc556('0x29')]?_[_0xc556('0x3c')](_0x19e6aa)[_0xc556('0x15')]+0x1:_0x5addd6[_0xc556('0x15')];_0x5addd6[_0xc556('0x15')]=(_0x1b32f4[_0xc556('0x29')]?_['last'](_0x1b32f4)[_0xc556('0x15')]:_0x54c7a1[_0xc556('0x15')])+0x1;_0x5addd6[_0xc556('0xf')]=_[_0xc556('0x3d')](_0x5addd6['extensions'],_0x19e6aa,[_0x54c7a1],_0x1b32f4);}_0x5addd6[_0xc556('0xf')][_0xc556('0x17')]({'type':_0x34e24e[_0x37655c][0x0][_0xc556('0x12')],'app':'Hangup','exten':_0x34e24e[_0x37655c][0x0][_0xc556('0xb')],'context':_0x34e24e[_0x37655c][0x0][_0xc556('0x14')],'priority':_0x5addd6[_0xc556('0x15')],'VoiceExtensionId':_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]});_0x38324f[_0xc556('0x17')](_0x34e24e[_0x37655c][0x0][_0xc556('0x16')]);_0x3615d6=_[_0xc556('0x3d')](_0x3615d6,_0x5addd6[_0xc556('0xf')]);}}return _0x5aae13[_0xc556('0x3e')](function(_0x34aa43){return _0x5aae13[_0xc556('0x0')]['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x38324f}},'transaction':_0x34aa43})[_0xc556('0x8')](function(_0x6772ab){return _0x5aae13[_0xc556('0x0')]['VoiceExtension'][_0xc556('0x3f')](_['sortBy'](_0x3615d6,_0xc556('0x15')),{'transaction':_0x34aa43});});});})[_0xc556('0x40')](function(_0x4c6fb5){console[_0xc556('0x41')](_0x4c6fb5);});}exports[_0xc556('0x42')]=rewrite;