SIP Registration

SIP Registrationとは

SIPは検出機能を提供しています。 ユーザーが他のユーザーに通話を発信しようとしたときは、SIPは宛先のユーザーが到達可能なIPアドレスを見つけることが必要です。 SIP RegistrationはSIPエンドポイントがレジストラーにSIP REGISTERを送信するプロセスのことです。 レジストラーはSIPドメインの位置サービスのフロントエンドとして振る舞い、エンドポイントと特定のユーザーとのバインディングを読み書きします。 Programmable Voice SIPドメインはオプションでSIP Registrationをサポートするよう構成されることがあります。 SIPドメインでSIP Registrationオプションをオンにすることでこれを行うことができます。

下記について学ぶ:

SIPエンドポイントをレジストする

エンドポイントを構成時、レジストしたいSIPドメインを、Twilioリージョンを含めたうえで指定することが必要です。

{domain-name}.sip.us1.twilio.com - (North America Virginia)

SIPレジストラーはリージョンごとにデプロイされます。 SIPレジストラーの内容はリージョンごとに共有されません。 レジストするSIPドメインサーバーの指定時、Twilioリージョンを指定することが必要です。

SIP Registrationは北米ヴァージニアの弊社のUS1データセンターのみでサポートされます。

SIPエンドポイントRegistrationの認証

REGISTERリクエストはこのSIPドメインに割り当てられているユーザーのクレデンシャルリストで認証されます。

SIPエンドポイントに構成されているユーザー名はSIPドメインに割り当てられているクレデンシャルリストで記載されているユーザー名と一致していることが必要です。 一部のSIPエンドポイントはこの項目をユーザー名として扱いますが、その他のSIPエンドポイントはこれを認証IDと呼んでいます。

SIPエンドポイントREGISTERの更新間隔

SIPエンドポイントはレジストラーに一定間隔ごとに通知することが必要です。 SIPエンドポイントが更新を行える最大の時間間隔は600秒ごと(10分ごと)です。

制限事項

下記のProgrammable Voice SIP Registrationの制限についてご留意ください。

  • SIPドメインにつき10,000までのアクティブなレジスト
  • アカウントにつき20,000までのアクティブなレジスト
  • Address-of-Record (AOR)ごとに10のエンドポイントのレジスト - 同一のAORに対する11番目のレジストの試行は失敗します。
  • AORごとに毎秒最大5 REGISTERリクエスト

レジスト済みSIPエンドポイントを使用した通話の発信

レジスト済みのエンドポイントからSIP通話を発信するには、レジスト済みのSIPドメインに対してINVITEを送信することが必要です。 それ以外の変更は必要ありません:

{domain-name}.sip.us1.twilio.com

上記の例では、リージョンの指定によって US1 がドメインに追加されたことに注目してください。

レジスト済みエンドポイントからの発信通話はTwilioドメイン上で着信する他のSIP通話と同等に扱われます。 認証が完了すると、SIPドメインに構成されたVoice URLを呼び出します。 詳細については、TwilioへのSIP送信を参照してください。

SIPドメインでのSIPエンドポイントの音声接続をテストする

たとえば、下記のようにSIPドメインのVoice URLを構成して、Twilioとの接続性を検証できます。 これは短いメッセージを読み上げる簡単なアプリケーションです。

http://twimlets.com/message?Message%5B0%5D=Congratulations!%20You%20just%20made%20your%20first%20call%20with%20Twilio%20SIP.

SIPエンドポイントから公衆電話ネットワークに通話を発信するには

この節では、Programmable Voiceを使用してSIPエンドポイントからの通話を公衆電話ネットワークにブリッジするいくつかの異なる方法をご紹介します。

拡張されたTwiML Binテンプレートを使用して公衆電話ネットワーク上の携帯および固定電話に通話を発信する

Twilioには拡張されたTwiML Binテンプレートがあり、親通話レグのSIP INVITEからの FromおよびTo SIP URIIからusernameを取り出して動的なTwiMLレスポンスの組み立てに使用できます。

下記の例では、親通話レグのSIP INVITEs Toフィールドのusernameで子通話レグのToフィールドを組み立てる方法を示しています。

