Liberty での Session Initiation Protocol (SIP) の管理

server.xml ファイルにエレメントを追加し構成することにより、Liberty で SIP を構成することができます。

始める前に

sipServlet-1.1 フィーチャーを Liberty サーバーにインストールします。詳しくは、Liberty フィーチャーの追加および削除を参照してください。

このタスクについて

このタスクでは、server.xml ファイル内に、SIP を Liberty 用に手動で構成する方法について説明します。あるいは、server.xml ファイル内のすべての構成を自動的に使用可能にする開発者ツールを使用して SIP を構成することもできます。詳細情報については、WebSphere® Developer Tools >「開発」>「SIP アプリケーションの開発」を参照してください。

Liberty での SIP の構成に使用できるエレメントおよび属性について詳しくは、SIP Servlet の資料を参照してください。

手順

  1. server.xml ファイル内で、sipContainer エレメントを追加して SIP コンテナーを構成します。

    属性およびそれらの説明の完全リストについては、『sipContainer エレメント』を参照してください。

    <sipContainer invalidateSessionOnShutdown="true" msgArrivalTimeAttr="true" markInternalResponse="true"></sipContainer>
  2. sipStack エレメントを追加して SIP スタックを構成します。 自動応答、メッセージ情報、および接続の再使用などの動作を構成することができます。

    属性およびそれらの説明の完全リストについては、『sipStack エレメント』を参照してください。

    <sipStack hideMessageBody="true" hideMessageReqUri="true"
        auto100OnInvite="false" auto482OnMergedRequests="true"
        forceConnectionReuse="false" acceptNonUtf8Bytes="true"
        pathMtu="1600" compactHeaders="API">
        <commaSeparatedHeaders>Comma separated headers</commaSeparatedHeaders>
        <hideMessageHeaders>iup</hideMessageHeaders>
        <sipQuotedParameters>Require</sipQuotedParameters>
    </sipStack>
    SIP タイマーは、セッション有効期限のメカニズムを提供します。sipStack エレメントにタイマー属性を指定することにより、RFC 3261 に指定されているデフォルト値とは異なる SIP タイマーの値を設定できます。
    <sipStack timerT1="500" timerT2="4000" timerT4="5000" timerA="500" timerB="32000" timerD="32000"
    timerE="500" timerF="32000" timerG="500" timerH="32000" timerI="5000" timerJ="32000" timerK="5000"></sipStack>
  3. sipApplicationRouter エレメントを追加して、SIP アプリケーション・ルーターを構成します。 SIP アプリケーション・ルーターを構成する場合、デフォルト・アプリケーション・ルーター (DAR) を使用するか、カスタム・アプリケーション・ルーターを作成できます。DAR コンポーネントは、Java™ プロパティー・ファイルとしてモデル化されている構成テキスト・ファイルを使用して、アプリケーション・ルーターが SIP 要求をアプリケーションに送信する順序を定義します。

    アプリケーション・ルーターを構成せず、手動でアプリケーションをデプロイしている場合、アプリケーションは、それらのアプリケーションがデプロイされた順序でトリガーされます。server.xml ファイルを使用して複数のアプリケーションをデプロイする場合、アプリケーションの順序は定義できません。

    • DAR コンポーネントを DAR 構成ファイルと共に使用する場合、sipApplicationRouter エレメントの sipDarConfiguration 属性に DAR .properties ファイルのロケーションを指定します。
      <sipApplicationRouter sipDarConfiguration="pathToDar.properties"></sipApplicationRouter>
    • カスタム・アプリケーション・ルーターを使用するには、以下のように server.xml ファイルにルーターを構成します。
      1. bells-1.0 フィーチャーを server.xml ファイルに追加します。
        <featureManager>
             <feature>bells-1.0</feature>
        </featureManager>
        詳細情報については、bells-1.0 の資料を参照してください。
      2. server.xml ファイルに、共有ライブラリーとしてカスタム・アプリケーション・ルーターの JAR ファイルを追加し、javax.servlet.sip.ar.spi.SipApplicationRouterProvider サービスの bell 構成を追加します。
        <library id="carLib" name="carLib" description="Custom App Router Library">
             <file name="pathToJar.jar"></file>
        </library>
        <bell libraryRef="carLib">
        	<service>javax.servlet.sip.ar.spi.SipApplicationRouterProvider</service>
        </bell>
        共有ライブラリーについて詳しくは、共有ライブラリーを参照してください
      3. sipApplicationRouter エレメントで carProvider 属性を、カスタム・アプリケーション・ルーターのプロバイダー・クラスのフルネームに設定します。
        <sipApplicationRouter carProvider="example.example"></sipApplicationRouter>
    sipNoRouteErrorCode 属性を sipApplicationRouter エレメントに追加することにより、着信する初期要求にマップできるアクティブ・サーブレットがない場合に SIP コンテナーが送信するエラー応答コードを指定できます。
    <sipApplicationRouter carProvider="example.example" sipNoRouteErrorCode="403"></sipApplicationRouter>

    属性およびそれらの説明の完全リストについては、『sipApplicationRouter エレメント』を参照してください。

  4. sipEndpoint エレメントを追加して SIP エンドポイントを構成します。 カスタムのポート、ホスト、およびバインディング動作を構成できます。構成した SIP エンドポイントは、デフォルト・エンドポイントをオーバーライドします。

    属性およびそれらの説明の完全リストについては、『sipEndpoint エレメント』を参照してください。

    <sipEndpoint host="localhost" sipTCPPort="5060" bindRetries="60" bindRetriesDelay="5000"></sipEndpoint>
    注: Transport Layer Security (TLS) はデフォルトで使用不可になっています。SIP コンテナーで TLS を使用可能にするには、Liberty サーバーの SSL 通信を使用可能にし構成します。詳しくは、Liberty での SSL 通信の使用可能化を参照してください。
  5. sipTasksDispatcher エレメントを追加して SIP パフォーマンスを構成します。 同時に実行できる SIP タスクの数を構成できます。SIP アプリケーション・タスクは、単一スレッドで、SIP コンテナーで順次実行される一連のアプリケーション・コードです。例えば、SipServlet.doInvite() メソッドまたは SipTimerListener.timeout() メソッドのアプリケーション実装は、これらのメソッドから呼び出されるアプリケーション・コードが、コンテナーによって提供される管理対象 Liberty スレッドで順次実行される場合、それぞれ単一タスクと見なされます。同時 SIP タスクの実際の最大数は、管理対象 Liberty スレッドの最大数によって制限されます。

    属性およびそれらの説明の完全リストについては、『sipTasksDispatcher エレメント』を参照してください。

    <sipContainer>
         <sipTasksDispatcher concurrentContainerTasks="15"/>
    </sipContainer>
  6. ドメイン・ネーム・システム (DNS) の Naming Authority Pointer (NAPTR) レコードを使用して SIP URI を解決したい場合は、ドメイン・リゾルバーを構成します。
    1. domainResolver エレメントを追加し構成します。 このエレメントを構成すると、SIP URI は、DNS を使用して、接続するネクスト・ホップの IP アドレス、ポート、およびトランスポート・プロトコルに解決されます。
      注: SIP は、1 次クライアントで障害が発生した場合にサーバーが応答をバックアップ・クライアントに送信する際の DNS プロシージャーの使用をサポートしていません。

      属性およびそれらの説明の完全リストについては、『domainResolver エレメント』を参照してください。

      <domainResolver dnsAutoResolve="true">
           <dnsServers>dns.server.com</dnsServers>
      </domainResolver>
    2. SIP コンテナーで機能するように DNS サーバーを構成します。 次の例は、DNS サーバー上で RFC 3263 サポートを構成するための、 BIND db ファイルです。
      ; Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
      ; Copyright (C) 2001  Internet Software Consortium.
      ;
      ; Permission to use, copy, modify, and distribute this software for any
      ; purpose with or without fee is hereby granted, provided that the above
      ; copyright notice and this permission notice appear in all copies.
      ;
      ; THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
      ; REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
      ; AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
      ; INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
      ; LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
      ; OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
      ; PERFORMANCE OF THIS SOFTWARE.
      
      ; $Id: include.db,v 1.2.206.1 2004/03/06 10:22:13 marka Exp $
      
      ; Test $INCLUDE current domain name and origin semantics
      
      example.com. 43200 IN SOA ns.example.com. email.example.com. ( 2003032001 10800 3600 604800 86400 )
      ;
      example.com.             43200 IN NS      ns.example.com.
      ;
      ns.example.com.          43200 IN A       10.0.0.20
      sipserver1.example.com.  43200 IN A       10.0.0.21
      sipserver2.example.com.  43200 IN A       10.0.0.22
      sipserver3.example.com.  43200 IN A       10.0.0.23
      ;
      router.example.com.        43200  IN CNAME sipserver3
      ;
      sipserver1.example.com.  43200 IN AAAA    fec0:0:0:0:0:0:0:abcd
      sipserver2.example.com.  43200 IN AAAA    fec0:0:0:0:0:0:0:abba
      ;
      _sip._udp.example.com.   43200 IN SRV 2 0 5060  sipserver1.example.com.
      _sip._udp.example.com.   43200 IN SRV 2 0 5060  sipserver2.example.com.
      _sip._tcp.example.com.   43200 IN SRV 1 4 5060  sipserver1.example.com.
      _sip._tcp.example.com.   43200 IN SRV 1 2 5060  sipserver2.example.com.
      _sips._tcp.example.com.  43200 IN SRV 0 1 5061  sipserver1.example.com.
      _sips._tcp.example.com.  43200 IN SRV 0 0 5061  sipserver2.example.com.
      ;
      example.com. 43200 IN NAPTR 0 0 "s" "SIPS+D2T" "" _sips._tcp.example.com.
      example.com. 43200 IN NAPTR 1 0 "s" "SIP+D2T"  "" _sip._tcp.example.com.
      example.com. 43200 IN NAPTR 2 0 "s" "SIP+D2U"  "" _sip._udp.example.com.
    SIP アプリケーションでの DNS ルックアップの実行については、『Liberty における Session Initiation Protocol (SIP) アプリケーションでの DNS ルックアップの実行』を参照してください。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_sip_adm.html