Built motion from commit (unavailable).|2.5.30
[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 _0x78f0=['length','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','app','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','concat','transaction','destroy','catch','error','rewrite','lodash','util','models','Interval','findAll','intervals','VoiceExtension','IntervalId','then','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','playback','priority','extensions','find','push','type','Set','context','VoiceExtensionId','outbound','extension','cutdigits','${EXTEN}','CDR(routeid)=','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','toLowerCase','createdAt','updatedAt','*,*,*,*','interval','tag'];(function(_0x593f03,_0x4af84a){var _0x178299=function(_0x284500){while(--_0x284500){_0x593f03['push'](_0x593f03['shift']());}};_0x178299(++_0x4af84a);}(_0x78f0,0x15d));var _0x078f=function(_0x136dd,_0x11a24f){_0x136dd=_0x136dd-0x0;var _0x311f95=_0x78f0[_0x136dd];return _0x311f95;};'use strict';var _=require(_0x078f('0x0'));var util=require(_0x078f('0x1'));function rewrite(_0x140ffe,_0x1848c2){var _0x11b4c1=this;return _0x140ffe[_0x078f('0x2')][_0x078f('0x3')][_0x078f('0x4')]({'raw':!![]})['then'](function(_0x2f3d53){_0x11b4c1[_0x078f('0x5')]=_0x2f3d53;return _0x140ffe[_0x078f('0x2')][_0x078f('0x6')]['findAll']({'where':{'IntervalId':_0x1848c2[_0x078f('0x7')]},'raw':!![]});})[_0x078f('0x8')](function(_0x4a7db3){return _0x140ffe[_0x078f('0x2')][_0x078f('0x6')][_0x078f('0x4')]({'where':{'exten':{'$in':_[_0x078f('0x9')](_[_0x078f('0xa')](_0x4a7db3,_0x078f('0xb')))}},'order':[{'raw':_0x078f('0xc')}],'raw':!![]});})[_0x078f('0x8')](function(_0x5b6a41){var _0xae1a36=_[_0x078f('0xd')](_0x5b6a41,{'priority':'1'});var _0x4901f8=_[_0x078f('0xd')](_0x5b6a41,{'isApp':0x1});var _0x19a584=_[_0x078f('0xe')](_0x4901f8,_0x078f('0xb'));var _0x5b6b5a=['queue',_0x078f('0xf')];var _0x114d6e=[];var _0xfa4a73=[];for(var _0xfff664 in _0x19a584){if(_0x19a584['hasOwnProperty'](_0xfff664)){_0x11b4c1[_0x078f('0x10')]=0x2;_0x11b4c1[_0x078f('0x11')]=[];_0x11b4c1['extension']=_[_0x078f('0x12')](_0xae1a36,{'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')]});_0x11b4c1[_0x078f('0x11')][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':_0x078f('0x15'),'appdata':util['format']('CDR(type)=%s',_0x19a584[_0xfff664][0x0][_0x078f('0x14')]),'context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});if(_0x19a584[_0xfff664][0x0][_0x078f('0x14')]===_0x078f('0x18')){if(_0x11b4c1[_0x078f('0x19')]){_0x11b4c1[_0x078f('0x11')][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':_0x078f('0x15'),'appdata':'CDR(destination)='+(_0x11b4c1[_0x078f('0x19')]['cutdigits']?'${EXTEN:'+_0x11b4c1[_0x078f('0x19')][_0x078f('0x1a')]+'}':_0x078f('0x1b')),'context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});}_0x11b4c1[_0x078f('0x11')][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0]['type'],'app':_0x078f('0x15'),'appdata':_0x078f('0x1c')+_0x19a584[_0xfff664][0x0][_0x078f('0x17')],'context':_0x19a584[_0xfff664][0x0]['context'],'exten':_0x19a584[_0xfff664][0x0]['exten'],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});var _0x3d9d08=_0x11b4c1[_0x078f('0x10')]++;_0x11b4c1[_0x078f('0x11')][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':'ExecIf','appdata':_0x078f('0x1d')+(_0x3d9d08+0x2)+_0x078f('0x1e')+(_0x3d9d08+0x1)+')','context':_0x19a584[_0xfff664][0x0]['context'],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x3d9d08,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});if(_0x11b4c1[_0x078f('0x19')]){_0x11b4c1[_0x078f('0x11')][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':_0x078f('0x15'),'appdata':_0x11b4c1[_0x078f('0x19')][_0x078f('0x1a')]?_0x078f('0x1f')+_0x11b4c1[_0x078f('0x19')][_0x078f('0x1a')]+'}':_0x078f('0x20'),'context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});}_0x11b4c1[_0x078f('0x11')]['push']({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':'Set','appdata':'outboundrouteid='+_0x19a584[_0xfff664][0x0][_0x078f('0x17')],'context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0]['VoiceExtensionId']});if(_0x11b4c1[_0x078f('0x19')]&&_0x11b4c1[_0x078f('0x19')][_0x078f('0x21')](_0x078f('0x22'))&&_0x11b4c1[_0x078f('0x19')]['recordingFormat']!==_0x078f('0x23')){_0x11b4c1[_0x078f('0x11')]['push']({'type':_0x19a584[_0xfff664][0x0]['type'],'app':_0x078f('0x15'),'appdata':_0x078f('0x24'),'context':_0x19a584[_0xfff664][0x0]['context'],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});_0x11b4c1['extensions'][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':_0x078f('0x15'),'appdata':_0x078f('0x25')+_0x11b4c1[_0x078f('0x19')][_0x078f('0x22')]||'wav','context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});}}_0x11b4c1['extensions'][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':_0x078f('0x15'),'appdata':_0x078f('0x26'),'context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0][_0x078f('0x17')]});_0x11b4c1[_0x078f('0x11')][_0x078f('0x13')]({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':_0x078f('0x15'),'appdata':_0x078f('0x27'),'context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0]['VoiceExtensionId']});_0x11b4c1['extensions']['push']({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':'Set','appdata':_0x078f('0x28'),'context':_0x19a584[_0xfff664][0x0][_0x078f('0x16')],'exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'priority':_0x11b4c1[_0x078f('0x10')]++,'VoiceExtensionId':_0x19a584[_0xfff664][0x0]['VoiceExtensionId']});for(var _0x138724=0x0,_0x483009=0x0;_0x138724<_0x19a584[_0xfff664]['length'];_0x138724+=0x1,_0x483009=0x0){var _0x516ab5=_0x19a584[_0xfff664][_0x138724];if(_0x516ab5[_0x078f('0x14')]){_0x516ab5[_0x078f('0x14')]=_0x516ab5[_0x078f('0x14')][_0x078f('0x29')]();}var _0x2c5039=[];var _0x304778=[];delete _0x516ab5['id'];delete _0x516ab5[_0x078f('0x2a')];delete _0x516ab5[_0x078f('0x2b')];var _0x3cd3e6=_0x516ab5['interval']!==_0x078f('0x2c')?[_0x516ab5['interval']]:_0x516ab5['IntervalId']?_[_0x078f('0xa')](_['filter'](_0x11b4c1[_0x078f('0x5')],{'IntervalId':_0x516ab5[_0x078f('0x7')]}),_0x078f('0x2d')):[];if(_0x516ab5[_0x078f('0x21')](_0x078f('0x2e'))){if(_0x516ab5[_0x078f('0x2e')]&&_0x516ab5[_0x078f('0x2e')]!=='--'){_0x2c5039[_0x078f('0x13')]({'type':_0x516ab5['type'],'app':_0x078f('0x15'),'appdata':'CDR(tag)='+_0x516ab5[_0x078f('0x2e')],'context':_0x516ab5['context'],'exten':_0x516ab5[_0x078f('0xb')],'priority':_0x3cd3e6[_0x078f('0x2f')]+_0x11b4c1[_0x078f('0x10')]+_0x483009++,'VoiceExtensionId':_0x516ab5[_0x078f('0x17')]});}}if(_0x516ab5[_0x078f('0x14')]===_0x078f('0x18')&&_0x516ab5[_0x078f('0x21')](_0x078f('0x30'))){if(_0x516ab5[_0x078f('0x30')]){_0x2c5039['push']({'type':_0x516ab5[_0x078f('0x14')],'app':_0x078f('0x31'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x516ab5[_0x078f('0x30')]+')','context':_0x516ab5[_0x078f('0x16')],'exten':_0x516ab5[_0x078f('0xb')],'priority':_0x3cd3e6[_0x078f('0x2f')]+_0x11b4c1['priority']+_0x483009++,'VoiceExtensionId':_0x516ab5[_0x078f('0x17')]});}else{_0x2c5039[_0x078f('0x13')]({'type':_0x516ab5[_0x078f('0x14')],'app':'ExecIf','appdata':_0x078f('0x32'),'context':_0x516ab5[_0x078f('0x16')],'exten':_0x516ab5[_0x078f('0xb')],'priority':_0x3cd3e6[_0x078f('0x2f')]+_0x11b4c1[_0x078f('0x10')]+_0x483009++,'VoiceExtensionId':_0x516ab5['VoiceExtensionId']});}}if(_0x516ab5[_0x078f('0x21')](_0x078f('0x33'))){if(_0x5b6b5a['indexOf'](_0x516ab5[_0x078f('0x34')][_0x078f('0x29')]())>=0x0&&_0x516ab5['appType']!==_0x078f('0x35')){if(_0x516ab5[_0x078f('0x33')]){_0x2c5039[_0x078f('0x13')]({'type':_0x516ab5[_0x078f('0x14')],'app':_0x078f('0x31'),'appdata':_0x078f('0x36'),'context':_0x516ab5[_0x078f('0x16')],'exten':_0x516ab5[_0x078f('0xb')],'priority':_0x3cd3e6[_0x078f('0x2f')]+_0x11b4c1['priority']+_0x483009++,'VoiceExtensionId':_0x516ab5[_0x078f('0x17')]});_0x2c5039[_0x078f('0x13')]({'type':_0x516ab5[_0x078f('0x14')],'app':'Set','appdata':_0x078f('0x37'),'context':_0x516ab5[_0x078f('0x16')],'exten':_0x516ab5[_0x078f('0xb')],'priority':_0x3cd3e6[_0x078f('0x2f')]+_0x11b4c1['priority']+_0x483009++,'VoiceExtensionId':_0x516ab5[_0x078f('0x17')]});}else{_0x2c5039[_0x078f('0x13')]({'type':_0x516ab5['type'],'app':_0x078f('0x31'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x516ab5[_0x078f('0x16')],'exten':_0x516ab5[_0x078f('0xb')],'priority':_0x3cd3e6[_0x078f('0x2f')]+_0x11b4c1['priority']+_0x483009++,'VoiceExtensionId':_0x516ab5['VoiceExtensionId']});_0x2c5039['push']({'type':_0x516ab5[_0x078f('0x14')],'app':'Set','appdata':_0x078f('0x38'),'context':_0x516ab5['context'],'exten':_0x516ab5[_0x078f('0xb')],'priority':_0x3cd3e6[_0x078f('0x2f')]+_0x11b4c1[_0x078f('0x10')]+_0x483009++,'VoiceExtensionId':_0x516ab5[_0x078f('0x17')]});}}}for(var _0x4d42ca=0x0;_0x4d42ca<_0x3cd3e6[_0x078f('0x2f')];_0x4d42ca+=0x1){var _0x51fa52=_0x11b4c1[_0x078f('0x10')]+_0x3cd3e6[_0x078f('0x2f')];var _0x4d967f=_0x4d42ca===_0x3cd3e6[_0x078f('0x2f')]-0x1?_0x11b4c1[_0x078f('0x10')]+_0x2c5039[_0x078f('0x2f')]+_0x304778[_0x078f('0x2f')]+0x2:_0x11b4c1[_0x078f('0x10')]+_0x4d42ca+0x1;_0x2c5039[_0x078f('0x39')](_0x4d42ca,0x0,{'type':_0x516ab5[_0x078f('0x14')],'app':_0x078f('0x3a'),'appdata':_0x3cd3e6[_0x4d42ca]+'?'+_0x516ab5[_0x078f('0x16')]+_0x078f('0x3b')+_0x51fa52+':'+_0x516ab5[_0x078f('0x16')]+_0x078f('0x3b')+_0x4d967f,'exten':_0x516ab5['exten'],'context':_0x516ab5[_0x078f('0x16')],'priority':_0x11b4c1[_0x078f('0x10')]+_0x4d42ca,'VoiceExtensionId':_0x19a584[_0xfff664][0x0]['VoiceExtensionId']});}_0x516ab5['priority']=_0x2c5039[_0x078f('0x2f')]?_['last'](_0x2c5039)['priority']+0x1:_0x11b4c1[_0x078f('0x10')];_0x11b4c1[_0x078f('0x10')]=(_0x304778[_0x078f('0x2f')]?_['last'](_0x304778)[_0x078f('0x10')]:_0x516ab5['priority'])+0x1;_0x11b4c1[_0x078f('0x11')]=_[_0x078f('0x3c')](_0x11b4c1[_0x078f('0x11')],_0x2c5039,[_0x516ab5],_0x304778);}_0x11b4c1[_0x078f('0x11')]['push']({'type':_0x19a584[_0xfff664][0x0][_0x078f('0x14')],'app':'Hangup','exten':_0x19a584[_0xfff664][0x0][_0x078f('0xb')],'context':_0x19a584[_0xfff664][0x0]['context'],'priority':_0x11b4c1[_0x078f('0x10')],'VoiceExtensionId':_0x19a584[_0xfff664][0x0]['VoiceExtensionId']});_0x114d6e[_0x078f('0x13')](_0x19a584[_0xfff664][0x0][_0x078f('0x17')]);_0xfa4a73=_[_0x078f('0x3c')](_0xfa4a73,_0x11b4c1['extensions']);}}return _0x140ffe[_0x078f('0x3d')](function(_0x586334){return _0x140ffe['models'][_0x078f('0x6')][_0x078f('0x3e')]({'where':{'VoiceExtensionId':{'$in':_0x114d6e}},'transaction':_0x586334})[_0x078f('0x8')](function(_0x1dc8f6){return _0x140ffe[_0x078f('0x2')][_0x078f('0x6')]['bulkCreate'](_['sortBy'](_0xfa4a73,_0x078f('0x10')),{'transaction':_0x586334});});});})[_0x078f('0x3f')](function(_0x207696){console[_0x078f('0x40')](_0x207696);});}exports[_0x078f('0x41')]=rewrite;