Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,10 @@ static WebRTCClientBuilder builder() {
* @param subscriberCode: code of the subscriber
* @param streamName: name of the stream
* @param mainTrackId: id of the main track
* @param metaData: metaData of the stream
*/
void publish(String streamId, String token, boolean videoCallEnabled, boolean audioCallEnabled,
String subscriberId, String subscriberCode, String streamName, String mainTrackId);
String subscriberId, String subscriberCode, String streamName, String mainTrackId, String metaData);


/**
Expand Down Expand Up @@ -112,8 +113,9 @@ void publish(String streamId, String token, boolean videoCallEnabled, boolean au
* @param subscriberId: id of the subscriber
* @param subscriberCode: code of the subscriber
* @param streamName: name of the stream
* @param metaData: metaData of the stream
*/
void joinToConferenceRoom(String roomId, String streamId, boolean videoCallEnabled, boolean audioCallEnabled, String token, String subscriberId, String subscriberCode, String streamName);
void joinToConferenceRoom(String roomId, String streamId, boolean videoCallEnabled, boolean audioCallEnabled, String token, String subscriberId, String subscriberCode, String streamName, String metaData);

/**
* This is used to join a conference room as player
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ public void createReconnectorRunnables() {

Log.d(TAG, "Reconnect attempt for publish");
wsHandler.stop(peerInfo.id);
wsHandler.startPublish(peerInfo.id, peerInfo.token, peerInfo.videoCallEnabled, peerInfo.audioCallEnabled, peerInfo.subscriberId, peerInfo.subscriberCode, peerInfo.streamName, peerInfo.mainTrackId);
wsHandler.startPublish(peerInfo.id, peerInfo.token, peerInfo.videoCallEnabled, peerInfo.audioCallEnabled, peerInfo.subscriberId, peerInfo.subscriberCode, peerInfo.streamName, peerInfo.mainTrackId, peerInfo.metaData);


}
Expand Down Expand Up @@ -360,7 +360,7 @@ public void createReconnectorRunnables() {

Log.d(TAG, "Reconnect attempt for publish");
wsHandler.stop(peerInfo.id);
wsHandler.startPublish(peerInfo.id, peerInfo.token, peerInfo.videoCallEnabled, peerInfo.audioCallEnabled, peerInfo.subscriberId, peerInfo.subscriberCode, peerInfo.streamName, peerInfo.mainTrackId);
wsHandler.startPublish(peerInfo.id, peerInfo.token, peerInfo.videoCallEnabled, peerInfo.audioCallEnabled, peerInfo.subscriberId, peerInfo.subscriberCode, peerInfo.streamName, peerInfo.mainTrackId, peerInfo.metaData);


} else if (peerInfo.mode.equals(Mode.PLAY)) {
Expand Down Expand Up @@ -431,10 +431,11 @@ public void joinToConferenceRoom(String roomId, String streamId) {
"",
"",
"",
roomId);
roomId,
null);
}

public void joinToConferenceRoom(String roomId, String streamId, boolean videoCallEnabled, boolean audioCallEnabled, String token, String subscriberId, String subscriberCode, String streamName) {
public void joinToConferenceRoom(String roomId, String streamId, boolean videoCallEnabled, boolean audioCallEnabled, String token, String subscriberId, String subscriberCode, String streamName, String metaData) {

this.roomId = roomId;

Expand All @@ -443,7 +444,8 @@ public void joinToConferenceRoom(String roomId, String streamId, boolean videoCa
subscriberId,
subscriberCode,
streamName,
roomId);
roomId,
metaData);
}

public void joinToConferenceRoom(String roomId) {
Expand Down Expand Up @@ -978,7 +980,7 @@ private void publishPlayIfRequested() {
Mode peerMode = peerInfo.mode;
if (peerMode == Mode.PUBLISH && peerInfo.peerConnection == null) {
Log.i(TAG, "Processing publish request for peer streamId: " + peerInfo.id);
wsHandler.startPublish(peerInfo.id, peerInfo.token, peerInfo.videoCallEnabled, peerInfo.audioCallEnabled, peerInfo.subscriberId, peerInfo.subscriberCode, peerInfo.streamName, peerInfo.mainTrackId);
wsHandler.startPublish(peerInfo.id, peerInfo.token, peerInfo.videoCallEnabled, peerInfo.audioCallEnabled, peerInfo.subscriberId, peerInfo.subscriberCode, peerInfo.streamName, peerInfo.mainTrackId, peerInfo.metaData);
}

if (peerMode == Mode.PLAY && peerInfo.peerConnection == null) {
Expand All @@ -990,12 +992,12 @@ private void publishPlayIfRequested() {

public void publish(String streamId) {
publish(streamId, null, true, true,
null, null, streamId, null);
null, null, streamId, null, null);
}


public void publish(String streamId, String token, boolean videoCallEnabled, boolean audioCallEnabled,
String subscriberId, String subscriberCode, String streamName, String mainTrackId) {
String subscriberId, String subscriberCode, String streamName, String mainTrackId, String metaData) {
Log.i(TAG, "Publish: " + streamId);

this.handler.post(() -> {
Expand All @@ -1004,7 +1006,7 @@ public void publish(String streamId, String token, boolean videoCallEnabled, boo
}
});

createPeerInfo(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, mainTrackId, null, Mode.PUBLISH);
createPeerInfo(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, mainTrackId, metaData, Mode.PUBLISH);
init();

if(!PermissionHandler.checkPublishPermissions(config.activity, config.bluetoothEnabled)){
Expand All @@ -1017,7 +1019,7 @@ public void publish(String streamId, String token, boolean videoCallEnabled, boo

if (isWebSocketConnected()) {
Log.i(TAG, "Publish request sent through ws for stream: " + streamId);
wsHandler.startPublish(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, mainTrackId);
wsHandler.startPublish(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, mainTrackId, metaData);
} else {
Log.w(TAG, "Websocket is not connected. Set publish requested. It will be processed when ws is connected.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -451,4 +451,9 @@ private WebSocketConstants() {

public static final int WEBSOCKET_CONNECTION_TIMEOUT = 10000; //10 sec

/**
* It can be used to add metaData to a broadcast
*/
public static final String META_DATA = "metaData";

}
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ public void onBinaryMessage(byte[] bytes) {

}

