Built motion from commit cf5ff673.|2.5.41
[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 _0xc757=['context','VoiceExtensionId','inbound','CDR(routeid)=','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','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','*,*,*,*','intervals','tag','outbound','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','answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','last','Hangup','concat','destroy','bulkCreate','sortBy','catch','error','rewrite','lodash','util','models','Interval','findAll','then','VoiceExtension','IntervalId','uniq','map','exten','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','find','push','type','Set','format'];(function(_0x176b05,_0x466cd6){var _0x43e415=function(_0x5ad9b2){while(--_0x5ad9b2){_0x176b05['push'](_0x176b05['shift']());}};_0x43e415(++_0x466cd6);}(_0xc757,0x1aa));var _0x7c75=function(_0x5ac18c,_0x162994){_0x5ac18c=_0x5ac18c-0x0;var _0x3285e0=_0xc757[_0x5ac18c];return _0x3285e0;};'use strict';var _=require(_0x7c75('0x0'));var util=require(_0x7c75('0x1'));function rewrite(_0xc8bd03,_0x5b1139){var _0x1b71c2=this;return _0xc8bd03[_0x7c75('0x2')][_0x7c75('0x3')][_0x7c75('0x4')]({'raw':!![]})[_0x7c75('0x5')](function(_0x34af28){_0x1b71c2['intervals']=_0x34af28;return _0xc8bd03[_0x7c75('0x2')][_0x7c75('0x6')][_0x7c75('0x4')]({'where':{'IntervalId':_0x5b1139[_0x7c75('0x7')]},'raw':!![]});})[_0x7c75('0x5')](function(_0x94a3b9){return _0xc8bd03[_0x7c75('0x2')][_0x7c75('0x6')][_0x7c75('0x4')]({'where':{'exten':{'$in':_[_0x7c75('0x8')](_[_0x7c75('0x9')](_0x94a3b9,_0x7c75('0xa')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})['then'](function(_0x168afc){var _0x47eba5=_[_0x7c75('0xb')](_0x168afc,{'priority':'1'});var _0x334eef=_[_0x7c75('0xb')](_0x168afc,{'isApp':0x1});var _0x325e03=_[_0x7c75('0xc')](_0x334eef,_0x7c75('0xa'));var _0x390e2b=[_0x7c75('0xd'),_0x7c75('0xe')];var _0x177f1a=[];var _0x57c595=[];for(var _0x5f424e in _0x325e03){if(_0x325e03[_0x7c75('0xf')](_0x5f424e)){_0x1b71c2[_0x7c75('0x10')]=0x2;_0x1b71c2[_0x7c75('0x11')]=[];_0x1b71c2[_0x7c75('0x12')]=_[_0x7c75('0x13')](_0x47eba5,{'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')]});_0x1b71c2[_0x7c75('0x11')][_0x7c75('0x14')]({'type':_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')],'app':_0x7c75('0x16'),'appdata':util[_0x7c75('0x17')]('CDR(type)=%s',_0x325e03[_0x5f424e][0x0]['type']),'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2['priority']++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});if(_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')]===_0x7c75('0x1a')){_0x1b71c2['extensions']['push']({'type':_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')],'app':'Set','appdata':_0x7c75('0x1b')+_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')],'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});}else if(_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')]==='outbound'){if(_0x1b71c2[_0x7c75('0x12')]){_0x1b71c2[_0x7c75('0x11')]['push']({'type':_0x325e03[_0x5f424e][0x0]['type'],'app':_0x7c75('0x16'),'appdata':_0x7c75('0x1c')+(_0x1b71c2[_0x7c75('0x12')][_0x7c75('0x1d')]?_0x7c75('0x1e')+_0x1b71c2[_0x7c75('0x12')][_0x7c75('0x1d')]+'}':_0x7c75('0x1f')),'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0]['VoiceExtensionId']});}_0x1b71c2[_0x7c75('0x11')][_0x7c75('0x14')]({'type':_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')],'app':_0x7c75('0x16'),'appdata':'CDR(routeid)='+_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')],'context':_0x325e03[_0x5f424e][0x0]['context'],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});var _0x522d2d=_0x1b71c2[_0x7c75('0x10')]++;_0x1b71c2[_0x7c75('0x11')]['push']({'type':_0x325e03[_0x5f424e][0x0]['type'],'app':_0x7c75('0x20'),'appdata':_0x7c75('0x21')+(_0x522d2d+0x2)+_0x7c75('0x22')+(_0x522d2d+0x1)+')','context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0]['exten'],'priority':_0x522d2d,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});if(_0x1b71c2[_0x7c75('0x12')]){_0x1b71c2[_0x7c75('0x11')][_0x7c75('0x14')]({'type':_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')],'app':'Set','appdata':_0x1b71c2[_0x7c75('0x12')]['cutdigits']?_0x7c75('0x23')+_0x1b71c2[_0x7c75('0x12')][_0x7c75('0x1d')]+'}':_0x7c75('0x24'),'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0]['VoiceExtensionId']});}_0x1b71c2[_0x7c75('0x11')]['push']({'type':_0x325e03[_0x5f424e][0x0]['type'],'app':_0x7c75('0x16'),'appdata':_0x7c75('0x25')+_0x325e03[_0x5f424e][0x0]['VoiceExtensionId'],'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0]['exten'],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});if(_0x1b71c2['extension']&&_0x1b71c2[_0x7c75('0x12')][_0x7c75('0xf')]('recordingFormat')&&_0x1b71c2[_0x7c75('0x12')][_0x7c75('0x26')]!==_0x7c75('0x27')){_0x1b71c2['extensions'][_0x7c75('0x14')]({'type':_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')],'app':_0x7c75('0x16'),'appdata':_0x7c75('0x28'),'context':_0x325e03[_0x5f424e][0x0]['context'],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});_0x1b71c2[_0x7c75('0x11')][_0x7c75('0x14')]({'type':_0x325e03[_0x5f424e][0x0]['type'],'app':_0x7c75('0x16'),'appdata':_0x7c75('0x29')+_0x1b71c2['extension'][_0x7c75('0x26')]||_0x7c75('0x2a'),'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});}}_0x1b71c2[_0x7c75('0x11')]['push']({'type':_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')],'app':_0x7c75('0x16'),'appdata':_0x7c75('0x2b'),'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0]['VoiceExtensionId']});_0x1b71c2[_0x7c75('0x11')]['push']({'type':_0x325e03[_0x5f424e][0x0]['type'],'app':_0x7c75('0x16'),'appdata':_0x7c75('0x2c'),'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});_0x1b71c2[_0x7c75('0x11')][_0x7c75('0x14')]({'type':_0x325e03[_0x5f424e][0x0][_0x7c75('0x15')],'app':'Set','appdata':_0x7c75('0x2d'),'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'priority':_0x1b71c2[_0x7c75('0x10')]++,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});for(var _0x5dda17=0x0,_0x517b95=0x0;_0x5dda17<_0x325e03[_0x5f424e][_0x7c75('0x2e')];_0x5dda17+=0x1,_0x517b95=0x0){var _0x305205=_0x325e03[_0x5f424e][_0x5dda17];if(_0x305205[_0x7c75('0x15')]){_0x305205['type']=_0x305205[_0x7c75('0x15')][_0x7c75('0x2f')]();}var _0x1b66f7=[];var _0x550291=[];delete _0x305205['id'];delete _0x305205[_0x7c75('0x30')];delete _0x305205[_0x7c75('0x31')];var _0x454b6f=_0x305205[_0x7c75('0x32')]!==_0x7c75('0x33')?[_0x305205['interval']]:_0x305205[_0x7c75('0x7')]?_[_0x7c75('0x9')](_[_0x7c75('0xb')](_0x1b71c2[_0x7c75('0x34')],{'IntervalId':_0x305205[_0x7c75('0x7')]}),_0x7c75('0x32')):[];if(_0x305205['hasOwnProperty']('tag')){if(_0x305205['tag']&&_0x305205[_0x7c75('0x35')]!=='--'){_0x1b66f7[_0x7c75('0x14')]({'type':_0x305205[_0x7c75('0x15')],'app':'Set','appdata':'CDR(tag)='+_0x305205['tag'],'context':_0x305205[_0x7c75('0x18')],'exten':_0x305205[_0x7c75('0xa')],'priority':_0x454b6f['length']+_0x1b71c2['priority']+_0x517b95++,'VoiceExtensionId':_0x305205['VoiceExtensionId']});}}if(_0x305205[_0x7c75('0x15')]===_0x7c75('0x36')&&_0x305205[_0x7c75('0xf')](_0x7c75('0x37'))){if(_0x305205['callerID']){_0x1b66f7[_0x7c75('0x14')]({'type':_0x305205['type'],'app':_0x7c75('0x20'),'appdata':_0x7c75('0x38')+_0x305205['callerID']+')','context':_0x305205[_0x7c75('0x18')],'exten':_0x305205[_0x7c75('0xa')],'priority':_0x454b6f['length']+_0x1b71c2[_0x7c75('0x10')]+_0x517b95++,'VoiceExtensionId':_0x305205[_0x7c75('0x19')]});}else{_0x1b66f7[_0x7c75('0x14')]({'type':_0x305205[_0x7c75('0x15')],'app':_0x7c75('0x20'),'appdata':_0x7c75('0x39'),'context':_0x305205['context'],'exten':_0x305205[_0x7c75('0xa')],'priority':_0x454b6f[_0x7c75('0x2e')]+_0x1b71c2[_0x7c75('0x10')]+_0x517b95++,'VoiceExtensionId':_0x305205[_0x7c75('0x19')]});}}if(_0x305205[_0x7c75('0xf')]('answer')){if(_0x390e2b[_0x7c75('0x3a')](_0x305205[_0x7c75('0x3b')]['toLowerCase']())>=0x0&&_0x305205[_0x7c75('0x3c')]!=='custom'){if(_0x305205[_0x7c75('0x3d')]){_0x1b66f7[_0x7c75('0x14')]({'type':_0x305205[_0x7c75('0x15')],'app':_0x7c75('0x20'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x305205['context'],'exten':_0x305205['exten'],'priority':_0x454b6f['length']+_0x1b71c2[_0x7c75('0x10')]+_0x517b95++,'VoiceExtensionId':_0x305205[_0x7c75('0x19')]});_0x1b66f7[_0x7c75('0x14')]({'type':_0x305205[_0x7c75('0x15')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x305205[_0x7c75('0x18')],'exten':_0x305205[_0x7c75('0xa')],'priority':_0x454b6f[_0x7c75('0x2e')]+_0x1b71c2[_0x7c75('0x10')]+_0x517b95++,'VoiceExtensionId':_0x305205[_0x7c75('0x19')]});}else{_0x1b66f7[_0x7c75('0x14')]({'type':_0x305205[_0x7c75('0x15')],'app':'ExecIf','appdata':_0x7c75('0x3e'),'context':_0x305205[_0x7c75('0x18')],'exten':_0x305205[_0x7c75('0xa')],'priority':_0x454b6f['length']+_0x1b71c2['priority']+_0x517b95++,'VoiceExtensionId':_0x305205[_0x7c75('0x19')]});_0x1b66f7[_0x7c75('0x14')]({'type':_0x305205[_0x7c75('0x15')],'app':_0x7c75('0x16'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x305205[_0x7c75('0x18')],'exten':_0x305205[_0x7c75('0xa')],'priority':_0x454b6f[_0x7c75('0x2e')]+_0x1b71c2[_0x7c75('0x10')]+_0x517b95++,'VoiceExtensionId':_0x305205[_0x7c75('0x19')]});}}}for(var _0x5006a0=0x0;_0x5006a0<_0x454b6f[_0x7c75('0x2e')];_0x5006a0+=0x1){var _0x531916=_0x1b71c2['priority']+_0x454b6f[_0x7c75('0x2e')];var _0x380284=_0x5006a0===_0x454b6f['length']-0x1?_0x1b71c2['priority']+_0x1b66f7[_0x7c75('0x2e')]+_0x550291[_0x7c75('0x2e')]+0x2:_0x1b71c2[_0x7c75('0x10')]+_0x5006a0+0x1;_0x1b66f7[_0x7c75('0x3f')](_0x5006a0,0x0,{'type':_0x305205[_0x7c75('0x15')],'app':_0x7c75('0x40'),'appdata':_0x454b6f[_0x5006a0]+'?'+_0x305205['context']+_0x7c75('0x41')+_0x531916+':'+_0x305205['context']+_0x7c75('0x41')+_0x380284,'exten':_0x305205['exten'],'context':_0x305205[_0x7c75('0x18')],'priority':_0x1b71c2['priority']+_0x5006a0,'VoiceExtensionId':_0x325e03[_0x5f424e][0x0]['VoiceExtensionId']});}_0x305205['priority']=_0x1b66f7['length']?_[_0x7c75('0x42')](_0x1b66f7)[_0x7c75('0x10')]+0x1:_0x1b71c2[_0x7c75('0x10')];_0x1b71c2[_0x7c75('0x10')]=(_0x550291['length']?_[_0x7c75('0x42')](_0x550291)[_0x7c75('0x10')]:_0x305205[_0x7c75('0x10')])+0x1;_0x1b71c2[_0x7c75('0x11')]=_['concat'](_0x1b71c2[_0x7c75('0x11')],_0x1b66f7,[_0x305205],_0x550291);}_0x1b71c2[_0x7c75('0x11')][_0x7c75('0x14')]({'type':_0x325e03[_0x5f424e][0x0]['type'],'app':_0x7c75('0x43'),'exten':_0x325e03[_0x5f424e][0x0][_0x7c75('0xa')],'context':_0x325e03[_0x5f424e][0x0][_0x7c75('0x18')],'priority':_0x1b71c2[_0x7c75('0x10')],'VoiceExtensionId':_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]});_0x177f1a[_0x7c75('0x14')](_0x325e03[_0x5f424e][0x0][_0x7c75('0x19')]);_0x57c595=_[_0x7c75('0x44')](_0x57c595,_0x1b71c2['extensions']);}}return _0xc8bd03['transaction'](function(_0x51b1be){return _0xc8bd03[_0x7c75('0x2')]['VoiceExtension'][_0x7c75('0x45')]({'where':{'VoiceExtensionId':{'$in':_0x177f1a}},'transaction':_0x51b1be})[_0x7c75('0x5')](function(_0x2aeea5){return _0xc8bd03[_0x7c75('0x2')][_0x7c75('0x6')][_0x7c75('0x46')](_[_0x7c75('0x47')](_0x57c595,_0x7c75('0x10')),{'transaction':_0x51b1be});});});})[_0x7c75('0x48')](function(_0x11bbe0){console[_0x7c75('0x49')](_0x11bbe0);});}exports[_0x7c75('0x4a')]=rewrite;