echo $r->toXML();
/* 
Sample Wait XML
<Response>
    <Wait length="10" />
    <Speak>Hello</Speak>
</Response>
*/
?>

<!-- Beep detetion -->

<?php 
require 'vendor/autoload.php';
use Plivo\Response;
$r = new Response();
// Add Wait tag
$params = array('length' => '10', 'beep' => 'true');
$r->addWait($params);
// Add Speak tag
$body = "Hello";
$r->addSpeak($body);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Wait XML
<Response>
    <Wait length="10" beep="true" />
    <Speak>Hello</Speak>
</Response>
*/
<?php

require 'vendor/autoload.php';
use Plivo\Response;
$from_number = $_REQUEST['From'];
$callers = array('1111111111' => 'ABCDEF', '2222222222' => 'VWXYZ', '3333333333' => 'QWERTY');
$r = new Response();
if (array_key_exists($from_number, $callers)) {
    $body = "Hello {$callers[$from_number]}";
    $r->addSpeak($body);
} else {
    $body = "Hello Stranger!";
    $r->addSpeak($body);
}
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Speak>Hello,ABCDEF</Speak>
</Response>
*/
<?php

require 'vendor/autoload.php';
use Plivo\Response;
$r = new Response();
$body = "You will now be placed into a demo conference. This is brought to you by Plivo. To know more visit us at plivo.com";
$r->addSpeak($body);
$params = array('enterSound' => "beep:2", 'record' => "true", 'action' => "https://example.com/conf_action.php", 'method' => "GET", 'record' => "true", 'callbackUrl' => "https://example.com/conf_callback.php", 'callbackMethod' => "GET", 'startConferenceOnEnter' => "true", 'endConferenceOnExit' => "true");
$conference_name = "demo";
$r->addConference($conference_name, $params);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--conf_action.php-->

<?php 
$conf_name = $_REQUEST['ConferenceName'];
$conf_uuid = $_REQUEST['ConferenceUUID'];
$conf_mem_id = $_REQUEST['ConferenceMemberID'];
$record_url = $_REQUEST['RecordUrl'];
$record_id = $_REQUEST['RecordingID'];
error_log("Conference Name : {$conf_name}, Conference UUID : conf_uuid, Conference Member ID : conf_mem_id, Record URL : {$record_url}, Record ID : {$record_id}");
echo "Conference Name : {$conf_name}, Conference UUID : conf_uuid, Conference Member ID : conf_mem_id, Record URL : {$record_url}, Record ID : {$record_id}";
?>

<!--conf_callback.php-->

<?php 
$conf_action = $_REQUEST['ConferenceAction'];
$conf_name = $_REQUEST['ConferenceName'];
$r = new Response();
$params = array('dialMusic' => 'https://example.com/custom_tone.php');
// Add Dial tag
$d = $r->addDial($params);
$number = "1111111111";
$d->addNumber($number);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--custom_tone.php-->

<?php 
require 'vendor/autoload.php';
use Plivo\Response;
$r = new Response();
$body = "https://s3.amazonaws.com/plivocloud/music.mp3";
// Add Play tag
$r->addPlay($body);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Dial dialMusic="https://glacial-harbor-8656.herokuapp.com/testing.php/custom_tone">
        <Number>1111111111</Number>
    </Dial>
</Response>

<Response>
    <Play>https://s3.amazonaws.com/plivocloud/music.mp3</Play>
//Add Speak tag
$body = "Please wait while your call is being transferred";
$r->addSpeak($body);
// Add Redirect tag
$redirect = "https://example.com/connect.php";
$r->addRedirect($redirect);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--connect.php-->

<?php 
require 'vendor/autoload.php';
use Plivo\Response;
$r = new Response();
// Add Speak tag
$body = "Connecting your call..";
$attributes = array('action' => "https://example.com/dial_status.php", 'method' => "GET", 'redirect' => "true");
$r->addSpeak($body);
// Add Dial tag
$d = $r->addDial($attributes);
$number = "11111111111";
$d->addNumber($number);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Speak>Please wait while your call is being transferred</Speak>
    <Redirect>
<?php

