1a4a42f459cceb14625caf4c0ede409ccba58c5e
[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 _0x3e8f=['$[${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','lodash','util','models','Interval','findAll','then','VoiceExtension','IntervalId','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','queue','hasOwnProperty','priority','extensions','push','type','Set','CDR(type)=%s','context','VoiceExtensionId','CDR(routeid)=','outbound','extension','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','updatedAt','interval','*,*,*,*','intervals','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','answer','indexOf','app','toLowerCase','appType','custom'];(function(_0x156a0d,_0x3946ce){var _0x98a9ba=function(_0x46c1b2){while(--_0x46c1b2){_0x156a0d['push'](_0x156a0d['shift']());}};_0x98a9ba(++_0x3946ce);}(_0x3e8f,0x1c0));var _0xf3e8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3e8f[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xf3e8('0x0'));var util=require(_0xf3e8('0x1'));function rewrite(_0xb32d3b,_0x5746b5){var _0x36bede=this;return _0xb32d3b[_0xf3e8('0x2')][_0xf3e8('0x3')][_0xf3e8('0x4')]({'raw':!![]})[_0xf3e8('0x5')](function(_0x9c29d0){_0x36bede['intervals']=_0x9c29d0;return _0xb32d3b['models'][_0xf3e8('0x6')]['findAll']({'where':{'IntervalId':_0x5746b5[_0xf3e8('0x7')]},'raw':!![]});})[_0xf3e8('0x5')](function(_0x492237){return _0xb32d3b[_0xf3e8('0x2')]['VoiceExtension'][_0xf3e8('0x4')]({'where':{'exten':{'$in':_[_0xf3e8('0x8')](_[_0xf3e8('0x9')](_0x492237,_0xf3e8('0xa')))}},'order':[{'raw':_0xf3e8('0xb')}],'raw':!![]});})[_0xf3e8('0x5')](function(_0x2908f0){var _0xfadbca=_[_0xf3e8('0xc')](_0x2908f0,{'priority':'1'});var _0x596909=_[_0xf3e8('0xc')](_0x2908f0,{'isApp':0x1});var _0x5b5fcc=_['groupBy'](_0x596909,_0xf3e8('0xa'));var _0x31cccf=[_0xf3e8('0xd'),'playback'];var _0x3fc8ad=[];var _0x23ddeb=[];for(var _0x35d68b in _0x5b5fcc){if(_0x5b5fcc[_0xf3e8('0xe')](_0x35d68b)){_0x36bede[_0xf3e8('0xf')]=0x2;_0x36bede[_0xf3e8('0x10')]=[];_0x36bede['extension']=_['find'](_0xfadbca,{'exten':_0x5b5fcc[_0x35d68b][0x0]['exten']});_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':util['format'](_0xf3e8('0x14'),_0x5b5fcc[_0x35d68b][0x0]['type']),'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});if(_0x5b5fcc[_0x35d68b][0x0]['type']==='inbound'){_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':_0xf3e8('0x17')+_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')],'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0]['exten'],'priority':_0x36bede['priority']++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});}else if(_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')]===_0xf3e8('0x18')){if(_0x36bede[_0xf3e8('0x19')]){_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':'CDR(destination)='+(_0x36bede['extension'][_0xf3e8('0x1a')]?_0xf3e8('0x1b')+_0x36bede[_0xf3e8('0x19')][_0xf3e8('0x1a')]+'}':_0xf3e8('0x1c')),'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede['priority']++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});}_0x36bede['extensions'][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':'Set','appdata':_0xf3e8('0x17')+_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')],'context':_0x5b5fcc[_0x35d68b][0x0]['context'],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});var _0x3bcef7=_0x36bede[_0xf3e8('0xf')]++;_0x36bede['extensions']['push']({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x1d'),'appdata':_0xf3e8('0x1e')+(_0x3bcef7+0x2)+_0xf3e8('0x1f')+(_0x3bcef7+0x1)+')','context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x3bcef7,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});if(_0x36bede[_0xf3e8('0x19')]){_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0]['type'],'app':_0xf3e8('0x13'),'appdata':_0x36bede[_0xf3e8('0x19')][_0xf3e8('0x1a')]?'CDR(prefix)=${EXTEN:0:'+_0x36bede[_0xf3e8('0x19')][_0xf3e8('0x1a')]+'}':_0xf3e8('0x20'),'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});}_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':_0xf3e8('0x21')+_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')],'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0]['VoiceExtensionId']});if(_0x36bede[_0xf3e8('0x19')]&&_0x36bede[_0xf3e8('0x19')][_0xf3e8('0xe')](_0xf3e8('0x22'))&&_0x36bede['extension'][_0xf3e8('0x22')]!==_0xf3e8('0x23')){_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':_0xf3e8('0x24'),'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0]['VoiceExtensionId']});_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':_0xf3e8('0x25')+_0x36bede['extension'][_0xf3e8('0x22')]||_0xf3e8('0x26'),'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});}}_0x36bede[_0xf3e8('0x10')][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0]['exten'],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});_0x36bede['extensions'][_0xf3e8('0x11')]({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':'Set','appdata':_0xf3e8('0x27'),'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});_0x36bede[_0xf3e8('0x10')]['push']({'type':_0x5b5fcc[_0x35d68b][0x0]['type'],'app':'Set','appdata':_0xf3e8('0x28'),'context':_0x5b5fcc[_0x35d68b][0x0]['context'],'exten':_0x5b5fcc[_0x35d68b][0x0]['exten'],'priority':_0x36bede[_0xf3e8('0xf')]++,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0]['VoiceExtensionId']});for(var _0xd72cc1=0x0,_0x770f4b=0x0;_0xd72cc1<_0x5b5fcc[_0x35d68b][_0xf3e8('0x29')];_0xd72cc1+=0x1,_0x770f4b=0x0){var _0x3bed6f=_0x5b5fcc[_0x35d68b][_0xd72cc1];if(_0x3bed6f[_0xf3e8('0x12')]){_0x3bed6f[_0xf3e8('0x12')]=_0x3bed6f[_0xf3e8('0x12')]['toLowerCase']();}var _0x238f29=[];var _0x39cf67=[];delete _0x3bed6f['id'];delete _0x3bed6f['createdAt'];delete _0x3bed6f[_0xf3e8('0x2a')];var _0x47c396=_0x3bed6f[_0xf3e8('0x2b')]!==_0xf3e8('0x2c')?[_0x3bed6f[_0xf3e8('0x2b')]]:_0x3bed6f[_0xf3e8('0x7')]?_[_0xf3e8('0x9')](_[_0xf3e8('0xc')](_0x36bede[_0xf3e8('0x2d')],{'IntervalId':_0x3bed6f['IntervalId']}),_0xf3e8('0x2b')):[];if(_0x3bed6f[_0xf3e8('0xe')]('tag')){if(_0x3bed6f[_0xf3e8('0x2e')]&&_0x3bed6f[_0xf3e8('0x2e')]!=='--'){_0x238f29[_0xf3e8('0x11')]({'type':_0x3bed6f[_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':_0xf3e8('0x2f')+_0x3bed6f[_0xf3e8('0x2e')],'context':_0x3bed6f['context'],'exten':_0x3bed6f['exten'],'priority':_0x47c396[_0xf3e8('0x29')]+_0x36bede[_0xf3e8('0xf')]+_0x770f4b++,'VoiceExtensionId':_0x3bed6f['VoiceExtensionId']});}}if(_0x3bed6f[_0xf3e8('0x12')]==='outbound'&&_0x3bed6f[_0xf3e8('0xe')](_0xf3e8('0x30'))){if(_0x3bed6f['callerID']){_0x238f29[_0xf3e8('0x11')]({'type':_0x3bed6f[_0xf3e8('0x12')],'app':'ExecIf','appdata':_0xf3e8('0x31')+_0x3bed6f[_0xf3e8('0x30')]+')','context':_0x3bed6f[_0xf3e8('0x15')],'exten':_0x3bed6f['exten'],'priority':_0x47c396[_0xf3e8('0x29')]+_0x36bede['priority']+_0x770f4b++,'VoiceExtensionId':_0x3bed6f[_0xf3e8('0x16')]});}else{_0x238f29[_0xf3e8('0x11')]({'type':_0x3bed6f['type'],'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x3bed6f[_0xf3e8('0x15')],'exten':_0x3bed6f['exten'],'priority':_0x47c396['length']+_0x36bede[_0xf3e8('0xf')]+_0x770f4b++,'VoiceExtensionId':_0x3bed6f[_0xf3e8('0x16')]});}}if(_0x3bed6f[_0xf3e8('0xe')](_0xf3e8('0x32'))){if(_0x31cccf[_0xf3e8('0x33')](_0x3bed6f[_0xf3e8('0x34')][_0xf3e8('0x35')]())>=0x0&&_0x3bed6f[_0xf3e8('0x36')]!==_0xf3e8('0x37')){if(_0x3bed6f[_0xf3e8('0x32')]){_0x238f29[_0xf3e8('0x11')]({'type':_0x3bed6f[_0xf3e8('0x12')],'app':_0xf3e8('0x1d'),'appdata':_0xf3e8('0x38'),'context':_0x3bed6f[_0xf3e8('0x15')],'exten':_0x3bed6f[_0xf3e8('0xa')],'priority':_0x47c396[_0xf3e8('0x29')]+_0x36bede['priority']+_0x770f4b++,'VoiceExtensionId':_0x3bed6f['VoiceExtensionId']});_0x238f29[_0xf3e8('0x11')]({'type':_0x3bed6f[_0xf3e8('0x12')],'app':_0xf3e8('0x13'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x3bed6f['context'],'exten':_0x3bed6f[_0xf3e8('0xa')],'priority':_0x47c396[_0xf3e8('0x29')]+_0x36bede[_0xf3e8('0xf')]+_0x770f4b++,'VoiceExtensionId':_0x3bed6f[_0xf3e8('0x16')]});}else{_0x238f29[_0xf3e8('0x11')]({'type':_0x3bed6f[_0xf3e8('0x12')],'app':'ExecIf','appdata':_0xf3e8('0x39'),'context':_0x3bed6f[_0xf3e8('0x15')],'exten':_0x3bed6f[_0xf3e8('0xa')],'priority':_0x47c396[_0xf3e8('0x29')]+_0x36bede[_0xf3e8('0xf')]+_0x770f4b++,'VoiceExtensionId':_0x3bed6f['VoiceExtensionId']});_0x238f29[_0xf3e8('0x11')]({'type':_0x3bed6f['type'],'app':_0xf3e8('0x13'),'appdata':_0xf3e8('0x3a'),'context':_0x3bed6f[_0xf3e8('0x15')],'exten':_0x3bed6f[_0xf3e8('0xa')],'priority':_0x47c396[_0xf3e8('0x29')]+_0x36bede[_0xf3e8('0xf')]+_0x770f4b++,'VoiceExtensionId':_0x3bed6f[_0xf3e8('0x16')]});}}}for(var _0x41d7b8=0x0;_0x41d7b8<_0x47c396['length'];_0x41d7b8+=0x1){var _0x391227=_0x36bede['priority']+_0x47c396[_0xf3e8('0x29')];var _0x26f80f=_0x41d7b8===_0x47c396['length']-0x1?_0x36bede[_0xf3e8('0xf')]+_0x238f29['length']+_0x39cf67['length']+0x2:_0x36bede[_0xf3e8('0xf')]+_0x41d7b8+0x1;_0x238f29[_0xf3e8('0x3b')](_0x41d7b8,0x0,{'type':_0x3bed6f[_0xf3e8('0x12')],'app':_0xf3e8('0x3c'),'appdata':_0x47c396[_0x41d7b8]+'?'+_0x3bed6f['context']+_0xf3e8('0x3d')+_0x391227+':'+_0x3bed6f['context']+_0xf3e8('0x3d')+_0x26f80f,'exten':_0x3bed6f[_0xf3e8('0xa')],'context':_0x3bed6f[_0xf3e8('0x15')],'priority':_0x36bede[_0xf3e8('0xf')]+_0x41d7b8,'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]});}_0x3bed6f[_0xf3e8('0xf')]=_0x238f29[_0xf3e8('0x29')]?_[_0xf3e8('0x3e')](_0x238f29)['priority']+0x1:_0x36bede[_0xf3e8('0xf')];_0x36bede[_0xf3e8('0xf')]=(_0x39cf67[_0xf3e8('0x29')]?_[_0xf3e8('0x3e')](_0x39cf67)[_0xf3e8('0xf')]:_0x3bed6f['priority'])+0x1;_0x36bede[_0xf3e8('0x10')]=_[_0xf3e8('0x3f')](_0x36bede['extensions'],_0x238f29,[_0x3bed6f],_0x39cf67);}_0x36bede[_0xf3e8('0x10')]['push']({'type':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x12')],'app':_0xf3e8('0x40'),'exten':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0xa')],'context':_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x15')],'priority':_0x36bede[_0xf3e8('0xf')],'VoiceExtensionId':_0x5b5fcc[_0x35d68b][0x0]['VoiceExtensionId']});_0x3fc8ad['push'](_0x5b5fcc[_0x35d68b][0x0][_0xf3e8('0x16')]);_0x23ddeb=_[_0xf3e8('0x3f')](_0x23ddeb,_0x36bede[_0xf3e8('0x10')]);}}return _0xb32d3b[_0xf3e8('0x41')](function(_0x3a836d){return _0xb32d3b[_0xf3e8('0x2')]['VoiceExtension'][_0xf3e8('0x42')]({'where':{'VoiceExtensionId':{'$in':_0x3fc8ad}},'transaction':_0x3a836d})[_0xf3e8('0x5')](function(_0x2d9902){return _0xb32d3b[_0xf3e8('0x2')]['VoiceExtension'][_0xf3e8('0x43')](_[_0xf3e8('0x44')](_0x23ddeb,_0xf3e8('0xf')),{'transaction':_0x3a836d});});});})[_0xf3e8('0x45')](function(_0x4111f2){console[_0xf3e8('0x46')](_0x4111f2);});}exports[_0xf3e8('0x47')]=rewrite;