Skip to main content
Conferences let you connect multiple participants in a single call. Using the Conference API, you can manage ongoing conferences, control individual members, and record conversations. Conferences are suited for traditional “meeting” use cases. For advanced contact center or sales dialer scenarios requiring more control, consider Multiparty Calls.

The Conference Object

AttributeTypeDescription
conference_namestringName used to identify the conference.
conference_run_timestringTime in seconds since the conference was initiated.
conference_member_countstringNumber of members currently active in the conference.
membersarrayArray of member objects in the conference.

Member Attributes

Each member in the members array has the following attributes:
AttributeTypeDescription
member_idstringUnique ID of the member within the conference.
mutedbooleantrue if the member is currently muted.
deafbooleantrue if the member cannot hear conference audio.
fromstringSource of the call — PSTN number or SIP endpoint.
tostringConference bridge number — Plivo number or application URL.
caller_namestringName of the caller (SIP calls only).
directionstringDirection of the call — inbound or outbound.
call_uuidstringUnique identifier of the call.
join_timestringTime in seconds since the member joined.

Example Conference Object

{
  "conference_name": "My Conf Room",
  "conference_run_time": "590",
  "conference_member_count": "1",
  "members": [
    {
      "muted": false,
      "member_id": "17",
      "deaf": false,
      "from": "1456789903",
      "to": "1677889900",
      "caller_name": "John",
      "direction": "inbound",
      "call_uuid": "acfbf0b5-12e0-4d74-85f7-fce15f8f07ec",
      "join_time": "590"
    }
  ]
}

Retrieve a Conference

Get details of a specific conference by name.
GET https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/

Arguments

No arguments required.
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.get(conference_name='My Conf Room')
print(response)

Response

{
  "conference_name": "My Conf Room",
  "conference_run_time": "590",
  "conference_member_count": "1",
  "members": [
    {
      "muted": false,
      "member_id": "17",
      "deaf": false,
      "from": "1456789903",
      "to": "1677889900",
      "caller_name": "John",
      "direction": "inbound",
      "call_uuid": "acfbf0b5-12e0-4d74-85f7-fce15f8f07ec",
      "join_time": "590"
    }
  ],
  "api_id": "816e903e-58c4-11e1-86da-adf28403fe48"
}

List All Conferences

Retrieve names of all ongoing conferences in your account.
GET https://api.plivo.com/v1/Account/{auth_id}/Conference/

Arguments

No arguments required.
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.list()
print(response)

Response

{
  "api_id": "2867b6e2-58c3-11e1-86da-adf28403fe48",
  "conferences": [
    "My Conf Room",
    "Sales Meeting",
    "Support Call"
  ]
}

Hang Up a Conference

Terminate a conference and disconnect all members.
DELETE https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.delete(conference_name='My Conf Room')
print(response)

Response

{
  "message": "conference hung up",
  "api_id": "2867b6e2-58c3-11e1-86da-adf28403fe48"
}

Hang Up All Conferences

Terminate all ongoing conferences in your account.
DELETE https://api.plivo.com/v1/Account/{auth_id}/Conference/
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.delete_all()
print(response)

Response

{
  "message": "all conferences hung up",
  "api_id": "2867b6e2-58c3-11e1-86da-adf28403fe48"
}

Member Operations

Control individual members within a conference. The member_id parameter can be:
  • A specific member ID (e.g., 10)
  • A comma-separated list (e.g., 10,11,12)
  • The string all to affect all members

Kick a Member

Disconnect a member from the conference.
POST https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Kick/
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.member_kick(conference_name='My Conf Room', member_id='10')
print(response)

Response

{
  "message": "kicked",
  "member_id": "10",
  "api_id": "2867b6e2-58c3-11e1-86da-adf28403fe48"
}

Mute / Unmute a Member

Mute a member so other participants cannot hear them.
POST https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Mute/
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.member_mute(conference_name='My Conf Room', member_id='10')
print(response)

Response

{
  "message": "muted",
  "member_id": "10",
  "api_id": "2867b6e2-58c3-11e1-86da-adf28403fe48"
}

Deaf / Undeaf a Member

Make a member deaf so they cannot hear conference audio.
POST https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Deaf/
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.member_deaf(conference_name='My Conf Room', member_id='10')
print(response)

Response

{
  "message": "deaf",
  "member_id": "10",
  "api_id": "2867b6e2-58c3-11e1-86da-adf28403fe48"
}

Play Audio to a Member

Play an audio file to specific members.
POST https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Play/
ParameterRequiredDescription
urlYesURL of the .mp3 or .wav file to play.
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.member_play(
    conference_name='My Conf Room',
    member_id='10',
    url='https://s3.amazonaws.com/plivocloud/music.mp3')
print(response)

Response

{
  "message": "play queued into conference",
  "api_id": "4e44bd4e-f830-11e6-b886-067c5485c240",
  "member_id": "10"
}

Speak Text to a Member

Speak text to specific members using text-to-speech.
POST https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/Member/{member_id}/Speak/
ParameterRequiredDescription
textYesText to speak.
voiceNoVoice type. Values: MAN, WOMAN. Default: WOMAN.
languageNoLanguage code. Default: en-US.
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.member_speak(
    conference_name='My Conf Room',
    member_id='10',
    text='Hello, welcome to the conference')
print(response)

Response

{
  "message": "speak queued into conference",
  "api_id": "4e44bd4e-f830-11e6-b886-067c5485c240",
  "member_id": "10"
}

Record a Conference

Start recording an ongoing conference.
POST https://api.plivo.com/v1/Account/{auth_id}/Conference/{conference_name}/Record/

Arguments

ParameterDescription
file_formatRecording format. Values: mp3, wav. Default: mp3.
transcription_typeSet to auto for automated transcription.
transcription_urlURL to receive transcription results.
callback_urlURL invoked when recording ends.
callback_methodHTTP verb for callback_url. Default: POST.
ParameterDescription
api_idAPI ID returned by the record API.
record_urlURL where the recorded file can be accessed.
recording_idRecording ID associated with the file.
conference_nameName of the recorded conference.
recording_durationDuration in seconds.
recording_duration_msDuration in milliseconds.
recording_start_msStart time (epoch ms).
recording_end_msEnd time (epoch ms).
import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
response = client.conferences.record(conference_name='My Conf Room')
print(response)

Response

{
  "api_id": "2867b6e2-58c3-11e1-86da-adf28403fe48",
  "message": "conference recording started",
  "recording_id": "93bc7c6a-3b2b-11e3",
  "url": "https://media.plivo.com/v1/Account/<Auth_ID>/Recording/93bc7c6a-3b2b-11e3.mp3"
}