Built motion from commit (unavailable).|2.5.13
[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 _0x6ae1=['exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','hasOwnProperty','priority','extensions','find','type','Set','format','CDR(type)=%s','context','extension','push','CDR(destination)=','${EXTEN:','${EXTEN}','VoiceExtensionId','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','cutdigits','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)=','answer','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice',',${EXTEN},','last','Hangup','concat','destroy','bulkCreate','sortBy','catch','error','rewrite','util','models','Interval','findAll','then','intervals','VoiceExtension','uniq','map'];(function(_0x5c5166,_0x2195c4){var _0x36bad3=function(_0x220c1f){while(--_0x220c1f){_0x5c5166['push'](_0x5c5166['shift']());}};_0x36bad3(++_0x2195c4);}(_0x6ae1,0x15f));var _0x16ae=function(_0x340e6c,_0x44fe5d){_0x340e6c=_0x340e6c-0x0;var _0x6b7d65=_0x6ae1[_0x340e6c];return _0x6b7d65;};'use strict';var _=require('lodash');var util=require(_0x16ae('0x0'));function rewrite(_0x607820,_0x330aa3){var _0x2b560d=this;return _0x607820[_0x16ae('0x1')][_0x16ae('0x2')][_0x16ae('0x3')]({'raw':!![]})[_0x16ae('0x4')](function(_0x25062a){_0x2b560d[_0x16ae('0x5')]=_0x25062a;return _0x607820['models']['VoiceExtension'][_0x16ae('0x3')]({'where':{'IntervalId':_0x330aa3['IntervalId']},'raw':!![]});})[_0x16ae('0x4')](function(_0x401622){return _0x607820[_0x16ae('0x1')][_0x16ae('0x6')][_0x16ae('0x3')]({'where':{'exten':{'$in':_[_0x16ae('0x7')](_[_0x16ae('0x8')](_0x401622,_0x16ae('0x9')))}},'order':[{'raw':_0x16ae('0xa')}],'raw':!![]});})[_0x16ae('0x4')](function(_0x5cf3d3){var _0x470cf3=_[_0x16ae('0xb')](_0x5cf3d3,{'priority':'1'});var _0x20d0e1=_['filter'](_0x5cf3d3,{'isApp':0x1});var _0x1e7b9b=_[_0x16ae('0xc')](_0x20d0e1,'exten');var _0x38c19a=[_0x16ae('0xd'),'playback'];var _0x5064c6=[];var _0x4548b7=[];for(var _0xa218ed in _0x1e7b9b){if(_0x1e7b9b[_0x16ae('0xe')](_0xa218ed)){_0x2b560d[_0x16ae('0xf')]=0x2;_0x2b560d[_0x16ae('0x10')]=[];_0x2b560d['extension']=_[_0x16ae('0x11')](_0x470cf3,{'exten':_0x1e7b9b[_0xa218ed][0x0]['exten']});_0x2b560d['extensions']['push']({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x13'),'appdata':util[_0x16ae('0x14')](_0x16ae('0x15'),_0x1e7b9b[_0xa218ed][0x0]['type']),'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d[_0x16ae('0xf')]++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0]['VoiceExtensionId']});if(_0x1e7b9b[_0xa218ed][0x0]['type']==='outbound'){if(_0x2b560d[_0x16ae('0x17')]){_0x2b560d['extensions'][_0x16ae('0x18')]({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x13'),'appdata':_0x16ae('0x19')+(_0x2b560d['extension']['cutdigits']?_0x16ae('0x1a')+_0x2b560d['extension']['cutdigits']+'}':_0x16ae('0x1b')),'context':_0x1e7b9b[_0xa218ed][0x0]['context'],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d['priority']++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});}_0x2b560d[_0x16ae('0x10')]['push']({'type':_0x1e7b9b[_0xa218ed][0x0]['type'],'app':_0x16ae('0x13'),'appdata':_0x16ae('0x1d')+_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')],'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d[_0x16ae('0xf')]++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0]['VoiceExtensionId']});var _0x3ed274=_0x2b560d['priority']++;_0x2b560d['extensions']['push']({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x1e'),'appdata':_0x16ae('0x1f')+(_0x3ed274+0x2)+_0x16ae('0x20')+(_0x3ed274+0x1)+')','context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0]['exten'],'priority':_0x3ed274,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});if(_0x2b560d[_0x16ae('0x17')]){_0x2b560d['extensions']['push']({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x13'),'appdata':_0x2b560d['extension']['cutdigits']?_0x16ae('0x21')+_0x2b560d[_0x16ae('0x17')][_0x16ae('0x22')]+'}':_0x16ae('0x23'),'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d[_0x16ae('0xf')]++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});}_0x2b560d[_0x16ae('0x10')][_0x16ae('0x18')]({'type':_0x1e7b9b[_0xa218ed][0x0]['type'],'app':_0x16ae('0x13'),'appdata':'outboundrouteid='+_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')],'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0]['exten'],'priority':_0x2b560d[_0x16ae('0xf')]++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});if(_0x2b560d[_0x16ae('0x17')]&&_0x2b560d[_0x16ae('0x17')][_0x16ae('0xe')]('recordingFormat')&&_0x2b560d[_0x16ae('0x17')][_0x16ae('0x24')]!==_0x16ae('0x25')){_0x2b560d[_0x16ae('0x10')]['push']({'type':_0x1e7b9b[_0xa218ed][0x0]['type'],'app':_0x16ae('0x13'),'appdata':_0x16ae('0x26'),'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d[_0x16ae('0xf')]++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});_0x2b560d[_0x16ae('0x10')][_0x16ae('0x18')]({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x13'),'appdata':_0x16ae('0x27')+_0x2b560d[_0x16ae('0x17')]['recordingFormat']||_0x16ae('0x28'),'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d['priority']++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0]['VoiceExtensionId']});}}_0x2b560d[_0x16ae('0x10')][_0x16ae('0x18')]({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':'Set','appdata':_0x16ae('0x29'),'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d[_0x16ae('0xf')]++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});_0x2b560d[_0x16ae('0x10')][_0x16ae('0x18')]({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x13'),'appdata':_0x16ae('0x2a'),'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d['priority']++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});_0x2b560d[_0x16ae('0x10')][_0x16ae('0x18')]({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x13'),'appdata':_0x16ae('0x2b'),'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'exten':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x9')],'priority':_0x2b560d[_0x16ae('0xf')]++,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});for(var _0x101dbe=0x0,_0x598692=0x0;_0x101dbe<_0x1e7b9b[_0xa218ed][_0x16ae('0x2c')];_0x101dbe+=0x1,_0x598692=0x0){var _0x3318d7=_0x1e7b9b[_0xa218ed][_0x101dbe];if(_0x3318d7['type']){_0x3318d7[_0x16ae('0x12')]=_0x3318d7[_0x16ae('0x12')][_0x16ae('0x2d')]();}var _0x250946=[];var _0x513da6=[];delete _0x3318d7['id'];delete _0x3318d7[_0x16ae('0x2e')];delete _0x3318d7[_0x16ae('0x2f')];var _0x30a88e=_0x3318d7[_0x16ae('0x30')]!==_0x16ae('0x31')?[_0x3318d7[_0x16ae('0x30')]]:_0x3318d7[_0x16ae('0x32')]?_[_0x16ae('0x8')](_[_0x16ae('0xb')](_0x2b560d[_0x16ae('0x5')],{'IntervalId':_0x3318d7[_0x16ae('0x32')]}),_0x16ae('0x30')):[];if(_0x3318d7['hasOwnProperty'](_0x16ae('0x33'))){if(_0x3318d7['tag']&&_0x3318d7[_0x16ae('0x33')]!=='--'){_0x250946[_0x16ae('0x18')]({'type':_0x3318d7['type'],'app':_0x16ae('0x13'),'appdata':_0x16ae('0x34')+_0x3318d7['tag'],'context':_0x3318d7[_0x16ae('0x16')],'exten':_0x3318d7['exten'],'priority':_0x30a88e[_0x16ae('0x2c')]+_0x2b560d[_0x16ae('0xf')]+_0x598692++,'VoiceExtensionId':_0x3318d7[_0x16ae('0x1c')]});}}if(_0x3318d7[_0x16ae('0x12')]==='outbound'&&_0x3318d7['hasOwnProperty'](_0x16ae('0x35'))){if(_0x3318d7['callerID']){_0x250946['push']({'type':_0x3318d7[_0x16ae('0x12')],'app':_0x16ae('0x1e'),'appdata':_0x16ae('0x36')+_0x3318d7[_0x16ae('0x35')]+')','context':_0x3318d7[_0x16ae('0x16')],'exten':_0x3318d7[_0x16ae('0x9')],'priority':_0x30a88e['length']+_0x2b560d[_0x16ae('0xf')]+_0x598692++,'VoiceExtensionId':_0x3318d7[_0x16ae('0x1c')]});}else{_0x250946[_0x16ae('0x18')]({'type':_0x3318d7['type'],'app':_0x16ae('0x1e'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x3318d7['context'],'exten':_0x3318d7['exten'],'priority':_0x30a88e[_0x16ae('0x2c')]+_0x2b560d['priority']+_0x598692++,'VoiceExtensionId':_0x3318d7[_0x16ae('0x1c')]});}}if(_0x3318d7[_0x16ae('0xe')](_0x16ae('0x37'))){if(_0x38c19a['indexOf'](_0x3318d7[_0x16ae('0x38')][_0x16ae('0x2d')]())>=0x0&&_0x3318d7[_0x16ae('0x39')]!==_0x16ae('0x3a')){if(_0x3318d7[_0x16ae('0x37')]){_0x250946[_0x16ae('0x18')]({'type':_0x3318d7[_0x16ae('0x12')],'app':'ExecIf','appdata':_0x16ae('0x3b'),'context':_0x3318d7[_0x16ae('0x16')],'exten':_0x3318d7[_0x16ae('0x9')],'priority':_0x30a88e[_0x16ae('0x2c')]+_0x2b560d[_0x16ae('0xf')]+_0x598692++,'VoiceExtensionId':_0x3318d7[_0x16ae('0x1c')]});_0x250946[_0x16ae('0x18')]({'type':_0x3318d7[_0x16ae('0x12')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x3318d7[_0x16ae('0x16')],'exten':_0x3318d7[_0x16ae('0x9')],'priority':_0x30a88e[_0x16ae('0x2c')]+_0x2b560d[_0x16ae('0xf')]+_0x598692++,'VoiceExtensionId':_0x3318d7['VoiceExtensionId']});}else{_0x250946[_0x16ae('0x18')]({'type':_0x3318d7[_0x16ae('0x12')],'app':_0x16ae('0x1e'),'appdata':_0x16ae('0x3c'),'context':_0x3318d7[_0x16ae('0x16')],'exten':_0x3318d7[_0x16ae('0x9')],'priority':_0x30a88e['length']+_0x2b560d[_0x16ae('0xf')]+_0x598692++,'VoiceExtensionId':_0x3318d7[_0x16ae('0x1c')]});_0x250946['push']({'type':_0x3318d7[_0x16ae('0x12')],'app':_0x16ae('0x13'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x3318d7[_0x16ae('0x16')],'exten':_0x3318d7[_0x16ae('0x9')],'priority':_0x30a88e[_0x16ae('0x2c')]+_0x2b560d[_0x16ae('0xf')]+_0x598692++,'VoiceExtensionId':_0x3318d7[_0x16ae('0x1c')]});}}}for(var _0x301596=0x0;_0x301596<_0x30a88e[_0x16ae('0x2c')];_0x301596+=0x1){var _0x2d2e3a=_0x2b560d['priority']+_0x30a88e[_0x16ae('0x2c')];var _0x4e39b6=_0x301596===_0x30a88e[_0x16ae('0x2c')]-0x1?_0x2b560d[_0x16ae('0xf')]+_0x250946[_0x16ae('0x2c')]+_0x513da6[_0x16ae('0x2c')]+0x2:_0x2b560d[_0x16ae('0xf')]+_0x301596+0x1;_0x250946[_0x16ae('0x3d')](_0x301596,0x0,{'type':_0x3318d7[_0x16ae('0x12')],'app':'GotoIfTime','appdata':_0x30a88e[_0x301596]+'?'+_0x3318d7[_0x16ae('0x16')]+_0x16ae('0x3e')+_0x2d2e3a+':'+_0x3318d7['context']+_0x16ae('0x3e')+_0x4e39b6,'exten':_0x3318d7[_0x16ae('0x9')],'context':_0x3318d7[_0x16ae('0x16')],'priority':_0x2b560d['priority']+_0x301596,'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});}_0x3318d7[_0x16ae('0xf')]=_0x250946[_0x16ae('0x2c')]?_[_0x16ae('0x3f')](_0x250946)['priority']+0x1:_0x2b560d[_0x16ae('0xf')];_0x2b560d[_0x16ae('0xf')]=(_0x513da6[_0x16ae('0x2c')]?_[_0x16ae('0x3f')](_0x513da6)[_0x16ae('0xf')]:_0x3318d7[_0x16ae('0xf')])+0x1;_0x2b560d['extensions']=_['concat'](_0x2b560d[_0x16ae('0x10')],_0x250946,[_0x3318d7],_0x513da6);}_0x2b560d['extensions'][_0x16ae('0x18')]({'type':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x12')],'app':_0x16ae('0x40'),'exten':_0x1e7b9b[_0xa218ed][0x0]['exten'],'context':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x16')],'priority':_0x2b560d[_0x16ae('0xf')],'VoiceExtensionId':_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]});_0x5064c6[_0x16ae('0x18')](_0x1e7b9b[_0xa218ed][0x0][_0x16ae('0x1c')]);_0x4548b7=_[_0x16ae('0x41')](_0x4548b7,_0x2b560d[_0x16ae('0x10')]);}}return _0x607820['transaction'](function(_0x43de33){return _0x607820[_0x16ae('0x1')]['VoiceExtension'][_0x16ae('0x42')]({'where':{'VoiceExtensionId':{'$in':_0x5064c6}},'transaction':_0x43de33})[_0x16ae('0x4')](function(_0x38a457){return _0x607820['models']['VoiceExtension'][_0x16ae('0x43')](_[_0x16ae('0x44')](_0x4548b7,_0x16ae('0xf')),{'transaction':_0x43de33});});});})[_0x16ae('0x45')](function(_0xd1f7df){console[_0x16ae('0x46')](_0xd1f7df);});}exports[_0x16ae('0x47')]=rewrite;