45b33935445b815cc1c83cfe0d03b4dc55b63127
[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 _0x01f4=['CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-PROGRESS=0','length','toLowerCase','updatedAt','interval','IntervalId','tag','CDR(tag)=','outbound','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','GotoIfTime',',${EXTEN},','last','concat','transaction','destroy','sortBy','catch','error','rewrite','lodash','models','Interval','findAll','then','intervals','VoiceExtension','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','extensions','find','type','Set','CDR(type)=%s','context','priority','VoiceExtensionId','inbound','push','CDR(routeid)=','extension','${EXTEN:','cutdigits','${EXTEN}','ExecIf','):Goto('];(function(_0x3ce170,_0x45bc4){var _0x25a116=function(_0x4bc4a1){while(--_0x4bc4a1){_0x3ce170['push'](_0x3ce170['shift']());}};_0x25a116(++_0x45bc4);}(_0x01f4,0x16c));var _0x401f=function(_0x562ee4,_0x78312c){_0x562ee4=_0x562ee4-0x0;var _0x63e933=_0x01f4[_0x562ee4];return _0x63e933;};'use strict';var _=require(_0x401f('0x0'));var util=require('util');function rewrite(_0x48e640,_0x3eadb9){var _0x162640=this;return _0x48e640[_0x401f('0x1')][_0x401f('0x2')][_0x401f('0x3')]({'raw':!![]})[_0x401f('0x4')](function(_0x894811){_0x162640[_0x401f('0x5')]=_0x894811;return _0x48e640[_0x401f('0x1')]['VoiceExtension'][_0x401f('0x3')]({'where':{'IntervalId':_0x3eadb9['IntervalId']},'raw':!![]});})['then'](function(_0x2de83c){return _0x48e640['models'][_0x401f('0x6')][_0x401f('0x3')]({'where':{'exten':{'$in':_['uniq'](_[_0x401f('0x7')](_0x2de83c,_0x401f('0x8')))}},'order':[{'raw':_0x401f('0x9')}],'raw':!![]});})[_0x401f('0x4')](function(_0x630438){var _0x4b4e38=_['filter'](_0x630438,{'priority':'1'});var _0x2bc3bc=_[_0x401f('0xa')](_0x630438,{'isApp':0x1});var _0x52de4f=_[_0x401f('0xb')](_0x2bc3bc,'exten');var _0x418dcf=[_0x401f('0xc'),_0x401f('0xd')];var _0x5d5380=[];var _0x4e174=[];for(var _0x532f91 in _0x52de4f){if(_0x52de4f[_0x401f('0xe')](_0x532f91)){_0x162640['priority']=0x2;_0x162640[_0x401f('0xf')]=[];_0x162640['extension']=_[_0x401f('0x10')](_0x4b4e38,{'exten':_0x52de4f[_0x532f91][0x0]['exten']});_0x162640['extensions']['push']({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':util['format'](_0x401f('0x13'),_0x52de4f[_0x532f91][0x0][_0x401f('0x11')]),'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});if(_0x52de4f[_0x532f91][0x0][_0x401f('0x11')]===_0x401f('0x17')){_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':_0x401f('0x19')+_0x52de4f[_0x532f91][0x0]['VoiceExtensionId'],'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});}else if(_0x52de4f[_0x532f91][0x0][_0x401f('0x11')]==='outbound'){if(_0x162640[_0x401f('0x1a')]){_0x162640['extensions']['push']({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':'CDR(destination)='+(_0x162640[_0x401f('0x1a')]['cutdigits']?_0x401f('0x1b')+_0x162640[_0x401f('0x1a')][_0x401f('0x1c')]+'}':_0x401f('0x1d')),'context':_0x52de4f[_0x532f91][0x0]['context'],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});}_0x162640[_0x401f('0xf')]['push']({'type':_0x52de4f[_0x532f91][0x0]['type'],'app':'Set','appdata':_0x401f('0x19')+_0x52de4f[_0x532f91][0x0]['VoiceExtensionId'],'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});var _0x32e1af=_0x162640['priority']++;_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x1e'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x32e1af+0x2)+_0x401f('0x1f')+(_0x32e1af+0x1)+')','context':_0x52de4f[_0x532f91][0x0]['context'],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x32e1af,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0]['VoiceExtensionId']});if(_0x162640[_0x401f('0x1a')]){_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0]['type'],'app':'Set','appdata':_0x162640[_0x401f('0x1a')][_0x401f('0x1c')]?_0x401f('0x20')+_0x162640['extension'][_0x401f('0x1c')]+'}':_0x401f('0x21'),'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});}_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':_0x401f('0x22')+_0x52de4f[_0x532f91][0x0][_0x401f('0x16')],'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0]['VoiceExtensionId']});if(_0x162640['extension']&&_0x162640[_0x401f('0x1a')][_0x401f('0xe')](_0x401f('0x23'))&&_0x162640[_0x401f('0x1a')][_0x401f('0x23')]!=='none'){_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':_0x401f('0x24'),'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640['priority']++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0]['VoiceExtensionId']});_0x162640[_0x401f('0xf')]['push']({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':'Set','appdata':_0x401f('0x25')+_0x162640['extension'][_0x401f('0x23')]||_0x401f('0x26'),'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});}}_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0]['type'],'app':_0x401f('0x12'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0]['exten'],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':_0x401f('0x27'),'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0]['VoiceExtensionId']});_0x162640[_0x401f('0xf')][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':'MONITOR_OPTIONS=ab','context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'priority':_0x162640[_0x401f('0x15')]++,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});for(var _0x42d89b=0x0,_0x59a3dc=0x0;_0x42d89b<_0x52de4f[_0x532f91][_0x401f('0x28')];_0x42d89b+=0x1,_0x59a3dc=0x0){var _0x32de15=_0x52de4f[_0x532f91][_0x42d89b];if(_0x32de15['type']){_0x32de15[_0x401f('0x11')]=_0x32de15[_0x401f('0x11')][_0x401f('0x29')]();}var _0x5f0e7f=[];var _0x212046=[];delete _0x32de15['id'];delete _0x32de15['createdAt'];delete _0x32de15[_0x401f('0x2a')];var _0x47717b=_0x32de15[_0x401f('0x2b')]!=='*,*,*,*'?[_0x32de15[_0x401f('0x2b')]]:_0x32de15[_0x401f('0x2c')]?_[_0x401f('0x7')](_['filter'](_0x162640[_0x401f('0x5')],{'IntervalId':_0x32de15['IntervalId']}),_0x401f('0x2b')):[];if(_0x32de15['hasOwnProperty'](_0x401f('0x2d'))){if(_0x32de15[_0x401f('0x2d')]&&_0x32de15[_0x401f('0x2d')]!=='--'){_0x5f0e7f[_0x401f('0x18')]({'type':_0x32de15['type'],'app':_0x401f('0x12'),'appdata':_0x401f('0x2e')+_0x32de15[_0x401f('0x2d')],'context':_0x32de15[_0x401f('0x14')],'exten':_0x32de15[_0x401f('0x8')],'priority':_0x47717b[_0x401f('0x28')]+_0x162640[_0x401f('0x15')]+_0x59a3dc++,'VoiceExtensionId':_0x32de15[_0x401f('0x16')]});}}if(_0x32de15[_0x401f('0x11')]===_0x401f('0x2f')&&_0x32de15['hasOwnProperty'](_0x401f('0x30'))){if(_0x32de15['callerID']){_0x5f0e7f['push']({'type':_0x32de15[_0x401f('0x11')],'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)='+_0x32de15[_0x401f('0x30')]+')','context':_0x32de15['context'],'exten':_0x32de15['exten'],'priority':_0x47717b[_0x401f('0x28')]+_0x162640[_0x401f('0x15')]+_0x59a3dc++,'VoiceExtensionId':_0x32de15[_0x401f('0x16')]});}else{_0x5f0e7f[_0x401f('0x18')]({'type':_0x32de15[_0x401f('0x11')],'app':_0x401f('0x1e'),'appdata':_0x401f('0x31'),'context':_0x32de15[_0x401f('0x14')],'exten':_0x32de15[_0x401f('0x8')],'priority':_0x47717b[_0x401f('0x28')]+_0x162640[_0x401f('0x15')]+_0x59a3dc++,'VoiceExtensionId':_0x32de15[_0x401f('0x16')]});}}if(_0x32de15[_0x401f('0xe')](_0x401f('0x32'))){if(_0x418dcf[_0x401f('0x33')](_0x32de15[_0x401f('0x34')][_0x401f('0x29')]())>=0x0&&_0x32de15['appType']!==_0x401f('0x35')){if(_0x32de15['answer']){_0x5f0e7f['push']({'type':_0x32de15[_0x401f('0x11')],'app':_0x401f('0x1e'),'appdata':_0x401f('0x36'),'context':_0x32de15['context'],'exten':_0x32de15['exten'],'priority':_0x47717b['length']+_0x162640[_0x401f('0x15')]+_0x59a3dc++,'VoiceExtensionId':_0x32de15[_0x401f('0x16')]});_0x5f0e7f[_0x401f('0x18')]({'type':_0x32de15[_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':_0x401f('0x37'),'context':_0x32de15['context'],'exten':_0x32de15[_0x401f('0x8')],'priority':_0x47717b[_0x401f('0x28')]+_0x162640[_0x401f('0x15')]+_0x59a3dc++,'VoiceExtensionId':_0x32de15['VoiceExtensionId']});}else{_0x5f0e7f[_0x401f('0x18')]({'type':_0x32de15['type'],'app':_0x401f('0x1e'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x32de15['context'],'exten':_0x32de15['exten'],'priority':_0x47717b[_0x401f('0x28')]+_0x162640['priority']+_0x59a3dc++,'VoiceExtensionId':_0x32de15[_0x401f('0x16')]});_0x5f0e7f[_0x401f('0x18')]({'type':_0x32de15[_0x401f('0x11')],'app':_0x401f('0x12'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x32de15[_0x401f('0x14')],'exten':_0x32de15[_0x401f('0x8')],'priority':_0x47717b[_0x401f('0x28')]+_0x162640[_0x401f('0x15')]+_0x59a3dc++,'VoiceExtensionId':_0x32de15[_0x401f('0x16')]});}}}for(var _0x149af0=0x0;_0x149af0<_0x47717b['length'];_0x149af0+=0x1){var _0xbf9d56=_0x162640[_0x401f('0x15')]+_0x47717b[_0x401f('0x28')];var _0x410c01=_0x149af0===_0x47717b[_0x401f('0x28')]-0x1?_0x162640[_0x401f('0x15')]+_0x5f0e7f[_0x401f('0x28')]+_0x212046[_0x401f('0x28')]+0x2:_0x162640[_0x401f('0x15')]+_0x149af0+0x1;_0x5f0e7f['splice'](_0x149af0,0x0,{'type':_0x32de15[_0x401f('0x11')],'app':_0x401f('0x38'),'appdata':_0x47717b[_0x149af0]+'?'+_0x32de15['context']+_0x401f('0x39')+_0xbf9d56+':'+_0x32de15[_0x401f('0x14')]+_0x401f('0x39')+_0x410c01,'exten':_0x32de15[_0x401f('0x8')],'context':_0x32de15[_0x401f('0x14')],'priority':_0x162640[_0x401f('0x15')]+_0x149af0,'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});}_0x32de15[_0x401f('0x15')]=_0x5f0e7f[_0x401f('0x28')]?_[_0x401f('0x3a')](_0x5f0e7f)[_0x401f('0x15')]+0x1:_0x162640['priority'];_0x162640['priority']=(_0x212046[_0x401f('0x28')]?_[_0x401f('0x3a')](_0x212046)[_0x401f('0x15')]:_0x32de15[_0x401f('0x15')])+0x1;_0x162640['extensions']=_[_0x401f('0x3b')](_0x162640['extensions'],_0x5f0e7f,[_0x32de15],_0x212046);}_0x162640['extensions'][_0x401f('0x18')]({'type':_0x52de4f[_0x532f91][0x0][_0x401f('0x11')],'app':'Hangup','exten':_0x52de4f[_0x532f91][0x0][_0x401f('0x8')],'context':_0x52de4f[_0x532f91][0x0][_0x401f('0x14')],'priority':_0x162640[_0x401f('0x15')],'VoiceExtensionId':_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]});_0x5d5380[_0x401f('0x18')](_0x52de4f[_0x532f91][0x0][_0x401f('0x16')]);_0x4e174=_['concat'](_0x4e174,_0x162640['extensions']);}}return _0x48e640[_0x401f('0x3c')](function(_0x42b7cd){return _0x48e640[_0x401f('0x1')][_0x401f('0x6')][_0x401f('0x3d')]({'where':{'VoiceExtensionId':{'$in':_0x5d5380}},'transaction':_0x42b7cd})[_0x401f('0x4')](function(_0x33da0b){return _0x48e640[_0x401f('0x1')][_0x401f('0x6')]['bulkCreate'](_[_0x401f('0x3e')](_0x4e174,'priority'),{'transaction':_0x42b7cd});});});})[_0x401f('0x3f')](function(_0x2df8e5){console[_0x401f('0x40')](_0x2df8e5);});}exports[_0x401f('0x41')]=rewrite;