Built motion from commit (unavailable).|2.5.25
[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 _0xebfd=['hasOwnProperty','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','interval','*,*,*,*','IntervalId','map','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','destroy','bulkCreate','sortBy','catch','rewrite','util','models','then','intervals','VoiceExtension','findAll','uniq','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','extensions','find','push','type','Set','format','CDR(type)=%s','context','priority','VoiceExtensionId','outbound','extension','cutdigits','${EXTEN:','${EXTEN}','CDR(routeid)=','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix'];(function(_0x95baf1,_0x3ba962){var _0x17a545=function(_0x2ed03f){while(--_0x2ed03f){_0x95baf1['push'](_0x95baf1['shift']());}};_0x17a545(++_0x3ba962);}(_0xebfd,0x147));var _0xdebf=function(_0x49cb71,_0x2f0149){_0x49cb71=_0x49cb71-0x0;var _0x3a50fd=_0xebfd[_0x49cb71];return _0x3a50fd;};'use strict';var _=require('lodash');var util=require(_0xdebf('0x0'));function rewrite(_0x31c237,_0x2683fe){var _0x2ecd6e=this;return _0x31c237[_0xdebf('0x1')]['Interval']['findAll']({'raw':!![]})[_0xdebf('0x2')](function(_0x4e8e88){_0x2ecd6e[_0xdebf('0x3')]=_0x4e8e88;return _0x31c237[_0xdebf('0x1')][_0xdebf('0x4')]['findAll']({'where':{'IntervalId':_0x2683fe['IntervalId']},'raw':!![]});})['then'](function(_0x4d87c5){return _0x31c237['models']['VoiceExtension'][_0xdebf('0x5')]({'where':{'exten':{'$in':_[_0xdebf('0x6')](_['map'](_0x4d87c5,_0xdebf('0x7')))}},'order':[{'raw':_0xdebf('0x8')}],'raw':!![]});})['then'](function(_0x3e04f3){var _0x50e189=_[_0xdebf('0x9')](_0x3e04f3,{'priority':'1'});var _0x44b434=_[_0xdebf('0x9')](_0x3e04f3,{'isApp':0x1});var _0x26ea2a=_[_0xdebf('0xa')](_0x44b434,_0xdebf('0x7'));var _0x41974a=[_0xdebf('0xb'),_0xdebf('0xc')];var _0x45beff=[];var _0x55ab5e=[];for(var _0x5949c9 in _0x26ea2a){if(_0x26ea2a['hasOwnProperty'](_0x5949c9)){_0x2ecd6e['priority']=0x2;_0x2ecd6e[_0xdebf('0xd')]=[];_0x2ecd6e['extension']=_[_0xdebf('0xe')](_0x50e189,{'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')]});_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':util[_0xdebf('0x12')](_0xdebf('0x13'),_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')]),'context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});if(_0x26ea2a[_0x5949c9][0x0]['type']===_0xdebf('0x17')){if(_0x2ecd6e[_0xdebf('0x18')]){_0x2ecd6e['extensions'][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':'CDR(destination)='+(_0x2ecd6e[_0xdebf('0x18')][_0xdebf('0x19')]?_0xdebf('0x1a')+_0x2ecd6e[_0xdebf('0x18')]['cutdigits']+'}':_0xdebf('0x1b')),'context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0]['exten'],'priority':_0x2ecd6e['priority']++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});}_0x2ecd6e[_0xdebf('0xd')]['push']({'type':_0x26ea2a[_0x5949c9][0x0]['type'],'app':_0xdebf('0x11'),'appdata':_0xdebf('0x1c')+_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')],'context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});var _0x2e22ab=_0x2ecd6e[_0xdebf('0x15')]++;_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':'ExecIf','appdata':_0xdebf('0x1d')+(_0x2e22ab+0x2)+_0xdebf('0x1e')+(_0x2e22ab+0x1)+')','context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0]['exten'],'priority':_0x2e22ab,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0]['VoiceExtensionId']});if(_0x2ecd6e[_0xdebf('0x18')]){_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':_0x2ecd6e[_0xdebf('0x18')][_0xdebf('0x19')]?_0xdebf('0x1f')+_0x2ecd6e[_0xdebf('0x18')]['cutdigits']+'}':_0xdebf('0x20'),'context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});}_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0]['type'],'app':_0xdebf('0x11'),'appdata':'outboundrouteid='+_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')],'context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0]['VoiceExtensionId']});if(_0x2ecd6e[_0xdebf('0x18')]&&_0x2ecd6e[_0xdebf('0x18')][_0xdebf('0x21')](_0xdebf('0x22'))&&_0x2ecd6e[_0xdebf('0x18')][_0xdebf('0x22')]!=='none'){_0x2ecd6e['extensions']['push']({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':_0xdebf('0x23'),'context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e['priority']++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':_0xdebf('0x24')+_0x2ecd6e[_0xdebf('0x18')][_0xdebf('0x22')]||'wav','context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});}}_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':_0xdebf('0x25'),'context':_0x26ea2a[_0x5949c9][0x0]['context'],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x26ea2a[_0x5949c9][0x0]['context'],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0]['VoiceExtensionId']});_0x2ecd6e['extensions']['push']({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':_0xdebf('0x26'),'context':_0x26ea2a[_0x5949c9][0x0]['context'],'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'priority':_0x2ecd6e[_0xdebf('0x15')]++,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0]['VoiceExtensionId']});for(var _0x31ad49=0x0,_0x460c1b=0x0;_0x31ad49<_0x26ea2a[_0x5949c9][_0xdebf('0x27')];_0x31ad49+=0x1,_0x460c1b=0x0){var _0x506c45=_0x26ea2a[_0x5949c9][_0x31ad49];if(_0x506c45['type']){_0x506c45['type']=_0x506c45['type'][_0xdebf('0x28')]();}var _0x56e840=[];var _0x5a875b=[];delete _0x506c45['id'];delete _0x506c45[_0xdebf('0x29')];delete _0x506c45['updatedAt'];var _0x396197=_0x506c45[_0xdebf('0x2a')]!==_0xdebf('0x2b')?[_0x506c45[_0xdebf('0x2a')]]:_0x506c45[_0xdebf('0x2c')]?_[_0xdebf('0x2d')](_['filter'](_0x2ecd6e['intervals'],{'IntervalId':_0x506c45['IntervalId']}),_0xdebf('0x2a')):[];if(_0x506c45[_0xdebf('0x21')]('tag')){if(_0x506c45[_0xdebf('0x2e')]&&_0x506c45[_0xdebf('0x2e')]!=='--'){_0x56e840[_0xdebf('0xf')]({'type':_0x506c45['type'],'app':'Set','appdata':_0xdebf('0x2f')+_0x506c45[_0xdebf('0x2e')],'context':_0x506c45[_0xdebf('0x14')],'exten':_0x506c45['exten'],'priority':_0x396197['length']+_0x2ecd6e[_0xdebf('0x15')]+_0x460c1b++,'VoiceExtensionId':_0x506c45[_0xdebf('0x16')]});}}if(_0x506c45[_0xdebf('0x10')]==='outbound'&&_0x506c45[_0xdebf('0x21')](_0xdebf('0x30'))){if(_0x506c45[_0xdebf('0x30')]){_0x56e840[_0xdebf('0xf')]({'type':_0x506c45[_0xdebf('0x10')],'app':'ExecIf','appdata':_0xdebf('0x31')+_0x506c45[_0xdebf('0x30')]+')','context':_0x506c45[_0xdebf('0x14')],'exten':_0x506c45[_0xdebf('0x7')],'priority':_0x396197[_0xdebf('0x27')]+_0x2ecd6e[_0xdebf('0x15')]+_0x460c1b++,'VoiceExtensionId':_0x506c45[_0xdebf('0x16')]});}else{_0x56e840[_0xdebf('0xf')]({'type':_0x506c45[_0xdebf('0x10')],'app':_0xdebf('0x32'),'appdata':_0xdebf('0x33'),'context':_0x506c45[_0xdebf('0x14')],'exten':_0x506c45[_0xdebf('0x7')],'priority':_0x396197[_0xdebf('0x27')]+_0x2ecd6e[_0xdebf('0x15')]+_0x460c1b++,'VoiceExtensionId':_0x506c45[_0xdebf('0x16')]});}}if(_0x506c45[_0xdebf('0x21')](_0xdebf('0x34'))){if(_0x41974a[_0xdebf('0x35')](_0x506c45[_0xdebf('0x36')]['toLowerCase']())>=0x0&&_0x506c45[_0xdebf('0x37')]!==_0xdebf('0x38')){if(_0x506c45[_0xdebf('0x34')]){_0x56e840[_0xdebf('0xf')]({'type':_0x506c45[_0xdebf('0x10')],'app':'ExecIf','appdata':_0xdebf('0x39'),'context':_0x506c45['context'],'exten':_0x506c45['exten'],'priority':_0x396197[_0xdebf('0x27')]+_0x2ecd6e['priority']+_0x460c1b++,'VoiceExtensionId':_0x506c45[_0xdebf('0x16')]});_0x56e840[_0xdebf('0xf')]({'type':_0x506c45['type'],'app':'Set','appdata':_0xdebf('0x3a'),'context':_0x506c45[_0xdebf('0x14')],'exten':_0x506c45['exten'],'priority':_0x396197['length']+_0x2ecd6e['priority']+_0x460c1b++,'VoiceExtensionId':_0x506c45['VoiceExtensionId']});}else{_0x56e840[_0xdebf('0xf')]({'type':_0x506c45[_0xdebf('0x10')],'app':'ExecIf','appdata':_0xdebf('0x3b'),'context':_0x506c45[_0xdebf('0x14')],'exten':_0x506c45[_0xdebf('0x7')],'priority':_0x396197['length']+_0x2ecd6e[_0xdebf('0x15')]+_0x460c1b++,'VoiceExtensionId':_0x506c45[_0xdebf('0x16')]});_0x56e840[_0xdebf('0xf')]({'type':_0x506c45[_0xdebf('0x10')],'app':_0xdebf('0x11'),'appdata':_0xdebf('0x3c'),'context':_0x506c45[_0xdebf('0x14')],'exten':_0x506c45[_0xdebf('0x7')],'priority':_0x396197[_0xdebf('0x27')]+_0x2ecd6e[_0xdebf('0x15')]+_0x460c1b++,'VoiceExtensionId':_0x506c45[_0xdebf('0x16')]});}}}for(var _0x24ff4f=0x0;_0x24ff4f<_0x396197[_0xdebf('0x27')];_0x24ff4f+=0x1){var _0x56de49=_0x2ecd6e[_0xdebf('0x15')]+_0x396197[_0xdebf('0x27')];var _0xce6c93=_0x24ff4f===_0x396197[_0xdebf('0x27')]-0x1?_0x2ecd6e['priority']+_0x56e840[_0xdebf('0x27')]+_0x5a875b[_0xdebf('0x27')]+0x2:_0x2ecd6e[_0xdebf('0x15')]+_0x24ff4f+0x1;_0x56e840[_0xdebf('0x3d')](_0x24ff4f,0x0,{'type':_0x506c45[_0xdebf('0x10')],'app':_0xdebf('0x3e'),'appdata':_0x396197[_0x24ff4f]+'?'+_0x506c45['context']+_0xdebf('0x3f')+_0x56de49+':'+_0x506c45[_0xdebf('0x14')]+_0xdebf('0x3f')+_0xce6c93,'exten':_0x506c45['exten'],'context':_0x506c45[_0xdebf('0x14')],'priority':_0x2ecd6e[_0xdebf('0x15')]+_0x24ff4f,'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]});}_0x506c45[_0xdebf('0x15')]=_0x56e840[_0xdebf('0x27')]?_['last'](_0x56e840)[_0xdebf('0x15')]+0x1:_0x2ecd6e['priority'];_0x2ecd6e['priority']=(_0x5a875b['length']?_[_0xdebf('0x40')](_0x5a875b)['priority']:_0x506c45[_0xdebf('0x15')])+0x1;_0x2ecd6e[_0xdebf('0xd')]=_[_0xdebf('0x41')](_0x2ecd6e['extensions'],_0x56e840,[_0x506c45],_0x5a875b);}_0x2ecd6e[_0xdebf('0xd')][_0xdebf('0xf')]({'type':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x10')],'app':_0xdebf('0x42'),'exten':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x7')],'context':_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x14')],'priority':_0x2ecd6e[_0xdebf('0x15')],'VoiceExtensionId':_0x26ea2a[_0x5949c9][0x0]['VoiceExtensionId']});_0x45beff[_0xdebf('0xf')](_0x26ea2a[_0x5949c9][0x0][_0xdebf('0x16')]);_0x55ab5e=_[_0xdebf('0x41')](_0x55ab5e,_0x2ecd6e[_0xdebf('0xd')]);}}return _0x31c237['transaction'](function(_0x59d0f3){return _0x31c237[_0xdebf('0x1')]['VoiceExtension'][_0xdebf('0x43')]({'where':{'VoiceExtensionId':{'$in':_0x45beff}},'transaction':_0x59d0f3})[_0xdebf('0x2')](function(_0x55e011){return _0x31c237[_0xdebf('0x1')][_0xdebf('0x4')][_0xdebf('0x44')](_[_0xdebf('0x45')](_0x55ab5e,'priority'),{'transaction':_0x59d0f3});});});})[_0xdebf('0x46')](function(_0x596181){console['error'](_0x596181);});}exports[_0xdebf('0x47')]=rewrite;