Built motion from commit b5996064.|2.6.21
[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 _0xfdff=['):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','tag','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','callerID','answer','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress',',${EXTEN},','last','concat','Hangup','transaction','destroy','bulkCreate','catch','error','rewrite','lodash','util','models','Interval','findAll','then','intervals','VoiceExtension','IntervalId','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','find','type','Set','format','context','VoiceExtensionId','outbound','extension','CDR(destination)=','cutdigits','${EXTEN:','push','CDR(routeid)=','ExecIf'];(function(_0x257461,_0x3bbbdd){var _0x16555a=function(_0x229fb1){while(--_0x229fb1){_0x257461['push'](_0x257461['shift']());}};_0x16555a(++_0x3bbbdd);}(_0xfdff,0xee));var _0xffdf=function(_0x5b9572,_0xe68fc6){_0x5b9572=_0x5b9572-0x0;var _0x5e5825=_0xfdff[_0x5b9572];return _0x5e5825;};'use strict';var _=require(_0xffdf('0x0'));var util=require(_0xffdf('0x1'));function rewrite(_0x2ade80,_0x41eea8){var _0x558e00=this;return _0x2ade80[_0xffdf('0x2')][_0xffdf('0x3')][_0xffdf('0x4')]({'raw':!![]})[_0xffdf('0x5')](function(_0x23e817){_0x558e00[_0xffdf('0x6')]=_0x23e817;return _0x2ade80['models'][_0xffdf('0x7')][_0xffdf('0x4')]({'where':{'IntervalId':_0x41eea8[_0xffdf('0x8')]},'raw':!![]});})[_0xffdf('0x5')](function(_0x451b72){return _0x2ade80['models'][_0xffdf('0x7')]['findAll']({'where':{'exten':{'$in':_[_0xffdf('0x9')](_[_0xffdf('0xa')](_0x451b72,_0xffdf('0xb')))}},'order':[{'raw':_0xffdf('0xc')}],'raw':!![]});})[_0xffdf('0x5')](function(_0x341375){var _0x1d00fd=_[_0xffdf('0xd')](_0x341375,{'priority':'1'});var _0x20a33e=_['filter'](_0x341375,{'isApp':0x1});var _0x5eb72e=_[_0xffdf('0xe')](_0x20a33e,_0xffdf('0xb'));var _0x19419b=[_0xffdf('0xf'),_0xffdf('0x10')];var _0x1ca3d4=[];var _0x49c158=[];for(var _0x3f2a74 in _0x5eb72e){if(_0x5eb72e[_0xffdf('0x11')](_0x3f2a74)){_0x558e00[_0xffdf('0x12')]=0x2;_0x558e00[_0xffdf('0x13')]=[];_0x558e00['extension']=_[_0xffdf('0x14')](_0x1d00fd,{'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')]});_0x558e00[_0xffdf('0x13')]['push']({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':util[_0xffdf('0x17')]('CDR(type)=%s',_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')]),'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0]['exten'],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});if(_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')]==='inbound'){_0x558e00[_0xffdf('0x13')]['push']({'type':_0x5eb72e[_0x3f2a74][0x0]['type'],'app':_0xffdf('0x16'),'appdata':'CDR(routeid)='+_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')],'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});}else if(_0x5eb72e[_0x3f2a74][0x0]['type']===_0xffdf('0x1a')){if(_0x558e00[_0xffdf('0x1b')]){_0x558e00[_0xffdf('0x13')]['push']({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':_0xffdf('0x1c')+(_0x558e00[_0xffdf('0x1b')][_0xffdf('0x1d')]?_0xffdf('0x1e')+_0x558e00[_0xffdf('0x1b')][_0xffdf('0x1d')]+'}':'${EXTEN}'),'context':_0x5eb72e[_0x3f2a74][0x0]['context'],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});}_0x558e00['extensions'][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':'Set','appdata':_0xffdf('0x20')+_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')],'context':_0x5eb72e[_0x3f2a74][0x0]['context'],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00['priority']++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});var _0x2cb859=_0x558e00['priority']++;_0x558e00[_0xffdf('0x13')]['push']({'type':_0x5eb72e[_0x3f2a74][0x0]['type'],'app':_0xffdf('0x21'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x2cb859+0x2)+_0xffdf('0x22')+(_0x2cb859+0x1)+')','context':_0x5eb72e[_0x3f2a74][0x0]['context'],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x2cb859,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});if(_0x558e00['extension']){_0x558e00[_0xffdf('0x13')][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':_0x558e00['extension'][_0xffdf('0x1d')]?_0xffdf('0x23')+_0x558e00[_0xffdf('0x1b')][_0xffdf('0x1d')]+'}':_0xffdf('0x24'),'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});}_0x558e00[_0xffdf('0x13')][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':_0xffdf('0x25')+_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')],'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0]['VoiceExtensionId']});if(_0x558e00[_0xffdf('0x1b')]&&_0x558e00['extension'][_0xffdf('0x11')](_0xffdf('0x26'))&&_0x558e00[_0xffdf('0x1b')][_0xffdf('0x26')]!=='none'){_0x558e00[_0xffdf('0x13')][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':_0xffdf('0x27'),'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});_0x558e00[_0xffdf('0x13')][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':_0xffdf('0x28')+_0x558e00[_0xffdf('0x1b')][_0xffdf('0x26')]||_0xffdf('0x29'),'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});}}_0x558e00['extensions'][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});_0x558e00['extensions'][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':_0xffdf('0x2a'),'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0]['exten'],'priority':_0x558e00['priority']++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0]['VoiceExtensionId']});_0x558e00[_0xffdf('0x13')][_0xffdf('0x1f')]({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':_0xffdf('0x2b'),'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'priority':_0x558e00[_0xffdf('0x12')]++,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});for(var _0x3c99ee=0x0,_0x5bf33c=0x0;_0x3c99ee<_0x5eb72e[_0x3f2a74][_0xffdf('0x2c')];_0x3c99ee+=0x1,_0x5bf33c=0x0){var _0x26cdaf=_0x5eb72e[_0x3f2a74][_0x3c99ee];if(_0x26cdaf[_0xffdf('0x15')]){_0x26cdaf[_0xffdf('0x15')]=_0x26cdaf[_0xffdf('0x15')][_0xffdf('0x2d')]();}var _0x2c9dc5=[];var _0x37ec4c=[];delete _0x26cdaf['id'];delete _0x26cdaf[_0xffdf('0x2e')];delete _0x26cdaf[_0xffdf('0x2f')];var _0x32b40d=_0x26cdaf[_0xffdf('0x30')]!==_0xffdf('0x31')?[_0x26cdaf['interval']]:_0x26cdaf[_0xffdf('0x8')]?_[_0xffdf('0xa')](_['filter'](_0x558e00[_0xffdf('0x6')],{'IntervalId':_0x26cdaf[_0xffdf('0x8')]}),_0xffdf('0x30')):[];if(_0x26cdaf[_0xffdf('0x11')](_0xffdf('0x32'))){if(_0x26cdaf[_0xffdf('0x32')]&&_0x26cdaf[_0xffdf('0x32')]!=='--'){_0x2c9dc5['push']({'type':_0x26cdaf[_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':'CDR(tag)='+_0x26cdaf[_0xffdf('0x32')],'context':_0x26cdaf[_0xffdf('0x18')],'exten':_0x26cdaf[_0xffdf('0xb')],'priority':_0x32b40d[_0xffdf('0x2c')]+_0x558e00[_0xffdf('0x12')]+_0x5bf33c++,'VoiceExtensionId':_0x26cdaf[_0xffdf('0x19')]});}}if(_0x26cdaf[_0xffdf('0x15')]==='outbound'&&_0x26cdaf[_0xffdf('0x11')]('callerID')){if(_0x26cdaf['callerID']){_0x2c9dc5[_0xffdf('0x1f')]({'type':_0x26cdaf[_0xffdf('0x15')],'app':_0xffdf('0x21'),'appdata':_0xffdf('0x33')+_0x26cdaf[_0xffdf('0x34')]+')','context':_0x26cdaf[_0xffdf('0x18')],'exten':_0x26cdaf[_0xffdf('0xb')],'priority':_0x32b40d[_0xffdf('0x2c')]+_0x558e00[_0xffdf('0x12')]+_0x5bf33c++,'VoiceExtensionId':_0x26cdaf[_0xffdf('0x19')]});}else{_0x2c9dc5[_0xffdf('0x1f')]({'type':_0x26cdaf['type'],'app':_0xffdf('0x21'),'appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','context':_0x26cdaf[_0xffdf('0x18')],'exten':_0x26cdaf[_0xffdf('0xb')],'priority':_0x32b40d[_0xffdf('0x2c')]+_0x558e00[_0xffdf('0x12')]+_0x5bf33c++,'VoiceExtensionId':_0x26cdaf[_0xffdf('0x19')]});}}if(_0x26cdaf[_0xffdf('0x11')](_0xffdf('0x35'))){if(_0x19419b['indexOf'](_0x26cdaf['app'][_0xffdf('0x2d')]())>=0x0&&_0x26cdaf[_0xffdf('0x36')]!==_0xffdf('0x37')){if(_0x26cdaf[_0xffdf('0x35')]){_0x2c9dc5[_0xffdf('0x1f')]({'type':_0x26cdaf[_0xffdf('0x15')],'app':_0xffdf('0x21'),'appdata':_0xffdf('0x38'),'context':_0x26cdaf[_0xffdf('0x18')],'exten':_0x26cdaf[_0xffdf('0xb')],'priority':_0x32b40d['length']+_0x558e00[_0xffdf('0x12')]+_0x5bf33c++,'VoiceExtensionId':_0x26cdaf[_0xffdf('0x19')]});_0x2c9dc5[_0xffdf('0x1f')]({'type':_0x26cdaf[_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x26cdaf[_0xffdf('0x18')],'exten':_0x26cdaf[_0xffdf('0xb')],'priority':_0x32b40d[_0xffdf('0x2c')]+_0x558e00[_0xffdf('0x12')]+_0x5bf33c++,'VoiceExtensionId':_0x26cdaf[_0xffdf('0x19')]});}else{_0x2c9dc5[_0xffdf('0x1f')]({'type':_0x26cdaf[_0xffdf('0x15')],'app':_0xffdf('0x21'),'appdata':_0xffdf('0x39'),'context':_0x26cdaf[_0xffdf('0x18')],'exten':_0x26cdaf[_0xffdf('0xb')],'priority':_0x32b40d[_0xffdf('0x2c')]+_0x558e00[_0xffdf('0x12')]+_0x5bf33c++,'VoiceExtensionId':_0x26cdaf[_0xffdf('0x19')]});_0x2c9dc5[_0xffdf('0x1f')]({'type':_0x26cdaf[_0xffdf('0x15')],'app':_0xffdf('0x16'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x26cdaf[_0xffdf('0x18')],'exten':_0x26cdaf['exten'],'priority':_0x32b40d[_0xffdf('0x2c')]+_0x558e00[_0xffdf('0x12')]+_0x5bf33c++,'VoiceExtensionId':_0x26cdaf[_0xffdf('0x19')]});}}}for(var _0x39edc5=0x0;_0x39edc5<_0x32b40d['length'];_0x39edc5+=0x1){var _0x1accc4=_0x558e00[_0xffdf('0x12')]+_0x32b40d[_0xffdf('0x2c')];var _0x466b56=_0x39edc5===_0x32b40d[_0xffdf('0x2c')]-0x1?_0x558e00[_0xffdf('0x12')]+_0x2c9dc5['length']+_0x37ec4c['length']+0x2:_0x558e00[_0xffdf('0x12')]+_0x39edc5+0x1;_0x2c9dc5['splice'](_0x39edc5,0x0,{'type':_0x26cdaf[_0xffdf('0x15')],'app':'GotoIfTime','appdata':_0x32b40d[_0x39edc5]+'?'+_0x26cdaf[_0xffdf('0x18')]+_0xffdf('0x3a')+_0x1accc4+':'+_0x26cdaf[_0xffdf('0x18')]+',${EXTEN},'+_0x466b56,'exten':_0x26cdaf[_0xffdf('0xb')],'context':_0x26cdaf['context'],'priority':_0x558e00[_0xffdf('0x12')]+_0x39edc5,'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0]['VoiceExtensionId']});}_0x26cdaf[_0xffdf('0x12')]=_0x2c9dc5['length']?_['last'](_0x2c9dc5)[_0xffdf('0x12')]+0x1:_0x558e00[_0xffdf('0x12')];_0x558e00[_0xffdf('0x12')]=(_0x37ec4c[_0xffdf('0x2c')]?_[_0xffdf('0x3b')](_0x37ec4c)[_0xffdf('0x12')]:_0x26cdaf[_0xffdf('0x12')])+0x1;_0x558e00[_0xffdf('0x13')]=_[_0xffdf('0x3c')](_0x558e00[_0xffdf('0x13')],_0x2c9dc5,[_0x26cdaf],_0x37ec4c);}_0x558e00[_0xffdf('0x13')]['push']({'type':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x15')],'app':_0xffdf('0x3d'),'exten':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0xb')],'context':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x18')],'priority':_0x558e00[_0xffdf('0x12')],'VoiceExtensionId':_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]});_0x1ca3d4[_0xffdf('0x1f')](_0x5eb72e[_0x3f2a74][0x0][_0xffdf('0x19')]);_0x49c158=_[_0xffdf('0x3c')](_0x49c158,_0x558e00[_0xffdf('0x13')]);}}return _0x2ade80[_0xffdf('0x3e')](function(_0x296479){return _0x2ade80[_0xffdf('0x2')]['VoiceExtension'][_0xffdf('0x3f')]({'where':{'VoiceExtensionId':{'$in':_0x1ca3d4}},'transaction':_0x296479})[_0xffdf('0x5')](function(_0x162a23){return _0x2ade80[_0xffdf('0x2')][_0xffdf('0x7')][_0xffdf('0x40')](_['sortBy'](_0x49c158,_0xffdf('0x12')),{'transaction':_0x296479});});});})[_0xffdf('0x41')](function(_0x160741){console[_0xffdf('0x42')](_0x160741);});}exports[_0xffdf('0x43')]=rewrite;