Latest Legacy

Simultaneous dialing

This example uses three User and Number elements to dial two SIP endpoints and a phone number at the same time. The first of these calls to answer will be connected to the caller, and the rest of the connection attempts will be canceled.

Note: In Simultaneous dialing, the maximum number of destinations (Endpoint or number) that can passed is 10

Response

<Response>
    <Dial>
      <User>sip:alice1234@phone.plivo.com</User>
      <Number>15671234567</Number>
      <User>sip:john1234@phone.plivo.com</User>
    </Dial>
</Response>

Example Request

1
2
3
4
5
6
7
8
from plivo import plivoxml

response = plivoxml.ResponseElement()
response.add(plivoxml.DialElement().add(
    plivoxml.UserElement('sip:alice1234@phone.plivo.com')).add(
        plivoxml.NumberElement('12025551111')).add(
            plivoxml.UserElement('sip:john1234@phone.plivo.com')))
print(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
require 'rubygems'
require 'plivo'

include Plivo::XML
include Plivo::Exceptions

begin
  response = Response.new

  dial = response.addDial()
  first_user = "sip:alice1234@phone.plivo.com"
  dial.addUser(first_user)

  number = "12025551111"
  dial.addNumber(number)

  second_user = "sip:john1234@phone.plivo.com"
  dial.addUser(second_user)

  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
var plivo = require('plivo');

var response = plivo.Response();

var dial = response.addDial();

var first_user = "sip:alice1234@phone.plivo.com";
dial.addUser(first_user);

var number = "12025551111";
dial.addNumber(number);

var second_user = "sip:john1234@phone.plivo.com";
dial.addUser(second_user);

console.log(response.toXML());

/*
Sample Output
<Response>
    <Dial>
        <User>sip:alice1234@phone.plivo.com</User>
        <Number>12025551111</Number>
        <User>sip:john1234@phone.plivo.com</User>
    </Dial>
</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
<?php
    require '../vendor/autoload.php';
    use Plivo\XML\Response;

    $response = new Response();

    $dial = $response->addDial();
    $first_user = "sip:alice1234@phone.plivo.com";
    $dial->addUser($first_user);

    $number = "12025551111";
    $dial->addNumber($number);

    $second_user = "sip:john1234@phone.plivo.com";
    $dial->addUser($second_user);

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

    /*
    Sample Output

    <Response>
        <Dial>
            <User>sip:alice1234@phone.plivo.com</User>
            <Number>12025551111</Number>
            <User>sip:john1234@phone.plivo.com</User>
        </Dial>
    </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
// Example for dial - sequential dialing
package com.plivo.api.xml.samples.dial;

import com.plivo.api.exceptions.PlivoXmlException;
import com.plivo.api.xml.Dial;
import com.plivo.api.xml.Number;
import com.plivo.api.xml.Response;


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


                new Dial()
                .children(
                    new Number("12025551111")

                ),


                new Dial()
                .children(
                    new Number("12025552222")
                )
            );
        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
35
36
37
38
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();
			Plivo.XML.Dial dial = new Plivo.XML.Dial(new
				Dictionary<string, string>() {});

			dial.AddUser("sip:alice1234@phone.plivo.com",
				new Dictionary<string, string>() { });
			dial.AddNumber("12025551111",
				new Dictionary<string, string>() { });
			dial.AddUser("sip:john1234@phone.plivo.com",
				new Dictionary<string, string>() { });
			resp.Add(dial);

			var output = resp.ToString();
			Console.WriteLine(output);

		}
	}
}



//<Response>
//  <Dial>
//    <User>sip:alice1234 @phone.plivo.com</User>
//    <Number>12025551111</Number>
//    <User>sip:john1234 @phone.plivo.com</User>
//  </Dial>
//</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
// Example for dial - simultaneous dialing
package main

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

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

			new(xml.DialElement).
				SetContents([]interface{}{
					new(xml.UserElement).
						SetContents("sip:alice1234@phone.plivo.com"),

					new(xml.NumberElement).
						SetContents("12025551111"),

					new(xml.UserElement).
						SetContents("sip:john1234@phone.plivo.com"),
				}),
		},
	}
	print(response.String())
}