Skip to main content

How to create Conference Calls

In this guide we will show you how to create a conference call. Please ensure you have followed our earlier guide on how to make an outbound call with Bandwidth.

Create a conference call

Conferences are implicitly created the first time your application uses a conference name. For example, if you want to call a phone number and place the called person into a conference call, your application could have the following BXML in the application at the answerUrl specified when making a call to the /calls API.

<?xml version="1.0" encoding="UTF-8"?>
<SpeakSentence>Joining the conference now.</SpeakSentence>

This would place the call, once answered, into a conference called “important-meeting” after announcing to the called party that they will be placed in a conference. If the conference called “important-meeting” does not exist it will be created. Conversely, if you want to place an inbound call to a Programmable Voice API number into a conference, your application at the “Call initiated callback URL” could use the same BXML above to place the inbound call in a conference.

Join a conference call

Joining an existing conference call uses the same <Conference> verb. In the example in the previous section, if the conference “important-meeting” exists, the call will be placed in the conference with the other calls already in “important-meeting”.

Join conference call as a coach

In some cases your application may want to add a to the conference as a “coach”. In this case you will optionally specify the callId of the call that you want to coach. In this case the “c-example-callid” calls will be able to hear the “coach” but other conference participants would not.

<?xml version="1.0" encoding="UTF-8"?>
<SpeakSentence>Welcome. You are going to coach 2 calls, please wait.</SpeakSentence>
<Conference callIdsToCoach="c-example-callid-1,c-example-callid-2">my-first-conference</Conference>

End a conference call

A conference automatically ends when all participants leave the conference. Another way to end a conference is to use the Update Conference endpoint located here to set the conference status to completed. This will end the conference but BXML execution will continue for the calls. For example, using the following BXML would play a message to the participants that the conference has ended (assuming they have not hung up) if the Update Conference method is used.


"status": "completed",
"username": {USERNAME},
"password": {PASSWORD},


The above example modifies an in-progress conference and sets its state to completed, which finishes the conference and boots all active members.

Where to next?

Now that you have learnt to create conference calls, check out some of the available actions in the following guides: