Latest Legacy

Sequential dialing

This example calls out to two phone numbers sequentially. The first call is made to a number with a timeout value of 20 seconds. If the call is not answered within that time, Plivo will dial out to the second number.

Response

<Response>
    <Dial timeout="20" action="https://<yourdomain>.com/dial_action/">
        <Number>12025551111</Number>
    </Dial>
    <Dial>
        <Number>12025552222</Number>
    </Dial>
</Response>

Example Request

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

response = plivoxml.ResponseElement()
response.add(
    plivoxml.DialElement(action='https://<yourdomain>.com/dial_action/', time_limit=20)
    .add(plivoxml.NumberElement('12025551111')))
response.add(plivoxml.DialElement().add(plivoxml.NumberElement('12025552222')))
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
25
26
27
require 'rubygems'
require 'plivo'

include Plivo::XML
include Plivo::Exceptions

begin
  response = Response.new

  params = {
      'timeout' => "20",
      'action' => "https://<yourdomain>.com/dial_status/"
  }

  first_dial = response.addDial(params)
  first_number = "12025551111"
  first_dial.addNumber(first_number)

  second_dial = response.addDial()
  second_number = "12025552222"
  second_dial.addNumber(second_number)

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

var response = plivo.Response();

var params = {
    'timeout': "20",
    'action': "https://<yourdomain>.com/dial_action/"
};
var first_dial = response.addDial(params);
var first_number = "12025551111";
first_dial.addNumber(first_number);

var second_dial = response.addDial();
var second_number = "12025552222";
second_dial.addNumber(second_number);

console.log(response.toXML());

/*
Sample Output
<Response>
    <Dial timeout="20" action="https://<yourdomain>.com/dial_action/">
        <Number>12025551111</Number>
    </Dial>
    <Dial>
        <Number>12025552222</Number>
    </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
32
33
34
35
<?php
    require '../vendor/autoload.php';
    use Plivo\XML\Response;

    $response = new Response();

    $first_params = array(
        'timeout' => "20",
        'action' => "https://<yourdomain>.com/dial_action/"
    );

    $first_dial = $response->addDial($first_params);
    $first_number = "12025551111";
    $first_dial->addNumber($first_number);

    $second_dial = $response->addDial();
    $second_number = "12025552222";
    $second_dial->addNumber($second_number);

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

    /*
    Sample Output

    <Response>
        <Dial timeout="20" action="https://<yourdomain>.com/dial_action/">
            <Number>12025551111</Number>
        </Dial>
        <Dial>
            <Number>12025552222</Number>
        </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
39
40
41
42
43
44
45
46
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 dial1 = new Plivo.XML.Dial(new
				Dictionary<string, string>() {
				{"timeout", "20"},
				{"action", "https://<yourdomain>.com/dial_action/"}
			});

			dial1.AddNumber("12025551111",
				new Dictionary<string, string>() { });

			Plivo.XML.Dial dial2 = new Plivo.XML.Dial(new
				Dictionary<string, string>()
			{ });
			dial2.AddNumber("12025552222",
				new Dictionary<string, string>() { });
			resp.Add(dial1);
			resp.Add(dial2);

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

		}
	}
}



//<Response>
//  <Dial timeout = "20" 
//    action="https://<yourdomain>.com/dial_action/">
//    <Number>12025551111</Number>
//  </Dial>
//  <Dial>
//    <Number>12025552222</Number>
//  </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 - sequential 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.NumberElement).
						SetContents("12025551111"),
				}),

			new(xml.DialElement).
				SetContents([]interface{}{
					new(xml.NumberElement).
						SetContents("12025552222"),
				}),
		},
	}
	print(response.String())
}