Built motion from commit (unavailable).|2.4.20
[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 _0x47fd=['updatedAt','*,*,*,*','interval','intervals','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','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','sortBy','error','rewrite','lodash','util','models','Interval','findAll','then','VoiceExtension','IntervalId','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','find','Set','format','type','context','VoiceExtensionId','outbound','push','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase'];(function(_0x325806,_0x266d34){var _0x527af8=function(_0x2d78ed){while(--_0x2d78ed){_0x325806['push'](_0x325806['shift']());}};_0x527af8(++_0x266d34);}(_0x47fd,0x13c));var _0xd47f=function(_0x151762,_0x17691f){_0x151762=_0x151762-0x0;var _0x27f596=_0x47fd[_0x151762];return _0x27f596;};'use strict';var _=require(_0xd47f('0x0'));var util=require(_0xd47f('0x1'));function rewrite(_0x336f2c,_0x3b6de1){var _0x3cc8ea=this;return _0x336f2c[_0xd47f('0x2')][_0xd47f('0x3')][_0xd47f('0x4')]({'raw':!![]})[_0xd47f('0x5')](function(_0x1dfe62){_0x3cc8ea['intervals']=_0x1dfe62;return _0x336f2c[_0xd47f('0x2')][_0xd47f('0x6')]['findAll']({'where':{'IntervalId':_0x3b6de1[_0xd47f('0x7')]},'raw':!![]});})['then'](function(_0x55433e){return _0x336f2c[_0xd47f('0x2')]['VoiceExtension']['findAll']({'where':{'exten':{'$in':_[_0xd47f('0x8')](_[_0xd47f('0x9')](_0x55433e,_0xd47f('0xa')))}},'order':[{'raw':_0xd47f('0xb')}],'raw':!![]});})[_0xd47f('0x5')](function(_0x156a15){var _0x5299bb=_[_0xd47f('0xc')](_0x156a15,{'priority':'1'});var _0x30c391=_['filter'](_0x156a15,{'isApp':0x1});var _0x37cd48=_[_0xd47f('0xd')](_0x30c391,_0xd47f('0xa'));var _0x392009=[_0xd47f('0xe'),_0xd47f('0xf')];var _0x5400f6=[];var _0x2d99ed=[];for(var _0x423938 in _0x37cd48){if(_0x37cd48[_0xd47f('0x10')](_0x423938)){_0x3cc8ea[_0xd47f('0x11')]=0x2;_0x3cc8ea[_0xd47f('0x12')]=[];_0x3cc8ea[_0xd47f('0x13')]=_[_0xd47f('0x14')](_0x5299bb,{'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')]});_0x3cc8ea[_0xd47f('0x12')]['push']({'type':_0x37cd48[_0x423938][0x0]['type'],'app':_0xd47f('0x15'),'appdata':util[_0xd47f('0x16')]('CDR(type)=%s',_0x37cd48[_0x423938][0x0][_0xd47f('0x17')]),'context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});if(_0x37cd48[_0x423938][0x0]['type']===_0xd47f('0x1a')){if(_0x3cc8ea[_0xd47f('0x13')]){_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0][_0xd47f('0x17')],'app':_0xd47f('0x15'),'appdata':_0xd47f('0x1c')+(_0x3cc8ea[_0xd47f('0x13')][_0xd47f('0x1d')]?_0xd47f('0x1e')+_0x3cc8ea[_0xd47f('0x13')][_0xd47f('0x1d')]+'}':_0xd47f('0x1f')),'context':_0x37cd48[_0x423938][0x0]['context'],'exten':_0x37cd48[_0x423938][0x0]['exten'],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0]['VoiceExtensionId']});}_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0][_0xd47f('0x17')],'app':'Set','appdata':'CDR(routeid)='+_0x37cd48[_0x423938][0x0]['VoiceExtensionId'],'context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});var _0x3f55b0=_0x3cc8ea['priority']++;_0x3cc8ea[_0xd47f('0x12')]['push']({'type':_0x37cd48[_0x423938][0x0]['type'],'app':'ExecIf','appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x3f55b0+0x2)+_0xd47f('0x20')+(_0x3f55b0+0x1)+')','context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0]['exten'],'priority':_0x3f55b0,'VoiceExtensionId':_0x37cd48[_0x423938][0x0]['VoiceExtensionId']});if(_0x3cc8ea[_0xd47f('0x13')]){_0x3cc8ea[_0xd47f('0x12')]['push']({'type':_0x37cd48[_0x423938][0x0][_0xd47f('0x17')],'app':_0xd47f('0x15'),'appdata':_0x3cc8ea[_0xd47f('0x13')][_0xd47f('0x1d')]?_0xd47f('0x21')+_0x3cc8ea[_0xd47f('0x13')]['cutdigits']+'}':_0xd47f('0x22'),'context':_0x37cd48[_0x423938][0x0]['context'],'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')],'priority':_0x3cc8ea['priority']++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});}_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0]['type'],'app':'Set','appdata':_0xd47f('0x23')+_0x37cd48[_0x423938][0x0][_0xd47f('0x19')],'context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});if(_0x3cc8ea[_0xd47f('0x13')]&&_0x3cc8ea[_0xd47f('0x13')]['hasOwnProperty'](_0xd47f('0x24'))&&_0x3cc8ea[_0xd47f('0x13')][_0xd47f('0x24')]!==_0xd47f('0x25')){_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0]['type'],'app':_0xd47f('0x15'),'appdata':_0xd47f('0x26'),'context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')],'priority':_0x3cc8ea['priority']++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0]['type'],'app':'Set','appdata':_0xd47f('0x27')+_0x3cc8ea[_0xd47f('0x13')][_0xd47f('0x24')]||'wav','context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0]['exten'],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});}}_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0][_0xd47f('0x17')],'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0]['VoiceExtensionId']});_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0][_0xd47f('0x17')],'app':_0xd47f('0x15'),'appdata':_0xd47f('0x28'),'context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0]['exten'],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});_0x3cc8ea['extensions']['push']({'type':_0x37cd48[_0x423938][0x0][_0xd47f('0x17')],'app':'Set','appdata':_0xd47f('0x29'),'context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'exten':_0x37cd48[_0x423938][0x0]['exten'],'priority':_0x3cc8ea[_0xd47f('0x11')]++,'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});for(var _0x3803fc=0x0,_0xb25c57=0x0;_0x3803fc<_0x37cd48[_0x423938][_0xd47f('0x2a')];_0x3803fc+=0x1,_0xb25c57=0x0){var _0x582ca1=_0x37cd48[_0x423938][_0x3803fc];if(_0x582ca1[_0xd47f('0x17')]){_0x582ca1['type']=_0x582ca1[_0xd47f('0x17')][_0xd47f('0x2b')]();}var _0x515ee8=[];var _0x52df0f=[];delete _0x582ca1['id'];delete _0x582ca1['createdAt'];delete _0x582ca1[_0xd47f('0x2c')];var _0x50368c=_0x582ca1['interval']!==_0xd47f('0x2d')?[_0x582ca1[_0xd47f('0x2e')]]:_0x582ca1[_0xd47f('0x7')]?_['map'](_[_0xd47f('0xc')](_0x3cc8ea[_0xd47f('0x2f')],{'IntervalId':_0x582ca1[_0xd47f('0x7')]}),_0xd47f('0x2e')):[];if(_0x582ca1['hasOwnProperty'](_0xd47f('0x30'))){if(_0x582ca1['tag']&&_0x582ca1[_0xd47f('0x30')]!=='--'){_0x515ee8[_0xd47f('0x1b')]({'type':_0x582ca1['type'],'app':_0xd47f('0x15'),'appdata':_0xd47f('0x31')+_0x582ca1[_0xd47f('0x30')],'context':_0x582ca1[_0xd47f('0x18')],'exten':_0x582ca1[_0xd47f('0xa')],'priority':_0x50368c[_0xd47f('0x2a')]+_0x3cc8ea[_0xd47f('0x11')]+_0xb25c57++,'VoiceExtensionId':_0x582ca1[_0xd47f('0x19')]});}}if(_0x582ca1[_0xd47f('0x17')]===_0xd47f('0x1a')&&_0x582ca1['hasOwnProperty']('callerID')){if(_0x582ca1[_0xd47f('0x32')]){_0x515ee8[_0xd47f('0x1b')]({'type':_0x582ca1['type'],'app':_0xd47f('0x33'),'appdata':_0xd47f('0x34')+_0x582ca1['callerID']+')','context':_0x582ca1[_0xd47f('0x18')],'exten':_0x582ca1[_0xd47f('0xa')],'priority':_0x50368c[_0xd47f('0x2a')]+_0x3cc8ea[_0xd47f('0x11')]+_0xb25c57++,'VoiceExtensionId':_0x582ca1[_0xd47f('0x19')]});}else{_0x515ee8[_0xd47f('0x1b')]({'type':_0x582ca1['type'],'app':_0xd47f('0x33'),'appdata':_0xd47f('0x35'),'context':_0x582ca1['context'],'exten':_0x582ca1[_0xd47f('0xa')],'priority':_0x50368c[_0xd47f('0x2a')]+_0x3cc8ea['priority']+_0xb25c57++,'VoiceExtensionId':_0x582ca1[_0xd47f('0x19')]});}}if(_0x582ca1[_0xd47f('0x10')](_0xd47f('0x36'))){if(_0x392009[_0xd47f('0x37')](_0x582ca1[_0xd47f('0x38')]['toLowerCase']())>=0x0&&_0x582ca1['appType']!==_0xd47f('0x39')){if(_0x582ca1['answer']){_0x515ee8['push']({'type':_0x582ca1[_0xd47f('0x17')],'app':'ExecIf','appdata':_0xd47f('0x3a'),'context':_0x582ca1[_0xd47f('0x18')],'exten':_0x582ca1[_0xd47f('0xa')],'priority':_0x50368c[_0xd47f('0x2a')]+_0x3cc8ea[_0xd47f('0x11')]+_0xb25c57++,'VoiceExtensionId':_0x582ca1['VoiceExtensionId']});_0x515ee8['push']({'type':_0x582ca1[_0xd47f('0x17')],'app':'Set','appdata':_0xd47f('0x3b'),'context':_0x582ca1['context'],'exten':_0x582ca1[_0xd47f('0xa')],'priority':_0x50368c['length']+_0x3cc8ea[_0xd47f('0x11')]+_0xb25c57++,'VoiceExtensionId':_0x582ca1[_0xd47f('0x19')]});}else{_0x515ee8[_0xd47f('0x1b')]({'type':_0x582ca1['type'],'app':_0xd47f('0x33'),'appdata':_0xd47f('0x3c'),'context':_0x582ca1[_0xd47f('0x18')],'exten':_0x582ca1[_0xd47f('0xa')],'priority':_0x50368c['length']+_0x3cc8ea[_0xd47f('0x11')]+_0xb25c57++,'VoiceExtensionId':_0x582ca1[_0xd47f('0x19')]});_0x515ee8[_0xd47f('0x1b')]({'type':_0x582ca1['type'],'app':'Set','appdata':_0xd47f('0x3d'),'context':_0x582ca1[_0xd47f('0x18')],'exten':_0x582ca1['exten'],'priority':_0x50368c[_0xd47f('0x2a')]+_0x3cc8ea[_0xd47f('0x11')]+_0xb25c57++,'VoiceExtensionId':_0x582ca1[_0xd47f('0x19')]});}}}for(var _0x444724=0x0;_0x444724<_0x50368c['length'];_0x444724+=0x1){var _0x593445=_0x3cc8ea[_0xd47f('0x11')]+_0x50368c[_0xd47f('0x2a')];var _0x222c82=_0x444724===_0x50368c[_0xd47f('0x2a')]-0x1?_0x3cc8ea['priority']+_0x515ee8[_0xd47f('0x2a')]+_0x52df0f[_0xd47f('0x2a')]+0x2:_0x3cc8ea[_0xd47f('0x11')]+_0x444724+0x1;_0x515ee8['splice'](_0x444724,0x0,{'type':_0x582ca1[_0xd47f('0x17')],'app':_0xd47f('0x3e'),'appdata':_0x50368c[_0x444724]+'?'+_0x582ca1[_0xd47f('0x18')]+_0xd47f('0x3f')+_0x593445+':'+_0x582ca1[_0xd47f('0x18')]+',${EXTEN},'+_0x222c82,'exten':_0x582ca1[_0xd47f('0xa')],'context':_0x582ca1['context'],'priority':_0x3cc8ea['priority']+_0x444724,'VoiceExtensionId':_0x37cd48[_0x423938][0x0]['VoiceExtensionId']});}_0x582ca1[_0xd47f('0x11')]=_0x515ee8[_0xd47f('0x2a')]?_[_0xd47f('0x40')](_0x515ee8)['priority']+0x1:_0x3cc8ea[_0xd47f('0x11')];_0x3cc8ea[_0xd47f('0x11')]=(_0x52df0f[_0xd47f('0x2a')]?_[_0xd47f('0x40')](_0x52df0f)[_0xd47f('0x11')]:_0x582ca1['priority'])+0x1;_0x3cc8ea[_0xd47f('0x12')]=_[_0xd47f('0x41')](_0x3cc8ea[_0xd47f('0x12')],_0x515ee8,[_0x582ca1],_0x52df0f);}_0x3cc8ea[_0xd47f('0x12')][_0xd47f('0x1b')]({'type':_0x37cd48[_0x423938][0x0][_0xd47f('0x17')],'app':_0xd47f('0x42'),'exten':_0x37cd48[_0x423938][0x0][_0xd47f('0xa')],'context':_0x37cd48[_0x423938][0x0][_0xd47f('0x18')],'priority':_0x3cc8ea[_0xd47f('0x11')],'VoiceExtensionId':_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]});_0x5400f6['push'](_0x37cd48[_0x423938][0x0][_0xd47f('0x19')]);_0x2d99ed=_['concat'](_0x2d99ed,_0x3cc8ea[_0xd47f('0x12')]);}}return _0x336f2c[_0xd47f('0x43')](function(_0x165cfc){return _0x336f2c[_0xd47f('0x2')]['VoiceExtension'][_0xd47f('0x44')]({'where':{'VoiceExtensionId':{'$in':_0x5400f6}},'transaction':_0x165cfc})[_0xd47f('0x5')](function(_0x44a2d4){return _0x336f2c['models'][_0xd47f('0x6')]['bulkCreate'](_[_0xd47f('0x45')](_0x2d99ed,_0xd47f('0x11')),{'transaction':_0x165cfc});});});})['catch'](function(_0xbfa016){console[_0xd47f('0x46')](_0xbfa016);});}exports[_0xd47f('0x47')]=rewrite;