From fe956853aab439bbb75fdf6b92d83cc0d781abdb Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Tue, 19 Dec 2017 13:41:50 +0100 Subject: [PATCH] Add support for TURN Signed-off-by: Mario Danic --- .../talk/activities/CallActivity.java | 18 +++++++++++++++++- .../json/signaling/settings/IceServer.java | 5 +++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java index 0cc3294fc..9dc24f744 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java @@ -27,6 +27,7 @@ package com.nextcloud.talk.activities; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Bundle; +import android.os.Parcelable; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; @@ -175,7 +176,7 @@ public class CallActivity extends AppCompatActivity { ButterKnife.bind(this); roomToken = getIntent().getExtras().getString("roomToken", ""); - userEntity = Parcels.unwrap(getIntent().getExtras().getParcelable("userEntity")); + userEntity = Parcels.unwrap((Parcelable) getIntent().getExtras().get("userEntity")); callSession = "0"; credentials = ApiHelper.getCredentials(userEntity.getUsername(), userEntity.getToken()); @@ -342,6 +343,21 @@ public class CallActivity extends AppCompatActivity { } } + for (int i = 0; i < signalingSettingsOverall.getOcs().getSettings().getTurnServers().size(); + i++) { + iceServer = signalingSettingsOverall.getOcs().getSettings().getTurnServers().get(i); + for (int j = 0; j < iceServer.getUrls().size(); j++) { + if (TextUtils.isEmpty(iceServer.getUsername()) || TextUtils.isEmpty(iceServer + .getCredential())) { + iceServers.add(new PeerConnection.IceServer(iceServer.getUrls().get(j))); + } else { + iceServers.add(new PeerConnection.IceServer(iceServer.getUrls().get(j), + iceServer.getUsername(), iceServer.getCredential())); + } + } + } + + joinRoomAndCall(); } diff --git a/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/settings/IceServer.java b/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/settings/IceServer.java index d121b5a3d..be7b90227 100644 --- a/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/settings/IceServer.java +++ b/app/src/main/java/com/nextcloud/talk/api/models/json/signaling/settings/IceServer.java @@ -23,6 +23,8 @@ package com.nextcloud.talk.api.models.json.signaling.settings; import com.bluelinelabs.logansquare.annotation.JsonField; import com.bluelinelabs.logansquare.annotation.JsonObject; +import java.util.List; + import lombok.Data; @Data @@ -31,6 +33,9 @@ public class IceServer { @JsonField(name = "url") String url; + @JsonField(name = "urls") + List urls; + @JsonField(name = "username") String username;