4237d649f822c37b2397952a334c749c98426f11
[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 _0xf3f6=['lodash','util','models','findAll','intervals','VoiceExtension','then','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','exten','queue','playback','priority','extensions','extension','find','type','format','VoiceExtensionId','outbound','push','Set','CDR(destination)=','cutdigits','${EXTEN}','context','ExecIf','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','length','toLowerCase','interval','*,*,*,*','IntervalId','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','indexOf','app','appType','answer','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','last','concat','Hangup','destroy','bulkCreate','error'];(function(_0x37ab34,_0x59efc6){var _0x1f8f3f=function(_0xf0dc8a){while(--_0xf0dc8a){_0x37ab34['push'](_0x37ab34['shift']());}};_0x1f8f3f(++_0x59efc6);}(_0xf3f6,0x136));var _0x6f3f=function(_0x2a6341,_0xae116){_0x2a6341=_0x2a6341-0x0;var _0xd23d2e=_0xf3f6[_0x2a6341];return _0xd23d2e;};'use strict';var _=require(_0x6f3f('0x0'));var util=require(_0x6f3f('0x1'));function rewrite(_0x3d1070,_0x294fd3){var _0x13badb=this;return _0x3d1070[_0x6f3f('0x2')]['Interval'][_0x6f3f('0x3')]({'raw':!![]})['then'](function(_0x4e6b20){_0x13badb[_0x6f3f('0x4')]=_0x4e6b20;return _0x3d1070[_0x6f3f('0x2')][_0x6f3f('0x5')][_0x6f3f('0x3')]({'where':{'IntervalId':_0x294fd3['IntervalId']},'raw':!![]});})[_0x6f3f('0x6')](function(_0x4de4e0){return _0x3d1070[_0x6f3f('0x2')]['VoiceExtension'][_0x6f3f('0x3')]({'where':{'exten':{'$in':_[_0x6f3f('0x7')](_[_0x6f3f('0x8')](_0x4de4e0,'exten'))}},'order':[{'raw':_0x6f3f('0x9')}],'raw':!![]});})[_0x6f3f('0x6')](function(_0x389a33){var _0xd3af83=_[_0x6f3f('0xa')](_0x389a33,{'priority':'1'});var _0x1571af=_['filter'](_0x389a33,{'isApp':0x1});var _0x21651e=_['groupBy'](_0x1571af,_0x6f3f('0xb'));var _0x1e9189=[_0x6f3f('0xc'),_0x6f3f('0xd')];var _0xff2258=[];var _0x5b3186=[];for(var _0x38a0fe in _0x21651e){if(_0x21651e['hasOwnProperty'](_0x38a0fe)){_0x13badb[_0x6f3f('0xe')]=0x2;_0x13badb[_0x6f3f('0xf')]=[];_0x13badb[_0x6f3f('0x10')]=_[_0x6f3f('0x11')](_0xd3af83,{'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')]});_0x13badb[_0x6f3f('0xf')]['push']({'type':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')],'app':'Set','appdata':util[_0x6f3f('0x13')]('CDR(type)=%s',_0x21651e[_0x38a0fe][0x0]['type']),'context':_0x21651e[_0x38a0fe][0x0]['context'],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb[_0x6f3f('0xe')]++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});if(_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')]===_0x6f3f('0x15')){if(_0x13badb[_0x6f3f('0x10')]){_0x13badb[_0x6f3f('0xf')][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0]['type'],'app':_0x6f3f('0x17'),'appdata':_0x6f3f('0x18')+(_0x13badb[_0x6f3f('0x10')][_0x6f3f('0x19')]?'${EXTEN:'+_0x13badb[_0x6f3f('0x10')][_0x6f3f('0x19')]+'}':_0x6f3f('0x1a')),'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb[_0x6f3f('0xe')]++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});}_0x13badb[_0x6f3f('0xf')][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')],'app':'Set','appdata':'CDR(routeid)='+_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')],'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb[_0x6f3f('0xe')]++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});var _0x1d0ae4=_0x13badb[_0x6f3f('0xe')]++;_0x13badb[_0x6f3f('0xf')][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0]['type'],'app':_0x6f3f('0x1c'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x1d0ae4+0x2)+'):Goto('+(_0x1d0ae4+0x1)+')','context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x1d0ae4,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});if(_0x13badb['extension']){_0x13badb['extensions']['push']({'type':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')],'app':_0x6f3f('0x17'),'appdata':_0x13badb[_0x6f3f('0x10')][_0x6f3f('0x19')]?_0x6f3f('0x1d')+_0x13badb[_0x6f3f('0x10')]['cutdigits']+'}':_0x6f3f('0x1e'),'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb['priority']++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0]['VoiceExtensionId']});}_0x13badb[_0x6f3f('0xf')][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')],'app':_0x6f3f('0x17'),'appdata':'outboundrouteid='+_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')],'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb[_0x6f3f('0xe')]++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});if(_0x13badb[_0x6f3f('0x10')]&&_0x13badb[_0x6f3f('0x10')][_0x6f3f('0x1f')](_0x6f3f('0x20'))&&_0x13badb[_0x6f3f('0x10')][_0x6f3f('0x20')]!==_0x6f3f('0x21')){_0x13badb[_0x6f3f('0xf')][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0]['type'],'app':'Set','appdata':_0x6f3f('0x22'),'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb[_0x6f3f('0xe')]++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});_0x13badb[_0x6f3f('0xf')]['push']({'type':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')],'app':_0x6f3f('0x17'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x13badb[_0x6f3f('0x10')]['recordingFormat']||'wav','context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb[_0x6f3f('0xe')]++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});}}_0x13badb[_0x6f3f('0xf')][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0]['type'],'app':_0x6f3f('0x17'),'appdata':_0x6f3f('0x23'),'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb['priority']++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0]['VoiceExtensionId']});_0x13badb[_0x6f3f('0xf')][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0]['type'],'app':_0x6f3f('0x17'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb['priority']++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});_0x13badb[_0x6f3f('0xf')]['push']({'type':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')],'app':_0x6f3f('0x17'),'appdata':_0x6f3f('0x24'),'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'priority':_0x13badb['priority']++,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});for(var _0x55afb1=0x0,_0x24299b=0x0;_0x55afb1<_0x21651e[_0x38a0fe][_0x6f3f('0x25')];_0x55afb1+=0x1,_0x24299b=0x0){var _0x3569ef=_0x21651e[_0x38a0fe][_0x55afb1];if(_0x3569ef['type']){_0x3569ef['type']=_0x3569ef['type'][_0x6f3f('0x26')]();}var _0x234d80=[];var _0x163300=[];delete _0x3569ef['id'];delete _0x3569ef['createdAt'];delete _0x3569ef['updatedAt'];var _0xd53ec4=_0x3569ef[_0x6f3f('0x27')]!==_0x6f3f('0x28')?[_0x3569ef['interval']]:_0x3569ef[_0x6f3f('0x29')]?_[_0x6f3f('0x8')](_[_0x6f3f('0xa')](_0x13badb[_0x6f3f('0x4')],{'IntervalId':_0x3569ef[_0x6f3f('0x29')]}),_0x6f3f('0x27')):[];if(_0x3569ef['hasOwnProperty'](_0x6f3f('0x2a'))){if(_0x3569ef[_0x6f3f('0x2a')]&&_0x3569ef[_0x6f3f('0x2a')]!=='--'){_0x234d80[_0x6f3f('0x16')]({'type':_0x3569ef[_0x6f3f('0x12')],'app':_0x6f3f('0x17'),'appdata':_0x6f3f('0x2b')+_0x3569ef[_0x6f3f('0x2a')],'context':_0x3569ef[_0x6f3f('0x1b')],'exten':_0x3569ef['exten'],'priority':_0xd53ec4[_0x6f3f('0x25')]+_0x13badb[_0x6f3f('0xe')]+_0x24299b++,'VoiceExtensionId':_0x3569ef[_0x6f3f('0x14')]});}}if(_0x3569ef[_0x6f3f('0x12')]===_0x6f3f('0x15')&&_0x3569ef[_0x6f3f('0x1f')](_0x6f3f('0x2c'))){if(_0x3569ef[_0x6f3f('0x2c')]){_0x234d80[_0x6f3f('0x16')]({'type':_0x3569ef[_0x6f3f('0x12')],'app':_0x6f3f('0x1c'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x3569ef[_0x6f3f('0x2c')]+')','context':_0x3569ef['context'],'exten':_0x3569ef[_0x6f3f('0xb')],'priority':_0xd53ec4['length']+_0x13badb['priority']+_0x24299b++,'VoiceExtensionId':_0x3569ef[_0x6f3f('0x14')]});}else{_0x234d80[_0x6f3f('0x16')]({'type':_0x3569ef[_0x6f3f('0x12')],'app':_0x6f3f('0x1c'),'appdata':_0x6f3f('0x2d'),'context':_0x3569ef[_0x6f3f('0x1b')],'exten':_0x3569ef['exten'],'priority':_0xd53ec4['length']+_0x13badb[_0x6f3f('0xe')]+_0x24299b++,'VoiceExtensionId':_0x3569ef['VoiceExtensionId']});}}if(_0x3569ef[_0x6f3f('0x1f')]('answer')){if(_0x1e9189[_0x6f3f('0x2e')](_0x3569ef[_0x6f3f('0x2f')][_0x6f3f('0x26')]())>=0x0&&_0x3569ef[_0x6f3f('0x30')]!=='custom'){if(_0x3569ef[_0x6f3f('0x31')]){_0x234d80['push']({'type':_0x3569ef['type'],'app':_0x6f3f('0x1c'),'appdata':_0x6f3f('0x32'),'context':_0x3569ef[_0x6f3f('0x1b')],'exten':_0x3569ef[_0x6f3f('0xb')],'priority':_0xd53ec4[_0x6f3f('0x25')]+_0x13badb[_0x6f3f('0xe')]+_0x24299b++,'VoiceExtensionId':_0x3569ef['VoiceExtensionId']});_0x234d80[_0x6f3f('0x16')]({'type':_0x3569ef[_0x6f3f('0x12')],'app':_0x6f3f('0x17'),'appdata':_0x6f3f('0x33'),'context':_0x3569ef[_0x6f3f('0x1b')],'exten':_0x3569ef[_0x6f3f('0xb')],'priority':_0xd53ec4[_0x6f3f('0x25')]+_0x13badb['priority']+_0x24299b++,'VoiceExtensionId':_0x3569ef[_0x6f3f('0x14')]});}else{_0x234d80[_0x6f3f('0x16')]({'type':_0x3569ef['type'],'app':'ExecIf','appdata':_0x6f3f('0x34'),'context':_0x3569ef[_0x6f3f('0x1b')],'exten':_0x3569ef['exten'],'priority':_0xd53ec4[_0x6f3f('0x25')]+_0x13badb[_0x6f3f('0xe')]+_0x24299b++,'VoiceExtensionId':_0x3569ef['VoiceExtensionId']});_0x234d80['push']({'type':_0x3569ef[_0x6f3f('0x12')],'app':_0x6f3f('0x17'),'appdata':_0x6f3f('0x35'),'context':_0x3569ef['context'],'exten':_0x3569ef[_0x6f3f('0xb')],'priority':_0xd53ec4[_0x6f3f('0x25')]+_0x13badb[_0x6f3f('0xe')]+_0x24299b++,'VoiceExtensionId':_0x3569ef['VoiceExtensionId']});}}}for(var _0x454352=0x0;_0x454352<_0xd53ec4[_0x6f3f('0x25')];_0x454352+=0x1){var _0x13286e=_0x13badb[_0x6f3f('0xe')]+_0xd53ec4[_0x6f3f('0x25')];var _0x51e930=_0x454352===_0xd53ec4[_0x6f3f('0x25')]-0x1?_0x13badb[_0x6f3f('0xe')]+_0x234d80[_0x6f3f('0x25')]+_0x163300[_0x6f3f('0x25')]+0x2:_0x13badb[_0x6f3f('0xe')]+_0x454352+0x1;_0x234d80[_0x6f3f('0x36')](_0x454352,0x0,{'type':_0x3569ef[_0x6f3f('0x12')],'app':'GotoIfTime','appdata':_0xd53ec4[_0x454352]+'?'+_0x3569ef[_0x6f3f('0x1b')]+_0x6f3f('0x37')+_0x13286e+':'+_0x3569ef['context']+_0x6f3f('0x37')+_0x51e930,'exten':_0x3569ef[_0x6f3f('0xb')],'context':_0x3569ef[_0x6f3f('0x1b')],'priority':_0x13badb['priority']+_0x454352,'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0]['VoiceExtensionId']});}_0x3569ef[_0x6f3f('0xe')]=_0x234d80[_0x6f3f('0x25')]?_['last'](_0x234d80)[_0x6f3f('0xe')]+0x1:_0x13badb['priority'];_0x13badb[_0x6f3f('0xe')]=(_0x163300[_0x6f3f('0x25')]?_[_0x6f3f('0x38')](_0x163300)['priority']:_0x3569ef[_0x6f3f('0xe')])+0x1;_0x13badb[_0x6f3f('0xf')]=_[_0x6f3f('0x39')](_0x13badb[_0x6f3f('0xf')],_0x234d80,[_0x3569ef],_0x163300);}_0x13badb['extensions'][_0x6f3f('0x16')]({'type':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x12')],'app':_0x6f3f('0x3a'),'exten':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0xb')],'context':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x1b')],'priority':_0x13badb[_0x6f3f('0xe')],'VoiceExtensionId':_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]});_0xff2258['push'](_0x21651e[_0x38a0fe][0x0][_0x6f3f('0x14')]);_0x5b3186=_[_0x6f3f('0x39')](_0x5b3186,_0x13badb['extensions']);}}return _0x3d1070['transaction'](function(_0x3bd87e){return _0x3d1070['models'][_0x6f3f('0x5')][_0x6f3f('0x3b')]({'where':{'VoiceExtensionId':{'$in':_0xff2258}},'transaction':_0x3bd87e})['then'](function(_0x245b24){return _0x3d1070['models']['VoiceExtension'][_0x6f3f('0x3c')](_['sortBy'](_0x5b3186,_0x6f3f('0xe')),{'transaction':_0x3bd87e});});});})['catch'](function(_0x1127d9){console[_0x6f3f('0x3d')](_0x1127d9);});}exports['rewrite']=rewrite;