Beep Detection

The Wait element can be used to aid leaving voice mails on answering machines by adding an extra parameter called beep and setting it to true.

Response

<Response>
    <Wait length="120" beep="true"/>
    <Play>https://s3.amazonaws.com/plivocloud/Trumpet.mp3</Play>
</Response>

Explanation

What happens in the above example is that upon the call being answered, the Wait element will wait for 120 seconds for a beep sound to be received. If a beep sound is detected before the Wait length times out, the Wait is ended and the Play verb is issued, which will play the mp3 on the remote machine that sounded the beep.

If the Wait element times out after 120 seconds, the XML flow skips to thePlay element.

Example Request

1
2
3
4
5
6
from plivo import plivoxml

response = (plivoxml.ResponseElement()
            .add(plivoxml.WaitElement(None).set_beep(True).set_length(10))
            .add(plivoxml.PlayElement('https://s3.amazonaws.com/Trumpet.mp3')))
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
require 'rubygems'
require 'plivo'

include Plivo::XML
include Plivo::Exceptions

begin
  response = Response.new

  params = {
    length: '120',
    beep: true
  }
  response.addWait(params)

  play_url = 'https://s3.amazonaws.com/plivocloud/Trumpet.mp3'
  response.addPlay(play_url)

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

var response = plivo.Response();

var params = {
        'length': "120",
        'beep': "true"
};
response.addWait(params);

var play_url =  "https://s3.amazonaws.com/plivocloud/Trumpet.mp3";
response.addPlay(play_url);

console.log(response.toXML());

/*
Sample Output
<Response>
    <Wait length="120" beep="true"/>
    <Play>
        https://s3.amazonaws.com/plivocloud/Trumpet.mp3
    </Play>
</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
<?php
    require '../vendor/autoload.php';
    use Plivo\XML\Response;

    $response = new Response();

    $params = array(
        'length' => "120",
        'beep' => "true"
    );
    $response->addWait($params);

    $play_url = "https://s3.amazonaws.com/plivocloud/Trumpet.mp3";
    $response->addPlay($play_url);

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

    /*
    Sample Output

    <Response>
        <Wait length="120" beep="true"/>
        <Play>
            https://s3.amazonaws.com/plivocloud/Trumpet.mp3
        </Play>
    </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
// Example for wait - beep detection
package com.plivo.api.xml.samples.wait;

import com.plivo.api.exceptions.PlivoXmlException;
import com.plivo.api.xml.Play;
import com.plivo.api.xml.Response;
import com.plivo.api.xml.Wait;


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


                        new Wait()
                                .beep(true)
                                .length(10),


                        new Play("https://s3.amazonaws.com/Trumpet.mp3")

                );
        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
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.AddWait(new Dictionary<string, string>()
			{
				{"length", "120"}, {"beep", "true"}
			});
			resp.AddPlay("https://s3.amazonaws.com/abc.mp3", 
             new Dictionary<string, string>() { });
			var output = resp.ToString();
			Console.WriteLine(output);

		}
	}
}



//<Response>
//  <Wait length = "120" beep="true" />
//  <Play>https://s3.amazonaws.com/abc.mp3</Play>
//</Response>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Example for wait - beep detection
package main

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

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

			new(xml.WaitElement).
				SetBeep(true).
				SetLength(10),

			new(xml.PlayElement).
				SetContents("https://s3.amazonaws.com/Trumpet.mp3"),
		},
	}
	print(response.String())
}