public function callFlow($flow)
 {
     $twiml = new Response();
     $twiml->addPause();
     $twiml->addRedirect(site_url('twiml/applet/voice/' . $flow . '/start'));
     $this->startClientCall($twiml);
 }
Example #2
0
<?php

require_once dirname(__FILE__) . '/../../lib/dopplr.php';
$user = OpenVBX::getCurrentUser();
$dopplr_token = PluginData::get("dopplr_token_{$user->id}", "");
$dopplr = new Dopplr($dopplr_token);
$response = new Response();
$response->addSay($dopplr->timezone());
$response->addRedirect(AppletInstance::getDropZoneUrl('next'));
$response->Respond();
Example #3
0
        $ci_timezone = "UM8";
    }
    $ci->config->set_item('time_reference', 'local');
    $ci->load->helper('date');
    $offset = (int) timezones($ci_timezone);
    $hour = date("G") + $offset;
    $server_time = mktime($hour, date("i"), date("s"));
    $server_time_formatted = date("G:i", $server_time);
    $server_day = date("w", $server_time);
    $currentTime = $server_time_formatted;
    $finish_time = $finish[$k];
    //debug - set a time here to restate $currentTime
    //$currentTime = "17:00";
    //echo $currentTime.' - '.$b.' - '.$finish_time;
    if (verify_time($currentTime, $b, $finish_time) == 1 and verify_day($k, $server_day)) {
        $response->addRedirect($choice_array[$k]);
        $response->Respond();
        $oops = false;
        $do_fallback = false;
        //echo "passed check ";
        break;
    } elseif (verify_time($currentTime, $b, $finish_time) == 0 or !verify_day($k, $server_day)) {
        $do_fallback = true;
        $oops = true;
        //echo "failed check ";
    }
}
if ($oops == true and $do_fallback == true) {
    $response->addRedirect($fallback);
    $response->Respond();
}
Example #4
0
<?php

$response = new Response();
$ini = "{$this->plugin_path}/timing.ini";
if (is_readable($ini)) {
    $options = parse_ini_file($ini);
    try {
        $tz = new DateTimeZone($options['timezone']);
    } catch (Exception $e) {
        error_log($e->getMessage());
    }
}
if (empty($tz)) {
    $tz = new DateTimeZone('America/Los_angeles');
}
$now = date_create('now', $tz);
// TODO: get from config
$today = date_format($now, 'w') - 1;
$response->addRedirect(AppletInstance::getDropZoneUrl(($from = AppletInstance::getValue("range_{$today}_from")) && ($to = AppletInstance::getValue("range_{$today}_to")) && date_create($from, $tz) <= $now && $now < date_create($to, $tz) ? 'open' : 'closed'));
$response->Respond();
Example #5
0
$keys = (array) AppletInstance::getDropZoneValue('keys[]');
$menu_items = AppletInstance::assocKeyValueCombine($keys, $choices);
$numDigits = 1;
foreach ($keys as $key) {
    if (strlen($key) > $numDigits) {
        $numDigits = strlen($key);
    }
}
if ($digits !== false) {
    if (!empty($menu_items[$digits])) {
        $selected_item = $menu_items[$digits];
    } else {
        if ($invalid_option) {
            $verb = AudioSpeechPickerWidget::getVerbForValue($invalid_option, null);
            $response->append($verb);
            $response->addRedirect();
        } else {
            $response->addSay('You selected an incorrect option.');
            $response->addRedirect();
        }
        $response->Respond();
        exit;
    }
}
if (!empty($selected_item)) {
    $response->addRedirect($selected_item);
    $response->Respond();
    exit;
}
$gather = $response->addGather(compact('numDigits'));
$verb = AudioSpeechPickerWidget::getVerbForValue($prompt, null);
<?php

require_once "./plivo.php";
$r = new Response();
//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_once "./plivo.php";
$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
<?php

include "foursquare_api.php";
$user = AppletInstance::getUserGroupPickerValue('4sq-cat-controller');
$user_id = $user->values["id"];
$foursquare_username = PluginStore::get("foursquare_username_{$user_id}", "");
$foursquare_password = PluginStore::get("foursquare_password_{$user_id}", "");
$default = AppletInstance::getDropZoneUrl('4sq-cat-default-action');
$response = new Response();
if (!empty($foursquare_username)) {
    $lastVenue = getLastVenue($foursquare_username, $foursquare_password);
    $category = getCategory($lastVenue);
    $categories = AppletInstance::getValue('categories[]');
    $category_options = AppletInstance::getDropZoneUrl('category_options[]');
    $found = false;
    if (is_array($categories)) {
        foreach ($categories as $id => $value) {
            if ($value == $category) {
                $response->addRedirect($category_options[$id]);
                $found = true;
            }
        }
    }
    if (!$found) {
        $response->addRedirect($default);
    }
} else {
    $response->addRedirect($default);
}
$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();
if ($_GET['redirect'] == 'true' || $_POST['redirect'] == 'true') {
    $r->addSpeak("Redirect done !");
    $r->addHangup();
} else {
    $r->addRedirect($base_http . "/answered.php?redirect=true");
}
$r->Respond();
<?php

$response = new Response();
$url = AppletInstance::getBaseURI();
$response->addRedirect($url . '/start');
$response->Respond();
Example #10
0
<?php

