クイックスタート|Tropo Web API
通話の転送
転送通話は
最も簡単な形式の転送は次のとおりです。
require 'tropo-webapi-ruby' require 'sinatra' post '/index.json' do t = Tropo::Generator.new t.say(:value => "転送中です。お待ちください。") t.transfer(:to => "0909876XXXX") t.response end
var http = require('http'); var tropo_webapi = require('tropo-webapi'); var server = http.createServer(function (request, response) { var tropo = new TropoWebAPI(); tropo.say("転送中です。お待ちください。"); tropo.transfer("0909876XXXX"); response.end(TropoJSON(tropo)); }).listen(8000);
<?php require 'tropo.class'; $tropo = new Tropo(); $tropo->say("転送中です。お待ちください。"); $tropo->transfer("0909876XXXX"); $tropo->RenderJson(); ?>
from itty import * from tropo import Tropo @post('/index.json') def index(request): t = Tropo() t.say("転送中です。お待ちください。") t.transfer("0909876XXXX") return t.RenderJson() run_itty(server='wsgiref', host='0.0.0.0', port=8888)
{"tropo":[ { "say":[{"value":"転送中です。お待ちください。"}] }, { "transfer":{"to":"0909876XXXX"} } ]}
より上等なものにもできます。以下の例では配列として複数の行き先を(最初に出た人にかかります)指定しています。 また、保留音と、転送をキャンセルするボタン、タイムアウトした場合のハンドラを指定しました。これらも多少のコードを追加するだけです。
require 'tropo-webapi-ruby' require 'sinatra' post '/index.json' do t = Tropo::Generator.new t.say(:value => "転送中です。お待ちください。") t.transfer(:to => ["0909876XXXX", "031234XXXX"], :choices => {:terminator => "#"}, :on => {:event => "ring", :say => {:value => "http://www.phono.com/audio/holdmusic.mp3"}}) t.response end
var http = require('http'); var tropo_webapi = require('tropo-webapi'); var server = http.createServer(function (request, response) { var tropo = new TropoWebAPI(); var say = new Say("http://www.phono.com/audio/holdmusic.mp3"); var choices = new Choices(null, null, "#"); var on = {"event":"ring", "say": say}; tropo.say("転送中です。お待ちください。"); //to, answerOnMedia, choices, from, name, on, required, timeout tropo.transfer(["0909876XXXX","031234XXXX"], null, choices, null, null, on, null, null); response.end(TropoJSON(tropo)); }).listen(8000);
<?php require 'tropo.class'; $tropo = new Tropo(); $choices = new Choices(null, null, "#"); $say = new Say("http://www.phono.com/audio/holdmusic.mp3"); $on = new On("ring", null, $say); $options = array( 'choices' => $choices, 'on' => $on ); $tropo->say("転送中です。お待ちください。t"); $tropo->transfer(array("0909876XXXX", "031234XXXX"), $options); $tropo->RenderJson(); ?>
from itty import * from itty import * from tropo import Tropo @post('/index.json') def index(request): t = Tropo() t.say("転送中です。お待ちください。") t.transfer(["0909876XXXX","031234XXXX"], choices = {"terminator":"#"}, on = {"event":"ring", "say":{"value":"http://www.phono.com/audio/holdmusic.mp3"}}) return t.RenderJson() run_itty(server='wsgiref', host='0.0.0.0', port=8888)
{"tropo":[ { "say":[{"value":"転送中です。お待ちください。"}] }, { "transfer":{ "to":["0909876XXXX","031234XXXX"], "choices":{"terminator":"#"}, "on":{ "say":{"value":"http://www.phono.com/audio/holdmusic.mp3"}, "event":"ring" } } } ]}
以下はcallerIDを基にした着信拒否です。これは、セッションから情報を抽出しなければならないので、ライブラリと一緒でないと機能しないことにご注意ください。
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 == "0802345XXXX") t.transfer(:to => "031234XXXX") else t.say(:value => "こんにちは") 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 == "0802345XXXX") tropo.transfer("031234XXXX"); else tropo.say("こんにちは"); response.end(TropoJSON(tropo)); }); }).listen(8000);
<?php require 'tropo.class'; $tropo = new Tropo(); $session = new Session(); $from = $session->getFrom(); $callerID = $from["id"]; if ($callerID == '0802345XXXX') $tropo->transfer("031234XXXX"); else $tropo->say("こんにちは"); $tropo->RenderJson(); ?>
from itty import * 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 == '0802345XXXX') : t.transfer("031234XXXX") else : t.say("こんにちは") return t.RenderJson() run_itty(server='wsgiref', host='0.0.0.0', port=8888)
転送するだけではなく、全ての電話番号をまとめて遮断する必要がありますか? Tropoはこの点にも対応しております。 次のページは着信拒否です。