Built motion from commit (unavailable).|2.5.1
[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 _0x78e2=['toLowerCase','createdAt','updatedAt','interval','*,*,*,*','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)','answer','indexOf','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','last','concat','Hangup','destroy','sortBy','catch','error','rewrite','lodash','util','Interval','then','intervals','models','VoiceExtension','findAll','IntervalId','uniq','map','exten','filter','playback','hasOwnProperty','priority','extensions','type','Set','CDR(type)=%s','context','VoiceExtensionId','outbound','extension','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','push','CDR(routeid)=','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0'];(function(_0x1d2315,_0x109e85){var _0x403ace=function(_0x27aaa3){while(--_0x27aaa3){_0x1d2315['push'](_0x1d2315['shift']());}};_0x403ace(++_0x109e85);}(_0x78e2,0x1a8));var _0x278e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x78e2[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x278e('0x0'));var util=require(_0x278e('0x1'));function rewrite(_0x374c41,_0x1c9713){var _0x1c7441=this;return _0x374c41['models'][_0x278e('0x2')]['findAll']({'raw':!![]})[_0x278e('0x3')](function(_0xaba666){_0x1c7441[_0x278e('0x4')]=_0xaba666;return _0x374c41[_0x278e('0x5')][_0x278e('0x6')][_0x278e('0x7')]({'where':{'IntervalId':_0x1c9713[_0x278e('0x8')]},'raw':!![]});})[_0x278e('0x3')](function(_0x224449){return _0x374c41[_0x278e('0x5')][_0x278e('0x6')][_0x278e('0x7')]({'where':{'exten':{'$in':_[_0x278e('0x9')](_[_0x278e('0xa')](_0x224449,_0x278e('0xb')))}},'order':[{'raw':'CAST(priority\x20AS\x20UNSIGNED)'}],'raw':!![]});})[_0x278e('0x3')](function(_0x435de3){var _0x1e41e7=_[_0x278e('0xc')](_0x435de3,{'priority':'1'});var _0x218058=_[_0x278e('0xc')](_0x435de3,{'isApp':0x1});var _0x144509=_['groupBy'](_0x218058,_0x278e('0xb'));var _0x3f2a66=['queue',_0x278e('0xd')];var _0x5e6fff=[];var _0x14ef63=[];for(var _0x53d519 in _0x144509){if(_0x144509[_0x278e('0xe')](_0x53d519)){_0x1c7441[_0x278e('0xf')]=0x2;_0x1c7441[_0x278e('0x10')]=[];_0x1c7441['extension']=_['find'](_0x1e41e7,{'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')]});_0x1c7441[_0x278e('0x10')]['push']({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x12'),'appdata':util['format'](_0x278e('0x13'),_0x144509[_0x53d519][0x0][_0x278e('0x11')]),'context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0]['exten'],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});if(_0x144509[_0x53d519][0x0]['type']===_0x278e('0x16')){if(_0x1c7441[_0x278e('0x17')]){_0x1c7441[_0x278e('0x10')]['push']({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x12'),'appdata':_0x278e('0x18')+(_0x1c7441[_0x278e('0x17')][_0x278e('0x19')]?_0x278e('0x1a')+_0x1c7441[_0x278e('0x17')]['cutdigits']+'}':_0x278e('0x1b')),'context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});}_0x1c7441[_0x278e('0x10')][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x12'),'appdata':_0x278e('0x1d')+_0x144509[_0x53d519][0x0][_0x278e('0x15')],'context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0]['exten'],'priority':_0x1c7441['priority']++,'VoiceExtensionId':_0x144509[_0x53d519][0x0]['VoiceExtensionId']});var _0x42bccd=_0x1c7441['priority']++;_0x1c7441[_0x278e('0x10')][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x1e'),'appdata':_0x278e('0x1f')+(_0x42bccd+0x2)+'):Goto('+(_0x42bccd+0x1)+')','context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'priority':_0x42bccd,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});if(_0x1c7441[_0x278e('0x17')]){_0x1c7441['extensions'][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x12'),'appdata':_0x1c7441[_0x278e('0x17')][_0x278e('0x19')]?_0x278e('0x20')+_0x1c7441[_0x278e('0x17')]['cutdigits']+'}':_0x278e('0x21'),'context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0]['VoiceExtensionId']});}_0x1c7441['extensions']['push']({'type':_0x144509[_0x53d519][0x0]['type'],'app':_0x278e('0x12'),'appdata':'outboundrouteid='+_0x144509[_0x53d519][0x0][_0x278e('0x15')],'context':_0x144509[_0x53d519][0x0]['context'],'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});if(_0x1c7441[_0x278e('0x17')]&&_0x1c7441['extension'][_0x278e('0xe')](_0x278e('0x22'))&&_0x1c7441[_0x278e('0x17')][_0x278e('0x22')]!=='none'){_0x1c7441[_0x278e('0x10')][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x144509[_0x53d519][0x0]['context'],'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});_0x1c7441[_0x278e('0x10')]['push']({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':'Set','appdata':_0x278e('0x23')+_0x1c7441[_0x278e('0x17')][_0x278e('0x22')]||_0x278e('0x24'),'context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0]['exten'],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});}}_0x1c7441[_0x278e('0x10')][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':'Set','appdata':_0x278e('0x25'),'context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});_0x1c7441['extensions'][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x12'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0]['exten'],'priority':_0x1c7441['priority']++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});_0x1c7441['extensions'][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x12'),'appdata':'MONITOR_OPTIONS=ab','context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'priority':_0x1c7441[_0x278e('0xf')]++,'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});for(var _0x410259=0x0,_0x57386d=0x0;_0x410259<_0x144509[_0x53d519]['length'];_0x410259+=0x1,_0x57386d=0x0){var _0x427c7b=_0x144509[_0x53d519][_0x410259];if(_0x427c7b['type']){_0x427c7b[_0x278e('0x11')]=_0x427c7b['type'][_0x278e('0x26')]();}var _0x1a001e=[];var _0x5d68e9=[];delete _0x427c7b['id'];delete _0x427c7b[_0x278e('0x27')];delete _0x427c7b[_0x278e('0x28')];var _0xa88727=_0x427c7b[_0x278e('0x29')]!==_0x278e('0x2a')?[_0x427c7b[_0x278e('0x29')]]:_0x427c7b[_0x278e('0x8')]?_[_0x278e('0xa')](_[_0x278e('0xc')](_0x1c7441[_0x278e('0x4')],{'IntervalId':_0x427c7b[_0x278e('0x8')]}),_0x278e('0x29')):[];if(_0x427c7b[_0x278e('0xe')](_0x278e('0x2b'))){if(_0x427c7b[_0x278e('0x2b')]&&_0x427c7b[_0x278e('0x2b')]!=='--'){_0x1a001e[_0x278e('0x1c')]({'type':_0x427c7b[_0x278e('0x11')],'app':'Set','appdata':'CDR(tag)='+_0x427c7b[_0x278e('0x2b')],'context':_0x427c7b['context'],'exten':_0x427c7b[_0x278e('0xb')],'priority':_0xa88727[_0x278e('0x2c')]+_0x1c7441[_0x278e('0xf')]+_0x57386d++,'VoiceExtensionId':_0x427c7b[_0x278e('0x15')]});}}if(_0x427c7b[_0x278e('0x11')]===_0x278e('0x16')&&_0x427c7b[_0x278e('0xe')](_0x278e('0x2d'))){if(_0x427c7b[_0x278e('0x2d')]){_0x1a001e[_0x278e('0x1c')]({'type':_0x427c7b[_0x278e('0x11')],'app':_0x278e('0x1e'),'appdata':_0x278e('0x2e')+_0x427c7b[_0x278e('0x2d')]+')','context':_0x427c7b[_0x278e('0x14')],'exten':_0x427c7b['exten'],'priority':_0xa88727[_0x278e('0x2c')]+_0x1c7441[_0x278e('0xf')]+_0x57386d++,'VoiceExtensionId':_0x427c7b[_0x278e('0x15')]});}else{_0x1a001e[_0x278e('0x1c')]({'type':_0x427c7b[_0x278e('0x11')],'app':_0x278e('0x1e'),'appdata':_0x278e('0x2f'),'context':_0x427c7b[_0x278e('0x14')],'exten':_0x427c7b[_0x278e('0xb')],'priority':_0xa88727[_0x278e('0x2c')]+_0x1c7441[_0x278e('0xf')]+_0x57386d++,'VoiceExtensionId':_0x427c7b[_0x278e('0x15')]});}}if(_0x427c7b[_0x278e('0xe')](_0x278e('0x30'))){if(_0x3f2a66[_0x278e('0x31')](_0x427c7b['app'][_0x278e('0x26')]())>=0x0&&_0x427c7b[_0x278e('0x32')]!==_0x278e('0x33')){if(_0x427c7b['answer']){_0x1a001e[_0x278e('0x1c')]({'type':_0x427c7b[_0x278e('0x11')],'app':_0x278e('0x1e'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x427c7b[_0x278e('0x14')],'exten':_0x427c7b[_0x278e('0xb')],'priority':_0xa88727['length']+_0x1c7441[_0x278e('0xf')]+_0x57386d++,'VoiceExtensionId':_0x427c7b['VoiceExtensionId']});_0x1a001e[_0x278e('0x1c')]({'type':_0x427c7b[_0x278e('0x11')],'app':'Set','appdata':_0x278e('0x34'),'context':_0x427c7b['context'],'exten':_0x427c7b[_0x278e('0xb')],'priority':_0xa88727['length']+_0x1c7441[_0x278e('0xf')]+_0x57386d++,'VoiceExtensionId':_0x427c7b[_0x278e('0x15')]});}else{_0x1a001e['push']({'type':_0x427c7b['type'],'app':_0x278e('0x1e'),'appdata':_0x278e('0x35'),'context':_0x427c7b[_0x278e('0x14')],'exten':_0x427c7b[_0x278e('0xb')],'priority':_0xa88727[_0x278e('0x2c')]+_0x1c7441[_0x278e('0xf')]+_0x57386d++,'VoiceExtensionId':_0x427c7b[_0x278e('0x15')]});_0x1a001e[_0x278e('0x1c')]({'type':_0x427c7b['type'],'app':_0x278e('0x12'),'appdata':_0x278e('0x36'),'context':_0x427c7b['context'],'exten':_0x427c7b[_0x278e('0xb')],'priority':_0xa88727[_0x278e('0x2c')]+_0x1c7441[_0x278e('0xf')]+_0x57386d++,'VoiceExtensionId':_0x427c7b['VoiceExtensionId']});}}}for(var _0x5053c9=0x0;_0x5053c9<_0xa88727[_0x278e('0x2c')];_0x5053c9+=0x1){var _0x3d59d5=_0x1c7441[_0x278e('0xf')]+_0xa88727[_0x278e('0x2c')];var _0x4b9cb3=_0x5053c9===_0xa88727[_0x278e('0x2c')]-0x1?_0x1c7441[_0x278e('0xf')]+_0x1a001e['length']+_0x5d68e9['length']+0x2:_0x1c7441[_0x278e('0xf')]+_0x5053c9+0x1;_0x1a001e[_0x278e('0x37')](_0x5053c9,0x0,{'type':_0x427c7b[_0x278e('0x11')],'app':_0x278e('0x38'),'appdata':_0xa88727[_0x5053c9]+'?'+_0x427c7b[_0x278e('0x14')]+_0x278e('0x39')+_0x3d59d5+':'+_0x427c7b[_0x278e('0x14')]+_0x278e('0x39')+_0x4b9cb3,'exten':_0x427c7b[_0x278e('0xb')],'context':_0x427c7b[_0x278e('0x14')],'priority':_0x1c7441[_0x278e('0xf')]+_0x5053c9,'VoiceExtensionId':_0x144509[_0x53d519][0x0]['VoiceExtensionId']});}_0x427c7b['priority']=_0x1a001e['length']?_[_0x278e('0x3a')](_0x1a001e)[_0x278e('0xf')]+0x1:_0x1c7441[_0x278e('0xf')];_0x1c7441[_0x278e('0xf')]=(_0x5d68e9[_0x278e('0x2c')]?_[_0x278e('0x3a')](_0x5d68e9)[_0x278e('0xf')]:_0x427c7b[_0x278e('0xf')])+0x1;_0x1c7441[_0x278e('0x10')]=_[_0x278e('0x3b')](_0x1c7441[_0x278e('0x10')],_0x1a001e,[_0x427c7b],_0x5d68e9);}_0x1c7441[_0x278e('0x10')][_0x278e('0x1c')]({'type':_0x144509[_0x53d519][0x0][_0x278e('0x11')],'app':_0x278e('0x3c'),'exten':_0x144509[_0x53d519][0x0][_0x278e('0xb')],'context':_0x144509[_0x53d519][0x0][_0x278e('0x14')],'priority':_0x1c7441[_0x278e('0xf')],'VoiceExtensionId':_0x144509[_0x53d519][0x0][_0x278e('0x15')]});_0x5e6fff[_0x278e('0x1c')](_0x144509[_0x53d519][0x0][_0x278e('0x15')]);_0x14ef63=_[_0x278e('0x3b')](_0x14ef63,_0x1c7441[_0x278e('0x10')]);}}return _0x374c41['transaction'](function(_0x3241a3){return _0x374c41[_0x278e('0x5')]['VoiceExtension'][_0x278e('0x3d')]({'where':{'VoiceExtensionId':{'$in':_0x5e6fff}},'transaction':_0x3241a3})['then'](function(_0x5c55c7){return _0x374c41['models'][_0x278e('0x6')]['bulkCreate'](_[_0x278e('0x3e')](_0x14ef63,_0x278e('0xf')),{'transaction':_0x3241a3});});});})[_0x278e('0x3f')](function(_0x4c44f0){console[_0x278e('0x40')](_0x4c44f0);});}exports[_0x278e('0x41')]=rewrite;