$response = new Response();
$url = AppletInstance::getValue('url');
$next = AppletInstance::getDropZoneUrl('next');
$fallback = AppletInstance::getDropZoneUrl('fallback');
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($result)) {
    $response->addSay('that didnt work');
    $response->addRedirect($fallback);
    $response->Respond();
} else {
    $response->addSay($result);
    $response->addRedirect($next);
    $response->Respond();
}
<?php

include "foursquare_api.php";
$user = AppletInstance::getUserGroupPickerValue('4sq-venue-controller');
$user_id = $user->values["id"];
$foursquare_username = PluginStore::get("foursquare_username_{$user_id}", "");
$foursquare_password = PluginStore::get("foursquare_password_{$user_id}", "");
$default = AppletInstance::getDropZoneUrl('no-venue-default-action');
$response = new Response();
if (!empty($foursquare_username)) {
    $lastVenue = getLastVenue($foursquare_username, $foursquare_password);
    $venues = AppletInstance::getValue('venues[]');
    $venue_options = AppletInstance::getDropZoneUrl('venue-options[]');
    $found = false;
    if (is_array($keys)) {
        foreach ($venues as $id => $value) {
            if ($value == $lastVenue) {
                $response->addRedirect($venue_options[$id]);
                $found = true;
            }
        }
    }
    if (!$found) {
        $response->addRedirect($default);
    }
} else {
    $response->addRedirect($default);
}
$response->Respond();
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();
Example #13
0
<?php

define('IS_DEV', true);
require_once 'twilio.php';
if (IS_DEV) {
    require_once 'twillip.php';
    Twillip::Start();
}
$r = new Response();
if (isset($_REQUEST['Caller'])) {
    $r->addSay('This app uses Twillip for obviously awesome reasons!');
    $r->addPlay('funky-beats.mp3', array('loop' => 3));
    $r->addRedirect('/doesntexist.php');
} else {
    $r->addSay('Oh no! I didn\'t get sent a phone number! Who in blue blazes are you?');
    $r->addSay('This line will generate a PHP warning now: ' . $_REQUEST['Caller']);
}
$r->respond();
if (IS_DEV) {
    Twillip::End();
}
Example #14
0
<?php

require_once dirname(__FILE__) . '/../../lib/dopplr.php';
$user = OpenVBX::getCurrentUser();
$dopplr_token = PluginData::get("dopplr_token_{$user->id}", "");
$dopplr = new Dopplr($dopplr_token);
$response = new Response();
if ($dopplr->travel_today()) {
    $response->addRedirect(AppletInstance::GetDropZoneUrl('in_transit'));
} else {
    if ($dopplr->at_home) {
        $response->addRedirect(AppletInstance::GetDropZoneUrl('at_home'));
    } else {
        $response->addRedirect(AppletInstance::GetDropZoneUrl('on_the_road'));
    }
}
$response->Respond();
Example #15
0
<?php

$response = new Response();
$keys = AppletInstance::getValue('keys');
$invalid = AppletInstance::getDropZoneUrl('invalid');
$selected_item = false;
$choices = AppletInstance::getDropZoneUrl('choices[]');
$keys = AppletInstance::getDropZoneValue('keys[]');
$router_items = AppletInstance::assocKeyValueCombine($keys, $choices);
if (isset($_REQUEST['From']) && array_key_exists($_REQUEST['From'], $router_items)) {
    $routed_path = $router_items[$_REQUEST['From']];
    $response->addRedirect($routed_path);
    $response->Respond();
    exit;
} else {
    if (isset($_REQUEST['Caller']) && array_key_exists($_REQUEST['Caller'], $router_items)) {
        $routed_path = $router_items[$_REQUEST['Caller']];
        $response->addRedirect($routed_path);
        $response->Respond();
        exit;
    } else {
        if (!empty($invalid)) {
            $response->addRedirect($invalid);
            $response->Respond();
            exit;
        } else {
            $response->Respond();
            exit;
        }
    }
}
Example #16
0
 public function testRedirectConvience()
 {
     $r = new Response();
     $r->addRedirect();
     $expected = '<Response><Redirect></Redirect></Response>';
     $this->assertXmlStringEqualsXmlString($expected, $r->asUrl(False));
 }
Example #17
0
<?php

$response = new Response();
$next = AppletInstance::getDropZoneUrl('next');
$prompt = AppletInstance::getAudioSpeechPickerValue('prompt');
$response->append(AudioSpeechPickerWidget::getVerbForValue($prompt, null));
if (!empty($next)) {
    $response->addRedirect($next);
}
$response->Respond();
Example #18
0
     } else {
         // We've dialed all the phone numbers and gotten no answer
         $state[DIAL_ACTION] = DIAL_STATE_NO_ANSWER;
         // Note that we'd like to go through the machine again with our new state
         $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 {
Example #19
0
<?php

$response = new Response();
$redirect_type_selector = AppletInstance::getValue('redirect-type-selector');
if ($redirect_type_selector == "flow") {
    $gotoflow_raw = AppletInstance::getValue('gotoflow');
    $gotoflow_url = site_url("/twiml/applet/voice/" . $gotoflow_raw . "/start");
    $response = new Response();
    $response->addRedirect($gotoflow_url);
    $response->Respond();
    exit;
} else {
    if ($redirect_type_selector == "url") {
        $gotourl = AppletInstance::getValue('gotourl');
        $response = new Response();
        $response->addRedirect($gotourl);
        $response->Respond();
        exit;
    } else {
        trigger_error("Unexpected redirect-type-selector value of '{$redirect_type_selector}'");
    }
}