99f146106b45eda09f6ed227bc2f201a4a616cbc
[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 _0x1181=['concat','transaction','destroy','bulkCreate','catch','error','rewrite','lodash','util','models','Interval','then','intervals','findAll','VoiceExtension','uniq','map','exten','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','push','type','CDR(type)=%s','context','VoiceExtensionId','inbound','Set','CDR(routeid)=','outbound','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','IntervalId','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)','indexOf','app','appType','custom','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','last'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1181,0x17e));var _0x1118=function(_0x590b63,_0x14debb){_0x590b63=_0x590b63-0x0;var _0x3c9380=_0x1181[_0x590b63];return _0x3c9380;};'use strict';var _=require(_0x1118('0x0'));var util=require(_0x1118('0x1'));function rewrite(_0x4c2248,_0x44c2a6){var _0x327fc9=this;return _0x4c2248[_0x1118('0x2')][_0x1118('0x3')]['findAll']({'raw':!![]})[_0x1118('0x4')](function(_0x5a1ee5){_0x327fc9[_0x1118('0x5')]=_0x5a1ee5;return _0x4c2248[_0x1118('0x2')]['VoiceExtension'][_0x1118('0x6')]({'where':{'IntervalId':_0x44c2a6['IntervalId']},'raw':!![]});})['then'](function(_0x252da9){return _0x4c2248[_0x1118('0x2')][_0x1118('0x7')][_0x1118('0x6')]({'where':{'exten':{'$in':_[_0x1118('0x8')](_[_0x1118('0x9')](_0x252da9,_0x1118('0xa')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x1118('0x4')](function(_0x441cb8){var _0x482493=_[_0x1118('0xb')](_0x441cb8,{'priority':'1'});var _0x154559=_[_0x1118('0xb')](_0x441cb8,{'isApp':0x1});var _0x5d8ba2=_[_0x1118('0xc')](_0x154559,'exten');var _0x4feb0f=[_0x1118('0xd'),_0x1118('0xe')];var _0x139e68=[];var _0x5aaf71=[];for(var _0x9ec37a in _0x5d8ba2){if(_0x5d8ba2[_0x1118('0xf')](_0x9ec37a)){_0x327fc9[_0x1118('0x10')]=0x2;_0x327fc9[_0x1118('0x11')]=[];_0x327fc9[_0x1118('0x12')]=_['find'](_0x482493,{'exten':_0x5d8ba2[_0x9ec37a][0x0]['exten']});_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':'Set','appdata':util['format'](_0x1118('0x15'),_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')]),'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9[_0x1118('0x10')]++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});if(_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')]===_0x1118('0x18')){_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x1a')+_0x5d8ba2[_0x9ec37a][0x0]['VoiceExtensionId'],'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9[_0x1118('0x10')]++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});}else if(_0x5d8ba2[_0x9ec37a][0x0]['type']===_0x1118('0x1b')){if(_0x327fc9[_0x1118('0x12')]){_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x1c')+(_0x327fc9[_0x1118('0x12')]['cutdigits']?_0x1118('0x1d')+_0x327fc9[_0x1118('0x12')][_0x1118('0x1e')]+'}':_0x1118('0x1f')),'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9['priority']++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0]['VoiceExtensionId']});}_0x327fc9[_0x1118('0x11')]['push']({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x1a')+_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')],'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9['priority']++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});var _0x252984=_0x327fc9[_0x1118('0x10')]++;_0x327fc9['extensions'][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x20'),'appdata':_0x1118('0x21')+(_0x252984+0x2)+'):Goto('+(_0x252984+0x1)+')','context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0]['exten'],'priority':_0x252984,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0]['VoiceExtensionId']});if(_0x327fc9[_0x1118('0x12')]){_0x327fc9[_0x1118('0x11')]['push']({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x327fc9[_0x1118('0x12')]['cutdigits']?_0x1118('0x22')+_0x327fc9['extension'][_0x1118('0x1e')]+'}':_0x1118('0x23'),'context':_0x5d8ba2[_0x9ec37a][0x0]['context'],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9[_0x1118('0x10')]++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});}_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':'Set','appdata':'outboundrouteid='+_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')],'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9[_0x1118('0x10')]++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});if(_0x327fc9[_0x1118('0x12')]&&_0x327fc9[_0x1118('0x12')][_0x1118('0xf')](_0x1118('0x24'))&&_0x327fc9[_0x1118('0x12')][_0x1118('0x24')]!==_0x1118('0x25')){_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x26'),'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9[_0x1118('0x10')]++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});_0x327fc9[_0x1118('0x11')]['push']({'type':_0x5d8ba2[_0x9ec37a][0x0]['type'],'app':_0x1118('0x19'),'appdata':_0x1118('0x27')+_0x327fc9[_0x1118('0x12')][_0x1118('0x24')]||_0x1118('0x28'),'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9['priority']++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});}}_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x29'),'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9[_0x1118('0x10')]++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});_0x327fc9['extensions']['push']({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':'Set','appdata':_0x1118('0x2a'),'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9['priority']++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x2b'),'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'priority':_0x327fc9[_0x1118('0x10')]++,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0]['VoiceExtensionId']});for(var _0x5b5868=0x0,_0x21e490=0x0;_0x5b5868<_0x5d8ba2[_0x9ec37a][_0x1118('0x2c')];_0x5b5868+=0x1,_0x21e490=0x0){var _0x84f4de=_0x5d8ba2[_0x9ec37a][_0x5b5868];if(_0x84f4de[_0x1118('0x14')]){_0x84f4de[_0x1118('0x14')]=_0x84f4de[_0x1118('0x14')][_0x1118('0x2d')]();}var _0x587c2f=[];var _0x1ee92d=[];delete _0x84f4de['id'];delete _0x84f4de[_0x1118('0x2e')];delete _0x84f4de[_0x1118('0x2f')];var _0x6da87e=_0x84f4de[_0x1118('0x30')]!==_0x1118('0x31')?[_0x84f4de[_0x1118('0x30')]]:_0x84f4de['IntervalId']?_[_0x1118('0x9')](_[_0x1118('0xb')](_0x327fc9[_0x1118('0x5')],{'IntervalId':_0x84f4de[_0x1118('0x32')]}),_0x1118('0x30')):[];if(_0x84f4de[_0x1118('0xf')]('tag')){if(_0x84f4de[_0x1118('0x33')]&&_0x84f4de['tag']!=='--'){_0x587c2f[_0x1118('0x13')]({'type':_0x84f4de[_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x34')+_0x84f4de[_0x1118('0x33')],'context':_0x84f4de[_0x1118('0x16')],'exten':_0x84f4de['exten'],'priority':_0x6da87e['length']+_0x327fc9[_0x1118('0x10')]+_0x21e490++,'VoiceExtensionId':_0x84f4de[_0x1118('0x17')]});}}if(_0x84f4de['type']==='outbound'&&_0x84f4de[_0x1118('0xf')](_0x1118('0x35'))){if(_0x84f4de[_0x1118('0x35')]){_0x587c2f[_0x1118('0x13')]({'type':_0x84f4de['type'],'app':_0x1118('0x20'),'appdata':_0x1118('0x36')+_0x84f4de['callerID']+')','context':_0x84f4de['context'],'exten':_0x84f4de[_0x1118('0xa')],'priority':_0x6da87e[_0x1118('0x2c')]+_0x327fc9[_0x1118('0x10')]+_0x21e490++,'VoiceExtensionId':_0x84f4de[_0x1118('0x17')]});}else{_0x587c2f['push']({'type':_0x84f4de['type'],'app':_0x1118('0x20'),'appdata':_0x1118('0x37'),'context':_0x84f4de[_0x1118('0x16')],'exten':_0x84f4de[_0x1118('0xa')],'priority':_0x6da87e[_0x1118('0x2c')]+_0x327fc9[_0x1118('0x10')]+_0x21e490++,'VoiceExtensionId':_0x84f4de[_0x1118('0x17')]});}}if(_0x84f4de[_0x1118('0xf')]('answer')){if(_0x4feb0f[_0x1118('0x38')](_0x84f4de[_0x1118('0x39')][_0x1118('0x2d')]())>=0x0&&_0x84f4de[_0x1118('0x3a')]!==_0x1118('0x3b')){if(_0x84f4de[_0x1118('0x3c')]){_0x587c2f[_0x1118('0x13')]({'type':_0x84f4de[_0x1118('0x14')],'app':_0x1118('0x20'),'appdata':_0x1118('0x3d'),'context':_0x84f4de[_0x1118('0x16')],'exten':_0x84f4de['exten'],'priority':_0x6da87e['length']+_0x327fc9[_0x1118('0x10')]+_0x21e490++,'VoiceExtensionId':_0x84f4de[_0x1118('0x17')]});_0x587c2f[_0x1118('0x13')]({'type':_0x84f4de[_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x3e'),'context':_0x84f4de[_0x1118('0x16')],'exten':_0x84f4de[_0x1118('0xa')],'priority':_0x6da87e[_0x1118('0x2c')]+_0x327fc9[_0x1118('0x10')]+_0x21e490++,'VoiceExtensionId':_0x84f4de[_0x1118('0x17')]});}else{_0x587c2f[_0x1118('0x13')]({'type':_0x84f4de[_0x1118('0x14')],'app':_0x1118('0x20'),'appdata':_0x1118('0x3f'),'context':_0x84f4de['context'],'exten':_0x84f4de[_0x1118('0xa')],'priority':_0x6da87e[_0x1118('0x2c')]+_0x327fc9['priority']+_0x21e490++,'VoiceExtensionId':_0x84f4de[_0x1118('0x17')]});_0x587c2f[_0x1118('0x13')]({'type':_0x84f4de[_0x1118('0x14')],'app':_0x1118('0x19'),'appdata':_0x1118('0x40'),'context':_0x84f4de['context'],'exten':_0x84f4de[_0x1118('0xa')],'priority':_0x6da87e[_0x1118('0x2c')]+_0x327fc9[_0x1118('0x10')]+_0x21e490++,'VoiceExtensionId':_0x84f4de[_0x1118('0x17')]});}}}for(var _0x5136c0=0x0;_0x5136c0<_0x6da87e[_0x1118('0x2c')];_0x5136c0+=0x1){var _0x58a127=_0x327fc9[_0x1118('0x10')]+_0x6da87e[_0x1118('0x2c')];var _0x5b0ee3=_0x5136c0===_0x6da87e[_0x1118('0x2c')]-0x1?_0x327fc9[_0x1118('0x10')]+_0x587c2f[_0x1118('0x2c')]+_0x1ee92d[_0x1118('0x2c')]+0x2:_0x327fc9[_0x1118('0x10')]+_0x5136c0+0x1;_0x587c2f[_0x1118('0x41')](_0x5136c0,0x0,{'type':_0x84f4de[_0x1118('0x14')],'app':'GotoIfTime','appdata':_0x6da87e[_0x5136c0]+'?'+_0x84f4de[_0x1118('0x16')]+_0x1118('0x42')+_0x58a127+':'+_0x84f4de['context']+_0x1118('0x42')+_0x5b0ee3,'exten':_0x84f4de[_0x1118('0xa')],'context':_0x84f4de[_0x1118('0x16')],'priority':_0x327fc9['priority']+_0x5136c0,'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});}_0x84f4de[_0x1118('0x10')]=_0x587c2f[_0x1118('0x2c')]?_[_0x1118('0x43')](_0x587c2f)[_0x1118('0x10')]+0x1:_0x327fc9['priority'];_0x327fc9[_0x1118('0x10')]=(_0x1ee92d[_0x1118('0x2c')]?_[_0x1118('0x43')](_0x1ee92d)['priority']:_0x84f4de[_0x1118('0x10')])+0x1;_0x327fc9['extensions']=_[_0x1118('0x44')](_0x327fc9[_0x1118('0x11')],_0x587c2f,[_0x84f4de],_0x1ee92d);}_0x327fc9[_0x1118('0x11')][_0x1118('0x13')]({'type':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x14')],'app':'Hangup','exten':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0xa')],'context':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x16')],'priority':_0x327fc9[_0x1118('0x10')],'VoiceExtensionId':_0x5d8ba2[_0x9ec37a][0x0][_0x1118('0x17')]});_0x139e68[_0x1118('0x13')](_0x5d8ba2[_0x9ec37a][0x0]['VoiceExtensionId']);_0x5aaf71=_[_0x1118('0x44')](_0x5aaf71,_0x327fc9[_0x1118('0x11')]);}}return _0x4c2248[_0x1118('0x45')](function(_0x38b698){return _0x4c2248[_0x1118('0x2')][_0x1118('0x7')][_0x1118('0x46')]({'where':{'VoiceExtensionId':{'$in':_0x139e68}},'transaction':_0x38b698})[_0x1118('0x4')](function(_0x578e28){return _0x4c2248[_0x1118('0x2')][_0x1118('0x7')][_0x1118('0x47')](_['sortBy'](_0x5aaf71,'priority'),{'transaction':_0x38b698});});});})[_0x1118('0x48')](function(_0xd90dfa){console[_0x1118('0x49')](_0xd90dfa);});}exports[_0x1118('0x4a')]=rewrite;