<Response>
    <Dial callerId="+14087998994"&gt{{#e164}}{{To}}{{/e164}}&lt/Dial&gt
&lt/Response&gt

メモ 1: SIPエンドポイントを使用してダイヤルを行う場合、E.164形式を使用する必要があります。 (+14157012311や+441562720212など) Twilio LookupツールはインターナショナルなE.164形式を特定するのに便利です。

メモ 2: callerIdはTwilio Consoleで検証済みの電話番号であることが必要です。 また、日本国内への発信ではTwilio電話番号を使用しない場合、発信者番号が正しく通知されません。

次の例では、もう一歩進んでSIPエンドポイントの発信者に基づいて動的にcallerId(発信者番号)を設定します。 先の例と同様、発信者はE.164形式で、かつTwilio Consoleで検証済みの番号であることが必要です。 ただし日本国内の通話発信では、Twilio電話番号以外を使用すると発信者番号を正しく通知できません。

<Response>
    <Dial callerId="{{#e164}}{{From}}{{/e164}}"&gt{{#e164}}{{To}}{{/e164}}&lt/Dial&gt
&lt/Response&gt

上記のFromフィールドは、SIP INVITEにおけるFromフィールド内にあるSIP URIのusernameに対応しています。 usernameはまた、SIPエンドポイントが自身の認証に使用、Console上のSIP Registrationクレデンシャルリストで構成されていることが必要なusernameに対応しています。

レジスト済みのSIPエンドポイントでの通話の着信

SIPエンドポイントでTwilioからの通話を着信させるには、現在お使いのものと同様のTwiMLまたはREST APIを使用できます。 REST APIおよびTwiMLの詳細については、TwilioからのSIPの受信を参照してください。

相違点はレジスト済みのSIPエンドポイントのAORを使用することのみです。 Programmable VoiceのSIP通話同様、アプリケーションから通話を開始することが必要な点をお含みおきください。

たとえば、Twilio電話番号を購入すると、その番号に電話がかかってきたときにSIPエンドポイントに着信するよう設定できます。

手順:

  1. ご希望の国/市外局番のTwilio電話番号を購入します(日本では市外局番は選択できません)。 電話番号は、SIPドメインの登録を行ったものと同一のアカウント(またはサブアカウント)で用意することが必要です。
  2. 下記のようなTwiML Binを作成します。 太字の部分を変更することが必要です。
    <Response>
        <Dial>
            <Sip>
                yourusername@yoursipdomain.sip.us1.twilio.com
            </Sip>
        </Dial>
    </Response>

メモ: 先のTwiMLの例におけるyourusernameはコンソール内のSIP登録資格一覧で指定されたusernameと一致していることが必要です。

同一のAORに登録された複数のSIPエンドポイントが存在する場合、すべてのデバイスが同時に着信します。 制限についてご参照ください。

お気をつけいただく点

  • TwilioはSIP REFERリクエストをサポートしません。 たとえば、通話中にユーザーが電話機の保留(TRANSFER)ボタンを押した場合、Twilioはこの情報をTwiMLアプリケーションに渡しません。
  • Twilioは標準のSIP Registrationをサポートします。 下記のセクションには、はじめるにあたって役立つサンプル構成ガイドが含まれます。 標準に従って振舞わないSIPエンドポイントがある可能性があり、そのようなエンドポイントはサポートされません。

SIPエンドポイントを構成する

下記の構成ガイドはSIPエンドポイントのTwilioへの接続に役立つよう書かれています。

これらのシステムの多くには、多数のバージョン、バリエーション、アドオン、およびオプションがあるため、直面する設定が当社の設定ガイドの内容と異なる場合があります。そのため、これらのドキュメントは、設定テンプレートというよりは、一般的なガイドラインとして用意されています。ご自身のネットワーク、SIPインフラ、およびそれらの機能の仕方について熟知していることを前提としています。

Twilioはサードパーティーの製品についての直接的なサポートを提供できません: SIPエンドポイントにおけるそのような製品の構成の支援については、製造元に連絡してください。

SIPエンドポイントの設定ガイドを共有し、他のユーザーのためにこのセクションを改善させていただける場合は、お手数ですが、その設定ガイドまたは既存のガイドの修正版を twilio_support@kddi-web.com までお寄せください。

ヘルプが必要ですか?

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