package org.bigbluebutton.voiceconf.messaging; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.bigbluebutton.voiceconf.messaging.messages.UserConnectedToGlobalAudio; import org.bigbluebutton.voiceconf.messaging.messages.UserDisconnectedFromGlobalAudio; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; public class RedisMessagingService implements IMessagingService { private static Logger log = Red5LoggerFactory.getLogger(RedisMessagingService.class, "sip"); private static final Pattern CALLERNAME_PATTERN = Pattern.compile("(.*)-bbbID-(.*)$"); private MessageSender sender; @Override public void userConnectedToGlobalAudio(String voiceConf, String callerIdName) { Matcher matcher = CALLERNAME_PATTERN.matcher(callerIdName); if (matcher.matches()) { String userid = matcher.group(1).trim(); String name = matcher.group(2).trim(); String json = new UserConnectedToGlobalAudio(voiceConf, userid, name).toJson(); sender.send(MessagingConstants.TO_MEETING_CHANNEL, json); } else { log.warn("Invalid calleridname [{}] in userConnectedToGlobalAudio as it does not match pattern (.*)-bbbID-(.*)"); String json = new UserConnectedToGlobalAudio(voiceConf, callerIdName, callerIdName).toJson(); sender.send(MessagingConstants.TO_MEETING_CHANNEL, json); } } @Override public void userDisconnectedFromGlobalAudio(String voiceConf, String callerIdName) { Matcher matcher = CALLERNAME_PATTERN.matcher(callerIdName); if (matcher.matches()) { String userid = matcher.group(1).trim(); String name = matcher.group(2).trim(); String json = new UserDisconnectedFromGlobalAudio(voiceConf, userid, name).toJson(); sender.send(MessagingConstants.TO_MEETING_CHANNEL, json); } else { log.warn("Invalid calleridname [{}] in userDisconnectedFromGlobalAudio as it does not match pattern (.*)-bbbID-(.*)"); String json = new UserDisconnectedFromGlobalAudio(voiceConf, callerIdName, callerIdName).toJson(); sender.send(MessagingConstants.TO_MEETING_CHANNEL, json); } } public void setRedisMessageSender(MessageSender sender) { this.sender = sender; } }