Tropo WebAPI Development Guide Home  |  Frameset Home

  Transferring a Call  |  TOC  |  Creating a Conference Call  

Rejecting a Call


Rejecting a call is absolutely straightforward (though it only works with the voice network - there's no way to reject a text message). Usually you'll want to reject calls based on the callerID; here's how to handle it (JSON cannot handle if/else logic, so the examples are library only):

require 'tropo-webapi-ruby'
require 'sinatra'

post '/index.json' do
  
  v = Tropo::Generator.parse request.env["rack.input"].read
  t = Tropo::Generator.new
  
  callerID = v[:session][:from][:id]
  
  if (callerID == "4075550100" || callerID == "9165550100")
    t.reject
  else
    t.say(:value => "Hi friend!")
  end
  
  t.response
  
end
var http = require('http');
var tropo_webapi = require('tropo-webapi');

var server = http.createServer(function (request, response) {  
  
  request.addListener('data', function(data){
    json = data.toString();
  });
    
  request.addListener('end', function() {

	var session = JSON.parse(json);
	var tropo = new TropoWebAPI();
	var callerID = session.session.from.id;
	
	if(callerID == "4075550100" || callerID == "9165550100")
		tropo.reject();
	else
		tropo.say("Hi friend!");
	
    response.end(TropoJSON(tropo));
});

}).listen(8000); 
<?php

require 'tropo.class.php';

$tropo = new Tropo();
$session = new Session();

$from = $session->getFrom();
$callerID = $from["id"];

if ($callerID == '4075550100' || $callerID == '9165550100') 
	$tropo->reject();
else
	$tropo->say("Hi friend!");
	
$tropo->RenderJson();

?>
from itty import *
from tropo import Tropo, Session

@post('/index.json')

def index(request):

	s = Session(request.body)
	callerID = s.fromaddress['id']
	t = Tropo()

	if(callerID == '9165550100' or callerID == '4075550100') :
		t.reject()
	else :
		t.say("Hi friend!")
		
	return t.RenderJson()

run_itty(server='wsgiref', host='0.0.0.0', port=8888)

You can also combine this with transfer, so your mother-in-law gets sent to a voicemail but your stalker ex (or exes in our example - popularity has a price) gets a busy signal:

require 'tropo-webapi-ruby'
require 'sinatra'

post '/index.json' do
  
  v = Tropo::Generator.parse request.env["rack.input"].read
  t = Tropo::Generator.new
  
  callerID = v[:session][:from][:id]
  
  if (callerID == "4075550100" || callerID == "9165550100")
    t.reject
  elsif (callerID == "3865550100")
    t.transfer(:to => "+13217105094")
  else
    t.say(:value => "Hi friend!")
  end
  
  t.response
  
end
var http = require('http');
var tropo_webapi = require('tropo-webapi');

var server = http.createServer(function (request, response) {  
  
  request.addListener('data', function(data){
    json = data.toString();
  });
    
  request.addListener('end', function() {

	var session = JSON.parse(json);
	var tropo = new TropoWebAPI();
	var callerID = session.session.from.id;
	
	if(callerID == "4075550100" || callerID == "9165550100")
		tropo.reject();
	else if(callerID == "3865550100")
		tropo.transfer("+13217105094");
	else
		tropo.say("Hi friend!");
	
    response.end(TropoJSON(tropo));
});

}).listen(8000); 
<?php

require 'tropo.class.php';

$tropo = new Tropo();
$session = new Session();

$from = $session->getFrom();
$callerID = $from["id"];

if ($callerID == '4075550100' || $callerID == '9165550100") 
	$tropo->reject();
elseif ($callerID == '3865550100')
	$tropo->transfer("+13217105094");
else
	$tropo->say("Hi friend!");
	
$tropo->RenderJson();

?>

from itty import *
from tropo import Tropo, Session

@post('/index.json')

def index(request):

	s = Session(request.body)
	callerID = s.fromaddress['id']
	t = Tropo()

	if(callerID == '9165550100' or callerID == '4075550100') :
		t.reject()
	elif (callerID == '3865550100') :
		t.transfer("+13217105094")
	else :
		t.say("Hi friend!")
		
	return t.RenderJson()

run_itty(server='wsgiref', host='0.0.0.0', port=8888)

Want to conference some people together? You know you do.

Next Step: Creating a Conference Call


  ANNOTATIONS: EXISTING POSTS
0 posts - click the button below to add a note to this page

login
  Transferring a Call  |  TOC  |  Creating a Conference Call  

© 2012 Voxeo Corporation  |  Voxeo IVR  |  VoiceXML & CCXML IVR Developer Site