busy-breakfast-32623
08/20/2025, 9:47 AMtall-airline-16756
08/20/2025, 9:47 AMtall-airline-16756
08/20/2025, 9:47 AMRoomAudioRenderer
to automatically play all audio tracks in the room, or if you prefer, add audio tracks manually using AudioTrack
components or custom <audio>
tags.
• Telephony Integration: It’s important to confirm that the telephony participant’s audio is properly connected and that SIP participants can exchange audio smoothly with everyone else in the room.
• Audio Context Management: Check that audio contexts are set up and managed correctly. LiveKit takes care of suspending and resuming audio contexts automatically and sets them up for both local and remote participants when webAudioMix
is enabled.
• Audio Output Device Management: Make sure the agent’s audio output device is configured right so they can hear all participants clearly.
If you’re still running into issues, try verifying that the audio tracks from the new web participant are reaching the server and that playback is properly starting for the agent. Feel free to reach out if you want me to walk you through any of these steps—I'm here to help!
Sources: lib/src/core/room.dart | Screen sharing | LiveKit Docs | Screen sharing | LiveKit Docs | src/room/Room.ts | LiveKit Docsbusy-breakfast-32623
08/20/2025, 9:50 AMtall-airline-16756
08/20/2025, 9:51 AMRoomInputOptions
is set up. If the participant_kinds
parameter only includes SIP participants (those using telephony), the agent won’t be able to hear web participants. To fix this, just make sure your RoomInputOptions
includes both PARTICIPANT_KIND_SIP
(for telephony users) and PARTICIPANT_KIND_STANDARD
(for web users).
Here’s a quick example to help you out:
await session.start(
agent=MyAgent(),
room=ctx.room,
room_input_options=RoomInputOptions(
participant_kinds=[
rtc.ParticipantKind.PARTICIPANT_KIND_SIP, # Telephony participants
rtc.ParticipantKind.PARTICIPANT_KIND_STANDARD, # Web participants
]
),
)
By the way, if you leave out the participant_kinds
parameter entirely, it defaults to including both types of participants. If you want to chat more about this or need a hand with anything else, just let me know—I’m here to help!
Sources: Using Noise Cancellation for SIP and WebRTC Participants | livekit-agents/livekit/agents/voice/room_io/room_io.py | Room & Participant Management | livekit/livekit_composite | DeepWikibusy-breakfast-32623
08/20/2025, 9:55 AMtall-airline-16756
08/20/2025, 9:55 AMRoomInputOptions
isn’t explicitly set, so it could be defaulting to only include telephony participants. To make sure the agent can hear both web and telephony participants, you’ll want to explicitly include both types in your session configuration.
Here’s a friendly tweak you can try in your code:
agent = Agent(
instructions=prompts.prompt2,
tools=[get_current_time, tools.end_call]
)
# Configure the voice processing pipeline optimized for telephony
session = AgentSession(
llm=google.beta.realtime.RealtimeModel(
model="gemini-2.0-flash-exp",
voice="Aoede",
temperature=0.8,
instructions="start with a greeting",
)
)
# Start the agent session with RoomInputOptions
await session.start(
agent=agent,
room=ctx.room,
room_input_options=RoomInputOptions(
participant_kinds=[
rtc.ParticipantKind.PARTICIPANT_KIND_SIP, # Telephony participants
rtc.ParticipantKind.PARTICIPANT_KIND_STANDARD, # Web participants
]
)
)
This way, the agent will be able to listen to both web and telephony participants without missing a thing. If anything’s unclear or you want to chat more about this, just let me know—I’m here to help!busy-breakfast-32623
08/20/2025, 9:57 AMtall-airline-16756
08/20/2025, 9:57 AMrtc
and `RoomInputOptions`:
from livekit import rtc
from livekit.agent import RoomInputOptions
Just make sure to include these at the top of your script so everything sets up smoothly. If you have any questions or want me to walk you through it, feel free to ask!busy-breakfast-32623
08/20/2025, 12:37 PMtall-airline-16756
08/20/2025, 12:37 PM