Add the url attribute to the IceCandidate (Java Wrapper)
The url of the ICE server is added to the IceCandiate class.
This can be used to tell which server this candidate was gathered from.
BUG=webrtc:7128
Review-Url: https://codereview.webrtc.org/2690593002
Cr-Original-Commit-Position: refs/heads/master@{#16593}
Committed: 8586c8ee88
Review-Url: https://codereview.webrtc.org/2690593002
Cr-Commit-Position: refs/heads/master@{#16615}
This commit is contained in:
@ -187,6 +187,7 @@ public class DirectRTCClient implements AppRTCClient, TCPChannelClient.TCPChanne
|
|||||||
jsonPut(json, "label", candidate.sdpMLineIndex);
|
jsonPut(json, "label", candidate.sdpMLineIndex);
|
||||||
jsonPut(json, "id", candidate.sdpMid);
|
jsonPut(json, "id", candidate.sdpMid);
|
||||||
jsonPut(json, "candidate", candidate.sdp);
|
jsonPut(json, "candidate", candidate.sdp);
|
||||||
|
jsonPut(json, "url", candidate.serverUrl);
|
||||||
|
|
||||||
if (roomState != ConnectionState.CONNECTED) {
|
if (roomState != ConnectionState.CONNECTED) {
|
||||||
reportError("Sending ICE candidate in non connected state.");
|
reportError("Sending ICE candidate in non connected state.");
|
||||||
@ -336,12 +337,13 @@ public class DirectRTCClient implements AppRTCClient, TCPChannelClient.TCPChanne
|
|||||||
jsonPut(json, "label", candidate.sdpMLineIndex);
|
jsonPut(json, "label", candidate.sdpMLineIndex);
|
||||||
jsonPut(json, "id", candidate.sdpMid);
|
jsonPut(json, "id", candidate.sdpMid);
|
||||||
jsonPut(json, "candidate", candidate.sdp);
|
jsonPut(json, "candidate", candidate.sdp);
|
||||||
|
jsonPut(json, "url", candidate.serverUrl);
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Converts a JSON candidate to a Java object.
|
// Converts a JSON candidate to a Java object.
|
||||||
private static IceCandidate toJavaCandidate(JSONObject json) throws JSONException {
|
private static IceCandidate toJavaCandidate(JSONObject json) throws JSONException {
|
||||||
return new IceCandidate(
|
return new IceCandidate(json.getString("id"), json.getInt("label"), json.getString("candidate"),
|
||||||
json.getString("id"), json.getInt("label"), json.getString("candidate"));
|
json.getString("url"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -115,8 +115,8 @@ public class RoomParametersFetcher {
|
|||||||
offerSdp = new SessionDescription(
|
offerSdp = new SessionDescription(
|
||||||
SessionDescription.Type.fromCanonicalForm(messageType), message.getString("sdp"));
|
SessionDescription.Type.fromCanonicalForm(messageType), message.getString("sdp"));
|
||||||
} else if (messageType.equals("candidate")) {
|
} else if (messageType.equals("candidate")) {
|
||||||
IceCandidate candidate = new IceCandidate(
|
IceCandidate candidate = new IceCandidate(message.getString("id"),
|
||||||
message.getString("id"), message.getInt("label"), message.getString("candidate"));
|
message.getInt("label"), message.getString("candidate"), message.getString("url"));
|
||||||
iceCandidates.add(candidate);
|
iceCandidates.add(candidate);
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "Unknown message: " + messageString);
|
Log.e(TAG, "Unknown message: " + messageString);
|
||||||
|
|||||||
@ -408,12 +408,13 @@ public class WebSocketRTCClient implements AppRTCClient, WebSocketChannelEvents
|
|||||||
jsonPut(json, "label", candidate.sdpMLineIndex);
|
jsonPut(json, "label", candidate.sdpMLineIndex);
|
||||||
jsonPut(json, "id", candidate.sdpMid);
|
jsonPut(json, "id", candidate.sdpMid);
|
||||||
jsonPut(json, "candidate", candidate.sdp);
|
jsonPut(json, "candidate", candidate.sdp);
|
||||||
|
jsonPut(json, "url", candidate.serverUrl);
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Converts a JSON candidate to a Java object.
|
// Converts a JSON candidate to a Java object.
|
||||||
IceCandidate toJavaCandidate(JSONObject json) throws JSONException {
|
IceCandidate toJavaCandidate(JSONObject json) throws JSONException {
|
||||||
return new IceCandidate(
|
return new IceCandidate(json.getString("id"), json.getInt("label"), json.getString("candidate"),
|
||||||
json.getString("id"), json.getInt("label"), json.getString("candidate"));
|
json.getString("url"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -41,6 +41,7 @@ public class DirectRTCClientTest {
|
|||||||
|
|
||||||
private static final String DUMMY_SDP_MID = "sdpMid";
|
private static final String DUMMY_SDP_MID = "sdpMid";
|
||||||
private static final String DUMMY_SDP = "sdp";
|
private static final String DUMMY_SDP = "sdp";
|
||||||
|
private static final String DUMMY_SERVER_URL = "serverUrl";
|
||||||
|
|
||||||
public static final int SERVER_WAIT = 100;
|
public static final int SERVER_WAIT = 100;
|
||||||
public static final int NETWORK_TIMEOUT = 1000;
|
public static final int NETWORK_TIMEOUT = 1000;
|
||||||
@ -136,7 +137,7 @@ public class DirectRTCClientTest {
|
|||||||
verify(serverEvents, timeout(NETWORK_TIMEOUT))
|
verify(serverEvents, timeout(NETWORK_TIMEOUT))
|
||||||
.onRemoteDescription(isNotNull(SessionDescription.class));
|
.onRemoteDescription(isNotNull(SessionDescription.class));
|
||||||
|
|
||||||
IceCandidate candidate = new IceCandidate(DUMMY_SDP_MID, 0, DUMMY_SDP);
|
IceCandidate candidate = new IceCandidate(DUMMY_SDP_MID, 0, DUMMY_SDP, DUMMY_SERVER_URL);
|
||||||
server.sendLocalIceCandidate(candidate);
|
server.sendLocalIceCandidate(candidate);
|
||||||
verify(clientEvents, timeout(NETWORK_TIMEOUT))
|
verify(clientEvents, timeout(NETWORK_TIMEOUT))
|
||||||
.onRemoteIceCandidate(isNotNull(IceCandidate.class));
|
.onRemoteIceCandidate(isNotNull(IceCandidate.class));
|
||||||
|
|||||||
@ -18,14 +18,24 @@ public class IceCandidate {
|
|||||||
public final String sdpMid;
|
public final String sdpMid;
|
||||||
public final int sdpMLineIndex;
|
public final int sdpMLineIndex;
|
||||||
public final String sdp;
|
public final String sdp;
|
||||||
|
public final String serverUrl;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public IceCandidate(String sdpMid, int sdpMLineIndex, String sdp) {
|
public IceCandidate(String sdpMid, int sdpMLineIndex, String sdp) {
|
||||||
this.sdpMid = sdpMid;
|
this.sdpMid = sdpMid;
|
||||||
this.sdpMLineIndex = sdpMLineIndex;
|
this.sdpMLineIndex = sdpMLineIndex;
|
||||||
this.sdp = sdp;
|
this.sdp = sdp;
|
||||||
|
this.serverUrl = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public IceCandidate(String sdpMid, int sdpMLineIndex, String sdp, String serverUrl) {
|
||||||
|
this.sdpMid = sdpMid;
|
||||||
|
this.sdpMLineIndex = sdpMLineIndex;
|
||||||
|
this.sdp = sdp;
|
||||||
|
this.serverUrl = serverUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return sdpMid + ":" + sdpMLineIndex + ":" + sdp;
|
return sdpMid + ":" + sdpMLineIndex + ":" + sdp + ":" + serverUrl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -245,12 +245,16 @@ class PCOJava : public PeerConnectionObserver {
|
|||||||
std::string sdp;
|
std::string sdp;
|
||||||
RTC_CHECK(candidate->ToString(&sdp)) << "got so far: " << sdp;
|
RTC_CHECK(candidate->ToString(&sdp)) << "got so far: " << sdp;
|
||||||
jclass candidate_class = FindClass(jni(), "org/webrtc/IceCandidate");
|
jclass candidate_class = FindClass(jni(), "org/webrtc/IceCandidate");
|
||||||
jmethodID ctor = GetMethodID(jni(), candidate_class,
|
jmethodID ctor = GetMethodID(
|
||||||
"<init>", "(Ljava/lang/String;ILjava/lang/String;)V");
|
jni(), candidate_class, "<init>",
|
||||||
|
"(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V");
|
||||||
jstring j_mid = JavaStringFromStdString(jni(), candidate->sdp_mid());
|
jstring j_mid = JavaStringFromStdString(jni(), candidate->sdp_mid());
|
||||||
jstring j_sdp = JavaStringFromStdString(jni(), sdp);
|
jstring j_sdp = JavaStringFromStdString(jni(), sdp);
|
||||||
jobject j_candidate = jni()->NewObject(candidate_class, ctor, j_mid,
|
jstring j_url =
|
||||||
candidate->sdp_mline_index(), j_sdp);
|
JavaStringFromStdString(jni(), candidate->candidate().url());
|
||||||
|
jobject j_candidate =
|
||||||
|
jni()->NewObject(candidate_class, ctor, j_mid,
|
||||||
|
candidate->sdp_mline_index(), j_sdp, j_url);
|
||||||
CHECK_EXCEPTION(jni()) << "error during NewObject";
|
CHECK_EXCEPTION(jni()) << "error during NewObject";
|
||||||
jmethodID m = GetMethodID(jni(), *j_observer_class_,
|
jmethodID m = GetMethodID(jni(), *j_observer_class_,
|
||||||
"onIceCandidate", "(Lorg/webrtc/IceCandidate;)V");
|
"onIceCandidate", "(Lorg/webrtc/IceCandidate;)V");
|
||||||
|
|||||||
Reference in New Issue
Block a user