Latest Legacy

Moderated conference

A caller may join a conference room “My Room” and hear wait music, but the conference doesn’t start until the moderator joins the conference.

If the moderator sets endConferenceOnExit to true, then when the moderator hangs up, the conference will end and each participant will also exit the conference.

Response

<Response>
	<Conference startConferenceOnEnter="false" waitSound="https://<yourdomain>.com/waitmusic/">My Room</Conference>
</Response>

XML for the moderator:

<Response>
	<Conference startConferenceOnEnter="true" endConferenceOnExit="true">My Room</Conference>
</Response>

Example Request

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from plivo import plivoxml

response = plivoxml.ResponseElement()
response.add(
    plivoxml.ConferenceElement(
        'My Room',
        start_conference_on_enter=False,
        wait_sound='https://<yourdomain>.com/waitmusic/'))

print(response.to_string())

# Next, XML for moderator with endConferenceOnExit set to true

moderator_response = plivoxml.ResponseElement()
moderator_response.add(
    plivoxml.ConferenceElement(
        'My Room', start_conference_on_enter=True, end_conference_on_exit=
        True))

print(moderator_response.to_string())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require 'rubygems'
require 'plivo'

include Plivo::XML
include Plivo::Exceptions

begin
  response = Response.new

  params = {
    'startConferenceOnEnter' => "false",
    'waitSound' => "https://<yourdomain>.com/waitmusic/"
  }

  conference_name = "My Room"
  response.addConference(conference_name, params)

  xml = PlivoXML.new(response)
  puts xml.to_xml
rescue PlivoXMLError => e
  puts 'Exception: ' + e.message
end

begin
  response = Response.new

  params = {
    'startConferenceOnEnter' => "true",
    'endConferenceOnExit' => "true"
  }

  conference_name = "My Room"
  response.addConference(conference_name, params)

  xml = PlivoXML.new(response)
  puts xml.to_xml
rescue PlivoXMLError => e
  puts 'Exception: ' + e.message
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var plivo = require('plivo');

var response = plivo.Response();

var params = {
    'startConferenceOnEnter': "false",
    'waitSound': "https://<yourdomain>.com/waitMusic/"
};
var conference_name = "My Room";
response.addConference(conference_name, params);

console.log(response.toXML());

/*
Sample Output
<Response>
    <Conference startConferenceOnEnter="false" waitSound="https://<yourdomain>.com/waitMusic/">My Room</Conference>
</Response>
*/


/* Code to generate XML to be returned from url at waitSound */
var plivo = require('plivo');

var response = plivo.Response();

var params = {
    'startConferenceOnEnter': "true",
    'endConferenceOnExit': "true"
};
var conference_name = "My Room";
response.addConference(conference_name, params);

console.log(response.toXML());

/*
Sample Output
<Response>
    <Conference startConferenceOnEnter="true" endConferenceOnExit="true">My Room</Conference>
</Response>
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
    require '../vendor/autoload.php';
    use Plivo\XML\Response;

    $response = new Response();

    $params = array(
        'startConferenceOnEnter' => "false",
        'waitSound' => "https://<yourdomain>.com/waitmusic/"
    );

    $conference_name = "My Room";
    $response->addConference($conference_name, $params);

    Header('Content-type: text/xml');
    echo($response->toXML());

    /*
    Sample Output

    <Response>
        <Conference startConferenceOnEnter="false" waitSound="https://<yourdomain>.com/waitmusic/">My Room</Conference>
    </Response>
    */
?>

<?php
    /*Code to generate XML to be returned from url at waitSound*/

    require '../vendor/autoload.php';
    use Plivo\XML\Response;

    $response = new Response();

    $params = array(
        'startConferenceOnEnter' => "true",
        'endConferenceOnExit' => "true"
    );

    $conference_name = "My Room";
    $response->addConference($conference_name, $params);

    Header('Content-type: text/xml');
    echo($response->toXML());

    /*
    Sample Output

    <Response>
        <Conference startConferenceOnEnter="true" endConferenceOnExit="true">My Room</Conference>
    </Response>
    */
 ?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Example for conference - moderated conference
package com.plivo.api.xml.samples.conference;

import com.plivo.api.exceptions.PlivoXmlException;
import com.plivo.api.xml.Conference;
import com.plivo.api.xml.Response;
import com.plivo.api.xml.Speak;


class ModeratedConference {
    public static void main(String[] args) throws PlivoXmlException {
        Response response = new Response()
                .children(


                        new Speak("You will now be placed into a demo conference"),


                        new Conference("demo")
                                .endConferenceOnExit(true)
                                .startConferenceOnEnter(false)
                                .waitSound("https://<yourdomain>.com/waitmusic/")

                );
        System.out.println(response.toXmlString());
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using System.Collections.Generic;
using Plivo.XML;

namespace Plivo
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			Plivo.XML.Response resp = new Plivo.XML.Response();
			resp.AddConference("My room", 
               new Dictionary<string, string>()
			{
				{"startConferenceOnEnter", "true"},
				{"endConferenceOnExit", "true"},
				{"waitSound", "https://<yourdomain>.com/waitmusic/"}
			});
			var output = resp.ToString();
			Console.WriteLine(output);

		}
	}
}



//<Response>
//    <Conference startConferenceOnEnter = "true" 
//     endConferenceOnExit="true" 
//     waitSound="https://<yourdomain>.com/waitmusic/">
//         My room
//    </Conference>
//</Response>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Example for conference - moderated conference
package main

import "github.com/plivo/plivo-go/v7/xml"

func main() {
	response := xml.ResponseElement{
		Contents: []interface{}{

			new(xml.SpeakElement).
				SetContents("You will now be placed into a demo conference"),

			new(xml.ConferenceElement).
				SetEndConferenceOnExit(true).
				SetStartConferenceOnEnter(false).
				SetWaitSound("https://<yourdomain>.com/waitmusic/").
				SetContents("demo"),
		},
	}
	print(response.String())
}