in chime-sdk-signaling-cpp/src/signaling/default_signaling_client.cc [349:376]
void DefaultSignalingClient::UpdateTurnCredentials(const signal_sdk::SdkJoinAckFrame& join_ack) {
if (!join_ack.has_turn_credentials()) {
CHIME_LOG(LogLevel::kError, "No turn credential exist")
return;
}
const signal_sdk::SdkTurnCredentials& turn_creds = join_ack.turn_credentials();
if (!turn_creds.has_username() || !turn_creds.has_password() || !turn_creds.has_ttl() ||
turn_creds.uris_size() == 0) {
CHIME_LOG(LogLevel::kError, "turn credential exist, but components missing")
return;
}
std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
std::chrono::seconds ttl(turn_creds.ttl());
turn_credentials_expire_time_ = now + ttl;
std::vector<std::string> uris;
for (const auto& uri : turn_creds.uris()) {
uris.push_back(uri);
}
turn_credentials_.uris = uris;
turn_credentials_.username = turn_creds.username();
turn_credentials_.password = turn_creds.password();
turn_credentials_.ttl = turn_creds.ttl();
is_joined_ = true;
}