Built motion from commit 47436d59.|2.6.7
[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 _0x5e57=['interval','tag','CDR(tag)=','callerID','ExecIf','$[${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','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','concat','Hangup','transaction','destroy','bulkCreate','sortBy','catch','rewrite','lodash','util','models','Interval','findAll','intervals','VoiceExtension','IntervalId','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','then','filter','groupBy','queue','playback','priority','extension','extensions','push','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','inbound','CDR(routeid)=','outbound','CDR(destination)=','cutdigits','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt'];(function(_0x753a82,_0x390b5b){var _0x1fd9d2=function(_0xe0c3c7){while(--_0xe0c3c7){_0x753a82['push'](_0x753a82['shift']());}};_0x1fd9d2(++_0x390b5b);}(_0x5e57,0xfe));var _0x75e5=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x5e57[_0x2641f9];return _0x585741;};'use strict';var _=require(_0x75e5('0x0'));var util=require(_0x75e5('0x1'));function rewrite(_0x2b5c9c,_0x2f60f9){var _0x586ffb=this;return _0x2b5c9c[_0x75e5('0x2')][_0x75e5('0x3')][_0x75e5('0x4')]({'raw':!![]})['then'](function(_0x172a81){_0x586ffb[_0x75e5('0x5')]=_0x172a81;return _0x2b5c9c[_0x75e5('0x2')][_0x75e5('0x6')][_0x75e5('0x4')]({'where':{'IntervalId':_0x2f60f9[_0x75e5('0x7')]},'raw':!![]});})['then'](function(_0x5d727d){return _0x2b5c9c[_0x75e5('0x2')][_0x75e5('0x6')][_0x75e5('0x4')]({'where':{'exten':{'$in':_[_0x75e5('0x8')](_[_0x75e5('0x9')](_0x5d727d,_0x75e5('0xa')))}},'order':[{'raw':_0x75e5('0xb')}],'raw':!![]});})[_0x75e5('0xc')](function(_0x5dde1d){var _0x118fdc=_[_0x75e5('0xd')](_0x5dde1d,{'priority':'1'});var _0xe2e70f=_[_0x75e5('0xd')](_0x5dde1d,{'isApp':0x1});var _0x5a903e=_[_0x75e5('0xe')](_0xe2e70f,_0x75e5('0xa'));var _0x38a1d0=[_0x75e5('0xf'),_0x75e5('0x10')];var _0x545e31=[];var _0x25d18c=[];for(var _0x418930 in _0x5a903e){if(_0x5a903e['hasOwnProperty'](_0x418930)){_0x586ffb[_0x75e5('0x11')]=0x2;_0x586ffb['extensions']=[];_0x586ffb[_0x75e5('0x12')]=_['find'](_0x118fdc,{'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')]});_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':_0x75e5('0x16'),'appdata':util[_0x75e5('0x17')](_0x75e5('0x18'),_0x5a903e[_0x418930][0x0][_0x75e5('0x15')]),'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb['priority']++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});if(_0x5a903e[_0x418930][0x0][_0x75e5('0x15')]===_0x75e5('0x1b')){_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':_0x75e5('0x16'),'appdata':_0x75e5('0x1c')+_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')],'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});}else if(_0x5a903e[_0x418930][0x0]['type']===_0x75e5('0x1d')){if(_0x586ffb[_0x75e5('0x12')]){_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':_0x75e5('0x16'),'appdata':_0x75e5('0x1e')+(_0x586ffb[_0x75e5('0x12')][_0x75e5('0x1f')]?'${EXTEN:'+_0x586ffb[_0x75e5('0x12')][_0x75e5('0x1f')]+'}':_0x75e5('0x20')),'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0]['VoiceExtensionId']});}_0x586ffb['extensions'][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0]['type'],'app':_0x75e5('0x16'),'appdata':'CDR(routeid)='+_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')],'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0]['exten'],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});var _0x3ee1ca=_0x586ffb['priority']++;_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':'ExecIf','appdata':_0x75e5('0x21')+(_0x3ee1ca+0x2)+_0x75e5('0x22')+(_0x3ee1ca+0x1)+')','context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x3ee1ca,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});if(_0x586ffb['extension']){_0x586ffb['extensions'][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':'Set','appdata':_0x586ffb[_0x75e5('0x12')][_0x75e5('0x1f')]?_0x75e5('0x23')+_0x586ffb[_0x75e5('0x12')][_0x75e5('0x1f')]+'}':_0x75e5('0x24'),'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0]['exten'],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});}_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':_0x75e5('0x16'),'appdata':'outboundrouteid='+_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')],'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0]['VoiceExtensionId']});if(_0x586ffb[_0x75e5('0x12')]&&_0x586ffb[_0x75e5('0x12')][_0x75e5('0x25')](_0x75e5('0x26'))&&_0x586ffb['extension'][_0x75e5('0x26')]!==_0x75e5('0x27')){_0x586ffb[_0x75e5('0x13')]['push']({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':'Set','appdata':_0x75e5('0x28'),'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0]['exten'],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});_0x586ffb['extensions'][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0]['type'],'app':_0x75e5('0x16'),'appdata':_0x75e5('0x29')+_0x586ffb['extension'][_0x75e5('0x26')]||_0x75e5('0x2a'),'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});}}_0x586ffb[_0x75e5('0x13')]['push']({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':_0x75e5('0x16'),'appdata':_0x75e5('0x2b'),'context':_0x5a903e[_0x418930][0x0]['context'],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0]['type'],'app':'Set','appdata':_0x75e5('0x2c'),'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':'Set','appdata':_0x75e5('0x2d'),'context':_0x5a903e[_0x418930][0x0][_0x75e5('0x19')],'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'priority':_0x586ffb[_0x75e5('0x11')]++,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});for(var _0x1f0d62=0x0,_0x5d6ca2=0x0;_0x1f0d62<_0x5a903e[_0x418930][_0x75e5('0x2e')];_0x1f0d62+=0x1,_0x5d6ca2=0x0){var _0xfb96d0=_0x5a903e[_0x418930][_0x1f0d62];if(_0xfb96d0[_0x75e5('0x15')]){_0xfb96d0['type']=_0xfb96d0['type'][_0x75e5('0x2f')]();}var _0x4f1fd4=[];var _0x331e74=[];delete _0xfb96d0['id'];delete _0xfb96d0[_0x75e5('0x30')];delete _0xfb96d0[_0x75e5('0x31')];var _0x3ba8df=_0xfb96d0[_0x75e5('0x32')]!=='*,*,*,*'?[_0xfb96d0[_0x75e5('0x32')]]:_0xfb96d0['IntervalId']?_['map'](_[_0x75e5('0xd')](_0x586ffb['intervals'],{'IntervalId':_0xfb96d0[_0x75e5('0x7')]}),_0x75e5('0x32')):[];if(_0xfb96d0['hasOwnProperty'](_0x75e5('0x33'))){if(_0xfb96d0['tag']&&_0xfb96d0[_0x75e5('0x33')]!=='--'){_0x4f1fd4[_0x75e5('0x14')]({'type':_0xfb96d0[_0x75e5('0x15')],'app':'Set','appdata':_0x75e5('0x34')+_0xfb96d0[_0x75e5('0x33')],'context':_0xfb96d0[_0x75e5('0x19')],'exten':_0xfb96d0[_0x75e5('0xa')],'priority':_0x3ba8df[_0x75e5('0x2e')]+_0x586ffb[_0x75e5('0x11')]+_0x5d6ca2++,'VoiceExtensionId':_0xfb96d0[_0x75e5('0x1a')]});}}if(_0xfb96d0[_0x75e5('0x15')]==='outbound'&&_0xfb96d0[_0x75e5('0x25')](_0x75e5('0x35'))){if(_0xfb96d0[_0x75e5('0x35')]){_0x4f1fd4[_0x75e5('0x14')]({'type':_0xfb96d0[_0x75e5('0x15')],'app':_0x75e5('0x36'),'appdata':_0x75e5('0x37')+_0xfb96d0[_0x75e5('0x35')]+')','context':_0xfb96d0[_0x75e5('0x19')],'exten':_0xfb96d0[_0x75e5('0xa')],'priority':_0x3ba8df[_0x75e5('0x2e')]+_0x586ffb['priority']+_0x5d6ca2++,'VoiceExtensionId':_0xfb96d0[_0x75e5('0x1a')]});}else{_0x4f1fd4[_0x75e5('0x14')]({'type':_0xfb96d0[_0x75e5('0x15')],'app':_0x75e5('0x36'),'appdata':_0x75e5('0x38'),'context':_0xfb96d0[_0x75e5('0x19')],'exten':_0xfb96d0['exten'],'priority':_0x3ba8df[_0x75e5('0x2e')]+_0x586ffb[_0x75e5('0x11')]+_0x5d6ca2++,'VoiceExtensionId':_0xfb96d0[_0x75e5('0x1a')]});}}if(_0xfb96d0['hasOwnProperty'](_0x75e5('0x39'))){if(_0x38a1d0[_0x75e5('0x3a')](_0xfb96d0[_0x75e5('0x3b')][_0x75e5('0x2f')]())>=0x0&&_0xfb96d0[_0x75e5('0x3c')]!==_0x75e5('0x3d')){if(_0xfb96d0[_0x75e5('0x39')]){_0x4f1fd4[_0x75e5('0x14')]({'type':_0xfb96d0['type'],'app':_0x75e5('0x36'),'appdata':_0x75e5('0x3e'),'context':_0xfb96d0[_0x75e5('0x19')],'exten':_0xfb96d0[_0x75e5('0xa')],'priority':_0x3ba8df[_0x75e5('0x2e')]+_0x586ffb[_0x75e5('0x11')]+_0x5d6ca2++,'VoiceExtensionId':_0xfb96d0['VoiceExtensionId']});_0x4f1fd4[_0x75e5('0x14')]({'type':_0xfb96d0[_0x75e5('0x15')],'app':'Set','appdata':_0x75e5('0x3f'),'context':_0xfb96d0[_0x75e5('0x19')],'exten':_0xfb96d0[_0x75e5('0xa')],'priority':_0x3ba8df[_0x75e5('0x2e')]+_0x586ffb['priority']+_0x5d6ca2++,'VoiceExtensionId':_0xfb96d0[_0x75e5('0x1a')]});}else{_0x4f1fd4[_0x75e5('0x14')]({'type':_0xfb96d0[_0x75e5('0x15')],'app':'ExecIf','appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0xfb96d0[_0x75e5('0x19')],'exten':_0xfb96d0[_0x75e5('0xa')],'priority':_0x3ba8df['length']+_0x586ffb[_0x75e5('0x11')]+_0x5d6ca2++,'VoiceExtensionId':_0xfb96d0['VoiceExtensionId']});_0x4f1fd4[_0x75e5('0x14')]({'type':_0xfb96d0['type'],'app':_0x75e5('0x16'),'appdata':_0x75e5('0x40'),'context':_0xfb96d0[_0x75e5('0x19')],'exten':_0xfb96d0['exten'],'priority':_0x3ba8df['length']+_0x586ffb[_0x75e5('0x11')]+_0x5d6ca2++,'VoiceExtensionId':_0xfb96d0['VoiceExtensionId']});}}}for(var _0x4f9aa1=0x0;_0x4f9aa1<_0x3ba8df[_0x75e5('0x2e')];_0x4f9aa1+=0x1){var _0x28b820=_0x586ffb[_0x75e5('0x11')]+_0x3ba8df[_0x75e5('0x2e')];var _0x3b4e56=_0x4f9aa1===_0x3ba8df[_0x75e5('0x2e')]-0x1?_0x586ffb[_0x75e5('0x11')]+_0x4f1fd4['length']+_0x331e74[_0x75e5('0x2e')]+0x2:_0x586ffb[_0x75e5('0x11')]+_0x4f9aa1+0x1;_0x4f1fd4[_0x75e5('0x41')](_0x4f9aa1,0x0,{'type':_0xfb96d0[_0x75e5('0x15')],'app':_0x75e5('0x42'),'appdata':_0x3ba8df[_0x4f9aa1]+'?'+_0xfb96d0[_0x75e5('0x19')]+_0x75e5('0x43')+_0x28b820+':'+_0xfb96d0[_0x75e5('0x19')]+_0x75e5('0x43')+_0x3b4e56,'exten':_0xfb96d0[_0x75e5('0xa')],'context':_0xfb96d0['context'],'priority':_0x586ffb[_0x75e5('0x11')]+_0x4f9aa1,'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});}_0xfb96d0[_0x75e5('0x11')]=_0x4f1fd4[_0x75e5('0x2e')]?_['last'](_0x4f1fd4)[_0x75e5('0x11')]+0x1:_0x586ffb[_0x75e5('0x11')];_0x586ffb[_0x75e5('0x11')]=(_0x331e74['length']?_['last'](_0x331e74)[_0x75e5('0x11')]:_0xfb96d0[_0x75e5('0x11')])+0x1;_0x586ffb[_0x75e5('0x13')]=_[_0x75e5('0x44')](_0x586ffb[_0x75e5('0x13')],_0x4f1fd4,[_0xfb96d0],_0x331e74);}_0x586ffb[_0x75e5('0x13')][_0x75e5('0x14')]({'type':_0x5a903e[_0x418930][0x0][_0x75e5('0x15')],'app':_0x75e5('0x45'),'exten':_0x5a903e[_0x418930][0x0][_0x75e5('0xa')],'context':_0x5a903e[_0x418930][0x0]['context'],'priority':_0x586ffb[_0x75e5('0x11')],'VoiceExtensionId':_0x5a903e[_0x418930][0x0][_0x75e5('0x1a')]});_0x545e31[_0x75e5('0x14')](_0x5a903e[_0x418930][0x0]['VoiceExtensionId']);_0x25d18c=_['concat'](_0x25d18c,_0x586ffb['extensions']);}}return _0x2b5c9c[_0x75e5('0x46')](function(_0x57cb99){return _0x2b5c9c['models'][_0x75e5('0x6')][_0x75e5('0x47')]({'where':{'VoiceExtensionId':{'$in':_0x545e31}},'transaction':_0x57cb99})['then'](function(_0x245859){return _0x2b5c9c[_0x75e5('0x2')]['VoiceExtension'][_0x75e5('0x48')](_[_0x75e5('0x49')](_0x25d18c,_0x75e5('0x11')),{'transaction':_0x57cb99});});});})[_0x75e5('0x4a')](function(_0x4c0e0){console['error'](_0x4c0e0);});}exports[_0x75e5('0x4b')]=rewrite;