Built motion from commit 14588770.|2.5.38
[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 _0x1107=['format','CDR(type)=%s','context','VoiceExtensionId','inbound','CDR(routeid)=','outbound','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','tag','CDR(tag)=','length','callerID','$[${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)','indexOf','app','appType','custom','answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice',',${EXTEN},','last','Hangup','concat','transaction','destroy','bulkCreate','catch','rewrite','models','Interval','findAll','then','intervals','VoiceExtension','IntervalId','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','queue','hasOwnProperty','priority','extensions','extension','find','exten','push','type','Set'];(function(_0x29d623,_0x1a5c9c){var _0x242e59=function(_0x2c78ab){while(--_0x2c78ab){_0x29d623['push'](_0x29d623['shift']());}};_0x242e59(++_0x1a5c9c);}(_0x1107,0x144));var _0x7110=function(_0x16e874,_0x154da0){_0x16e874=_0x16e874-0x0;var _0x5460d4=_0x1107[_0x16e874];return _0x5460d4;};'use strict';var _=require('lodash');var util=require('util');function rewrite(_0x2e1cae,_0x10dae0){var _0x194428=this;return _0x2e1cae[_0x7110('0x0')][_0x7110('0x1')][_0x7110('0x2')]({'raw':!![]})[_0x7110('0x3')](function(_0x51956c){_0x194428[_0x7110('0x4')]=_0x51956c;return _0x2e1cae[_0x7110('0x0')][_0x7110('0x5')][_0x7110('0x2')]({'where':{'IntervalId':_0x10dae0[_0x7110('0x6')]},'raw':!![]});})[_0x7110('0x3')](function(_0x4e8480){return _0x2e1cae['models']['VoiceExtension']['findAll']({'where':{'exten':{'$in':_[_0x7110('0x7')](_[_0x7110('0x8')](_0x4e8480,'exten'))}},'order':[{'raw':_0x7110('0x9')}],'raw':!![]});})['then'](function(_0x5525b3){var _0x2befb8=_[_0x7110('0xa')](_0x5525b3,{'priority':'1'});var _0xaf740b=_[_0x7110('0xa')](_0x5525b3,{'isApp':0x1});var _0x44cf11=_['groupBy'](_0xaf740b,'exten');var _0x1ca5f9=[_0x7110('0xb'),'playback'];var _0x3b0fa6=[];var _0x517d5a=[];for(var _0x14ba5d in _0x44cf11){if(_0x44cf11[_0x7110('0xc')](_0x14ba5d)){_0x194428[_0x7110('0xd')]=0x2;_0x194428[_0x7110('0xe')]=[];_0x194428[_0x7110('0xf')]=_[_0x7110('0x10')](_0x2befb8,{'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')]});_0x194428['extensions'][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':_0x7110('0x14'),'appdata':util[_0x7110('0x15')](_0x7110('0x16'),_0x44cf11[_0x14ba5d][0x0]['type']),'context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'priority':_0x194428[_0x7110('0xd')]++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});if(_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')]===_0x7110('0x19')){_0x194428['extensions'][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':_0x7110('0x14'),'appdata':_0x7110('0x1a')+_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')],'context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'priority':_0x194428[_0x7110('0xd')]++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});}else if(_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')]===_0x7110('0x1b')){if(_0x194428[_0x7110('0xf')]){_0x194428['extensions'][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':_0x7110('0x14'),'appdata':_0x7110('0x1c')+(_0x194428[_0x7110('0xf')][_0x7110('0x1d')]?_0x7110('0x1e')+_0x194428[_0x7110('0xf')][_0x7110('0x1d')]+'}':_0x7110('0x1f')),'context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0]['exten'],'priority':_0x194428['priority']++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});}_0x194428[_0x7110('0xe')]['push']({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':'Set','appdata':_0x7110('0x1a')+_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')],'context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'priority':_0x194428[_0x7110('0xd')]++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});var _0xa46040=_0x194428[_0x7110('0xd')]++;_0x194428['extensions'][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0]['type'],'app':_0x7110('0x20'),'appdata':_0x7110('0x21')+(_0xa46040+0x2)+_0x7110('0x22')+(_0xa46040+0x1)+')','context':_0x44cf11[_0x14ba5d][0x0]['context'],'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'priority':_0xa46040,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});if(_0x194428[_0x7110('0xf')]){_0x194428[_0x7110('0xe')][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0]['type'],'app':'Set','appdata':_0x194428['extension'][_0x7110('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x194428[_0x7110('0xf')][_0x7110('0x1d')]+'}':_0x7110('0x23'),'context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0]['exten'],'priority':_0x194428[_0x7110('0xd')]++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});}_0x194428[_0x7110('0xe')][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':'Set','appdata':_0x7110('0x24')+_0x44cf11[_0x14ba5d][0x0]['VoiceExtensionId'],'context':_0x44cf11[_0x14ba5d][0x0]['context'],'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'priority':_0x194428['priority']++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});if(_0x194428['extension']&&_0x194428[_0x7110('0xf')][_0x7110('0xc')]('recordingFormat')&&_0x194428[_0x7110('0xf')][_0x7110('0x25')]!==_0x7110('0x26')){_0x194428[_0x7110('0xe')][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0]['type'],'app':_0x7110('0x14'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x44cf11[_0x14ba5d][0x0]['context'],'exten':_0x44cf11[_0x14ba5d][0x0]['exten'],'priority':_0x194428['priority']++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});_0x194428[_0x7110('0xe')][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':_0x7110('0x14'),'appdata':_0x7110('0x27')+_0x194428[_0x7110('0xf')][_0x7110('0x25')]||_0x7110('0x28'),'context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'priority':_0x194428['priority']++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});}}_0x194428['extensions'][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':'Set','appdata':_0x7110('0x29'),'context':_0x44cf11[_0x14ba5d][0x0]['context'],'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'priority':_0x194428['priority']++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});_0x194428[_0x7110('0xe')][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x13')],'app':_0x7110('0x14'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0]['exten'],'priority':_0x194428['priority']++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});_0x194428[_0x7110('0xe')][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0]['type'],'app':_0x7110('0x14'),'appdata':'MONITOR_OPTIONS=ab','context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'exten':_0x44cf11[_0x14ba5d][0x0]['exten'],'priority':_0x194428['priority']++,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});for(var _0x3ffd8a=0x0,_0x1af5fe=0x0;_0x3ffd8a<_0x44cf11[_0x14ba5d]['length'];_0x3ffd8a+=0x1,_0x1af5fe=0x0){var _0x5b3d2=_0x44cf11[_0x14ba5d][_0x3ffd8a];if(_0x5b3d2[_0x7110('0x13')]){_0x5b3d2[_0x7110('0x13')]=_0x5b3d2[_0x7110('0x13')][_0x7110('0x2a')]();}var _0x224601=[];var _0x1150dd=[];delete _0x5b3d2['id'];delete _0x5b3d2[_0x7110('0x2b')];delete _0x5b3d2[_0x7110('0x2c')];var _0x12375f=_0x5b3d2[_0x7110('0x2d')]!==_0x7110('0x2e')?[_0x5b3d2[_0x7110('0x2d')]]:_0x5b3d2[_0x7110('0x6')]?_[_0x7110('0x8')](_[_0x7110('0xa')](_0x194428['intervals'],{'IntervalId':_0x5b3d2[_0x7110('0x6')]}),_0x7110('0x2d')):[];if(_0x5b3d2[_0x7110('0xc')]('tag')){if(_0x5b3d2['tag']&&_0x5b3d2[_0x7110('0x2f')]!=='--'){_0x224601[_0x7110('0x12')]({'type':_0x5b3d2['type'],'app':_0x7110('0x14'),'appdata':_0x7110('0x30')+_0x5b3d2[_0x7110('0x2f')],'context':_0x5b3d2[_0x7110('0x17')],'exten':_0x5b3d2['exten'],'priority':_0x12375f[_0x7110('0x31')]+_0x194428['priority']+_0x1af5fe++,'VoiceExtensionId':_0x5b3d2['VoiceExtensionId']});}}if(_0x5b3d2[_0x7110('0x13')]===_0x7110('0x1b')&&_0x5b3d2[_0x7110('0xc')](_0x7110('0x32'))){if(_0x5b3d2[_0x7110('0x32')]){_0x224601[_0x7110('0x12')]({'type':_0x5b3d2[_0x7110('0x13')],'app':_0x7110('0x20'),'appdata':_0x7110('0x33')+_0x5b3d2[_0x7110('0x32')]+')','context':_0x5b3d2[_0x7110('0x17')],'exten':_0x5b3d2['exten'],'priority':_0x12375f[_0x7110('0x31')]+_0x194428[_0x7110('0xd')]+_0x1af5fe++,'VoiceExtensionId':_0x5b3d2[_0x7110('0x18')]});}else{_0x224601[_0x7110('0x12')]({'type':_0x5b3d2['type'],'app':_0x7110('0x20'),'appdata':_0x7110('0x34'),'context':_0x5b3d2[_0x7110('0x17')],'exten':_0x5b3d2[_0x7110('0x11')],'priority':_0x12375f[_0x7110('0x31')]+_0x194428[_0x7110('0xd')]+_0x1af5fe++,'VoiceExtensionId':_0x5b3d2['VoiceExtensionId']});}}if(_0x5b3d2['hasOwnProperty']('answer')){if(_0x1ca5f9[_0x7110('0x35')](_0x5b3d2[_0x7110('0x36')][_0x7110('0x2a')]())>=0x0&&_0x5b3d2[_0x7110('0x37')]!==_0x7110('0x38')){if(_0x5b3d2[_0x7110('0x39')]){_0x224601[_0x7110('0x12')]({'type':_0x5b3d2[_0x7110('0x13')],'app':_0x7110('0x20'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x5b3d2[_0x7110('0x17')],'exten':_0x5b3d2['exten'],'priority':_0x12375f[_0x7110('0x31')]+_0x194428[_0x7110('0xd')]+_0x1af5fe++,'VoiceExtensionId':_0x5b3d2[_0x7110('0x18')]});_0x224601[_0x7110('0x12')]({'type':_0x5b3d2[_0x7110('0x13')],'app':_0x7110('0x14'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x5b3d2['context'],'exten':_0x5b3d2[_0x7110('0x11')],'priority':_0x12375f[_0x7110('0x31')]+_0x194428[_0x7110('0xd')]+_0x1af5fe++,'VoiceExtensionId':_0x5b3d2[_0x7110('0x18')]});}else{_0x224601[_0x7110('0x12')]({'type':_0x5b3d2[_0x7110('0x13')],'app':'ExecIf','appdata':_0x7110('0x3a'),'context':_0x5b3d2[_0x7110('0x17')],'exten':_0x5b3d2['exten'],'priority':_0x12375f[_0x7110('0x31')]+_0x194428['priority']+_0x1af5fe++,'VoiceExtensionId':_0x5b3d2[_0x7110('0x18')]});_0x224601[_0x7110('0x12')]({'type':_0x5b3d2[_0x7110('0x13')],'app':_0x7110('0x14'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x5b3d2[_0x7110('0x17')],'exten':_0x5b3d2[_0x7110('0x11')],'priority':_0x12375f[_0x7110('0x31')]+_0x194428[_0x7110('0xd')]+_0x1af5fe++,'VoiceExtensionId':_0x5b3d2[_0x7110('0x18')]});}}}for(var _0x34640c=0x0;_0x34640c<_0x12375f[_0x7110('0x31')];_0x34640c+=0x1){var _0x2f8ce5=_0x194428[_0x7110('0xd')]+_0x12375f['length'];var _0x19808c=_0x34640c===_0x12375f['length']-0x1?_0x194428['priority']+_0x224601[_0x7110('0x31')]+_0x1150dd[_0x7110('0x31')]+0x2:_0x194428[_0x7110('0xd')]+_0x34640c+0x1;_0x224601[_0x7110('0x3b')](_0x34640c,0x0,{'type':_0x5b3d2[_0x7110('0x13')],'app':'GotoIfTime','appdata':_0x12375f[_0x34640c]+'?'+_0x5b3d2[_0x7110('0x17')]+_0x7110('0x3c')+_0x2f8ce5+':'+_0x5b3d2[_0x7110('0x17')]+_0x7110('0x3c')+_0x19808c,'exten':_0x5b3d2[_0x7110('0x11')],'context':_0x5b3d2[_0x7110('0x17')],'priority':_0x194428[_0x7110('0xd')]+_0x34640c,'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});}_0x5b3d2['priority']=_0x224601['length']?_['last'](_0x224601)[_0x7110('0xd')]+0x1:_0x194428['priority'];_0x194428[_0x7110('0xd')]=(_0x1150dd[_0x7110('0x31')]?_[_0x7110('0x3d')](_0x1150dd)[_0x7110('0xd')]:_0x5b3d2['priority'])+0x1;_0x194428[_0x7110('0xe')]=_['concat'](_0x194428[_0x7110('0xe')],_0x224601,[_0x5b3d2],_0x1150dd);}_0x194428['extensions'][_0x7110('0x12')]({'type':_0x44cf11[_0x14ba5d][0x0]['type'],'app':_0x7110('0x3e'),'exten':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x11')],'context':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x17')],'priority':_0x194428[_0x7110('0xd')],'VoiceExtensionId':_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]});_0x3b0fa6[_0x7110('0x12')](_0x44cf11[_0x14ba5d][0x0][_0x7110('0x18')]);_0x517d5a=_[_0x7110('0x3f')](_0x517d5a,_0x194428['extensions']);}}return _0x2e1cae[_0x7110('0x40')](function(_0x24a6d4){return _0x2e1cae[_0x7110('0x0')]['VoiceExtension'][_0x7110('0x41')]({'where':{'VoiceExtensionId':{'$in':_0x3b0fa6}},'transaction':_0x24a6d4})[_0x7110('0x3')](function(_0x15a42c){return _0x2e1cae[_0x7110('0x0')][_0x7110('0x5')][_0x7110('0x42')](_['sortBy'](_0x517d5a,_0x7110('0xd')),{'transaction':_0x24a6d4});});});})[_0x7110('0x43')](function(_0x406277){console['error'](_0x406277);});}exports[_0x7110('0x44')]=rewrite;