Conference status callback
Payload sent by SignalWire to your conference statusCallback URL when a conference or one of its participants changes state.
Configure this callback with the statusCallback, statusCallbackEvent, and statusCallbackMethod attributes of the
Conference noun. The participant whose <Conference> creates the
conference sets these for the whole conference; the values given by participants who join later are ignored.
If statusCallbackEvent is not set, no callbacks are sent.
Each statusCallbackEvent value subscribes to one or more events:
participant-call-quality reports the audio statistics for a participant who joined with emitCallQuality="true".
It is sent when that participant leaves, if statistics are available.
The parameters sent depend on the event:
SignalWire sends the parameters as a form-encoded (application/x-www-form-urlencoded) POST body, not as JSON.
When statusCallbackMethod is GET, they are sent as query parameters instead. Every value is a string:
boolean parameters are sent as true or false.
Conference recordings report to a separate URL, recordingStatusCallback. See the
Recording status callback.
Status callbacks are advisory, best-effort notifications — delivery can be delayed or fail silently, so don’t gate time-critical actions on receiving one. See Status callback reliability.
Payload
The event that triggered this request.
conference-start: the conference started.conference-end: the conference ended.participant-join: a participant joined.participant-leave: a participant left.participant-mute/participant-unmute: a participant was muted or unmuted.participant-hold/participant-unhold: a participant was put on hold or taken off hold.participant-speech-start/participant-speech-stop: a participant started or stopped speaking.participant-call-quality: audio quality statistics for a participant who joined withemitCallQuality="true", sent when that participant leaves.
The unique identifier of the participant’s call.
Sent on every event; on conference-start and conference-end it has no value.
The name of the conference, as given in the <Conference> noun.
Not sent on participant-speech-start, participant-speech-stop, or participant-call-quality.
Whether the participant is muted, as the string true or false.
Not sent on participant-call-quality; on conference-start and conference-end it has no value.
Whether the participant is on hold, as the string true or false.
Not sent on participant-call-quality; on conference-start and conference-end it has no value.
Whether the conference ends when this participant leaves, as the string true or false.
Set by the participant’s endConferenceOnExit attribute. Not sent on conference-start, conference-end, or participant-call-quality.
Whether the conference starts when this participant joins, as the string true or false.
Set by the participant’s startConferenceOnEnter attribute. Not sent on conference-start, conference-end, or participant-call-quality.
Whether the participant is coaching another call, as the string true or false.
Sent on every participant event except participant-call-quality, whether or not the participant joined with the coach attribute.
The unique identifier of the call this participant is coaching.
Sent on every participant event except participant-call-quality; it has no value when the participant is not coaching.
Why the conference ended. Sent on conference-end only.
last-participant-left: the last participant left.last-participant-kicked: the last participant was removed from the conference.participant-with-end-conference-on-exit-left: a participant withendConferenceOnExitset totrueleft.participant-with-end-conference-on-exit-kicked: a participant withendConferenceOnExitset totruewas removed from the conference.conference-ended-via-api: the conference was ended by setting itsStatustocompletedthrough the REST API.down: SignalWire ended the conference after a service interruption.stale: SignalWire closed a conference that was still open but no longer active.
The value can be empty when no reason was recorded.
The unique identifier of the call whose departure ended the conference. Sent on conference-end only.
It has no value when the conference was not ended by a participant leaving or being removed.
The participant’s average audio round-trip time, in seconds. Sent on participant-call-quality only, as 0 when nothing was measured.
The participant’s minimum audio round-trip time, in seconds. Sent on participant-call-quality only, as 0 when nothing was measured.
The participant’s maximum audio round-trip time, in seconds. Sent on participant-call-quality only, as 0 when nothing was measured.
The average jitter of the audio stream SignalWire sends to the participant. Measured in RTP timestamp units, not milliseconds: divide by the codec’s samples per millisecond (8 for PCMU and PCMA, 48 for Opus) to convert. Sent on participant-call-quality only, and omitted when no RTCP reports were received from the participant.
The minimum jitter of the audio stream SignalWire sends to the participant. Measured in RTP timestamp units, not milliseconds: divide by the codec’s samples per millisecond (8 for PCMU and PCMA, 48 for Opus) to convert. Sent on participant-call-quality only, as 0 when no RTCP reports were received from the participant.
The maximum jitter of the audio stream SignalWire sends to the participant. Measured in RTP timestamp units, not milliseconds: divide by the codec’s samples per millisecond (8 for PCMU and PCMA, 48 for Opus) to convert. Sent on participant-call-quality only, as 0 when no RTCP reports were received from the participant.
The number of audio RTP packets SignalWire sent to the participant that were reported lost. Sent on participant-call-quality only, as 0 when nothing was measured.