TwiML™ Voice: <Redirect>

<Redirect> 動詞は、通話の制御を別の URL の TwiML に移します。<Redirect> の後に続く動詞は、すべて不達となります。

動詞の属性

<Redirect> 動詞は次の属性をサポートします。これらを使って動作を変更します。

属性名 許容値 初期値
method GET, POST POST

method

method 属性は GET または POST の値を取ります。<Redirect> URL へのリクエスト送信に、HTTP の GET と POST のどちらを使うかを、Twilio に指示します。

<Redirect> 動詞の中で次のように使います。

コードサンプルを読み込んでいます...
Language
SDKバージョン:
  • 5.x
SDKバージョン:
  • 7.x
SDKバージョン:
  • 3.x
SDKバージョン:
  • 5.x
SDKバージョン:
  • 6.x
SDKバージョン:
  • 5.x
形式:
  • TwiML
const VoiceResponse = require('twilio').twiml.VoiceResponse;

const response = new VoiceResponse();
response.redirect({
    method: 'POST'
}, 'http://pigeons.com/twiml.xml');

console.log(response.toString());
using Twilio.TwiML;
using Twilio.Http;
using System;


class Example
{
    static void Main()
    {
        var response = new VoiceResponse();
        response.Redirect(new Uri("http://pigeons.com/twiml.xml"), method: HttpMethod.Post);

        Console.WriteLine(response.ToString());;
    }
}
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;

$response = new Twiml();
$response->redirect('http://pigeons.com/twiml.xml', ['method' => 'POST']);

echo $response;
require 'twilio-ruby'

response = Twilio::TwiML::VoiceResponse.new
response.redirect('http://pigeons.com/twiml.xml', method: 'POST')

puts response
from twilio.twiml.voice_response import Redirect, VoiceResponse

response = VoiceResponse()
response.redirect('http://pigeons.com/twiml.xml', method='POST')

print(response)
import com.twilio.twiml.voice.Redirect;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;
import com.twilio.http.HttpMethod;

