Where can I find detailed information about discon...
# ask-ai
a
Where can I find detailed information about disconnect_reason and attribute settings, including the status of the SIP user via the Livekit webhook?
t
Thanks for reaching out, Yunus. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
disconnect_reason in LiveKit webhook payloads indicates why a participant was disconnected. Possible values include: •
UNKNOWN_REASON
– Default or unknown reason •
CLIENT_INITIATED
– Client initiated the disconnect •
DUPLICATE_IDENTITY
– Another participant with the same identity joined •
SERVER_SHUTDOWN
– Server instance is shutting down •
PARTICIPANT_REMOVED
– Participant was removed via API •
ROOM_DELETED
– Room was deleted via API •
STATE_MISMATCH
– Session resume failed due to state mismatch •
JOIN_FAILURE
– Client failed to connect fully •
MIGRATION
– Server requested migration (cloud only) •
SIGNAL_CLOSE
– Signal websocket closed unexpectedly •
ROOM_CLOSED
– Room closed after all participants left •
USER_UNAVAILABLE
– SIP callee did not respond •
USER_REJECTED
– SIP callee rejected the call (busy) •
SIP_TRUNK_FAILURE
– SIP protocol failure or unexpected response •
CONNECTION_TIMEOUT
– Session timed out •
MEDIA_FAILURE
– Media stream failure or timeout attributes is a key-value map in the webhook payload that can include custom participant data. For SIP users, attributes may include SIP call status (such as
dialing
,
ringing
,
automation
,
active
,
hangup
) and SIP headers mapped to attributes. SIP-specific headers (like Twilio or Telnyx IDs) can also be included as attributes. The ParticipantInfo object in webhook payloads contains fields such as
sid
,
name
,
identity
,
metadata
,
attributes
,
kind
(including
PARTICIPANT_KIND_SIP
for SIP users), and
disconnect_reason
. This structure allows you to track SIP user status and call details directly from webhook events. Sources: lib/livekit/proto/livekit_sip_pb.rb | packages/javascript/CHANGELOG.md | livekit-ffi/src/livekit.proto.rs | packages/livekit-rtc/src/proto/participant_pb.ts | livekit-protocol/livekit/protocol/models.py