ea334fcb369a40828809437ff93413156446ec1b
[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 _0x2980=['VoiceExtension','IntervalId','map','filter','groupBy','exten','queue','playback','hasOwnProperty','priority','extensions','extension','find','push','Set','format','CDR(type)=%s','type','VoiceExtensionId','CDR(routeid)=','context','outbound','CDR(destination)=','cutdigits','${EXTEN:','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','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','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','toLowerCase','custom','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','last','concat','Hangup','transaction','sortBy','catch','error','rewrite','lodash','util','models','Interval','findAll','then','intervals'];(function(_0x1085bd,_0xa54ea2){var _0x1115c4=function(_0x4cfd88){while(--_0x4cfd88){_0x1085bd['push'](_0x1085bd['shift']());}};_0x1115c4(++_0xa54ea2);}(_0x2980,0x83));var _0x0298=function(_0x10fd76,_0x36be2e){_0x10fd76=_0x10fd76-0x0;var _0x4d1e7e=_0x2980[_0x10fd76];return _0x4d1e7e;};'use strict';var _=require(_0x0298('0x0'));var util=require(_0x0298('0x1'));function rewrite(_0x5b72c1,_0xfaeca){var _0x2ae1b3=this;return _0x5b72c1[_0x0298('0x2')][_0x0298('0x3')][_0x0298('0x4')]({'raw':!![]})[_0x0298('0x5')](function(_0x3280bb){_0x2ae1b3[_0x0298('0x6')]=_0x3280bb;return _0x5b72c1[_0x0298('0x2')][_0x0298('0x7')][_0x0298('0x4')]({'where':{'IntervalId':_0xfaeca[_0x0298('0x8')]},'raw':!![]});})['then'](function(_0x2515bf){return _0x5b72c1['models']['VoiceExtension'][_0x0298('0x4')]({'where':{'exten':{'$in':_['uniq'](_[_0x0298('0x9')](_0x2515bf,'exten'))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x0298('0x5')](function(_0x41231b){var _0x425c0d=_[_0x0298('0xa')](_0x41231b,{'priority':'1'});var _0x1a7095=_[_0x0298('0xa')](_0x41231b,{'isApp':0x1});var _0x475a70=_[_0x0298('0xb')](_0x1a7095,_0x0298('0xc'));var _0x4e32d0=[_0x0298('0xd'),_0x0298('0xe')];var _0x235cf5=[];var _0x1deac9=[];for(var _0x56873a in _0x475a70){if(_0x475a70[_0x0298('0xf')](_0x56873a)){_0x2ae1b3[_0x0298('0x10')]=0x2;_0x2ae1b3[_0x0298('0x11')]=[];_0x2ae1b3[_0x0298('0x12')]=_[_0x0298('0x13')](_0x425c0d,{'exten':_0x475a70[_0x56873a][0x0]['exten']});_0x2ae1b3[_0x0298('0x11')][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0]['type'],'app':_0x0298('0x15'),'appdata':util[_0x0298('0x16')](_0x0298('0x17'),_0x475a70[_0x56873a][0x0][_0x0298('0x18')]),'context':_0x475a70[_0x56873a][0x0]['context'],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});if(_0x475a70[_0x56873a][0x0][_0x0298('0x18')]==='inbound'){_0x2ae1b3['extensions'][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x15'),'appdata':_0x0298('0x1a')+_0x475a70[_0x56873a][0x0][_0x0298('0x19')],'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0]['exten'],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});}else if(_0x475a70[_0x56873a][0x0][_0x0298('0x18')]===_0x0298('0x1c')){if(_0x2ae1b3[_0x0298('0x12')]){_0x2ae1b3[_0x0298('0x11')]['push']({'type':_0x475a70[_0x56873a][0x0]['type'],'app':_0x0298('0x15'),'appdata':_0x0298('0x1d')+(_0x2ae1b3[_0x0298('0x12')][_0x0298('0x1e')]?_0x0298('0x1f')+_0x2ae1b3['extension']['cutdigits']+'}':'${EXTEN}'),'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3['priority']++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});}_0x2ae1b3[_0x0298('0x11')][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':'Set','appdata':_0x0298('0x1a')+_0x475a70[_0x56873a][0x0]['VoiceExtensionId'],'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3['priority']++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0]['VoiceExtensionId']});var _0x5df8e2=_0x2ae1b3[_0x0298('0x10')]++;_0x2ae1b3[_0x0298('0x11')][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0]['type'],'app':'ExecIf','appdata':_0x0298('0x20')+(_0x5df8e2+0x2)+_0x0298('0x21')+(_0x5df8e2+0x1)+')','context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x5df8e2,'VoiceExtensionId':_0x475a70[_0x56873a][0x0]['VoiceExtensionId']});if(_0x2ae1b3['extension']){_0x2ae1b3[_0x0298('0x11')][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x15'),'appdata':_0x2ae1b3[_0x0298('0x12')][_0x0298('0x1e')]?'CDR(prefix)=${EXTEN:0:'+_0x2ae1b3[_0x0298('0x12')][_0x0298('0x1e')]+'}':_0x0298('0x22'),'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3['priority']++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});}_0x2ae1b3['extensions'][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x15'),'appdata':'outboundrouteid='+_0x475a70[_0x56873a][0x0][_0x0298('0x19')],'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});if(_0x2ae1b3[_0x0298('0x12')]&&_0x2ae1b3[_0x0298('0x12')][_0x0298('0xf')](_0x0298('0x23'))&&_0x2ae1b3[_0x0298('0x12')][_0x0298('0x23')]!==_0x0298('0x24')){_0x2ae1b3['extensions'][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0]['type'],'app':_0x0298('0x15'),'appdata':_0x0298('0x25'),'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0]['exten'],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});_0x2ae1b3[_0x0298('0x11')][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x15'),'appdata':_0x0298('0x26')+_0x2ae1b3[_0x0298('0x12')][_0x0298('0x23')]||_0x0298('0x27'),'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0]['VoiceExtensionId']});}}_0x2ae1b3['extensions'][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x15'),'appdata':_0x0298('0x28'),'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});_0x2ae1b3[_0x0298('0x11')]['push']({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x15'),'appdata':_0x0298('0x29'),'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});_0x2ae1b3[_0x0298('0x11')]['push']({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x15'),'appdata':_0x0298('0x2a'),'context':_0x475a70[_0x56873a][0x0]['context'],'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'priority':_0x2ae1b3[_0x0298('0x10')]++,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});for(var _0xe808fe=0x0,_0x324af9=0x0;_0xe808fe<_0x475a70[_0x56873a][_0x0298('0x2b')];_0xe808fe+=0x1,_0x324af9=0x0){var _0x4b9046=_0x475a70[_0x56873a][_0xe808fe];if(_0x4b9046[_0x0298('0x18')]){_0x4b9046[_0x0298('0x18')]=_0x4b9046[_0x0298('0x18')]['toLowerCase']();}var _0x42bed8=[];var _0x480535=[];delete _0x4b9046['id'];delete _0x4b9046[_0x0298('0x2c')];delete _0x4b9046[_0x0298('0x2d')];var _0x18bcbb=_0x4b9046[_0x0298('0x2e')]!==_0x0298('0x2f')?[_0x4b9046[_0x0298('0x2e')]]:_0x4b9046[_0x0298('0x8')]?_['map'](_[_0x0298('0xa')](_0x2ae1b3[_0x0298('0x6')],{'IntervalId':_0x4b9046['IntervalId']}),_0x0298('0x2e')):[];if(_0x4b9046['hasOwnProperty'](_0x0298('0x30'))){if(_0x4b9046[_0x0298('0x30')]&&_0x4b9046['tag']!=='--'){_0x42bed8['push']({'type':_0x4b9046[_0x0298('0x18')],'app':'Set','appdata':_0x0298('0x31')+_0x4b9046[_0x0298('0x30')],'context':_0x4b9046['context'],'exten':_0x4b9046[_0x0298('0xc')],'priority':_0x18bcbb[_0x0298('0x2b')]+_0x2ae1b3[_0x0298('0x10')]+_0x324af9++,'VoiceExtensionId':_0x4b9046[_0x0298('0x19')]});}}if(_0x4b9046[_0x0298('0x18')]===_0x0298('0x1c')&&_0x4b9046['hasOwnProperty'](_0x0298('0x32'))){if(_0x4b9046[_0x0298('0x32')]){_0x42bed8[_0x0298('0x14')]({'type':_0x4b9046[_0x0298('0x18')],'app':_0x0298('0x33'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x4b9046[_0x0298('0x32')]+')','context':_0x4b9046[_0x0298('0x1b')],'exten':_0x4b9046[_0x0298('0xc')],'priority':_0x18bcbb['length']+_0x2ae1b3[_0x0298('0x10')]+_0x324af9++,'VoiceExtensionId':_0x4b9046[_0x0298('0x19')]});}else{_0x42bed8[_0x0298('0x14')]({'type':_0x4b9046[_0x0298('0x18')],'app':_0x0298('0x33'),'appdata':_0x0298('0x34'),'context':_0x4b9046[_0x0298('0x1b')],'exten':_0x4b9046[_0x0298('0xc')],'priority':_0x18bcbb[_0x0298('0x2b')]+_0x2ae1b3[_0x0298('0x10')]+_0x324af9++,'VoiceExtensionId':_0x4b9046[_0x0298('0x19')]});}}if(_0x4b9046[_0x0298('0xf')](_0x0298('0x35'))){if(_0x4e32d0[_0x0298('0x36')](_0x4b9046[_0x0298('0x37')][_0x0298('0x38')]())>=0x0&&_0x4b9046['appType']!==_0x0298('0x39')){if(_0x4b9046['answer']){_0x42bed8[_0x0298('0x14')]({'type':_0x4b9046[_0x0298('0x18')],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x4b9046[_0x0298('0x1b')],'exten':_0x4b9046[_0x0298('0xc')],'priority':_0x18bcbb['length']+_0x2ae1b3[_0x0298('0x10')]+_0x324af9++,'VoiceExtensionId':_0x4b9046[_0x0298('0x19')]});_0x42bed8[_0x0298('0x14')]({'type':_0x4b9046[_0x0298('0x18')],'app':'Set','appdata':_0x0298('0x3a'),'context':_0x4b9046[_0x0298('0x1b')],'exten':_0x4b9046[_0x0298('0xc')],'priority':_0x18bcbb[_0x0298('0x2b')]+_0x2ae1b3[_0x0298('0x10')]+_0x324af9++,'VoiceExtensionId':_0x4b9046['VoiceExtensionId']});}else{_0x42bed8['push']({'type':_0x4b9046[_0x0298('0x18')],'app':_0x0298('0x33'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x4b9046[_0x0298('0x1b')],'exten':_0x4b9046[_0x0298('0xc')],'priority':_0x18bcbb[_0x0298('0x2b')]+_0x2ae1b3[_0x0298('0x10')]+_0x324af9++,'VoiceExtensionId':_0x4b9046[_0x0298('0x19')]});_0x42bed8[_0x0298('0x14')]({'type':_0x4b9046[_0x0298('0x18')],'app':'Set','appdata':_0x0298('0x3b'),'context':_0x4b9046['context'],'exten':_0x4b9046['exten'],'priority':_0x18bcbb[_0x0298('0x2b')]+_0x2ae1b3[_0x0298('0x10')]+_0x324af9++,'VoiceExtensionId':_0x4b9046[_0x0298('0x19')]});}}}for(var _0x26b454=0x0;_0x26b454<_0x18bcbb['length'];_0x26b454+=0x1){var _0x407546=_0x2ae1b3[_0x0298('0x10')]+_0x18bcbb['length'];var _0x17e2bd=_0x26b454===_0x18bcbb[_0x0298('0x2b')]-0x1?_0x2ae1b3[_0x0298('0x10')]+_0x42bed8[_0x0298('0x2b')]+_0x480535[_0x0298('0x2b')]+0x2:_0x2ae1b3[_0x0298('0x10')]+_0x26b454+0x1;_0x42bed8[_0x0298('0x3c')](_0x26b454,0x0,{'type':_0x4b9046[_0x0298('0x18')],'app':'GotoIfTime','appdata':_0x18bcbb[_0x26b454]+'?'+_0x4b9046[_0x0298('0x1b')]+',${EXTEN},'+_0x407546+':'+_0x4b9046[_0x0298('0x1b')]+',${EXTEN},'+_0x17e2bd,'exten':_0x4b9046[_0x0298('0xc')],'context':_0x4b9046['context'],'priority':_0x2ae1b3[_0x0298('0x10')]+_0x26b454,'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});}_0x4b9046[_0x0298('0x10')]=_0x42bed8[_0x0298('0x2b')]?_[_0x0298('0x3d')](_0x42bed8)[_0x0298('0x10')]+0x1:_0x2ae1b3['priority'];_0x2ae1b3[_0x0298('0x10')]=(_0x480535[_0x0298('0x2b')]?_[_0x0298('0x3d')](_0x480535)[_0x0298('0x10')]:_0x4b9046[_0x0298('0x10')])+0x1;_0x2ae1b3[_0x0298('0x11')]=_[_0x0298('0x3e')](_0x2ae1b3[_0x0298('0x11')],_0x42bed8,[_0x4b9046],_0x480535);}_0x2ae1b3[_0x0298('0x11')][_0x0298('0x14')]({'type':_0x475a70[_0x56873a][0x0][_0x0298('0x18')],'app':_0x0298('0x3f'),'exten':_0x475a70[_0x56873a][0x0][_0x0298('0xc')],'context':_0x475a70[_0x56873a][0x0][_0x0298('0x1b')],'priority':_0x2ae1b3[_0x0298('0x10')],'VoiceExtensionId':_0x475a70[_0x56873a][0x0][_0x0298('0x19')]});_0x235cf5[_0x0298('0x14')](_0x475a70[_0x56873a][0x0][_0x0298('0x19')]);_0x1deac9=_[_0x0298('0x3e')](_0x1deac9,_0x2ae1b3['extensions']);}}return _0x5b72c1[_0x0298('0x40')](function(_0x2a8b03){return _0x5b72c1[_0x0298('0x2')]['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':{'$in':_0x235cf5}},'transaction':_0x2a8b03})['then'](function(_0x37333a){return _0x5b72c1[_0x0298('0x2')]['VoiceExtension']['bulkCreate'](_[_0x0298('0x41')](_0x1deac9,_0x0298('0x10')),{'transaction':_0x2a8b03});});});})[_0x0298('0x42')](function(_0x542d19){console[_0x0298('0x43')](_0x542d19);});}exports[_0x0298('0x44')]=rewrite;