public class Example {
    public static void main(String[] args) {
        Redirect redirect = new Redirect.Builder("http://pigeons.com/twiml.xml").method(HttpMethod.POST)
            .build();
        VoiceResponse response = new VoiceResponse.Builder().redirect(redirect)
            .build();

        try {
            System.out.println(response.toXml());
        } catch (TwiMLException e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Redirect method="POST">http://pigeons.com/twiml.xml</Redirect>
</Response>
Redirect動詞のmethod属性の使用

名詞

TwiML 動詞の名詞とは、動詞の中にネストされた、それ自身が動詞ではないものを指します。動詞が動作を行う対象です。<Redirect>名詞 は、次の通りです。

名詞 TwiML の解釈
plain text 別の TwiML 文書の絶対または相対 URLです。

ネスティングルール

<Redirect>にはいかなる動詞も入れ子にすることはできません。 また、<Redirect>は他の動詞の中に入れ子にすることもできません。

サンプル

例 1: 絶対 URL リダイレクト

この例では、URL のない <Dial> 動詞の後に <Redirect> 動詞が続きます。 <Dial> 動詞が終了すると、<Redirect> が実行されます。<Redirect> は http://www.foo.com/nextInstructions へリクエストを送信し、コールフローの制御はこのリクエストへのレスポンスとして受信した TwiML に移ります。

コードサンプルを読み込んでいます...
Language
SDKバージョン:
  • 5.x
SDKバージョン:
  • 7.x
SDKバージョン:
  • 3.x
SDKバージョン:
  • 5.x
SDKバージョン:
  • 6.x
SDKバージョン:
  • 5.x
形式:
  • TwiML
const VoiceResponse = require('twilio').twiml.VoiceResponse;

const response = new VoiceResponse();
response.dial('415-123-4567');
response.redirect('http://www.foo.com/nextInstructions');

console.log(response.toString());
using Twilio.TwiML;
using System;

class Example
{
    static void Main()
    {
        var response = new VoiceResponse();
        response.Dial("415-123-4567");
        response.Redirect(new Uri("http://www.foo.com/nextInstructions"));

        Console.WriteLine(response.ToString());;
    }
}
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;

$response = new Twiml();
$response->dial('415-123-4567');
$response->redirect('http://www.foo.com/nextInstructions');

echo $response;
require 'twilio-ruby'

response = Twilio::TwiML::VoiceResponse.new
response.dial(number: '415-123-4567')
response.redirect('http://www.foo.com/nextInstructions')

puts response
from twilio.twiml.voice_response import Dial, Redirect, VoiceResponse

response = VoiceResponse()
response.dial('415-123-4567')
response.redirect('http://www.foo.com/nextInstructions')

print(response)
import com.twilio.twiml.voice.Dial;
import com.twilio.twiml.voice.Number;
import com.twilio.twiml.voice.Redirect;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;


public class Example {
    public static void main(String[] args) {
        Number number = new Number.Builder("415-123-4567").build();
        Dial dial = new Dial.Builder().number(number).build();
        Redirect redirect = new Redirect.Builder("http://www.foo.com/nextInstructions")
            .build();
        VoiceResponse response = new VoiceResponse.Builder().dial(dial)
            .redirect(redirect).build();

        try {
            System.out.println(response.toXml());
        } catch (TwiMLException e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>415-123-4567</Dial>
    <Redirect>http://www.foo.com/nextInstructions</Redirect>
</Response>
絶対URLのRedirect

例 2: 相対 URL リダイレクト

コールフローの制御を移す TwiML を、現在の URL の相対 URL で指定します。

コードサンプルを読み込んでいます...
Language
SDKバージョン:
  • 5.x
SDKバージョン:
  • 7.x
SDKバージョン:
  • 3.x
SDKバージョン:
  • 5.x
SDKバージョン:
  • 6.x
SDKバージョン:
  • 5.x
形式:
  • TwiML
const VoiceResponse = require('twilio').twiml.VoiceResponse;

const response = new VoiceResponse();
response.redirect('../nextInstructions');

console.log(response.toString());
using Twilio.TwiML;
using System;


class Example
{
    static void Main()
    {
        var response = new VoiceResponse();
        response.Redirect(new Uri("../nextInstructions"));

        Console.WriteLine(response.ToString());;
    }
}
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;

$response = new Twiml();
$response->redirect('../nextInstructions');

echo $response;
require 'twilio-ruby'

response = Twilio::TwiML::VoiceResponse.new
response.redirect('../nextInstructions')

puts response
from twilio.twiml.voice_response import Redirect, VoiceResponse

response = VoiceResponse()
response.redirect('../nextInstructions')

print(response)
import com.twilio.twiml.voice.Redirect;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;


public class Example {
    public static void main(String[] args) {
        Redirect redirect = new Redirect.Builder("../nextInstructions")
            .build();
        VoiceResponse response = new VoiceResponse.Builder().redirect(redirect)
            .build();

        try {
            System.out.println(response.toXml());
        } catch (TwiMLException e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Redirect>../nextInstructions</Redirect>
</Response>
相対URLのRedirect

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。

コードサンプルを読み込んでいます...
SDKバージョン:
  • 5.x
SDKバージョン:
  • 7.x
SDKバージョン:
  • 3.x
SDKバージョン:
  • 5.x
SDKバージョン:
  • 6.x
SDKバージョン:
  • 5.x
形式:
  • TwiML
const VoiceResponse = require('twilio').twiml.VoiceResponse;

const response = new VoiceResponse();
response.redirect({
    method: 'POST'
}, 'http://pigeons.com/twiml.xml');

console.log(response.toString());
using Twilio.TwiML;
using Twilio.Http;
using System;


class Example
{
    static void Main()
    {
        var response = new VoiceResponse();
        response.Redirect(new Uri("http://pigeons.com/twiml.xml"), method: HttpMethod.Post);

        Console.WriteLine(response.ToString());;
    }
}
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;

$response = new Twiml();
$response->redirect('http://pigeons.com/twiml.xml', ['method' => 'POST']);

echo $response;
require 'twilio-ruby'

response = Twilio::TwiML::VoiceResponse.new
response.redirect('http://pigeons.com/twiml.xml', method: 'POST')

puts response
from twilio.twiml.voice_response import Redirect, VoiceResponse

response = VoiceResponse()
response.redirect('http://pigeons.com/twiml.xml', method='POST')

print(response)
import com.twilio.twiml.voice.Redirect;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;
import com.twilio.http.HttpMethod;

public class Example {
    public static void main(String[] args) {
        Redirect redirect = new Redirect.Builder("http://pigeons.com/twiml.xml").method(HttpMethod.POST)
            .build();
        VoiceResponse response = new VoiceResponse.Builder().redirect(redirect)
            .build();

        try {
            System.out.println(response.toXml());
        } catch (TwiMLException e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Redirect method="POST">http://pigeons.com/twiml.xml</Redirect>
</Response>
SDKバージョン:
  • 5.x
SDKバージョン:
  • 7.x
SDKバージョン:
  • 3.x
SDKバージョン:
  • 5.x
SDKバージョン:
  • 6.x
SDKバージョン:
  • 5.x
形式:
  • TwiML
const VoiceResponse = require('twilio').twiml.VoiceResponse;

const response = new VoiceResponse();
response.dial('415-123-4567');
response.redirect('http://www.foo.com/nextInstructions');

console.log(response.toString());
using Twilio.TwiML;
using System;

class Example
{
    static void Main()
    {
        var response = new VoiceResponse();
        response.Dial("415-123-4567");
        response.Redirect(new Uri("http://www.foo.com/nextInstructions"));

        Console.WriteLine(response.ToString());;
    }
}
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;

$response = new Twiml();
$response->dial('415-123-4567');
$response->redirect('http://www.foo.com/nextInstructions');

echo $response;
require 'twilio-ruby'

response = Twilio::TwiML::VoiceResponse.new
response.dial(number: '415-123-4567')
response.redirect('http://www.foo.com/nextInstructions')

puts response
from twilio.twiml.voice_response import Dial, Redirect, VoiceResponse

response = VoiceResponse()
response.dial('415-123-4567')
response.redirect('http://www.foo.com/nextInstructions')

print(response)
import com.twilio.twiml.voice.Dial;
import com.twilio.twiml.voice.Number;
import com.twilio.twiml.voice.Redirect;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;


public class Example {
    public static void main(String[] args) {
        Number number = new Number.Builder("415-123-4567").build();
        Dial dial = new Dial.Builder().number(number).build();
        Redirect redirect = new Redirect.Builder("http://www.foo.com/nextInstructions")
            .build();
        VoiceResponse response = new VoiceResponse.Builder().dial(dial)
            .redirect(redirect).build();

        try {
            System.out.println(response.toXml());
        } catch (TwiMLException e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>415-123-4567</Dial>
    <Redirect>http://www.foo.com/nextInstructions</Redirect>
</Response>
SDKバージョン:
  • 5.x
SDKバージョン:
  • 7.x
SDKバージョン:
  • 3.x
SDKバージョン:
  • 5.x
SDKバージョン:
  • 6.x
SDKバージョン:
  • 5.x
形式:
  • TwiML
const VoiceResponse = require('twilio').twiml.VoiceResponse;

const response = new VoiceResponse();
response.redirect('../nextInstructions');

console.log(response.toString());
using Twilio.TwiML;
using System;


class Example
{
    static void Main()
    {
        var response = new VoiceResponse();
        response.Redirect(new Uri("../nextInstructions"));

        Console.WriteLine(response.ToString());;
    }
}
<?php
require_once './vendor/autoload.php';
use Twilio\Twiml;

$response = new Twiml();
$response->redirect('../nextInstructions');

echo $response;
require 'twilio-ruby'

response = Twilio::TwiML::VoiceResponse.new
response.redirect('../nextInstructions')

puts response
from twilio.twiml.voice_response import Redirect, VoiceResponse

response = VoiceResponse()
response.redirect('../nextInstructions')

print(response)
import com.twilio.twiml.voice.Redirect;
import com.twilio.twiml.VoiceResponse;
import com.twilio.twiml.TwiMLException;


public class Example {
    public static void main(String[] args) {
        Redirect redirect = new Redirect.Builder("../nextInstructions")
            .build();
        VoiceResponse response = new VoiceResponse.Builder().redirect(redirect)
            .build();

        try {
            System.out.println(response.toXml());
        } catch (TwiMLException e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Redirect>../nextInstructions</Redirect>
</Response>