Could you explain the difference between these? ...
# ask-ai
m
Could you explain the difference between these? rtc.ParticipantKind.PARTICIPANT_KIND_SIP, rtc.ParticipantKind.PARTICIPANT_KIND_STANDARD,
✅ 1
t
Thanks for reaching out, Hugo. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Thanks — I’ll explain the difference between the two ParticipantKind values and when you’d use each. • rtc.ParticipantKind.PARTICIPANT_KIND_STANDARD ◦ Represents a normal WebRTC participant (browser, mobile app, SDK client). ◦ Connects via standard WebRTC signaling and can publish/subscribe to audio, video, and data tracks. ◦ Used for human users in typical real-time apps (video calls, screen share, chat). ◦ Billing and metrics are handled as regular connection minutes. • rtc.ParticipantKind.PARTICIPANT_KIND_SIP ◦ Represents a participant that joined the room via SIP (telephony/PSTN integration). ◦ Used for phone callers or other SIP endpoints bridging into a LiveKit room. ◦ Exposes SIP-specific metadata such as call status, phone number, and trunk ID. ◦ Telephony usage is billed differently (per-minute SIP telephony fees) compared with standard connection minutes. ◦ Can be treated like other participants for media (publish/subscribe), but there are SIP-specific behaviors and options (for example, different noise-cancellation settings or telephony lifecycle handling). If you’d like, tell me which scenario you’re implementing (pure WebRTC users, a SIP PSTN bridge, or a mix) and I’ll suggest the best practices for handling media, metadata, or billing-related settings. Sources: SIP Lifecycle Management Agent | LiveKit Documentation | livekit/livekit_composite | DeepWiki | Using Noise Cancellation for SIP and WebRTC Participants, with interactive elements