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
StatusCallbackEventTwiML parameter, now available for the
Conference; noun within the
Dialverb. This complements the
StatusCallbackEventsalready available on
Number,
Client, and
SIP. The
StatusCallbackEventparameter will trigger a webhook on specific state changes of the conference or participants 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 particpant withstartConferenceOnEnter="true"
joins. -
conference-end
The last participant has left the conference or a particpant withendConferenceOnExit="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.
For example, if you want to request a webhook on all the possible conference state changes, you can do so with TwiML.
TeamMeeting
In this case
StartConferenceOnEnterwas set to the default value of true so the conference starts whenever the second participant joins.

Modify the status of a participant
In addition to eliminating the need to poll resources to check status change, 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.
Expanding our example diagramed above, you can mute all the participants except the presenter, Mary, whenever everybody have joined and the Team Meeting is ready to start. As some participants might never join, you can avoid keeping the others waiting too long by setting a timer after the conference starts.
This is an example of 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 store Alice’s call SID and update any associated UIs.
Let’s say we got a call SID for participants Alice (xxx), Bob (yyy) and Charles (zzz) before the timer expired. You can now POST your API request to mute them and start Mary’s presentation.
$ curl -XPOST https://api.twilio.com/2010-04-01/Accounts/AC5ef8732a3c49700934481addd5ce1659/Conferences/CFbbe4632a3c49700934481addd5ce1659/Participants/CA386025c9bf5d6052a1d1ea42b4d16662.json \ -d "Muted=True" \ -u 'AC5ef8732a3c49700934481addd5ce1659:{AuthToken}'
This is 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