require 'vendor/autoload.php';
use Plivo\Response;
// Sender's phone numer
$from_number = $_REQUEST["From"];
// Receiver's phone number - Plivo number
$to_number = $_REQUEST["To"];
// The SMS text message which was received
$text = $_REQUEST["Text"];
// Output the text which was received, you could
// also store the text in a database.
// echo("Message received from $from_number : $text");
$params = array('src' => $to_number, 'dst' => $from_number);
$body = "Thank you for your message.";
// Generate a Message XML with the details of
// the reply to be sent.
$r = new Response();
$r->addMessage($body, $params);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--
Sample Output
Message received from 3333333333 : Hello, from Plivo
<Response>
   <Message dst="2222222222" src="1111111111">Thank you for your message</Message>
</Response>
-->
<?php

require 'vendor/autoload.php';
use Plivo\Response;
# Generates a Conference XML
$r = new Response();
$params = array('enterSound' => "beep:1", 'callbackUrl' => "https://example.com/conf_callback.php", 'callbackMethod' => "GET");
$name = "demo";
$r->addSpeak("You will now be placed into a demo conference. This is brought to you by Plivo. To know more visit us at plivo.com");
$r->addConference($name, $params);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--conf_callback.php-->

<?php 
require 'vendor/autoload.php';
use Plivo\RestAPI;
# Record API is called in the callback URL to record the conference
$conf_name = $_REQUEST['ConferenceName'];
$event = $_REQUEST['Event'];
print "Conference Name : {$conf_name}";
print "Event : {$event}";
# The recording starts when the user enters the conference room
if ($event == "ConferenceEnter") {
    $auth_id = "Your AUTH_ID";
    $auth_token = "Your AUTH_TOKEN";
    $p = new RestAPI($auth_id, $auth_token);
    $params = array('conference_name' => $conf_name);
    $resp = $p->record_conference($params);
<?php

require 'vendor/autoload.php';
use Plivo\Response;
$r = new Response();
// Add Speak tag
$body = "Sending Digits";
$r->addSpeak($body);
// Add DTMF tag
$dtmf = "12345";
$r->addDTMF($dtmf);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Speak>Sending Digits</Speak>
    <DTMF>12345</DTMF>
</Response>
*/
<?php

require 'vendor/autoload.php';
use Plivo\Response;
# Generate a Record XML and ask the caller to leave a message
$r = new Response();
# The recorded file will be sent to the 'action' URL
$record_params = array('action' => 'https://example.com/record_action.php', 'method' => 'GET', 'maxLength' => '30', 'transcriptionType' => 'auto', 'transcriptionUrl' => 'https://example.com/transcription.php', 'transcriptionMethod' => 'GET');
$r->addSpeak("Leave your message after the tone");
$r->addRecord($record_params);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--record_action.php-->

<?php 
# Action URL Example
$record_url = $_REQUEST['RecordUrl'];
$record_duration = $_REQUEST['RecordingDuration'];
$record_id = $_REQUEST['RecordingID'];
echo "Record URL : {$record_url}";
echo "Recording Duration : {$record_duration}";
echo "Recording ID : {$record_id}";
?>

<!--transcription.php-->

<?php 
# Transcription URL Example
$transcription = $_REQUEST['transcription'];
<?php

require 'vendor/autoload.php';
use Plivo\RestAPI;
use Plivo\Response;
$auth_token = "Your AUTH_TOKEN";
$signature = $_SERVER["HTTP_X_PLIVO_SIGNATURE"];
$url = 'http' . (isset($_SERVER['HTTPS']) ? 's' : '') . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
$uri = explode('?', $url);
$uri1 = $uri[0];
$parse = parse_url($url, PHP_URL_QUERY);
parse_str($parse, $get_array);
$post_params = $_POST;
$array = array_merge($get_array, $post_params);
$valid = RestAPI::validate_signature($uri1, $array, $signature, $auth_token);
$valid_message = "Signature is " . ($valid ? "" : "not ") . "valid.";
// Report signature validity to web server log
error_log($valid_message);
if ($valid) {
    // Signature is valid
    $r = new Response();
    // Generate a Speak XML with the details of the text to play on the call.
    $body = 'Hi, Calling from Plivo';
    // Add speak element
    $r->addSpeak($valid_message);
    Header('Content-type: text/xml');
    echo $r->toXML();
} else {
    // Signature is invalid
    error_log("Error! Something is wrong. Please check!");
}
<?php

require 'vendor/autoload.php';
use Plivo\Response;
$from_number = $_REQUEST['From'];
$caller = array('1111111111', '2222222222', '3333333333');
$r = new Response();
if (in_array($from_number, $caller)) {
    $params = array('reason' => 'rejected');
    $r->addHangup($params);
} else {
    $body = "Hello, from Plivo!";
    $r->addSpeak($body);
}
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample output when From number is in blacklist
<Response>
    <Hangup reason="rejected"/>
</Response>

Sample Output when From number is not in blacklist
<Response>
    <Speak>Hello from Plivo</Speak>
</Response>
*/
<?php

require 'vendor/autoload.php';
use Plivo\Response;
$r = new Response();
$getdigits_action_url = "https://example.com/transfer_action.php";
$params = array('action' => $getdigits_action_url, 'method' => 'GET', 'timeout' => '7', 'numDigits' => '1', 'retries' => '1', 'redirect' => 'false');
$getDigits = $r->addGetDigits($params);
$getDigits->addSpeak("Press 1 to transfer your call");
$waitparam = array('length' => '10');
$r->addWait($waitparam);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!-- transfer_action.php -->

<?php 
require 'vendor/autoload.php';
use Plivo\RestAPI;
$digit = $_REQUEST['Digits'];
$call_uuid = $_REQUEST['CallUUID'];
$auth_id = "Your AUTH_ID";
$auth_token = "Your AUTH_TOKEN";
error_log($digit);
error_log($call_uuid);
$p = new RestAPI($auth_id, $auth_token);
if ($digit == "1") {
    $params = array('call_uuid' => $call_uuid, 'aleg_url' => 'https://example.com/connect', 'aleg_method' => 'GET');
    $resp = $p->transfer_call($params);
    print_r($resp);
<?php

require 'vendor/autoload.php';
use Plivo\Response;
$dst = $_REQUEST['TO'];
$src = $_REQUEST['CLID'];
if (!$src) {
    $src = $_REQUEST['From'];
}
$cname = $_REQUEST['CallerName'];
$response = new Response();
if ($dst) {
    $dial_params = array();
    if ($src) {
        $dial_params['callerId'] = $src;
    }
    if ($cname) {
        $dial_params['callerName'] = $cname;
    }
    $dial = $response->addDial($dial_params);
    if (substr($dst, 0, 4) == "sip:") {
        $dial->addUser($dst);
    } else {
        $dial->addNumber($dst);
    }
} else {
    $response->addHangup();
}
header("Content-Type: text/xml");
echo $response->toXML();
<?php

require 'vendor/autoload.php';
use Plivo\Response;
// Generate a Speak XML with the details of the text to play on the call.
$body = 'This is English!';
$params = array('language' => "en-GB", 'voice' => "MAN");
$r = new Response();
// Add speak element
$r->addSpeak($body, $params);
$body1 = 'Ce texte généré aléatoirement peut-être utilisé dans vos maquettes';
$params1 = array('language' => "fr-FR");
$r->addSpeak($body1, $params1);
$body2 = 'Это случайно сгенерированный текст может быть использован в макете';
$params2 = array('language' => "ru-RU", 'voice' => "MAN");
$r->addSpeak($body2, $params2);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Speak language="en-GB" voice="MAN">This is English!</Speak>
    <Speak language="fr-FR">
        Ce texte généré aléatoirement peut-être utilisé dans vos maquettes
    </Speak>
    <Speak language="ru-RU" voice="MAN">
        Это случайно сгенерированный текст может быть использован в макете
    </Speak>
</Response>
*/
<?php

require 'vendor/autoload.php';
use Plivo\Response;
# Generate a Record XML
$r = new Response();
$record_params = array('action' => 'https://example.com/record_action', 'method' => 'GET', 'callbackUrl' => 'https://example.com/recording_callback', 'callbackMethod' => 'GET');
$r->addRecord($record_params);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--record_action.php-->

<?php 
# Action URL Example
$record_url = $_REQUEST['RecordUrl'];
$record_duration = $_REQUEST['RecordingDuration'];
$record_id = $_REQUEST['RecordingID'];
print "Record URL : {$record_url}";
print "Recording Duration : {$record_duration}";
print "Recording ID : {$record_id}";
?>

<!--recording_callback.php-->

<?php 
# Callback URL Example
$record_url = $_REQUEST['record_url'];
$record_duration = $_REQUEST['recording_duration'];
$record_id = $_REQUEST['recording_id'];
<?php

require 'vendor/autoload.php';
use Plivo\Response;
// Simultaneous dialing is useful when there are SIP users and numbers that you want to dial.
// The first call that connects will cancel all other tries.
$r = new Response();
// Add Dial tag
$d = $r->addDial();
// Add Number tag
$number1 = "1111111111";
$d->addNumber($number1);
$number2 = "2222222222";
$d->addNumber($number1);
$user1 = "sip:abcd1234@phone.plivo.com";
$d->addUser($user1);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Dial>
        <Number>1111111111</Number>
        <Number>2222222222</Number>
        <User>sip:abcd1234@phone.plivo.com</User>
    </Dial>
</Response>
*/
<?php

require 'vendor/autoload.php';
use Plivo\Response;
$r = new Response();
// Add Speak tag
$body = "Connecting your call..";
$r->addSpeak($body);
$params = array('action' => 'https://example.com/dial_status.php', 'method' => 'GET');
// Add Dial tag
$d = $r->addDial($params);
$number = "1111111111";
$d->addNumber($number);
Header('Content-type: text/xml');
echo $r->toXML();
?>

<!--dial_status.php-->

<?php 
// Print the Dial Details
$status = $_REQUEST['DialStatus'];
$aleg = $_REQUEST['DialALegUUID'];
$bleg = $_REQUEST['DialBLegUUID'];
echo "Status = {$status} , Aleg UUID = {$aleg} , Bleg UUID = {$bleg}";
/*
Sample Output
<Response>
    <Speak>Connecting your call..</Speak>
    <Dial action="https://glacial-harbor-8656.herokuapp.com/testing.php/dial_status" method="GET">
        <Number>1111111111</Number>
<?php

require 'vendor/autoload.php';
use Plivo\Response;
// Feth the from_number from the URL
$from_numbr = $_REQUEST['From'];
$r = new Response();
// Add Dial tag
$params = array('callerId' => $from_numbr);
$d = $r->addDial($params);
$number = "2222222222";
$d->addNumber($number);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Dial callerId="1111111111">
        <Number>2222222222</Number>
    </Dial>
</Response>
*/
<?php

require 'vendor/autoload.php';
use Plivo\Response;
// Generate a Speak XML with the details of the text to play on the call.
$body = 'Hi, Calling from Plivo';
$attributes = array('loop' => 2);
$r = new Response();
// Add speak element
$r->addSpeak($body, $attributes);
Header('Content-type: text/xml');
echo $r->toXML();
/*
Sample Output
<Response>
    <Speak loop="2">Hi, Calling from Plivo</Speak>
</Response>
*/
                $r->addSpeak($WRONG_INPUT_MESSAGE);
            }
        }
        Header('Content-type: text/xml');
        echo $r->toXML();
        break;
}
?>

<!--phone_tree.php-->

<?php 
require 'vendor/autoload.php';
use Plivo\Response;
$WRONG_INPUT_MESSAGE = "Sorry, it's a wrong input.";
$r = new Response();
$digit = $_REQUEST['Digits'];
if ($digit == '1') {
    $body = "This message is being read out in English";
    $params = array('language' => "en-GB");
    $r->addSpeak($body, $params);
} else {
    if ($digit == '2') {
        $body = "Ce message est lu en français";
        $params = array('language' => "fr-FR");
        $r->addSpeak($body, $params);
    } else {
        if ($digit == '3') {
            $body = "Это сообщение было прочитано в России";
            $params = array('language' => "ru-RU");
            $r->addSpeak($body, $params);