Built motion from commit (unavailable).|2.5.22
[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 _0x4977=['CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','Hangup','concat','transaction','VoiceExtension','destroy','bulkCreate','sortBy','catch','rewrite','lodash','util','Interval','findAll','then','intervals','models','IntervalId','uniq','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','playback','hasOwnProperty','extensions','find','push','type','format','CDR(type)=%s','context','outbound','extension','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','priority','VoiceExtensionId','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','Set','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','length','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','map','tag'];(function(_0x1450f1,_0x3b997a){var _0xfaf198=function(_0xe784b6){while(--_0xe784b6){_0x1450f1['push'](_0x1450f1['shift']());}};_0xfaf198(++_0x3b997a);}(_0x4977,0x1cd));var _0x7497=function(_0x587dd6,_0x51cf21){_0x587dd6=_0x587dd6-0x0;var _0x21ef36=_0x4977[_0x587dd6];return _0x21ef36;};'use strict';var _=require(_0x7497('0x0'));var util=require(_0x7497('0x1'));function rewrite(_0x150f72,_0x392350){var _0x2e7bc1=this;return _0x150f72['models'][_0x7497('0x2')][_0x7497('0x3')]({'raw':!![]})[_0x7497('0x4')](function(_0x43c339){_0x2e7bc1[_0x7497('0x5')]=_0x43c339;return _0x150f72[_0x7497('0x6')]['VoiceExtension'][_0x7497('0x3')]({'where':{'IntervalId':_0x392350[_0x7497('0x7')]},'raw':!![]});})[_0x7497('0x4')](function(_0x15c322){return _0x150f72[_0x7497('0x6')]['VoiceExtension'][_0x7497('0x3')]({'where':{'exten':{'$in':_[_0x7497('0x8')](_['map'](_0x15c322,_0x7497('0x9')))}},'order':[{'raw':_0x7497('0xa')}],'raw':!![]});})[_0x7497('0x4')](function(_0x1d316d){var _0x336d87=_[_0x7497('0xb')](_0x1d316d,{'priority':'1'});var _0x5f5052=_[_0x7497('0xb')](_0x1d316d,{'isApp':0x1});var _0x5dabe9=_[_0x7497('0xc')](_0x5f5052,_0x7497('0x9'));var _0x5e327f=['queue',_0x7497('0xd')];var _0x3bccea=[];var _0x3d4e1f=[];for(var _0x442cbd in _0x5dabe9){if(_0x5dabe9[_0x7497('0xe')](_0x442cbd)){_0x2e7bc1['priority']=0x2;_0x2e7bc1[_0x7497('0xf')]=[];_0x2e7bc1['extension']=_[_0x7497('0x10')](_0x336d87,{'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')]});_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':'Set','appdata':util[_0x7497('0x13')](_0x7497('0x14'),_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')]),'context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x2e7bc1['priority']++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0]['VoiceExtensionId']});if(_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')]===_0x7497('0x16')){if(_0x2e7bc1[_0x7497('0x17')]){_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':'Set','appdata':_0x7497('0x18')+(_0x2e7bc1[_0x7497('0x17')][_0x7497('0x19')]?_0x7497('0x1a')+_0x2e7bc1['extension'][_0x7497('0x19')]+'}':_0x7497('0x1b')),'context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x2e7bc1[_0x7497('0x1c')]++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});}_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':'Set','appdata':_0x7497('0x1e')+_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')],'context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x2e7bc1[_0x7497('0x1c')]++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});var _0x17b9ad=_0x2e7bc1['priority']++;_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':_0x7497('0x1f'),'appdata':_0x7497('0x20')+(_0x17b9ad+0x2)+'):Goto('+(_0x17b9ad+0x1)+')','context':_0x5dabe9[_0x442cbd][0x0]['context'],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x17b9ad,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});if(_0x2e7bc1[_0x7497('0x17')]){_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':_0x7497('0x21'),'appdata':_0x2e7bc1[_0x7497('0x17')]['cutdigits']?_0x7497('0x22')+_0x2e7bc1['extension'][_0x7497('0x19')]+'}':_0x7497('0x23'),'context':_0x5dabe9[_0x442cbd][0x0]['context'],'exten':_0x5dabe9[_0x442cbd][0x0]['exten'],'priority':_0x2e7bc1[_0x7497('0x1c')]++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});}_0x2e7bc1['extensions'][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0]['type'],'app':_0x7497('0x21'),'appdata':_0x7497('0x24')+_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')],'context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x2e7bc1[_0x7497('0x1c')]++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});if(_0x2e7bc1['extension']&&_0x2e7bc1[_0x7497('0x17')][_0x7497('0xe')](_0x7497('0x25'))&&_0x2e7bc1['extension'][_0x7497('0x25')]!==_0x7497('0x26')){_0x2e7bc1['extensions']['push']({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':_0x7497('0x21'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0]['exten'],'priority':_0x2e7bc1['priority']++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':'Set','appdata':_0x7497('0x27')+_0x2e7bc1['extension'][_0x7497('0x25')]||_0x7497('0x28'),'context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x2e7bc1[_0x7497('0x1c')]++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});}}_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':_0x7497('0x21'),'appdata':_0x7497('0x29'),'context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x2e7bc1['priority']++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0]['exten'],'priority':_0x2e7bc1[_0x7497('0x1c')]++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});_0x2e7bc1[_0x7497('0xf')][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x12')],'app':_0x7497('0x21'),'appdata':'MONITOR_OPTIONS=ab','context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'priority':_0x2e7bc1[_0x7497('0x1c')]++,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});for(var _0x2dfe58=0x0,_0x236b9f=0x0;_0x2dfe58<_0x5dabe9[_0x442cbd][_0x7497('0x2a')];_0x2dfe58+=0x1,_0x236b9f=0x0){var _0xa0d2fc=_0x5dabe9[_0x442cbd][_0x2dfe58];if(_0xa0d2fc[_0x7497('0x12')]){_0xa0d2fc['type']=_0xa0d2fc[_0x7497('0x12')][_0x7497('0x2b')]();}var _0x27b98f=[];var _0x363f09=[];delete _0xa0d2fc['id'];delete _0xa0d2fc[_0x7497('0x2c')];delete _0xa0d2fc[_0x7497('0x2d')];var _0x4b0b89=_0xa0d2fc[_0x7497('0x2e')]!==_0x7497('0x2f')?[_0xa0d2fc['interval']]:_0xa0d2fc[_0x7497('0x7')]?_[_0x7497('0x30')](_[_0x7497('0xb')](_0x2e7bc1[_0x7497('0x5')],{'IntervalId':_0xa0d2fc[_0x7497('0x7')]}),_0x7497('0x2e')):[];if(_0xa0d2fc['hasOwnProperty'](_0x7497('0x31'))){if(_0xa0d2fc['tag']&&_0xa0d2fc[_0x7497('0x31')]!=='--'){_0x27b98f[_0x7497('0x11')]({'type':_0xa0d2fc[_0x7497('0x12')],'app':'Set','appdata':_0x7497('0x32')+_0xa0d2fc['tag'],'context':_0xa0d2fc['context'],'exten':_0xa0d2fc[_0x7497('0x9')],'priority':_0x4b0b89[_0x7497('0x2a')]+_0x2e7bc1['priority']+_0x236b9f++,'VoiceExtensionId':_0xa0d2fc[_0x7497('0x1d')]});}}if(_0xa0d2fc[_0x7497('0x12')]===_0x7497('0x16')&&_0xa0d2fc[_0x7497('0xe')](_0x7497('0x33'))){if(_0xa0d2fc['callerID']){_0x27b98f[_0x7497('0x11')]({'type':_0xa0d2fc[_0x7497('0x12')],'app':_0x7497('0x1f'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0xa0d2fc['callerID']+')','context':_0xa0d2fc['context'],'exten':_0xa0d2fc[_0x7497('0x9')],'priority':_0x4b0b89[_0x7497('0x2a')]+_0x2e7bc1[_0x7497('0x1c')]+_0x236b9f++,'VoiceExtensionId':_0xa0d2fc[_0x7497('0x1d')]});}else{_0x27b98f[_0x7497('0x11')]({'type':_0xa0d2fc[_0x7497('0x12')],'app':_0x7497('0x1f'),'appdata':_0x7497('0x34'),'context':_0xa0d2fc[_0x7497('0x15')],'exten':_0xa0d2fc[_0x7497('0x9')],'priority':_0x4b0b89[_0x7497('0x2a')]+_0x2e7bc1[_0x7497('0x1c')]+_0x236b9f++,'VoiceExtensionId':_0xa0d2fc[_0x7497('0x1d')]});}}if(_0xa0d2fc[_0x7497('0xe')]('answer')){if(_0x5e327f['indexOf'](_0xa0d2fc[_0x7497('0x35')][_0x7497('0x2b')]())>=0x0&&_0xa0d2fc[_0x7497('0x36')]!==_0x7497('0x37')){if(_0xa0d2fc['answer']){_0x27b98f[_0x7497('0x11')]({'type':_0xa0d2fc[_0x7497('0x12')],'app':'ExecIf','appdata':_0x7497('0x38'),'context':_0xa0d2fc[_0x7497('0x15')],'exten':_0xa0d2fc['exten'],'priority':_0x4b0b89[_0x7497('0x2a')]+_0x2e7bc1[_0x7497('0x1c')]+_0x236b9f++,'VoiceExtensionId':_0xa0d2fc[_0x7497('0x1d')]});_0x27b98f[_0x7497('0x11')]({'type':_0xa0d2fc[_0x7497('0x12')],'app':'Set','appdata':_0x7497('0x39'),'context':_0xa0d2fc['context'],'exten':_0xa0d2fc[_0x7497('0x9')],'priority':_0x4b0b89[_0x7497('0x2a')]+_0x2e7bc1['priority']+_0x236b9f++,'VoiceExtensionId':_0xa0d2fc[_0x7497('0x1d')]});}else{_0x27b98f['push']({'type':_0xa0d2fc[_0x7497('0x12')],'app':'ExecIf','appdata':_0x7497('0x3a'),'context':_0xa0d2fc[_0x7497('0x15')],'exten':_0xa0d2fc[_0x7497('0x9')],'priority':_0x4b0b89[_0x7497('0x2a')]+_0x2e7bc1[_0x7497('0x1c')]+_0x236b9f++,'VoiceExtensionId':_0xa0d2fc[_0x7497('0x1d')]});_0x27b98f[_0x7497('0x11')]({'type':_0xa0d2fc[_0x7497('0x12')],'app':_0x7497('0x21'),'appdata':_0x7497('0x3b'),'context':_0xa0d2fc[_0x7497('0x15')],'exten':_0xa0d2fc[_0x7497('0x9')],'priority':_0x4b0b89[_0x7497('0x2a')]+_0x2e7bc1[_0x7497('0x1c')]+_0x236b9f++,'VoiceExtensionId':_0xa0d2fc[_0x7497('0x1d')]});}}}for(var _0x4db579=0x0;_0x4db579<_0x4b0b89[_0x7497('0x2a')];_0x4db579+=0x1){var _0x1a5f2e=_0x2e7bc1[_0x7497('0x1c')]+_0x4b0b89[_0x7497('0x2a')];var _0x43b71f=_0x4db579===_0x4b0b89[_0x7497('0x2a')]-0x1?_0x2e7bc1['priority']+_0x27b98f['length']+_0x363f09[_0x7497('0x2a')]+0x2:_0x2e7bc1[_0x7497('0x1c')]+_0x4db579+0x1;_0x27b98f[_0x7497('0x3c')](_0x4db579,0x0,{'type':_0xa0d2fc[_0x7497('0x12')],'app':_0x7497('0x3d'),'appdata':_0x4b0b89[_0x4db579]+'?'+_0xa0d2fc[_0x7497('0x15')]+_0x7497('0x3e')+_0x1a5f2e+':'+_0xa0d2fc[_0x7497('0x15')]+',${EXTEN},'+_0x43b71f,'exten':_0xa0d2fc[_0x7497('0x9')],'context':_0xa0d2fc['context'],'priority':_0x2e7bc1[_0x7497('0x1c')]+_0x4db579,'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});}_0xa0d2fc[_0x7497('0x1c')]=_0x27b98f['length']?_[_0x7497('0x3f')](_0x27b98f)[_0x7497('0x1c')]+0x1:_0x2e7bc1[_0x7497('0x1c')];_0x2e7bc1['priority']=(_0x363f09[_0x7497('0x2a')]?_[_0x7497('0x3f')](_0x363f09)['priority']:_0xa0d2fc[_0x7497('0x1c')])+0x1;_0x2e7bc1[_0x7497('0xf')]=_['concat'](_0x2e7bc1['extensions'],_0x27b98f,[_0xa0d2fc],_0x363f09);}_0x2e7bc1['extensions'][_0x7497('0x11')]({'type':_0x5dabe9[_0x442cbd][0x0]['type'],'app':_0x7497('0x40'),'exten':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x9')],'context':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x15')],'priority':_0x2e7bc1[_0x7497('0x1c')],'VoiceExtensionId':_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]});_0x3bccea['push'](_0x5dabe9[_0x442cbd][0x0][_0x7497('0x1d')]);_0x3d4e1f=_[_0x7497('0x41')](_0x3d4e1f,_0x2e7bc1[_0x7497('0xf')]);}}return _0x150f72[_0x7497('0x42')](function(_0x4a7294){return _0x150f72[_0x7497('0x6')][_0x7497('0x43')][_0x7497('0x44')]({'where':{'VoiceExtensionId':{'$in':_0x3bccea}},'transaction':_0x4a7294})[_0x7497('0x4')](function(_0x51f864){return _0x150f72[_0x7497('0x6')][_0x7497('0x43')][_0x7497('0x45')](_[_0x7497('0x46')](_0x3d4e1f,_0x7497('0x1c')),{'transaction':_0x4a7294});});});})[_0x7497('0x47')](function(_0x96713b){console['error'](_0x96713b);});}exports[_0x7497('0x48')]=rewrite;