Room nameThe text content of the
<Conference> element is the room name. All callers placed into the same room name are bridged together. Room names are case-sensitive.Attributes
| Attribute | Description |
|---|---|
muted boolean | If true, the participant joins the conference muted and cannot be heard by others until unmuted. Default: false |
beep boolean | Configures join and leave tones. Vobiz accepts this value, but audible tones are not currently guaranteed. Default: true |
startConferenceOnEnter boolean | If true, the conference starts and hold music stops when this participant enters. Set to false for participants who should wait in hold until the moderator arrives. Default: true |
endConferenceOnExit boolean | If true, this participant’s exit issues an unconditional kick of every remaining member. It does not inspect stayAlone on the other members - see the warning below. Default: false |
maxParticipants integer | Requests a participant limit for the room. Parsed, but not effective - the account-level max_conf_members cap wins (commonly 20). Contact support to raise the account cap, and enforce lower limits in your application. Allowed values: positive integer |
stayAlone boolean | If false, a participant who is alone in the room is disconnected. Initialises to false, so set stayAlone="true" on any leg that may arrive before the others - every transfer, and every conference where the host joins first. Default: false |
enterSound string | Sound played into the room when this participant enters. |
exitSound string | Sound played into the room when this participant exits. |
relayDTMF boolean | If true, DTMF pressed by this participant is relayed into the conference. Default: false |
digitsMatch string | Comma-separated digit patterns that raise a ConferenceDigitsMatch callback when matched. |
hangupOnStar boolean | If true, this participant pressing * removes them from the conference. Default: false |
waitSound string | URL that returns XML for a waiting participant while startConferenceOnEnter is false. Vobiz requests this URL with POST; <Speak> and <Wait> are supported in the response. Allowed values: a fully qualified URL |
waitMethod string | Not implemented. The attribute is accepted but no component reads it; the waitSound fetch method is fixed. Do not rely on it. |
callbackUrl string | URL notified when a participant enters or exits. Separate conference start and end callbacks are not currently available. See Conference Callbacks for event-specific parameters. Allowed values: a fully qualified URL |
callbackMethod string | HTTP method used to notify callbackUrl. Allowed values: GET, POST Default: POST |
record boolean | Does not currently produce a recording file. Use per-leg <Record recordSession="true"> instead - see the warning below. Default: false |
recordFileFormat string | Audio format for XML-triggered conference recording. Allowed values: mp3, wav Default: mp3 |
timeLimit integer | Maximum conference duration in seconds. When the limit expires, Vobiz ends the conference and disconnects its members. Allowed values: positive integer Default: 14400 (4 hours) |
action string | Fully qualified URL requested when this call leg exits the conference. Not reliably invoked - see the warning below. Use callbackUrl for conference events instead. |
method string | HTTP method used to request action. Use POST for the documented action flow. Default: POST |
endConferenceOnExit removes everyone, and stayAlone is no defence.When a participant with endConferenceOnExit="true" exits, the platform kicks
every remaining member unconditionally. It does not check stayAlone on those
members.stayAlone governs only the becoming-alone case - “if false and this member
is now alone, disconnect them”. It has no interaction with another member’s exit.
The two attribute names imply a negotiation between them; there is none.Legs removed this way also get no hangup attribution, so they report as
NORMAL_CLEARING / 4000 / Callee - a platform teardown that looks like the
participant hanging up. See Hangup causes.Conference recording and
action are both unreliable on this element.record="true" does not write a recording file, and neither does
POST /Conference/{room}/Record/ - that route answers 200
{"message":"async api spawned"} without a recording_id or url, so a failure
is indistinguishable from success.The action URL is fetched only for conferences hosted on a remote media server.
Where a conference is hosted is not visible to your application, so action is
unpredictable from outside.Use instead: per-leg session recording, placed as a self-closing sibling
before <Conference>, plus callbackUrl for conference events.<Record fileFormat="mp3" recordSession="true" redirect="false"
playBeep="false" maxLength="3600"
action="https://example.com/record-action"
callbackUrl="https://example.com/record-callback" callbackMethod="POST"/>
recordSession="true" captures the whole leg, including anything bridged into it,
and survives a transfer. Output is stereo MP3 at 8 kHz, one party per channel.
With redirect="false" the action URL must return an empty <Response></Response>.Conference action callback
Theaction request is separate from the participant events sent to callbackUrl. Vobiz invokes action after the call leg exits <Conference>, then executes the Vobiz XML returned by your endpoint.
The request includes call, conference, and member identifiers. When record="true", it can also include:
| Parameter | Description |
|---|---|
RecordingID | Identifier for the completed conference recording |
RecordUrl | URL associated with the recording |
RecordFile | Recording file name or path |
Action response
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Speak>The conference has ended.</Speak>
</Response>
Examples
Basic conference room
Minimal conference - all defaults
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Conference>SalesTeamRoom</Conference>
</Response>
Moderator-controlled conference
The moderator (endConferenceOnExit="true") holds all participants in music until they arrive, then ends the call for everyone when they leave.
Moderator joins last; ends conference on exit
<?xml version="1.0" encoding="UTF-8"?>
<!-- Participant XML (plays hold music until moderator arrives) -->
<Response>
<Speak>Please hold while we connect you to the conference.</Speak>
<Conference
startConferenceOnEnter="false"
waitSound="https://yourapp.com/hold-music">
WeeklyStandup
</Conference>
</Response>
<!-- Moderator XML (starts the conference; ends it when they leave) -->
<Response>
<Conference
startConferenceOnEnter="true"
endConferenceOnExit="true"
beep="true">
WeeklyStandup
</Conference>
</Response>
Recorded conference with participant limit
The account-level room limit remains authoritative. Enforce any lower participant limit in your application.
Record the session and cap at 10 participants
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Conference
maxParticipants="10"
record="true"
recordFileFormat="wav"
action="https://yourapp.example/conference-complete"
method="POST"
callbackUrl="https://yourapp.example/conference-events"
callbackMethod="POST">
BoardMeeting
</Conference>
</Response>
Muted listener (broadcast mode)
Caller joins as a silent listener
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Speak>You are now listening to the all-hands broadcast.</Speak>
<Conference
muted="true"
startConferenceOnEnter="false">
AllHandsBroadcast
</Conference>
</Response>