stats: implement transport iceState
https://w3c.github.io/webrtc-stats/#dom-rtctransportstats-selectedcandidatepairid
BUG=webrtc:14022
Change-Id: I206bff7048d2df3e3aff0af55072097f49d54e8f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261720
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#36840}
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index c68f019..916d4a7 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -243,6 +243,28 @@
}
}
+const char* IceTransportStateToRTCIceTransportState(IceTransportState state) {
+ switch (state) {
+ case IceTransportState::kNew:
+ return RTCIceTransportState::kNew;
+ case IceTransportState::kChecking:
+ return RTCIceTransportState::kChecking;
+ case IceTransportState::kConnected:
+ return RTCIceTransportState::kConnected;
+ case IceTransportState::kCompleted:
+ return RTCIceTransportState::kCompleted;
+ case IceTransportState::kFailed:
+ return RTCIceTransportState::kFailed;
+ case IceTransportState::kDisconnected:
+ return RTCIceTransportState::kDisconnected;
+ case IceTransportState::kClosed:
+ return RTCIceTransportState::kClosed;
+ default:
+ RTC_CHECK_NOTREACHED();
+ return nullptr;
+ }
+}
+
const char* NetworkTypeToStatsType(rtc::AdapterType type) {
switch (type) {
case rtc::ADAPTER_TYPE_CELLULAR:
@@ -2118,6 +2140,8 @@
IceRoleToRTCIceRole(channel_stats.ice_transport_stats.ice_role);
transport_stats->ice_local_username_fragment =
channel_stats.ice_transport_stats.ice_local_username_fragment;
+ transport_stats->ice_state = IceTransportStateToRTCIceTransportState(
+ channel_stats.ice_transport_stats.ice_state);
for (const cricket::ConnectionInfo& info :
channel_stats.ice_transport_stats.connection_infos) {
if (info.best_connection) {