incalculable-ambulance-68856
09/03/2025, 5:11 PMrich-tent-61458
09/03/2025, 8:04 PMlemon-twilight-33067
09/04/2025, 6:53 PMancient-umbrella-90337
09/05/2025, 1:48 PMpowerful-activity-81417
09/09/2025, 5:55 AMfaint-noon-43612
09/11/2025, 1:58 PMglamorous-businessperson-673
09/22/2025, 6:01 AMlively-terabyte-73999
09/25/2025, 6:55 AMripe-portugal-88932
09/27/2025, 2:12 PMbrave-portugal-27220
09/28/2025, 6:11 PMquaint-caravan-55068
09/29/2025, 10:20 AMfuture-beard-52446
09/29/2025, 10:49 AMquiet-solstice-74970
09/29/2025, 8:30 PMfast-jordan-16209
09/30/2025, 1:40 PMorange-dog-39581
10/01/2025, 5:09 PMhallowed-artist-66283
10/08/2025, 11:06 AMCreated room);
} catch (err: any) {
// If room already exists, ignore; otherwise rethrow
if (!String(err?.message || "").toLowerCase().includes("already exists")) throw err;
}
//const dispatch = new AgentDispatchClient(LIVEKIT_URL!, API_KEY!, API_SECRET!);
//dispatch.createDispatch(roomName, "flo-ai-test");
const at = new AccessToken(API_KEY!, API_SECRET!, userInfo);
const grant: VideoGrant = {
room: roomName,
roomJoin: true,
canPublish: true,
canPublishData: true,
canSubscribe: true,
};
at.addGrant(grant);
at.roomConfig = new RoomConfiguration({
agents: [
new RoomAgentDispatch({
agentName: "flo-ai-test",
metadata: '{"user_id": "CA_RVPYRf6ayiPU"}',
}),
],
});
return at.toJwt();
}rough-alligator-66451
10/10/2025, 5:42 PMorange-dog-39581
10/10/2025, 7:21 PMstale-pillow-81140
10/11/2025, 5:58 AMcolossal-airport-19101
10/11/2025, 8:52 AMexport async function POST(req: NextRequest) {
const { event, egressInfo } = await receiver.receive(body, authHeader, true);
if (event === "egress_ended") {
const { metadata } = await GetRoom({ roomname: egressInfo.roomName });
await DeleteRoom({ room_id: egressInfo.roomName });
}
return new NextResponse("ok", { status: 200 });
}
Earlier, getting metadata before deleting the room worked fine. Any suggestions on why this is failing now, or how I can make sure metadata is always available before deletion?adorable-dream-8909
10/14/2025, 1:11 AMadorable-dream-8909
10/14/2025, 1:30 AMorange-dog-39581
10/14/2025, 4:06 AMadventurous-mechanic-33498
10/14/2025, 3:48 PMquick-lizard-90069
10/15/2025, 7:47 AMbored-airplane-78974
10/15/2025, 3:49 PMbest-battery-56004
10/16/2025, 5:48 PMroom.on("data_received", ...), while data sent from a participant via local_participant.publish_data() still does. Tested and reproduced the issue using the basic_room.py example. Is this expected? Should SendData reach SDK listeners, or did behavior change? (Ref in ask-ai channel)glamorous-finland-74321
11/10/2025, 9:01 AM@router.get("/livekit/get-token")
async def get_livekit_token_endpoint(
request: Request,
user: User = Depends(require_invite),
):
print("get_livekit_token_endpoint", user)
from livekit import api
# Convert user model to dict and ensure all values are strings
# since with_attributes expects dict[str, str]
user_dict = user.model_dump()
user_attributes = {k: str(v) if v is not None else "" for k, v in user_dict.items()}
token = (
api.AccessToken(settings.livekit_api_key, settings.livekit_api_secret)
.with_identity(user.id)
.with_name(f"notbf-stream")
.with_metadata(json.dumps(user_attributes))
.with_grants(
api.VideoGrants(
room_join=True,
room="notbf-stream",
)
)
)
return {
"participantName": f"{token.identity}",
"participantToken": token.to_jwt(),
"roomName": "notbf-stream",
"serverUrl": settings.livekit_url,
}
how can I get the stuff from with_metadata()
when user connects to the Agentmany-actor-68876
11/11/2025, 11:17 PMcanSubscribe set to false. This correctly prevented them from receiving audio/video tracks. However, I noticed that the user can still receive messages sent to all participants through the data channel. I had assumed that canSubscribe would apply to all track types, including data.
So my question is:
Am I misunderstanding how canSubscribe is intended to work, or is there a specific reason data channel messages are treated differently?astonishing-kangaroo-12980
11/13/2025, 10:11 AM