Getting Started with Conference Calls

Plivo provides an ability to create and manage audio conferences. With Plivo Conferences you can connect more than 2 participants who can interact with each other. Plivo conferences offer a wide array of features and cater to a variety of features. You can explore all the features that conferences provide in Conference API and Conference XML documentation.

In this example we will implement a basic conference using Conference XML. Let us assume you want to host a conference of 5 people. All the 5 participants will be given a phone number to call to and when they call that number they will be put into the conference so that they can interact.

Prerequisites

In order to implement the above conference, you should have:

  • A valid Plivo phone number with an application attached to it.
  • A public URL which can return a valid XML file when invoked. This will be configured in your application’s answer_url.

In case you need more information on setting up a server refer to our tutorial on setting up dev environment.

Turning the call flow into Plivo XML

Following are the steps in the call flow for implementing the above conference.

  • The first incoming call for this number, will invoke the answer_url in the application.
  • The XML retrieved from the answer_url will create a conference and add the user to it
  • Other subsequent calls on the number will also invoke the same answer_url and get added to the same conference

When the incoming call is received on the phone number, the answer_url in the attached application will be invoked. In order to add this user to a Conference, the following XML should be returned.

1
2
3
<Response>
    <Conference>conferencename</Conference>
</Response>

The above XML, creates a new conference with the conference name specified and adds the first caller to the conference. When subsequent callers call the same number, the same XML will be retrieved from the answer_url and those callers will also be added to the conference.

Note: Remember that the conference name is the unique identifier for a conference. So, if you need to create a new conference, you will have to either end the ongoing conference with the same name, or create a new conference with a different name.

The code snippet for returning the above XML is shown below in a Flask server setup would be as follows:

1
2
3
4
5
6
7
8
9
from flask import Flask, Response, request

app = Flask(__name__)


@app.route('/conference/', methods=['GET', 'POST'])
def join_conference():
    resp = '<Response><Conference>conferencename</Conference></Response>'
    return Response(resp, mimetype='text/xml')

Further enhancements

Now that we have implemented a simple conference, you can check our documentation on Conference API and Conference XML to refine and add more features to this conference. Some example features include playing hold music, moderating a conference, silencing a conference member, recording a conference etc.,

Next Steps