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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## [Unreleased]

### Changed

* Remove legacy path for requesting TURN credentials. This includes breaking changes to internal directory files, which should not impact applications. TURN is still used internally

## [0.25.2] - 2025-12-09

### Changed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ import com.amazonaws.services.chime.sdk.meetings.internal.metric.ClientMetricsCo
import com.amazonaws.services.chime.sdk.meetings.internal.utils.ConcurrentSet
import com.amazonaws.services.chime.sdk.meetings.internal.utils.DNSServerUtils
import com.amazonaws.services.chime.sdk.meetings.internal.utils.ObserverUtils
import com.amazonaws.services.chime.sdk.meetings.internal.utils.TURNRequestUtils
import com.amazonaws.services.chime.sdk.meetings.internal.video.TURNCredentials
import com.amazonaws.services.chime.sdk.meetings.internal.video.TURNRequestParams
import com.amazonaws.services.chime.sdk.meetings.session.URLRewriter
import com.amazonaws.services.chime.sdk.meetings.utils.SignalingDroppedError
import com.amazonaws.services.chime.sdk.meetings.utils.VideoClientFailedError
Expand All @@ -31,12 +28,10 @@ import com.xodee.client.video.VideoClientEventType
import kotlin.Any
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class DefaultContentShareVideoClientObserver(
private val context: Context,
private val logger: Logger,
private val turnRequestParams: TURNRequestParams,
private val clientMetricsCollector: ClientMetricsCollector,
private val urlRewriter: URLRewriter,
private val eventAnalyticsController: EventAnalyticsController
Expand Down Expand Up @@ -97,41 +92,6 @@ class DefaultContentShareVideoClientObserver(
}
}

override fun requestTurnCreds(client: VideoClient?) {
logger.info(TAG, "requestTurnCreds")
uiScope.launch {
val turnResponse: TURNCredentials? =
TURNRequestUtils.doTurnRequest(turnRequestParams, logger)
with(turnResponse) {
val isActive = client?.isActive ?: false
if (this != null && isActive) {
val newUris = uris.map { url ->
url?.let {
urlRewriter(it)
}
}.toTypedArray()
client?.updateTurnCredentials(
username,
password,
ttl,
newUris,
turnRequestParams.signalingUrl,
VideoClient.VideoClientTurnStatus.VIDEO_CLIENT_TURN_FEATURE_ON
)
} else {
client?.updateTurnCredentials(
null,
null,
null,
null,
null,
VideoClient.VideoClientTurnStatus.VIDEO_CLIENT_TURN_STATUS_CCP_FAILURE
)
}
}
}
}

override fun getAvailableDnsServers(): Array<String> {
return DNSServerUtils.getAvailableDnsServers(context, logger)
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import com.amazonaws.services.chime.sdk.meetings.internal.metric.ClientMetricsCo
import com.amazonaws.services.chime.sdk.meetings.internal.utils.ConcurrentSet
import com.amazonaws.services.chime.sdk.meetings.internal.utils.DNSServerUtils
import com.amazonaws.services.chime.sdk.meetings.internal.utils.ObserverUtils
import com.amazonaws.services.chime.sdk.meetings.internal.utils.TURNRequestUtils
import com.amazonaws.services.chime.sdk.meetings.realtime.datamessage.DataMessage
import com.amazonaws.services.chime.sdk.meetings.realtime.datamessage.DataMessageObserver
import com.amazonaws.services.chime.sdk.meetings.session.MeetingSessionStatus
Expand All @@ -44,12 +43,10 @@ import java.security.InvalidParameterException
import kotlin.Any
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class DefaultVideoClientObserver(
private val context: Context,
private val logger: Logger,
private val turnRequestParams: TURNRequestParams,
private val clientMetricsCollector: ClientMetricsCollector,
private val videoClientStateController: VideoClientStateController,
private val urlRewriter: URLRewriter,
Expand Down Expand Up @@ -241,38 +238,6 @@ class DefaultVideoClientObserver(
}
}

override fun requestTurnCreds(client: VideoClient?) {
logger.info(TAG, "requestTurnCreds")
uiScope.launch {
val turnResponse: TURNCredentials? = TURNRequestUtils.doTurnRequest(turnRequestParams, logger)
with(turnResponse) {
val isActive = client?.isActive ?: false
if (this != null && isActive) {
val newUris = uris.map { url -> url?.let {
urlRewriter(it)
} }.toTypedArray()
client?.updateTurnCredentials(
username,
password,
ttl,
newUris,
turnRequestParams.signalingUrl,
VideoClient.VideoClientTurnStatus.VIDEO_CLIENT_TURN_FEATURE_ON
)
} else {
client?.updateTurnCredentials(
null,
null,
null,
null,
null,
VideoClient.VideoClientTurnStatus.VIDEO_CLIENT_TURN_STATUS_CCP_FAILURE
)
}
}
}
}

override fun getAvailableDnsServers(): Array<String> {
return DNSServerUtils.getAvailableDnsServers(context, logger)
}
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import com.amazonaws.services.chime.sdk.meetings.internal.video.DefaultVideoClie
import com.amazonaws.services.chime.sdk.meetings.internal.video.DefaultVideoClientFactory
import com.amazonaws.services.chime.sdk.meetings.internal.video.DefaultVideoClientObserver
import com.amazonaws.services.chime.sdk.meetings.internal.video.DefaultVideoClientStateController
import com.amazonaws.services.chime.sdk.meetings.internal.video.TURNRequestParams
import com.amazonaws.services.chime.sdk.meetings.realtime.DefaultRealtimeController
import com.amazonaws.services.chime.sdk.meetings.utils.logger.Logger

Expand Down Expand Up @@ -104,14 +103,6 @@ class DefaultMeetingSession @JvmOverloads constructor(
eventAnalyticsController
)

val turnRequestParams =
TURNRequestParams(
configuration.meetingId,
configuration.urls.signalingURL,
configuration.urls.turnControlURL,
configuration.credentials.joinToken
)

val videoClientStateController =
DefaultVideoClientStateController(
logger
Expand All @@ -121,7 +112,6 @@ class DefaultMeetingSession @JvmOverloads constructor(
DefaultVideoClientObserver(
context,
logger,
turnRequestParams,
metricsCollector,
videoClientStateController,
configuration.urls.urlRewriter,
Expand Down Expand Up @@ -187,19 +177,10 @@ class DefaultMeetingSession @JvmOverloads constructor(
val contentShareConfiguration =
configuration.createContentShareMeetingSessionConfiguration()

val contentShareTurnRequestParams =
TURNRequestParams(
contentShareConfiguration.meetingId,
contentShareConfiguration.urls.signalingURL,
contentShareConfiguration.urls.turnControlURL,
contentShareConfiguration.credentials.joinToken
)

val contentShareObserver =
DefaultContentShareVideoClientObserver(
context,
logger,
contentShareTurnRequestParams,
metricsCollector,
contentShareConfiguration.urls.urlRewriter,
eventAnalyticsController
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@ class DefaultContentShareVideoClientObserverTest {
@MockK
private lateinit var mockLogger: Logger

@MockK
private lateinit var mockTurnRequestParams: TURNRequestParams

@MockK
private lateinit var mockClientMetricsCollector: ClientMetricsCollector

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,6 @@ class DefaultVideoClientObserverTest {

private lateinit var testVideoClientObserver: DefaultVideoClientObserver

private val turnRequestParams =
TURNRequestParams(
"meetingId",
"signalingUrl",
"turnControlUrl",
"joinToken"
)

private val videoClientSuccessCode = 0
private val testMessage = "Hello world"
private val testProfileId = "aliceId"
Expand Down Expand Up @@ -145,7 +137,6 @@ class DefaultVideoClientObserverTest {
DefaultVideoClientObserver(
mockContext,
mockLogger,
turnRequestParams,
mockMetricsCollector,
mockVideoClientStateController,
mockDefaultUrlRewriter,
Expand Down
Loading