Skip to main content
The <Conference> element connects a caller to a conference room. Multiple callers joining the same conference name are connected together. Maximum participants per conference: 20.
For role-based multi-party calls with coaching, individual hold/mute, and AI agent support, see Multi-party Call.

Basic Usage

<Response>
    <Conference>my-conference-room</Conference>
</Response>
from plivo import plivoxml

response = plivoxml.ResponseElement()
response.add(plivoxml.ConferenceElement('my-conference-room'))
print(response.to_string())

Conference Attributes

Basic Settings

AttributeTypeDefaultDescription
mutedbooleanfalseJoin muted (can still hear others)
enterSoundstring""Sound on entry: beep:1, beep:2, or URL
exitSoundstring""Sound on exit: beep:1, beep:2, or URL
maxMembersinteger20Maximum participants (1-20)
timeLimitinteger86400Max conference duration in seconds
hangupOnStarbooleanfalseLet member exit by pressing *
stayAlonebooleantrueEnd conference if only one member

Moderation

AttributeTypeDefaultDescription
startConferenceOnEnterbooleantrueStart conference when this member joins
endConferenceOnExitbooleanfalseEnd conference when this member leaves
waitSoundURL-Audio to play while waiting for conference to start

Recording

AttributeTypeDefaultDescription
recordbooleanfalseRecord the conference
recordFileFormatstringmp3Recording format (mp3, wav)
transcriptionTypestring-Transcription type. Values: auto, hybrid, manual
transcriptionUrlURL-URL to receive transcription
transcriptionMethodstringPOSTHTTP method for sending transcription results to transcriptionUrl. Values: GET, POST

Callbacks

AttributeTypeDefaultDescription
actionURL-URL called when member leaves
methodstringPOSTHTTP method for action
callbackUrlURL-URL for conference events
callbackMethodstringPOSTHTTP method for callback
redirectbooleantrueRedirect to action URL

DTMF

AttributeTypeDefaultDescription
digitsMatchstring-DTMF patterns to report
floorEventbooleanfalseNotify when member becomes floor-holder
relayDTMFbooleantrueTransmit DTMF to all members

Examples

Join Muted

Add participants who can listen but not speak:
<Response>
    <Conference muted="true">my-conference-room</Conference>
</Response>

Entry/Exit Sounds

Play beeps when participants join or leave:
<Response>
    <Conference enterSound="beep:1" exitSound="beep:2">
        my-conference-room
    </Conference>
</Response>
Use a URL to play custom audio:
<Response>
    <Conference enterSound="https://example.com/join-sound.xml">
        my-conference-room
    </Conference>
</Response>
The URL must return XML with Play, Speak, or Wait elements.

Moderated Conference

Create a “waiting room” where participants wait for the moderator: Participant XML:
<Response>
    <Conference startConferenceOnEnter="false" waitSound="https://example.com/hold-music.xml">
        moderated-meeting
    </Conference>
</Response>
Moderator XML:
<Response>
    <Conference startConferenceOnEnter="true" endConferenceOnExit="true">
        moderated-meeting
    </Conference>
</Response>
When the moderator joins, the conference starts. When they leave, everyone is disconnected.

Record Conference

<Response>
    <Conference record="true" recordFileFormat="mp3"
                callbackUrl="https://example.com/recording-ready/">
        recorded-meeting
    </Conference>
</Response>
from plivo import plivoxml

response = plivoxml.ResponseElement()
response.add(plivoxml.ConferenceElement(
    'recorded-meeting',
    record=True,
    record_file_format='mp3',
    callback_url='https://example.com/recording-ready/'
))
print(response.to_string())

With Transcription

<Response>
    <Conference record="true"
                transcriptionType="auto"
                transcriptionUrl="https://example.com/transcription/">
        transcribed-meeting
    </Conference>
</Response>

Exit with Action URL

<Response>
    <Conference action="https://example.com/conference-ended/"
                hangupOnStar="true">
        my-conference
    </Conference>
</Response>

Bridge Two Callers

Use conferences to connect two incoming callers: First Caller:
<Response>
    <Conference waitSound="https://example.com/hold.xml">
        private-bridge-123
    </Conference>
</Response>
Second Caller:
<Response>
    <Conference>private-bridge-123</Conference>
</Response>

Callback Parameters

Conference Action URL Parameters

Sent when a member leaves the conference:
ParameterDescription
ConferenceNameName of the conference
ConferenceUUIDUnique conference identifier
ConferenceMemberIDMember’s ID in the conference
RecordUrlRecording URL (if recorded)
RecordingIDRecording identifier

Conference Callback URL Parameters

Sent for conference events:
ParameterDescription
ConferenceActionenter, exit, digits, floor, record
ConferenceNameConference name
ConferenceUUIDConference identifier
ConferenceMemberIDMember ID
CallUUIDCall identifier
ConferenceDigitsMatchMatched digits (when ConferenceAction=digits)
RecordUrlRecording URL (when ConferenceAction=record)
RecordingIDRecording ID
RecordingDurationDuration in seconds
RecordingDurationMsDuration in milliseconds
RecordingStartMsStart time (epoch ms)
RecordingEndMsEnd time (epoch ms)

Transcription URL Parameters

ParameterDescription
transcriptionTranscribed text
transcription_chargeCost of transcription
transcription_rateRate per minute
durationRecording duration
call_uuidCall identifier
recording_idRecording identifier
errorError message (if any)