SIPとTwiMLインタラクション

SIP通話は通常のインバウンド通話やクライアントと同様にTwiMLと強いつながりがあります。TwilioはあなたのSIPドメインにINVITEを送り、認証をします。その後180 Ringing SIPレスポンスをSIPエンドポイントに送ります。その後あなたのSIPドメインに関連付けられたURLを呼び出し、HTTPリクエストをVoiceURLに送信します。

TwiMLが呼び出される際、Twilioは元々のSIP通話にいくつかのパラメータを渡します。

パラメーター名 概要
To INVITEするURI
From INVITEに渡される”From”ヘッダー
SipDomain INVITEの送信元Twilio SIP ドメイン
SipUsername クレデンシャルリストが有効になっている際に認証に使われるユーザー名
SipCallId インカミングINVITEの Call-ID
SipSourceIp インカミングINVITEの送信元IPアドレス
SipHeader_<name> SipHeader_<name> としてインカミングINVITEに含まれるX- header。<name>がヘッダーキーになります。複数の値を受信できます。

有効なTwiMLと共にリクエストを受信すると、TwilioはTwiMLを実行します。<Say>, <Play>, <Record>, <Dial>, <Gather>が含まれる場合、Twilioは200 OK SIPレスポンスをSIPエンドポイントと、成立している通話に送信します。

<Redirect>動詞をアプリケーションから受け取った場合、リダイレクトドキュメントがリクエストされ、Twilioは180 Ringingを続けます。

<Reject reason=”busy”>をアプリケーションが返した場合Twilioは486 Busy SIPレスポンスコードを返し、通話を拒否します。<Reject reason=”rejected”>をアプリケーションが返した場合, Twilioは 603 Rejected SIP レスポンスコードを返し通話を拒否します。

SIPヘッダーをTwiMLをアプリケーションに渡す

リモートSIPアプリケーションとより良く統合するため、TwilioのSIP接続はinitial INVITEのヘッダーを読み、アプリケーションに渡すことができます。Twilioは”X”から始まるヘッダーを読み、SipHeader_X-headername=headervalue のフォーマットでTwiML HTTPコールバックに渡すことができます。通話とともに行いたいことを追加で記述することができます。

ヘルプが必要ですか?

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