Built motion from commit da617fac.|2.6.6
[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 _0x6764=['exten','filter','groupBy','queue','playback','hasOwnProperty','extensions','extension','find','push','type','format','CDR(type)=%s','context','priority','inbound','Set','VoiceExtensionId','outbound','CDR(destination)=','${EXTEN:','cutdigits','${EXTEN}','CDR(routeid)=','ExecIf','):Goto(','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','createdAt','updatedAt','interval','*,*,*,*','map','IntervalId','tag','CDR(tag)=','length','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','toLowerCase','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','last','concat','destroy','bulkCreate','sortBy','error','rewrite','util','models','Interval','findAll','then','intervals','VoiceExtension','uniq'];(function(_0x29eae1,_0x263fec){var _0x5aac45=function(_0x3121ec){while(--_0x3121ec){_0x29eae1['push'](_0x29eae1['shift']());}};_0x5aac45(++_0x263fec);}(_0x6764,0x196));var _0x4676=function(_0x2d7f0e,_0x3e6fbd){_0x2d7f0e=_0x2d7f0e-0x0;var _0x110b07=_0x6764[_0x2d7f0e];return _0x110b07;};'use strict';var _=require('lodash');var util=require(_0x4676('0x0'));function rewrite(_0x45018c,_0x13eff4){var _0x510a7a=this;return _0x45018c[_0x4676('0x1')][_0x4676('0x2')][_0x4676('0x3')]({'raw':!![]})[_0x4676('0x4')](function(_0x45157d){_0x510a7a[_0x4676('0x5')]=_0x45157d;return _0x45018c[_0x4676('0x1')][_0x4676('0x6')][_0x4676('0x3')]({'where':{'IntervalId':_0x13eff4['IntervalId']},'raw':!![]});})[_0x4676('0x4')](function(_0x88c364){return _0x45018c[_0x4676('0x1')][_0x4676('0x6')][_0x4676('0x3')]({'where':{'exten':{'$in':_[_0x4676('0x7')](_['map'](_0x88c364,_0x4676('0x8')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x4676('0x4')](function(_0x28682d){var _0x50159b=_[_0x4676('0x9')](_0x28682d,{'priority':'1'});var _0x9584cf=_[_0x4676('0x9')](_0x28682d,{'isApp':0x1});var _0x39c83c=_[_0x4676('0xa')](_0x9584cf,'exten');var _0x3c5f36=[_0x4676('0xb'),_0x4676('0xc')];var _0x140d76=[];var _0x335ff7=[];for(var _0x57dbda in _0x39c83c){if(_0x39c83c[_0x4676('0xd')](_0x57dbda)){_0x510a7a['priority']=0x2;_0x510a7a[_0x4676('0xe')]=[];_0x510a7a[_0x4676('0xf')]=_[_0x4676('0x10')](_0x50159b,{'exten':_0x39c83c[_0x57dbda][0x0]['exten']});_0x510a7a[_0x4676('0xe')][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':'Set','appdata':util[_0x4676('0x13')](_0x4676('0x14'),_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')]),'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0]['VoiceExtensionId']});if(_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')]===_0x4676('0x17')){_0x510a7a[_0x4676('0xe')]['push']({'type':_0x39c83c[_0x57dbda][0x0]['type'],'app':_0x4676('0x18'),'appdata':'CDR(routeid)='+_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')],'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x510a7a['priority']++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});}else if(_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')]===_0x4676('0x1a')){if(_0x510a7a[_0x4676('0xf')]){_0x510a7a[_0x4676('0xe')]['push']({'type':_0x39c83c[_0x57dbda][0x0]['type'],'app':_0x4676('0x18'),'appdata':_0x4676('0x1b')+(_0x510a7a[_0x4676('0xf')]['cutdigits']?_0x4676('0x1c')+_0x510a7a[_0x4676('0xf')][_0x4676('0x1d')]+'}':_0x4676('0x1e')),'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0]['exten'],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});}_0x510a7a[_0x4676('0xe')][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':'Set','appdata':_0x4676('0x1f')+_0x39c83c[_0x57dbda][0x0]['VoiceExtensionId'],'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});var _0x5850ac=_0x510a7a[_0x4676('0x16')]++;_0x510a7a[_0x4676('0xe')]['push']({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':_0x4676('0x20'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x5850ac+0x2)+_0x4676('0x21')+(_0x5850ac+0x1)+')','context':_0x39c83c[_0x57dbda][0x0]['context'],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x5850ac,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0]['VoiceExtensionId']});if(_0x510a7a[_0x4676('0xf')]){_0x510a7a[_0x4676('0xe')][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0]['type'],'app':_0x4676('0x18'),'appdata':_0x510a7a['extension'][_0x4676('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x510a7a[_0x4676('0xf')]['cutdigits']+'}':_0x4676('0x22'),'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0]['exten'],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});}_0x510a7a[_0x4676('0xe')][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':_0x4676('0x18'),'appdata':'outboundrouteid='+_0x39c83c[_0x57dbda][0x0]['VoiceExtensionId'],'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0]['exten'],'priority':_0x510a7a['priority']++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});if(_0x510a7a['extension']&&_0x510a7a[_0x4676('0xf')]['hasOwnProperty'](_0x4676('0x23'))&&_0x510a7a[_0x4676('0xf')][_0x4676('0x23')]!==_0x4676('0x24')){_0x510a7a['extensions'][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0]['type'],'app':'Set','appdata':_0x4676('0x25'),'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0]['VoiceExtensionId']});_0x510a7a[_0x4676('0xe')][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0]['type'],'app':_0x4676('0x18'),'appdata':_0x4676('0x26')+_0x510a7a['extension'][_0x4676('0x23')]||'wav','context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x510a7a['priority']++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});}}_0x510a7a[_0x4676('0xe')][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':_0x4676('0x18'),'appdata':_0x4676('0x27'),'context':_0x39c83c[_0x57dbda][0x0]['context'],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});_0x510a7a[_0x4676('0xe')][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':'Set','appdata':_0x4676('0x28'),'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0]['exten'],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});_0x510a7a['extensions'][_0x4676('0x11')]({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':_0x4676('0x18'),'appdata':'MONITOR_OPTIONS=ab','context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'priority':_0x510a7a[_0x4676('0x16')]++,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});for(var _0x58d2fe=0x0,_0x4eaa7b=0x0;_0x58d2fe<_0x39c83c[_0x57dbda]['length'];_0x58d2fe+=0x1,_0x4eaa7b=0x0){var _0x4a65f8=_0x39c83c[_0x57dbda][_0x58d2fe];if(_0x4a65f8[_0x4676('0x12')]){_0x4a65f8[_0x4676('0x12')]=_0x4a65f8[_0x4676('0x12')]['toLowerCase']();}var _0x413a20=[];var _0x3d04b5=[];delete _0x4a65f8['id'];delete _0x4a65f8[_0x4676('0x29')];delete _0x4a65f8[_0x4676('0x2a')];var _0x2c9390=_0x4a65f8[_0x4676('0x2b')]!==_0x4676('0x2c')?[_0x4a65f8[_0x4676('0x2b')]]:_0x4a65f8['IntervalId']?_[_0x4676('0x2d')](_[_0x4676('0x9')](_0x510a7a['intervals'],{'IntervalId':_0x4a65f8[_0x4676('0x2e')]}),_0x4676('0x2b')):[];if(_0x4a65f8[_0x4676('0xd')](_0x4676('0x2f'))){if(_0x4a65f8[_0x4676('0x2f')]&&_0x4a65f8['tag']!=='--'){_0x413a20['push']({'type':_0x4a65f8[_0x4676('0x12')],'app':_0x4676('0x18'),'appdata':_0x4676('0x30')+_0x4a65f8[_0x4676('0x2f')],'context':_0x4a65f8[_0x4676('0x15')],'exten':_0x4a65f8[_0x4676('0x8')],'priority':_0x2c9390[_0x4676('0x31')]+_0x510a7a[_0x4676('0x16')]+_0x4eaa7b++,'VoiceExtensionId':_0x4a65f8['VoiceExtensionId']});}}if(_0x4a65f8[_0x4676('0x12')]===_0x4676('0x1a')&&_0x4a65f8[_0x4676('0xd')]('callerID')){if(_0x4a65f8['callerID']){_0x413a20[_0x4676('0x11')]({'type':_0x4a65f8[_0x4676('0x12')],'app':_0x4676('0x20'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x4a65f8[_0x4676('0x32')]+')','context':_0x4a65f8[_0x4676('0x15')],'exten':_0x4a65f8['exten'],'priority':_0x2c9390[_0x4676('0x31')]+_0x510a7a[_0x4676('0x16')]+_0x4eaa7b++,'VoiceExtensionId':_0x4a65f8['VoiceExtensionId']});}else{_0x413a20[_0x4676('0x11')]({'type':_0x4a65f8[_0x4676('0x12')],'app':_0x4676('0x20'),'appdata':_0x4676('0x33'),'context':_0x4a65f8[_0x4676('0x15')],'exten':_0x4a65f8[_0x4676('0x8')],'priority':_0x2c9390[_0x4676('0x31')]+_0x510a7a[_0x4676('0x16')]+_0x4eaa7b++,'VoiceExtensionId':_0x4a65f8[_0x4676('0x19')]});}}if(_0x4a65f8[_0x4676('0xd')](_0x4676('0x34'))){if(_0x3c5f36['indexOf'](_0x4a65f8['app'][_0x4676('0x35')]())>=0x0&&_0x4a65f8[_0x4676('0x36')]!==_0x4676('0x37')){if(_0x4a65f8[_0x4676('0x34')]){_0x413a20[_0x4676('0x11')]({'type':_0x4a65f8[_0x4676('0x12')],'app':_0x4676('0x20'),'appdata':_0x4676('0x38'),'context':_0x4a65f8['context'],'exten':_0x4a65f8['exten'],'priority':_0x2c9390['length']+_0x510a7a[_0x4676('0x16')]+_0x4eaa7b++,'VoiceExtensionId':_0x4a65f8[_0x4676('0x19')]});_0x413a20['push']({'type':_0x4a65f8['type'],'app':_0x4676('0x18'),'appdata':_0x4676('0x39'),'context':_0x4a65f8['context'],'exten':_0x4a65f8['exten'],'priority':_0x2c9390[_0x4676('0x31')]+_0x510a7a[_0x4676('0x16')]+_0x4eaa7b++,'VoiceExtensionId':_0x4a65f8['VoiceExtensionId']});}else{_0x413a20['push']({'type':_0x4a65f8[_0x4676('0x12')],'app':_0x4676('0x20'),'appdata':_0x4676('0x3a'),'context':_0x4a65f8[_0x4676('0x15')],'exten':_0x4a65f8[_0x4676('0x8')],'priority':_0x2c9390['length']+_0x510a7a[_0x4676('0x16')]+_0x4eaa7b++,'VoiceExtensionId':_0x4a65f8['VoiceExtensionId']});_0x413a20[_0x4676('0x11')]({'type':_0x4a65f8['type'],'app':'Set','appdata':_0x4676('0x3b'),'context':_0x4a65f8[_0x4676('0x15')],'exten':_0x4a65f8[_0x4676('0x8')],'priority':_0x2c9390[_0x4676('0x31')]+_0x510a7a[_0x4676('0x16')]+_0x4eaa7b++,'VoiceExtensionId':_0x4a65f8['VoiceExtensionId']});}}}for(var _0x5e8b5=0x0;_0x5e8b5<_0x2c9390[_0x4676('0x31')];_0x5e8b5+=0x1){var _0x49db4f=_0x510a7a[_0x4676('0x16')]+_0x2c9390['length'];var _0x587692=_0x5e8b5===_0x2c9390[_0x4676('0x31')]-0x1?_0x510a7a[_0x4676('0x16')]+_0x413a20[_0x4676('0x31')]+_0x3d04b5[_0x4676('0x31')]+0x2:_0x510a7a[_0x4676('0x16')]+_0x5e8b5+0x1;_0x413a20[_0x4676('0x3c')](_0x5e8b5,0x0,{'type':_0x4a65f8['type'],'app':'GotoIfTime','appdata':_0x2c9390[_0x5e8b5]+'?'+_0x4a65f8[_0x4676('0x15')]+_0x4676('0x3d')+_0x49db4f+':'+_0x4a65f8[_0x4676('0x15')]+_0x4676('0x3d')+_0x587692,'exten':_0x4a65f8[_0x4676('0x8')],'context':_0x4a65f8[_0x4676('0x15')],'priority':_0x510a7a[_0x4676('0x16')]+_0x5e8b5,'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});}_0x4a65f8[_0x4676('0x16')]=_0x413a20[_0x4676('0x31')]?_[_0x4676('0x3e')](_0x413a20)['priority']+0x1:_0x510a7a['priority'];_0x510a7a[_0x4676('0x16')]=(_0x3d04b5[_0x4676('0x31')]?_['last'](_0x3d04b5)[_0x4676('0x16')]:_0x4a65f8['priority'])+0x1;_0x510a7a[_0x4676('0xe')]=_[_0x4676('0x3f')](_0x510a7a[_0x4676('0xe')],_0x413a20,[_0x4a65f8],_0x3d04b5);}_0x510a7a[_0x4676('0xe')]['push']({'type':_0x39c83c[_0x57dbda][0x0][_0x4676('0x12')],'app':'Hangup','exten':_0x39c83c[_0x57dbda][0x0][_0x4676('0x8')],'context':_0x39c83c[_0x57dbda][0x0][_0x4676('0x15')],'priority':_0x510a7a['priority'],'VoiceExtensionId':_0x39c83c[_0x57dbda][0x0][_0x4676('0x19')]});_0x140d76[_0x4676('0x11')](_0x39c83c[_0x57dbda][0x0]['VoiceExtensionId']);_0x335ff7=_[_0x4676('0x3f')](_0x335ff7,_0x510a7a[_0x4676('0xe')]);}}return _0x45018c['transaction'](function(_0x5cf00e){return _0x45018c[_0x4676('0x1')][_0x4676('0x6')][_0x4676('0x40')]({'where':{'VoiceExtensionId':{'$in':_0x140d76}},'transaction':_0x5cf00e})[_0x4676('0x4')](function(_0x2fa3b2){return _0x45018c[_0x4676('0x1')][_0x4676('0x6')][_0x4676('0x41')](_[_0x4676('0x42')](_0x335ff7,'priority'),{'transaction':_0x5cf00e});});});})['catch'](function(_0x40ffb1){console[_0x4676('0x43')](_0x40ffb1);});}exports[_0x4676('0x44')]=rewrite;