The conferencing feature facilitates connecting conference participants to the media server and instructs the media server to mix audio media from all participants to form an audio conference.
The feature controls mixing, using the MSML protocol over SIP in the context of an existing SIP dialog. For this purpose, this implementation uses the moderator SIP dialog established between the conferencing server and the media server, as long as the the lifeline of any conference instance is aligned with the lifeline of the moderator connection.
MSML transactions are carried by
SIP INFO transactions and encoded as application/msml+xml content type.
The result of the MSML transaction is returned in a
SIP INFO 200 OK response.
This feature uses the MSML conference object and MSML connection object capabilities of MSML protocols.
Each MSML connection is linked or “joined” with an MSML conference object that creates a media bridge with other connections.
MSML conference object
A conference object is a media bridge that links media with MSML connections.
By joining MSML connection objects with the MSML conference objects, media between all connections are mixed, achieving conference functionality.
A conference object is identified by a conference ID, which is a randomly unique string prefixed with
The conferencing feature creates an MSML conference object using the
<createconference> MSML command.
This command has several parameters, such as mixer type, half or full-duplex, and termination policy.
This implementation creates a full-duplex audio mixer without a conference termination policy.
Here an is an example of a
<createconference> MSML request that creates a conference object:
<?xml version="1.0" encoding="UTF-8"?> <msml version="1.1"> <createconference name="conf:mmtel-conf-378237676" deletewhen="nocontrol" term="false"/> </msml>
The media server returns with MSML response
200 indicating success:
<?xml version="1.0" encoding="utf-8"?> <msml version="1.1"> <result response="200"/> </msml>
The conference object created has parameters that specify:
The media server automatically removes the conference object when the moderator disconnects.
The media server doesn’t disconnect remaining participants when the conference object is deleted. (This task is left to the conferencing server.)
A full-duplex audio mixer will be used, with mixing active at all times, without notification of the active speakers.
MSML connection object
A session between each participant and the media server (using the conferencing feature) is referred to as an MSML connection and is identified by the SIP
to-tag (prefixed by
conn:) of the SIP session between the conferencing server and the media server. An MSML connection is joined into the conference by the MSML command
<join>, which takes arguments of the connection ID of the connection to be joined and the conference ID of the conference object.
Forming a media conference
A conference is formed by creating a media bridge between the MSML conference object and each MSML connection. This is achieved by an MSML join transaction, as follows:
<?xml version="1.0" encoding="UTF-8"?> <msml version="1.1"> <join id1="conn:e7826yde8" id2="conf:mmtel-conf-378237676"/> <stream media="audio"/> </join> </msml>
Removing a participant
It is sufficient to terminate the SIP dialog corresponding to the participant to be removed.
Ending a conference
When the conference moderator disconnects, the conferencing will disconnect all remaining participants, bringing the conference to an end.