Introducing Conference Events

May 18, 2016
Written by


Today, we are announcing Public Beta for Conference Events. You will be able to subscribe to changes in participant and conference states and be notified accordingly. You will not have to poll the API’s anymore to maintain the state of each participants. This drastically reduces the complexity of your application. Conference Events will be available for free. We’ve also made Call Progress Events available for free to bolster this capability.

Webhooks for Key Events

You can enable Call Progress Events by using the new StatusCallbackEvent TwiML parameter, now available for the Conference; noun within the Dial verb. This complements the StatusCallbackEvents already available on Number, Client, and SIP. The StatusCallbackEvent parameter will trigger a webhook on specific state changes of the Conference or Participant resources.

So far, you could only receive an event when a conference ended, if you had specified that the conferences was to be recorded. Now you can subscribe to all the following events.

    • conference-start The conference has started and audio is being mixed between all participants. This occurs when there is at least one participant in the conference and a participant with startConferenceOnEnter="true" joins.
    • conference-end The last participant has left the conference or a particpant with endConferenceOnExit="true" leaves the conference.
    • participant-join Notifies when a participant joins.
    • participant-leave Notifies when a participant leaves.
    • participant-mute Notifies when a participant have been muted. This can be done through an API call to the participant resource.
    • participant-unmute Notifies when a participant have been un-muted. This can be done through an API call to the participant resource.

A simple example

Let’s say Mary, Alice, Bob and Charles are joining the conference “Team Meeting”. Below is a sketch showing the events progression and the associated conference status would look like. In this case,  StartConferenceOnEnter was set to the default value of true so the conference starts whenever the second participant joins.


Here is how you can request a webhook for all the state changes with TwiML.

<?xml version="1.0" encoding="UTF-8"?>
    <Conference statusCallback="/callback" statusCallbackEvent="start end join leave mute">TeamMeeting</Conference>

Modify the status of a participant

Another benefit of Conference Events is that you will no longer need to discover and maintain Conference and Calls SIDs. They will be returned back in the same webhook, so you can use that info to modify the participant resource or visualize any status change into an associated UI.

Expanding our example diagramed above, this is the webhook you would get when the participant Alice joins the call.

AccountSid    AC25e16e9a716a4a1786a7c83f58e30482
CallSid    CA8a0727575027a5c4d9614e633c929546
ConferenceSid    CF47001dbd9067b3007c1fcd05f43183f8
EndConferenceOnExit    false
FriendlyName    TeamMeeting
Muted    false
StartConferenceOnEnter    true
StatusCallbackEvent    participant-join

You can now store Alice’s call SID and update any associated UIs.


Let’s say you want to mute all the participants except the presenter, Mary, whenever everybody have joined. As some participants might never join, you can avoid keeping the others waiting too long by setting a timer after the conference starts. Assuming that Alice, Bob and Charles have joined before the timer expired, you can now POST an API request to mute them.

$ curl -XPOST \
    -d "Muted=True" \
    -u 'AC5ef8732a3c49700934481addd5ce1659:{AuthToken}'

And update the UI accordingly once you receive the event associated.


This was just a simple use case but the possibilities are endless. You can control any call leg and take actions in response to a given change in participant status.

We think Conference Events will help you build Collaboration and Call Center application faster and more efficiently. Learn more about Call Progress Events in our TwiML docs for .