Skip to content
Snippets Groups Projects
Commit 9dd44ad8 authored by Richard Alam's avatar Richard Alam
Browse files

- filter our global audio users

parent b0276e57
No related branches found
No related tags found
No related merge requests found
...@@ -22,6 +22,7 @@ import java.util.regex.Pattern; ...@@ -22,6 +22,7 @@ import java.util.regex.Pattern;
public class GetUsersStatusCommand extends FreeswitchCommand { public class GetUsersStatusCommand extends FreeswitchCommand {
private static Logger log = LoggerFactory.getLogger(GetUsersStatusCommand.class); private static Logger log = LoggerFactory.getLogger(GetUsersStatusCommand.class);
private static final Pattern CALLERNAME_PATTERN = Pattern.compile("(.*)-bbbID-(.*)$"); private static final Pattern CALLERNAME_PATTERN = Pattern.compile("(.*)-bbbID-(.*)$");
private static final Pattern GLOBAL_AUDION_PATTERN = Pattern.compile("(GLOBAL_AUDIO)_(.*)$");
public GetUsersStatusCommand(String room, String requesterId) { public GetUsersStatusCommand(String room, String requesterId) {
super(room, requesterId); super(room, requesterId);
...@@ -35,7 +36,7 @@ public class GetUsersStatusCommand extends FreeswitchCommand { ...@@ -35,7 +36,7 @@ public class GetUsersStatusCommand extends FreeswitchCommand {
public void handleResponse(EslMessage response, ConferenceEventListener eventListener) { public void handleResponse(EslMessage response, ConferenceEventListener eventListener) {
String firstLine = response.getBodyLines().get(0); String firstLine = response.getBodyLines().get(0);
log.info("GetUsersStatusCommand: Check conference first line response: " + firstLine); //log.info("GetUsersStatusCommand: Check conference first line response: " + firstLine);
if(!firstLine.startsWith("<?xml")) { if(!firstLine.startsWith("<?xml")) {
log.info("Conference is not running {}.", room); log.info("Conference is not running {}.", room);
...@@ -57,12 +58,11 @@ public class GetUsersStatusCommand extends FreeswitchCommand { ...@@ -57,12 +58,11 @@ public class GetUsersStatusCommand extends FreeswitchCommand {
responseBody = responseBody.trim().replaceFirst("^([\\W]+)<","<"); responseBody = responseBody.trim().replaceFirst("^([\\W]+)<","<");
ByteArrayInputStream bs = new ByteArrayInputStream(responseBody.getBytes()); ByteArrayInputStream bs = new ByteArrayInputStream(responseBody.getBytes());
System.out.println("***** Parsing Response !!!! *****");
sp.parse(bs, confXML); sp.parse(bs, confXML);
Integer numUsers = confXML.getConferenceList().size(); Integer numUsers = confXML.getConferenceList().size();
if (numUsers > 0) { if (numUsers > 0) {
log.info("Check user status response: " + responseBody); //log.info("Check user status response: " + responseBody);
List<ConfMember> confMembers = new ArrayList<ConfMember>(); List<ConfMember> confMembers = new ArrayList<ConfMember>();
List<ConfRecording> confRecordings = new ArrayList<ConfRecording>(); List<ConfRecording> confRecordings = new ArrayList<ConfRecording>();
...@@ -74,30 +74,30 @@ public class GetUsersStatusCommand extends FreeswitchCommand { ...@@ -74,30 +74,30 @@ public class GetUsersStatusCommand extends FreeswitchCommand {
String voiceUserId = callerIdName; String voiceUserId = callerIdName;
String uuid = member.getUUID(); String uuid = member.getUUID();
Matcher matcher = CALLERNAME_PATTERN.matcher(callerIdName); Matcher gapMatcher = GLOBAL_AUDION_PATTERN.matcher(callerIdName);
if (matcher.matches()) { // Ignore GLOBAL_AUDIO user.
voiceUserId = matcher.group(1).trim(); if (!gapMatcher.matches()) {
callerIdName = matcher.group(2).trim(); Matcher matcher = CALLERNAME_PATTERN.matcher(callerIdName);
if (matcher.matches()) {
voiceUserId = matcher.group(1).trim();
callerIdName = matcher.group(2).trim();
}
log.info("Conf user. uuid=" + uuid
+ ",caller=" + callerIdName
+ ",callerId=" + callerId
+ ",conf=" + room
+ ",muted=" + member.getMuted()
+ ",talking=" + member.getSpeaking());
ConfMember confMember = new ConfMember(voiceUserId,
member.getId().toString(),
callerId, callerIdName,
member.getMuted(),
member.getSpeaking(),
"none");
confMembers.add(confMember);
} }
log.info("Conf user. uuid=" + uuid
+ ",caller=" + callerIdName
+ ",callerId=" + callerId
+ ",conf=" + room
+ ",muted=" + member.getMuted()
+ ",talking=" + member.getSpeaking());
//VoiceUsersStatusEvent pj = new VoiceUsersStatusEvent(voiceUserId, member.getId().toString(), confXML.getConferenceRoom(),
// callerId, callerIdName, member.getMuted(), member.getSpeaking(), "none");
//eventListener.handleConferenceEvent(pj);
ConfMember confMember = new ConfMember(voiceUserId,
member.getId().toString(),
callerId, callerIdName,
member.getMuted(),
member.getSpeaking(),
"none");
confMembers.add(confMember);
} else if ("recording_node".equals(member.getMemberType())) { } else if ("recording_node".equals(member.getMemberType())) {
ConfRecording confRecording = new ConfRecording(member.getRecordPath(), member.getRecordStartTime()); ConfRecording confRecording = new ConfRecording(member.getRecordPath(), member.getRecordStartTime());
confRecordings.add(confRecording); confRecordings.add(confRecording);
......
...@@ -19,8 +19,18 @@ class VoiceConferenceService(sender: RedisPublisher) extends IVoiceConferenceSer ...@@ -19,8 +19,18 @@ class VoiceConferenceService(sender: RedisPublisher) extends IVoiceConferenceSer
isRecording: java.lang.Boolean, isRecording: java.lang.Boolean,
confRecording: java.util.List[ConfRecording] confRecording: java.util.List[ConfRecording]
) { ) {
val recs: scala.collection.mutable.ListBuffer[ConfVoiceRecording] = new scala.collection.mutable.ListBuffer[ConfVoiceRecording]()
confRecording forEach { cr =>
recs += ConfVoiceRecording(cr.recordingPath, cr.recordingStartTime)
}
val header = BbbCoreVoiceConfHeader(CheckRunningAndRecordingVoiceConfEvtMsg.NAME, voiceConfId) val header = BbbCoreVoiceConfHeader(CheckRunningAndRecordingVoiceConfEvtMsg.NAME, voiceConfId)
val body = CheckRunningAndRecordingVoiceConfEvtMsgBody(voiceConfId, isRunning.booleanValue(), isRecording.booleanValue()) val body = CheckRunningAndRecordingVoiceConfEvtMsgBody(
voiceConfId,
isRunning.booleanValue(),
isRecording.booleanValue(),
recs.toVector
)
val envelope = BbbCoreEnvelope(CheckRunningAndRecordingVoiceConfEvtMsg.NAME, Map("voiceConf" -> voiceConfId)) val envelope = BbbCoreEnvelope(CheckRunningAndRecordingVoiceConfEvtMsg.NAME, Map("voiceConf" -> voiceConfId))
val msg = new CheckRunningAndRecordingVoiceConfEvtMsg(header, body) val msg = new CheckRunningAndRecordingVoiceConfEvtMsg(header, body)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment