f238e38839b18f264e3223e3710e612aad6824db
[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 _0xf941=['outbound','CDR(destination)=','cutdigits','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?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','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','length','callerID','ExecIf','$[${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)','answer','indexOf','app','appType','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','bulkCreate','sortBy','catch','error','rewrite','findAll','intervals','models','VoiceExtension','IntervalId','then','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','queue','hasOwnProperty','priority','extension','find','push','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','extensions','CDR(routeid)='];(function(_0x2185d7,_0x2b9aeb){var _0x2f65f1=function(_0x1a7c5f){while(--_0x1a7c5f){_0x2185d7['push'](_0x2185d7['shift']());}};_0x2f65f1(++_0x2b9aeb);}(_0xf941,0x150));var _0x1f94=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xf941[_0x501510];return _0x1e6ee5;};'use strict';var _=require('lodash');var util=require('util');function rewrite(_0x4f4d5a,_0x397028){var _0x326e05=this;return _0x4f4d5a['models']['Interval'][_0x1f94('0x0')]({'raw':!![]})['then'](function(_0x3a1497){_0x326e05[_0x1f94('0x1')]=_0x3a1497;return _0x4f4d5a[_0x1f94('0x2')][_0x1f94('0x3')][_0x1f94('0x0')]({'where':{'IntervalId':_0x397028[_0x1f94('0x4')]},'raw':!![]});})[_0x1f94('0x5')](function(_0x513e29){return _0x4f4d5a['models'][_0x1f94('0x3')][_0x1f94('0x0')]({'where':{'exten':{'$in':_['uniq'](_[_0x1f94('0x6')](_0x513e29,_0x1f94('0x7')))}},'order':[{'raw':_0x1f94('0x8')}],'raw':!![]});})[_0x1f94('0x5')](function(_0x532dac){var _0x3244b5=_[_0x1f94('0x9')](_0x532dac,{'priority':'1'});var _0x2e4307=_[_0x1f94('0x9')](_0x532dac,{'isApp':0x1});var _0x5e47d3=_['groupBy'](_0x2e4307,_0x1f94('0x7'));var _0x556d6e=[_0x1f94('0xa'),'playback'];var _0x3a478c=[];var _0x56e591=[];for(var _0xa28d6f in _0x5e47d3){if(_0x5e47d3[_0x1f94('0xb')](_0xa28d6f)){_0x326e05[_0x1f94('0xc')]=0x2;_0x326e05['extensions']=[];_0x326e05[_0x1f94('0xd')]=_[_0x1f94('0xe')](_0x3244b5,{'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')]});_0x326e05['extensions'][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':util[_0x1f94('0x12')](_0x1f94('0x13'),_0x5e47d3[_0xa28d6f][0x0]['type']),'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});if(_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')]==='inbound'){_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':'Set','appdata':_0x1f94('0x17')+_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')],'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});}else if(_0x5e47d3[_0xa28d6f][0x0]['type']===_0x1f94('0x18')){if(_0x326e05[_0x1f94('0xd')]){_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x19')+(_0x326e05[_0x1f94('0xd')][_0x1f94('0x1a')]?'${EXTEN:'+_0x326e05[_0x1f94('0xd')][_0x1f94('0x1a')]+'}':_0x1f94('0x1b')),'context':_0x5e47d3[_0xa28d6f][0x0]['context'],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});}_0x326e05['extensions']['push']({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':'CDR(routeid)='+_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')],'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});var _0x27ba63=_0x326e05['priority']++;_0x326e05['extensions'][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':'ExecIf','appdata':_0x1f94('0x1c')+(_0x27ba63+0x2)+'):Goto('+(_0x27ba63+0x1)+')','context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x27ba63,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});if(_0x326e05[_0x1f94('0xd')]){_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':_0x326e05[_0x1f94('0xd')][_0x1f94('0x1a')]?_0x1f94('0x1d')+_0x326e05[_0x1f94('0xd')][_0x1f94('0x1a')]+'}':_0x1f94('0x1e'),'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});}_0x326e05[_0x1f94('0x16')]['push']({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x1f')+_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')],'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});if(_0x326e05['extension']&&_0x326e05[_0x1f94('0xd')][_0x1f94('0xb')]('recordingFormat')&&_0x326e05['extension'][_0x1f94('0x20')]!==_0x1f94('0x21')){_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0]['type'],'app':'Set','appdata':_0x1f94('0x22'),'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05['priority']++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x23')+_0x326e05['extension'][_0x1f94('0x20')]||_0x1f94('0x24'),'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});}}_0x326e05['extensions'][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0]['type'],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x25'),'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05['priority']++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x26'),'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0]['exten'],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x27'),'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'priority':_0x326e05[_0x1f94('0xc')]++,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});for(var _0x34bf03=0x0,_0x6a42c9=0x0;_0x34bf03<_0x5e47d3[_0xa28d6f]['length'];_0x34bf03+=0x1,_0x6a42c9=0x0){var _0x457fc8=_0x5e47d3[_0xa28d6f][_0x34bf03];if(_0x457fc8[_0x1f94('0x10')]){_0x457fc8[_0x1f94('0x10')]=_0x457fc8[_0x1f94('0x10')][_0x1f94('0x28')]();}var _0x5d1c7e=[];var _0x123518=[];delete _0x457fc8['id'];delete _0x457fc8[_0x1f94('0x29')];delete _0x457fc8[_0x1f94('0x2a')];var _0x43c2f4=_0x457fc8[_0x1f94('0x2b')]!==_0x1f94('0x2c')?[_0x457fc8['interval']]:_0x457fc8[_0x1f94('0x4')]?_[_0x1f94('0x6')](_['filter'](_0x326e05['intervals'],{'IntervalId':_0x457fc8[_0x1f94('0x4')]}),_0x1f94('0x2b')):[];if(_0x457fc8[_0x1f94('0xb')](_0x1f94('0x2d'))){if(_0x457fc8['tag']&&_0x457fc8[_0x1f94('0x2d')]!=='--'){_0x5d1c7e['push']({'type':_0x457fc8['type'],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x2e')+_0x457fc8[_0x1f94('0x2d')],'context':_0x457fc8[_0x1f94('0x14')],'exten':_0x457fc8[_0x1f94('0x7')],'priority':_0x43c2f4[_0x1f94('0x2f')]+_0x326e05['priority']+_0x6a42c9++,'VoiceExtensionId':_0x457fc8[_0x1f94('0x15')]});}}if(_0x457fc8[_0x1f94('0x10')]===_0x1f94('0x18')&&_0x457fc8[_0x1f94('0xb')]('callerID')){if(_0x457fc8[_0x1f94('0x30')]){_0x5d1c7e[_0x1f94('0xf')]({'type':_0x457fc8[_0x1f94('0x10')],'app':_0x1f94('0x31'),'appdata':_0x1f94('0x32')+_0x457fc8[_0x1f94('0x30')]+')','context':_0x457fc8[_0x1f94('0x14')],'exten':_0x457fc8[_0x1f94('0x7')],'priority':_0x43c2f4[_0x1f94('0x2f')]+_0x326e05[_0x1f94('0xc')]+_0x6a42c9++,'VoiceExtensionId':_0x457fc8[_0x1f94('0x15')]});}else{_0x5d1c7e[_0x1f94('0xf')]({'type':_0x457fc8[_0x1f94('0x10')],'app':_0x1f94('0x31'),'appdata':_0x1f94('0x33'),'context':_0x457fc8[_0x1f94('0x14')],'exten':_0x457fc8['exten'],'priority':_0x43c2f4[_0x1f94('0x2f')]+_0x326e05['priority']+_0x6a42c9++,'VoiceExtensionId':_0x457fc8[_0x1f94('0x15')]});}}if(_0x457fc8['hasOwnProperty'](_0x1f94('0x34'))){if(_0x556d6e[_0x1f94('0x35')](_0x457fc8[_0x1f94('0x36')][_0x1f94('0x28')]())>=0x0&&_0x457fc8[_0x1f94('0x37')]!=='custom'){if(_0x457fc8[_0x1f94('0x34')]){_0x5d1c7e[_0x1f94('0xf')]({'type':_0x457fc8['type'],'app':_0x1f94('0x31'),'appdata':_0x1f94('0x38'),'context':_0x457fc8['context'],'exten':_0x457fc8[_0x1f94('0x7')],'priority':_0x43c2f4[_0x1f94('0x2f')]+_0x326e05['priority']+_0x6a42c9++,'VoiceExtensionId':_0x457fc8[_0x1f94('0x15')]});_0x5d1c7e['push']({'type':_0x457fc8[_0x1f94('0x10')],'app':_0x1f94('0x11'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x457fc8[_0x1f94('0x14')],'exten':_0x457fc8['exten'],'priority':_0x43c2f4[_0x1f94('0x2f')]+_0x326e05[_0x1f94('0xc')]+_0x6a42c9++,'VoiceExtensionId':_0x457fc8[_0x1f94('0x15')]});}else{_0x5d1c7e[_0x1f94('0xf')]({'type':_0x457fc8['type'],'app':_0x1f94('0x31'),'appdata':_0x1f94('0x39'),'context':_0x457fc8['context'],'exten':_0x457fc8['exten'],'priority':_0x43c2f4[_0x1f94('0x2f')]+_0x326e05['priority']+_0x6a42c9++,'VoiceExtensionId':_0x457fc8[_0x1f94('0x15')]});_0x5d1c7e['push']({'type':_0x457fc8['type'],'app':_0x1f94('0x11'),'appdata':_0x1f94('0x3a'),'context':_0x457fc8[_0x1f94('0x14')],'exten':_0x457fc8[_0x1f94('0x7')],'priority':_0x43c2f4[_0x1f94('0x2f')]+_0x326e05['priority']+_0x6a42c9++,'VoiceExtensionId':_0x457fc8[_0x1f94('0x15')]});}}}for(var _0x42a1ad=0x0;_0x42a1ad<_0x43c2f4[_0x1f94('0x2f')];_0x42a1ad+=0x1){var _0x521832=_0x326e05[_0x1f94('0xc')]+_0x43c2f4[_0x1f94('0x2f')];var _0x334543=_0x42a1ad===_0x43c2f4['length']-0x1?_0x326e05[_0x1f94('0xc')]+_0x5d1c7e[_0x1f94('0x2f')]+_0x123518[_0x1f94('0x2f')]+0x2:_0x326e05['priority']+_0x42a1ad+0x1;_0x5d1c7e[_0x1f94('0x3b')](_0x42a1ad,0x0,{'type':_0x457fc8[_0x1f94('0x10')],'app':_0x1f94('0x3c'),'appdata':_0x43c2f4[_0x42a1ad]+'?'+_0x457fc8[_0x1f94('0x14')]+_0x1f94('0x3d')+_0x521832+':'+_0x457fc8['context']+_0x1f94('0x3d')+_0x334543,'exten':_0x457fc8[_0x1f94('0x7')],'context':_0x457fc8[_0x1f94('0x14')],'priority':_0x326e05['priority']+_0x42a1ad,'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]});}_0x457fc8[_0x1f94('0xc')]=_0x5d1c7e[_0x1f94('0x2f')]?_[_0x1f94('0x3e')](_0x5d1c7e)['priority']+0x1:_0x326e05[_0x1f94('0xc')];_0x326e05[_0x1f94('0xc')]=(_0x123518[_0x1f94('0x2f')]?_['last'](_0x123518)[_0x1f94('0xc')]:_0x457fc8[_0x1f94('0xc')])+0x1;_0x326e05['extensions']=_[_0x1f94('0x3f')](_0x326e05['extensions'],_0x5d1c7e,[_0x457fc8],_0x123518);}_0x326e05[_0x1f94('0x16')][_0x1f94('0xf')]({'type':_0x5e47d3[_0xa28d6f][0x0]['type'],'app':_0x1f94('0x40'),'exten':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x7')],'context':_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x14')],'priority':_0x326e05[_0x1f94('0xc')],'VoiceExtensionId':_0x5e47d3[_0xa28d6f][0x0]['VoiceExtensionId']});_0x3a478c[_0x1f94('0xf')](_0x5e47d3[_0xa28d6f][0x0][_0x1f94('0x15')]);_0x56e591=_[_0x1f94('0x3f')](_0x56e591,_0x326e05[_0x1f94('0x16')]);}}return _0x4f4d5a[_0x1f94('0x41')](function(_0x40fbb9){return _0x4f4d5a[_0x1f94('0x2')][_0x1f94('0x3')][_0x1f94('0x42')]({'where':{'VoiceExtensionId':{'$in':_0x3a478c}},'transaction':_0x40fbb9})[_0x1f94('0x5')](function(_0x5a0b75){return _0x4f4d5a['models'][_0x1f94('0x3')][_0x1f94('0x43')](_[_0x1f94('0x44')](_0x56e591,_0x1f94('0xc')),{'transaction':_0x40fbb9});});});})[_0x1f94('0x45')](function(_0x366227){console[_0x1f94('0x46')](_0x366227);});}exports[_0x1f94('0x47')]=rewrite;