From cce5655f2f88e6541ba6f70cb68d183beba19ac9 Mon Sep 17 00:00:00 2001
From: cai <cai@nbcai.cc>
Date: Sat, 08 Aug 2026 18:42:37 +0800
Subject: [PATCH] test: cover per-session participant metadata refresh
---
src/main.rs | 21 +++++----------------
1 files changed, 5 insertions(+), 16 deletions(-)
diff --git a/src/main.rs b/src/main.rs
index c3fa805..d357e4a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -30,7 +30,7 @@
options::TrackPublishOptions,
prelude::{
DataPacket, LocalAudioTrack, LocalTrack, ParticipantIdentity, RemoteAudioTrack,
- RemoteTrack, Room, RoomEvent, RoomOptions,
+ RemoteParticipant, RemoteTrack, Room, RoomEvent, RoomOptions,
},
};
use reqwest::Client;
@@ -780,16 +780,6 @@
"runtime helper ignored non-user audio participant");
continue;
}
- let ingress_metadata =
- match AudioIngressMetadata::from_participant(&participant.attributes()) {
- Ok(value) => value,
- Err(reason) => {
- warn!(call_id = %call_id, trace_id = %trace_id,
- metadata_status = "invalid", reason = reason,
- "runtime helper ignored invalid audio ingress metadata");
- None
- }
- };
let participant_alias = redact(&participant.identity().to_string());
let track_sid_alias = redact(&track.sid().to_string());
let track_name = track.name();
@@ -801,9 +791,6 @@
track_sid_alias = %track_sid_alias,
track_name = %track_name,
track_source = %track_source,
- metadata_status = if ingress_metadata.is_some() { "bound" } else { "absent" },
- metadata_source = ingress_metadata.as_ref().map(|_| "controlled_fixture"),
- metadata_sequence_present = ingress_metadata.is_some(),
"runtime helper user_track_subscribed"
);
spawn_user_audio_frame_observer(
@@ -818,6 +805,7 @@
turn_bridge_config.clone(),
http.clone(),
sink.clone(),
+ participant,
);
}
RoomEvent::TrackSubscribed {
@@ -2929,6 +2917,7 @@
turn_bridge_config: TurnBridgeConfig,
http: Client,
sink: Arc<BotAudioOutputSink>,
+ participant: RemoteParticipant,
) -> JoinHandle<()> {
tokio::spawn(async move {
let mut stream = NativeAudioStream::new(
@@ -3054,14 +3043,14 @@
if !was_in_speech && is_in_speech {
let turn_id = format!("turn-{:04}", vad.turn_index);
- match RealtimeAsrUpload::start(
+ match RealtimeAsrUpload::start_with_participant_attributes(
http.clone(),
turn_bridge_config.realtime_asr_config(),
&call_id,
&trace_id,
&turn_id,
&vad.speech_samples,
- ingress_metadata.as_ref(),
+ || participant.attributes(),
) {
Ok(upload) => {
info!(
--
Gitblit v1.9.3