$_SESSION['next_goto'] = 'Menu1_CheckInput';
} else {
    if ($_REQUEST['event'] == 'GotDTMF' && $_SESSION['next_goto'] == 'Menu1_CheckInput') {
        //input will come data param
        //print parameter data value
        if ($_REQUEST['data'] == '') {
            //if value null, caller has not given any dtmf
            //no input handled
            $r->addPlayText('you have not entered any input');
            $_SESSION['next_goto'] = 'Menu1';
        } else {
            if ($_REQUEST['data'] == '1') {
                $_SESSION['next_goto'] = 'Record_Status';
                $r->addPlayText('Please enter your location after beep ');
                //give unique file name for each recording
                $r->addRecord('filename2', 'wav');
            } else {
                if ($_REQUEST['data'] == '2') {
                    $_SESSION['next_goto'] = 'DialMenu';
                } else {
                    if ($_REQUEST['data'] == '3') {
                        $_SESSION['next_goto'] = 'Dial1_Status';
                    } else {
                        $r->addPlayText('Thats an invalid input');
                    }
                }
            }
        }
    } else {
        if ($_SESSION['next_goto'] == 'DialMenu') {
            $r->addPlayText('Place Details');
<?php

header("Content-type: text/xml\n");
error_reporting(E_NONE);
include "chirbit.php";
$user = AppletInstance::getUserGroupPickerValue('chirbit-controller');
$user_id = $user->values["id"];
$chirbit_username = PluginStore::get("chirbit_username_{$user_id}", "");
$chirbit_password = PluginStore::get("chirbit_password_{$user_id}", "");
$prompt = AppletInstance::getAudioSpeechPickerValue('prompt');
$after = AppletInstance::getAudioSpeechPickerValue('after');
$title = AppletInstance::getValue("title", "");
$response = new Response();
if (isset($_REQUEST['RecordingUrl'])) {
    chirbit_post($chirbit_username, $chirbit_password, $_REQUEST['RecordingUrl'], $title);
    $verb = AudioSpeechPickerWidget::getVerbForValue($after, null);
    $response->append($verb);
    $response->addHangup();
} else {
    $verb = AudioSpeechPickerWidget::getVerbForValue($prompt, null);
    $response->append($verb);
    $response->addRecord();
}
$response->Respond();
<?php

// Include the PHP Plivo Rest library
require "./plivohelper.php";
$base_http = "http://" . dirname($_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"]);
/* Render RESTXML */
$r = new Response();
$r->addRecord(array('timeout' => 5, 'finishOnKey' => "#", 'maxLength' => 30, 'playBeep' => 'true', 'filePath' => '/tmp'));
$r->Respond();
Example #4
0
         $keepLooping = true;
     }
     break;
 case DIAL_STATE_HANGUP:
     $response->addHangup();
     break;
 case DIAL_STATE_NO_ANSWER:
     if ($dial_whom_selector == 'number') {
         if (empty($no_answer_redirect_number)) {
             $response->addHangup();
         }
         $response->addRedirect($no_answer_redirect_number);
     } else {
         if ($no_answer_action === 'voicemail') {
             $response->append(AudioSpeechPickerWidget::getVerbForValue($voicemail, new Say("Please leave a message.")));
             $response->addRecord(array('transcribe' => true, 'transcribeCallback' => site_url('twiml/transcribe')));
             $state[DIAL_ACTION] = DIAL_STATE_RECORDING;
         } else {
             if ($no_answer_action === 'redirect') {
                 if (empty($no_answer_redirect)) {
                     $response->addHangup();
                 }
                 $response->addRedirect($no_answer_redirect);
             } else {
                 if ($no_answer_action === 'hangup') {
                     $response->addHangup();
                 } else {
                     trigger_error("Unexpected no_answer_action");
                 }
             }
         }
Example #5
0
 public function testRecordConvienceMethod()
 {
     $r = new Response();
     $r->addRecord(array("transcribeCallback" => "example.com"));
     $expected = '<Response><Record transcribeCallback="example.com"></Record></Response>';
     $this->assertXmlStringEqualsXmlString($expected, $r->asUrl(False));
 }
Example #6
0
        $zendesk_user = $CI->db->get_where('plugin_store', array('key' => 'zendesk_user'))->row();
        $zendesk_user = json_decode($zendesk_user->value);
        define('ZENDESK_URL', $zendesk_user->url);
        define('ZENDESK_EMAIL', $zendesk_user->email);
        define('ZENDESK_PASSWORD', $zendesk_user->password);
        define('ZENDESK_TIMEZONE', (int) $zendesk_user->timezone);
        // create a ticket to zendesk
        $xml = '<ticket>' . '<subject>Phone Call from ' . format_phone($_REQUEST['Caller']) . ' on ' . gmdate('M d g:i a', gmmktime() + ZENDESK_TIMEZONE * 60 * 60) . '</subject>' . '<description>' . $_REQUEST['TranscriptionText'] . "\n" . 'Recording: ' . $_REQUEST['RecordingUrl'] . '</description>' . '</ticket>';
        $new_ticket = zendesk_client('/tickets.xml', 'POST', $xml);
        $params = http_build_query($_REQUEST);
        $redirect_url = site_url('twiml/transcribe') . '?' . $params;
        header("Location: {$redirect_url}");
    } else {
        $permissions = AppletInstance::getUserGroupPickerValue('permissions');
        // get the prompt that the user configured
        $isUser = $permissions instanceof VBX_User ? TRUE : FALSE;
        if ($isUser) {
            $prompt = $permissions->voicemail;
        } else {
            $prompt = AppletInstance::getAudioSpeechPickerValue('prompt');
        }
        $verb = AudioSpeechPickerWidget::getVerbForValue($prompt, new Say("Please leave a message."));
        $response->append($verb);
        // add a <Record>, and use VBX's default transcription handle$response->addRecord(array('transcribe'=>'TRUE', 'transcribeCallback' => site_url('/twiml/transcribe') ));
        $action_url = base_url() . "twiml/applet/voice/{$flow_id}/{$instance_id}?status=save-call";
        $transcribe_url = base_url() . "twiml/applet/voice/{$flow_id}/{$instance_id}?status=transcribe-call";
        $response->addRecord(array('transcribe' => 'TRUE', 'action' => $action_url, 'transcribeCallback' => $transcribe_url));
    }
}
$response->Respond();
// send response
    $_SESSION['next_goto'] = 'Menu1_CheckInput';
} else {
    if ($_REQUEST['event'] == 'GotDTMF' && $_SESSION['next_goto'] == 'Menu1_CheckInput') {
        //input will come data param
        //print parameter data value
        if ($_REQUEST['data'] == '') {
            //if value null, caller has not given any dtmf
            //no input handled
            $r->addPlayText('you have not entered any input');
            $_SESSION['next_goto'] = 'Menu1';
        } else {
            if ($_REQUEST['data'] == '1') {
                $_SESSION['next_goto'] = 'Record_Status';
                $r->addPlayText('Please record your message after beep ');
                //give unique file name for each recording
                $r->addRecord('filename1', 'wav', '120');
            } else {
                if ($_REQUEST['data'] == '2') {
                    $_SESSION['next_goto'] = 'DialMenu';
                } else {
                    if ($_REQUEST['data'] == '3') {
                        $r->addPlayText('your conference number is 1 2 3 4 ');
                        $r->addConference(1234);
                        $_SESSION['next_goto'] = 'Dial1_Status';
                    } else {
                        $r->addPlayText('Thats an invalid input');
                    }
                }
            }
        }
    } else {
<?php

require_once "./plivo.php";
# 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'];
print "Record URL : {$record_url}";
Example #9
0
        exit;
    }
    $cd->addPlayText("Welcome to audio chat. Press 1 to broadcast your story , 2 to listen to friends .");
    // play options
    $r->addCollectDtmf($cd);
} elseif (isset($_REQUEST['event']) && $_REQUEST['event'] == 'GotDTMF') {
    $no = $_REQUEST['cid'];
    $result = mysqli_query($conn, "select * from user where  mobile='{$no}' ");
    $row = mysqli_fetch_assoc($result);
    $userid = $row['id'];
    $name = $row['name'];
    $choice = $_REQUEST['data'];
    if ($choice == "1") {
        $r->addPlayText("Record your message after the beep ");
        $n = $_REQUEST['cid'];
        $r->addRecord($userid . "_" . md5(time()));
        //record message
        $r->maxduration = 15;
        $res = mysqli_query($conn, "SELECT bro_id as ID, status as status FROM friends WHERE user_id = {$userid} UNION SELECT user_id as ID, status FROM friends WHERE bro_id = {$userid} ");
        $cnt = $res->num_rows;
        if ($cnt != 0) {
            while ($row = mysqli_fetch_assoc($res)) {
                $q = mysqli_query($conn, "SELECT * FROM user WHERE id = " . $row['ID']);
                $bro = mysqli_fetch_assoc($q);
                $postdata = "name=Audiochat&no=" . $bro['mobile'] . "&msg=" . $name . " has posted a new story.";
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, 'http://faltusms.tk/sendSms.php');
                curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
                curl_setopt($ch, CURLOPT_VERBOSE, 1);
                curl_setopt($ch, CURLOPT_TIMEOUT, 60);
Example #10
0
<?php

require_once 'lib/plivo.php';
$r = new Response();
$body = 'Hi, Calling from Plivo';
$url = 'http://examples.com/recordaction';
$record_attribute = array('action' => $url, 'maxLength' => 30, 'playBeep' => TRUE);
$r->addSpeak($body);
$r->addRecord($record_attribute);
header('Content-type: text/xml');
echo $r->toXML();
// The same XML can be created above using the convencience methods
$r = new Response();
$r->addSpeak("Hello World", array("loop" => "10"));
$g = $r->addDial(array("timeLimit" => "45"));
$g->addNumber("4155551212");
$r->addPlay("http://www.mp3.com");
$r->addHangup(array("schedule" => "45"));
$r->Respond();
// ========================================================================
// GetDigits, Redirect
$r = new Response();
$g = $r->addgetDigits(array("numDigits" => "1", "timeout" => "25", "playBeep" => "true"));
$g->addPlay("/usr/local/freeswitch/sounds/en/us/callie/ivr/8000/ivr-hello.wav", array("loop" => "10"));
$r->addWait(array("length" => "5"));
$r->addPlay("/usr/local/freeswitch/sounds/en/us/callie/ivr/8000/ivr-hello.wav", array("loop" => "10"));
$r->addRecord(array("bothLegs" => "true"));
$r->addredirect();
$r->Respond();
/* outputs:
   <Response>
       <GetDigits numdigits="1">
           <Play loop="2">/usr/local/freeswitch/sounds/en/us/callie/ivr/8000/ivr-hello.wav</Play>
       </GetDigits>
       <Wait length="5"/>
       <Play loop="2">/usr/local/freeswitch/sounds/en/us/callie/ivr/8000/ivr-hello.wav</Play>
       <Record/>
       <Hangup/>
   </Response>
   */
// ========================================================================
// Add a Speak verb multiple times
Example #12
0
<?php

require_once 'plivo.php';
$response = new Response();
$response->addSpeak('Record your message at the tone, after you are done, press pound');
$response->addRecord(array('action' => 'http://' . $_SERVER["SERVER_NAME"] . '/plivo-voicemail/confirm-input.php', 'method' => 'GET', 'maxLength' => '60', 'finishOnKey' => '#', 'playBeep' => 'true'));
$response->addSpeak('Recording not received');
$response->addRedirect('http://' . $_SERVER["SERVER_NAME"] . '/plivo-voicemail/get-input.php', array('method' => 'GET'));
header('content-type: text/xml');
echo $response->toXML();
<?php

require 'plivo.php';
//start recording the call after the Dial has been answered.
$record_params = array('action' => 'http://some.domain.com/recordfile/', 'startOnDialAnswer' => 'true');
$dial_params = array('callerId' => '12121212121');
$number = '12222222222';
$response = new Response();
$response->addRecord($record_params);
$dial = $response->addDial($dial_params);
$dial->addNumber($number);
echo $response->toXML();