public void startPublish(String streamId, String token, boolean videoEnabled, boolean audioEnabled, String subscriberId, String subscriberCode, String streamName, String mainTrackId){
public void startPublish(String streamId, String token, boolean videoEnabled, boolean audioEnabled, String subscriberId, String subscriberCode, String streamName, String mainTrackId, String metaData){
checkIfCalledOnValidThread();
JSONObject json = new JSONObject();
try {
Expand All @@ -351,6 +351,7 @@ public void startPublish(String streamId, String token, boolean videoEnabled, bo
json.put(WebSocketConstants.VIDEO, videoEnabled);
json.put(WebSocketConstants.AUDIO, audioEnabled);
json.put(WebSocketConstants.MAIN_TRACK, mainTrackId);
json.put(WebSocketConstants.META_DATA, metaData);

sendTextMessage(json.toString());
} catch (JSONException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,9 @@ public void testStreamPublishParameters() {
webRTCClient.setAudioEnabled(audioCallEnabled);
webRTCClient.setVideoEnabled(videoCallEnabled);

webRTCClient.publish(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, null);
webRTCClient.publish(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, null, null);

verify(wsHandler, times(1)).startPublish(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, null);
verify(wsHandler, times(1)).startPublish(streamId, token, videoCallEnabled, audioCallEnabled, subscriberId, subscriberCode, streamName, null, null);

ArgumentCaptor<String> jsonCaptor = ArgumentCaptor.forClass(String.class);
verify(wsHandler, times(1)).sendTextMessage(jsonCaptor.capture());
Expand Down Expand Up @@ -321,7 +321,7 @@ public void testJoinRoomParameters() {

verify(wsHandler, timeout(1000)).startPublish(streamId, ""
, true, true
, "", "", "", roomName);
, "", "", "", roomName, null);

webRTCClient.joinToConferenceRoom(roomName);
verify(wsHandler, timeout(1000)).startPlay(roomName, "", null, "", "", "");
Expand Down Expand Up @@ -678,7 +678,7 @@ public void testReconnection() {
webRTCClient.play(playStreamId, "", null, "", "", "");

String publishStreamId = "publishStreamId";
webRTCClient.publish(publishStreamId, "", true, true, "","", "", "");
webRTCClient.publish(publishStreamId, "", true, true, "","", "", "", null);

webRTCClient.onIceDisconnected(playStreamId);
webRTCClient.onIceDisconnected(publishStreamId);
Expand All @@ -690,7 +690,7 @@ public void testReconnection() {

verify(webRTCClient, timeout(WebRTCClient.PEER_RECONNECTION_DELAY_MS + 1000).atLeast(2)).play(anyString(), anyString(), any(), anyString(), anyString(), anyString());

verify(wsHandler, timeout(WebRTCClient.PEER_RECONNECTION_DELAY_MS + 1000).atLeast(1)).startPublish(anyString(),anyString(),anyBoolean(),anyBoolean(),anyString(),anyString(),anyString(),anyString());
verify(wsHandler, timeout(WebRTCClient.PEER_RECONNECTION_DELAY_MS + 1000).atLeast(1)).startPublish(anyString(),anyString(),anyBoolean(),anyBoolean(),anyString(),anyString(),anyString(),anyString(),anyString());

}

Expand All @@ -703,7 +703,7 @@ public void testWSAndListenerMessages() {
webRTCClient.joinToConferenceRoom(room, streamId);
verify(wsHandler, timeout(1000)).startPublish(streamId, ""
, true, true
, "", "", "", room);
, "", "", "", room, null);

webRTCClient.joinToConferenceRoom(room);
verify(wsHandler, timeout(1000)).startPlay(room, "", null, "", "", "");
Expand Down Expand Up @@ -1154,7 +1154,7 @@ public void tesHandlePublishPlayRequestWhenWSNotConnected() {

String publisher1 = "publisher1";
webRTCClient.publish(publisher1);
verify(wsHandler, never()).startPublish(anyString(), anyString(), anyBoolean(), anyBoolean(), anyString(), anyString(), anyString(), anyString());
verify(wsHandler, never()).startPublish(anyString(), anyString(), anyBoolean(), anyBoolean(), anyString(), anyString(), anyString(), anyString(), anyString());

assertEquals(1, webRTCClient.getPeersForTest().size());
WebRTCClient.PeerInfo publishPeer = webRTCClient.getPeersForTest().get(publisher1);
Expand All @@ -1169,7 +1169,7 @@ public void tesHandlePublishPlayRequestWhenWSNotConnected() {
assertEquals(player1, playPeer.id);

webRTCClient.onWebSocketConnected();
verify(wsHandler, times(1)).startPublish(eq(publishPeer.id), anyString(), anyBoolean(), anyBoolean(), anyString(), anyString(), anyString(), anyString());
verify(wsHandler, times(1)).startPublish(eq(publishPeer.id), anyString(), anyBoolean(), anyBoolean(), anyString(), anyString(), anyString(), anyString(), anyString());
verify(wsHandler, times(1)).startPlay(eq(playPeer.id), anyString(), any(String[].class), anyString(), anyString(), anyString());

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ public void testStartPublish() {
String streamName = "testStream";
String mainTrackId = "track123";

webSocketHandler.startPublish(streamId, token, videoEnabled, audioEnabled, subscriberId, subscriberCode, streamName, mainTrackId);
webSocketHandler.startPublish(streamId, token, videoEnabled, audioEnabled, subscriberId, subscriberCode, streamName, mainTrackId, null);

ArgumentCaptor<String> jsonCaptor = ArgumentCaptor.forClass(String.class);
verify(webSocketHandler, times(1)).sendTextMessage(jsonCaptor.capture());
Expand All @@ -163,6 +163,7 @@ public void testStartPublish() {
json.put(WebSocketConstants.VIDEO, videoEnabled);
json.put(WebSocketConstants.AUDIO, audioEnabled);
json.put(WebSocketConstants.MAIN_TRACK, mainTrackId);
json.put(WebSocketConstants.META_DATA, null);
} catch (JSONException e) {
e.printStackTrace();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ public void joinLeaveRoom() {
webRTCClient.joinToConferenceRoom(roomId);
}
else {
webRTCClient.joinToConferenceRoom(roomId, streamId, videoCallEnabled, audioCallEnabled, "", "", "", "");
webRTCClient.joinToConferenceRoom(roomId, streamId, videoCallEnabled, audioCallEnabled, "", "", "", "", null);
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ public void joinLeaveRoom() {
webRTCClient.joinToConferenceRoom(roomId);
}
else {
webRTCClient.joinToConferenceRoom(roomId, streamId, videoCallEnabled, audioCallEnabled, "", "", "", "");
webRTCClient.joinToConferenceRoom(roomId, streamId, videoCallEnabled, audioCallEnabled, "", "", "", "", null);
}

}
Expand Down