Built motion from commit 167bccf5.|2.6.7
[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 _0xb9d6=[',${EXTEN},','last','concat','Hangup','transaction','catch','error','lodash','models','Interval','findAll','intervals','VoiceExtension','IntervalId','uniq','exten','CAST(priority\x20AS\x20UNSIGNED)','then','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','push','type','format','context','VoiceExtensionId','inbound','Set','CDR(routeid)=','outbound','cutdigits','${EXTEN}','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','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','*,*,*,*','map','tag','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime'];(function(_0x35c981,_0x1dba19){var _0xfa34d3=function(_0x1f9bfd){while(--_0x1f9bfd){_0x35c981['push'](_0x35c981['shift']());}};_0xfa34d3(++_0x1dba19);}(_0xb9d6,0x160));var _0x6b9d=function(_0x1c36a8,_0x49c835){_0x1c36a8=_0x1c36a8-0x0;var _0xb622c5=_0xb9d6[_0x1c36a8];return _0xb622c5;};'use strict';var _=require(_0x6b9d('0x0'));var util=require('util');function rewrite(_0x16bc3d,_0x1f7e6e){var _0x1789b5=this;return _0x16bc3d[_0x6b9d('0x1')][_0x6b9d('0x2')][_0x6b9d('0x3')]({'raw':!![]})['then'](function(_0x4686fe){_0x1789b5[_0x6b9d('0x4')]=_0x4686fe;return _0x16bc3d[_0x6b9d('0x1')][_0x6b9d('0x5')][_0x6b9d('0x3')]({'where':{'IntervalId':_0x1f7e6e[_0x6b9d('0x6')]},'raw':!![]});})['then'](function(_0x3d2fc4){return _0x16bc3d[_0x6b9d('0x1')][_0x6b9d('0x5')][_0x6b9d('0x3')]({'where':{'exten':{'$in':_[_0x6b9d('0x7')](_['map'](_0x3d2fc4,_0x6b9d('0x8')))}},'order':[{'raw':_0x6b9d('0x9')}],'raw':!![]});})[_0x6b9d('0xa')](function(_0x1cbecd){var _0x19206e=_[_0x6b9d('0xb')](_0x1cbecd,{'priority':'1'});var _0x308982=_[_0x6b9d('0xb')](_0x1cbecd,{'isApp':0x1});var _0x397cc9=_[_0x6b9d('0xc')](_0x308982,'exten');var _0x54f06c=[_0x6b9d('0xd'),_0x6b9d('0xe')];var _0x468c49=[];var _0x2e9738=[];for(var _0x4b803f in _0x397cc9){if(_0x397cc9[_0x6b9d('0xf')](_0x4b803f)){_0x1789b5[_0x6b9d('0x10')]=0x2;_0x1789b5[_0x6b9d('0x11')]=[];_0x1789b5[_0x6b9d('0x12')]=_['find'](_0x19206e,{'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')]});_0x1789b5[_0x6b9d('0x11')][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':'Set','appdata':util[_0x6b9d('0x15')]('CDR(type)=%s',_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')]),'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0]['exten'],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});if(_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')]===_0x6b9d('0x18')){_0x1789b5[_0x6b9d('0x11')][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':_0x6b9d('0x19'),'appdata':_0x6b9d('0x1a')+_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')],'context':_0x397cc9[_0x4b803f][0x0]['context'],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5['priority']++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0]['VoiceExtensionId']});}else if(_0x397cc9[_0x4b803f][0x0]['type']===_0x6b9d('0x1b')){if(_0x1789b5[_0x6b9d('0x12')]){_0x1789b5[_0x6b9d('0x11')][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0]['type'],'app':_0x6b9d('0x19'),'appdata':'CDR(destination)='+(_0x1789b5['extension'][_0x6b9d('0x1c')]?'${EXTEN:'+_0x1789b5[_0x6b9d('0x12')][_0x6b9d('0x1c')]+'}':_0x6b9d('0x1d')),'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});}_0x1789b5['extensions']['push']({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':_0x6b9d('0x19'),'appdata':_0x6b9d('0x1a')+_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')],'context':_0x397cc9[_0x4b803f][0x0]['context'],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});var _0x28103e=_0x1789b5['priority']++;_0x1789b5[_0x6b9d('0x11')]['push']({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':_0x6b9d('0x1e'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x28103e+0x2)+_0x6b9d('0x1f')+(_0x28103e+0x1)+')','context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x28103e,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0]['VoiceExtensionId']});if(_0x1789b5['extension']){_0x1789b5[_0x6b9d('0x11')][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0]['type'],'app':_0x6b9d('0x19'),'appdata':_0x1789b5['extension'][_0x6b9d('0x1c')]?_0x6b9d('0x20')+_0x1789b5[_0x6b9d('0x12')][_0x6b9d('0x1c')]+'}':_0x6b9d('0x21'),'context':_0x397cc9[_0x4b803f][0x0]['context'],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});}_0x1789b5['extensions'][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':_0x6b9d('0x19'),'appdata':'outboundrouteid='+_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')],'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});if(_0x1789b5['extension']&&_0x1789b5['extension'][_0x6b9d('0xf')](_0x6b9d('0x22'))&&_0x1789b5[_0x6b9d('0x12')][_0x6b9d('0x22')]!==_0x6b9d('0x23')){_0x1789b5['extensions'][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':_0x6b9d('0x19'),'appdata':_0x6b9d('0x24'),'context':_0x397cc9[_0x4b803f][0x0]['context'],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5['priority']++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});_0x1789b5[_0x6b9d('0x11')]['push']({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':_0x6b9d('0x19'),'appdata':_0x6b9d('0x25')+_0x1789b5[_0x6b9d('0x12')][_0x6b9d('0x22')]||_0x6b9d('0x26'),'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});}}_0x1789b5['extensions']['push']({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':'Set','appdata':_0x6b9d('0x27'),'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0]['VoiceExtensionId']});_0x1789b5['extensions']['push']({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':'Set','appdata':_0x6b9d('0x28'),'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5['priority']++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});_0x1789b5[_0x6b9d('0x11')][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x14')],'app':_0x6b9d('0x19'),'appdata':_0x6b9d('0x29'),'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'priority':_0x1789b5[_0x6b9d('0x10')]++,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});for(var _0x171c9d=0x0,_0xea8dce=0x0;_0x171c9d<_0x397cc9[_0x4b803f][_0x6b9d('0x2a')];_0x171c9d+=0x1,_0xea8dce=0x0){var _0x86a434=_0x397cc9[_0x4b803f][_0x171c9d];if(_0x86a434[_0x6b9d('0x14')]){_0x86a434['type']=_0x86a434[_0x6b9d('0x14')][_0x6b9d('0x2b')]();}var _0x4b7695=[];var _0x4c5af8=[];delete _0x86a434['id'];delete _0x86a434[_0x6b9d('0x2c')];delete _0x86a434[_0x6b9d('0x2d')];var _0x2c869d=_0x86a434[_0x6b9d('0x2e')]!==_0x6b9d('0x2f')?[_0x86a434[_0x6b9d('0x2e')]]:_0x86a434['IntervalId']?_[_0x6b9d('0x30')](_[_0x6b9d('0xb')](_0x1789b5[_0x6b9d('0x4')],{'IntervalId':_0x86a434[_0x6b9d('0x6')]}),_0x6b9d('0x2e')):[];if(_0x86a434[_0x6b9d('0xf')](_0x6b9d('0x31'))){if(_0x86a434[_0x6b9d('0x31')]&&_0x86a434[_0x6b9d('0x31')]!=='--'){_0x4b7695[_0x6b9d('0x13')]({'type':_0x86a434['type'],'app':_0x6b9d('0x19'),'appdata':_0x6b9d('0x32')+_0x86a434[_0x6b9d('0x31')],'context':_0x86a434[_0x6b9d('0x16')],'exten':_0x86a434[_0x6b9d('0x8')],'priority':_0x2c869d[_0x6b9d('0x2a')]+_0x1789b5[_0x6b9d('0x10')]+_0xea8dce++,'VoiceExtensionId':_0x86a434[_0x6b9d('0x17')]});}}if(_0x86a434[_0x6b9d('0x14')]===_0x6b9d('0x1b')&&_0x86a434[_0x6b9d('0xf')]('callerID')){if(_0x86a434['callerID']){_0x4b7695['push']({'type':_0x86a434[_0x6b9d('0x14')],'app':_0x6b9d('0x1e'),'appdata':_0x6b9d('0x33')+_0x86a434[_0x6b9d('0x34')]+')','context':_0x86a434[_0x6b9d('0x16')],'exten':_0x86a434[_0x6b9d('0x8')],'priority':_0x2c869d['length']+_0x1789b5['priority']+_0xea8dce++,'VoiceExtensionId':_0x86a434['VoiceExtensionId']});}else{_0x4b7695[_0x6b9d('0x13')]({'type':_0x86a434[_0x6b9d('0x14')],'app':_0x6b9d('0x1e'),'appdata':_0x6b9d('0x35'),'context':_0x86a434[_0x6b9d('0x16')],'exten':_0x86a434[_0x6b9d('0x8')],'priority':_0x2c869d[_0x6b9d('0x2a')]+_0x1789b5[_0x6b9d('0x10')]+_0xea8dce++,'VoiceExtensionId':_0x86a434[_0x6b9d('0x17')]});}}if(_0x86a434['hasOwnProperty'](_0x6b9d('0x36'))){if(_0x54f06c['indexOf'](_0x86a434['app'][_0x6b9d('0x2b')]())>=0x0&&_0x86a434[_0x6b9d('0x37')]!==_0x6b9d('0x38')){if(_0x86a434[_0x6b9d('0x36')]){_0x4b7695[_0x6b9d('0x13')]({'type':_0x86a434[_0x6b9d('0x14')],'app':'ExecIf','appdata':_0x6b9d('0x39'),'context':_0x86a434[_0x6b9d('0x16')],'exten':_0x86a434[_0x6b9d('0x8')],'priority':_0x2c869d['length']+_0x1789b5[_0x6b9d('0x10')]+_0xea8dce++,'VoiceExtensionId':_0x86a434[_0x6b9d('0x17')]});_0x4b7695['push']({'type':_0x86a434[_0x6b9d('0x14')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=1','context':_0x86a434[_0x6b9d('0x16')],'exten':_0x86a434['exten'],'priority':_0x2c869d['length']+_0x1789b5['priority']+_0xea8dce++,'VoiceExtensionId':_0x86a434[_0x6b9d('0x17')]});}else{_0x4b7695['push']({'type':_0x86a434[_0x6b9d('0x14')],'app':'ExecIf','appdata':_0x6b9d('0x3a'),'context':_0x86a434['context'],'exten':_0x86a434[_0x6b9d('0x8')],'priority':_0x2c869d[_0x6b9d('0x2a')]+_0x1789b5[_0x6b9d('0x10')]+_0xea8dce++,'VoiceExtensionId':_0x86a434[_0x6b9d('0x17')]});_0x4b7695[_0x6b9d('0x13')]({'type':_0x86a434[_0x6b9d('0x14')],'app':_0x6b9d('0x19'),'appdata':_0x6b9d('0x3b'),'context':_0x86a434[_0x6b9d('0x16')],'exten':_0x86a434[_0x6b9d('0x8')],'priority':_0x2c869d[_0x6b9d('0x2a')]+_0x1789b5['priority']+_0xea8dce++,'VoiceExtensionId':_0x86a434[_0x6b9d('0x17')]});}}}for(var _0x475050=0x0;_0x475050<_0x2c869d['length'];_0x475050+=0x1){var _0x127772=_0x1789b5[_0x6b9d('0x10')]+_0x2c869d['length'];var _0x3ca4e3=_0x475050===_0x2c869d['length']-0x1?_0x1789b5[_0x6b9d('0x10')]+_0x4b7695[_0x6b9d('0x2a')]+_0x4c5af8[_0x6b9d('0x2a')]+0x2:_0x1789b5[_0x6b9d('0x10')]+_0x475050+0x1;_0x4b7695[_0x6b9d('0x3c')](_0x475050,0x0,{'type':_0x86a434[_0x6b9d('0x14')],'app':_0x6b9d('0x3d'),'appdata':_0x2c869d[_0x475050]+'?'+_0x86a434[_0x6b9d('0x16')]+_0x6b9d('0x3e')+_0x127772+':'+_0x86a434[_0x6b9d('0x16')]+_0x6b9d('0x3e')+_0x3ca4e3,'exten':_0x86a434[_0x6b9d('0x8')],'context':_0x86a434[_0x6b9d('0x16')],'priority':_0x1789b5[_0x6b9d('0x10')]+_0x475050,'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});}_0x86a434[_0x6b9d('0x10')]=_0x4b7695[_0x6b9d('0x2a')]?_['last'](_0x4b7695)[_0x6b9d('0x10')]+0x1:_0x1789b5[_0x6b9d('0x10')];_0x1789b5[_0x6b9d('0x10')]=(_0x4c5af8[_0x6b9d('0x2a')]?_[_0x6b9d('0x3f')](_0x4c5af8)['priority']:_0x86a434[_0x6b9d('0x10')])+0x1;_0x1789b5[_0x6b9d('0x11')]=_[_0x6b9d('0x40')](_0x1789b5[_0x6b9d('0x11')],_0x4b7695,[_0x86a434],_0x4c5af8);}_0x1789b5['extensions'][_0x6b9d('0x13')]({'type':_0x397cc9[_0x4b803f][0x0]['type'],'app':_0x6b9d('0x41'),'exten':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x8')],'context':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x16')],'priority':_0x1789b5[_0x6b9d('0x10')],'VoiceExtensionId':_0x397cc9[_0x4b803f][0x0][_0x6b9d('0x17')]});_0x468c49[_0x6b9d('0x13')](_0x397cc9[_0x4b803f][0x0]['VoiceExtensionId']);_0x2e9738=_[_0x6b9d('0x40')](_0x2e9738,_0x1789b5['extensions']);}}return _0x16bc3d[_0x6b9d('0x42')](function(_0x296ba6){return _0x16bc3d[_0x6b9d('0x1')][_0x6b9d('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x468c49}},'transaction':_0x296ba6})[_0x6b9d('0xa')](function(_0x53d7f5){return _0x16bc3d['models']['VoiceExtension']['bulkCreate'](_['sortBy'](_0x2e9738,'priority'),{'transaction':_0x296ba6});});});})[_0x6b9d('0x43')](function(_0x49b28e){console[_0x6b9d('0x44')](_0x49b28e);});}exports['rewrite']=rewrite;