マルチホーム・ホスティングの構成

SIP コンテナーは、 アウトバウンド・インターフェースのリストを SIP プロキシーから受け入れて、 任意の SIP アプリケーションに公開できます。

始める前に

マルチホーム・ホスティングは、マルチホーム環境のセットアップ後に WebSphere® SIP プロキシーで構成されます。 マルチホーム・トポロジーには、複数のネットワーク (ルーター、スイッチなど)、 複数のロード・バランサー (仮想 IP ごとに複数のプロキシー・サーバーを構成する必要がある場合)、 および使用可能なプロキシー・サーバーごとの複数のネットワーク・カードのセットアップが含まれる場合があります。 ネットワーク・カードをインストールし、ループバック・アドレスを構成した後、使用可能な各ネットワーク・インターフェースについて SIP プロキシーごとに別々の SIP プロキシー・チャネル・チェーンをセットアップします。
重要: 複数のインターフェースをサポートするには、SIP プロキシー・サーバーの構成のみを行うことができます。SIP コンテナーはこの機能をサポートしません。

このタスクについて

マルチホームによって、 単一のアプリケーションで、異なるネットワーク上のさまざまなユーザー・エージェント・クライアント (UAC) および ユーザー・エージェント・サーバー (UAS) と通信することができます。

アプリケーションは、 SIP コンテナーを照会し、JSR 289 で定義された標準手順を使用して、使用可能なアウトバウンド・インターフェースのリストを判断します。 これは、(使用可能なすべての SIP プロキシーとのプロトコル交換を通じて) コンテナー内に保持されるコンテキスト属性を通じて行われます。この属性は javax.servlet.sip.SipServlet.OUTBOUND_INTERFACES であり、 javax.servlet.sip.outboundInterfaces となるように定義されます。この属性には、使用可能なすべてのインターフェースが含まれます。 「例」セクションのサンプル・コードで、 アプリケーションからこの属性にアクセスする方法を示します。

各 SIP プロキシーにインターフェースを構成した後で、手順で示したステップを実行して、アウトバウンド・メッセージのルーティングを制御します。 複数のプロキシーを使用する場合は、各プロキシーを同じ構成にすることが重要です。

アプリケーションがアウトバウンド要求を送信するために使用するインターフェースを指定しないと、デフォルトのインターフェースがプロキシーによって使用されます。 どのプロトコルの場合にもデフォルトのインターフェースを設定することをお勧めします。 詳しくは、ステップ 5 を参照してください。

オプションで、 管理者は、チェーン名を定義する 3 つの SIP プロキシーのカスタム・プロパティーを設定できます。 この名前によって、SIP アプリケーションが setOutboundInterface メソッドを呼び出さない場合に使用される、 適切なインターフェースを定義します。これらのカスタム・プロパティーを設定せず、setOutboundInterface メソッドを使用しない場合、アウトバウンド要求に使用されるインターフェースを明確に決定できません。

以下の手順は、複数のネットワーク・インターフェースによるマルチホーム・ホスティングのための単一プロキシー・セットアップを含むトポロジーに適用されます。

手順

  1. 管理コンソールで、「サーバー」>「サーバー・タイプ」と展開し、「WebSphere プロキシー・サーバー」>「proxy_nameとクリックします。
  2. プロキシー設定」で、「SIP プロキシー・サーバー設定」を展開し、「SIP プロキシー・サーバー・トランスポート」をクリックします。
  3. 「トランスポート・チェーン」パネルで、アスタリスク (*) を使用しているプロキシー・ホスト名が含まれている既存のトランスポート・チェーン (複数の場合もある) を削除します。
  4. 新しいトランスポート・チェーン名を追加し、チェーンの構成で使用が指示されているインターフェースに関連付けられた IP アドレスまたはホスト名を指定します。 プロキシー・マルチホーム構成では、各プロキシー・インターフェースごとにトランスポートを構成する必要があります。 プロキシー・サーバーをロード・バランサーと一緒に使用するときは、SIP トラフィックに望ましいトランスポート・タイプの他に TCP のトランスポートも存在するようにしてください。 例えば、あるプロキシー・サーバーが 2 つのインターフェースを使用しているときは、少なくとも 6 つのプロキシー・トランスポート・チェーンが必要です。 各プロキシー・インターフェースは、ロード・バランサー・クラスター別名 IP アドレスを使用して構成される UDP トランスポート・チェーン (2)、TCP トランスポート・チェーン (2)、および SIP トラフィックを実行するために望ましいプロトコル (UDP、TLS、その他) の特定トランスポート・チェーン (2) を持つことになります。
    1. 「トランスポート・チェーン」パネルで、「新規」をクリックします。 「Create New Transport Chain」ウィザードが初期化されます。 トランスポート・チェーン作成プロセスで、固有のトランスポート・チェーン名を追加し、トランスポート・チェーン・テンプレート・メニューからプロキシー・プロトコル・テンプレート (UDP、TCP、または Secure) を選択します。
    2. 次へ」をクリックします。
    3. 既存のポートの使用」または「新規ポートの作成」オプションを選択します。 新しいポートの場合は、ポート名、ホスト名、およびポート番号を指定してください。 「ホスト」値には、IP アドレスまたは特定のホスト名を指定してください。 「ホスト」値にはアスタリスク (*) を使用しないようにしてください。
    4. 次へ」をクリックします (ステップ 2 の場合)。
    5. アクションの要約を検討し、「 終了」をクリックします (ステップ 3 の場合)。
    6. 「保存」をクリックします。そうすると、行った変更がマスター構成に保存され、必要な場合はノードと再同期されます。
  5. プロキシー・サーバーで使用するデフォルトのチェーン名を指定します。 「SIP プロキシー設定」パネルで、各プロトコルごとに適切なデフォルト・インターフェースを指定するようにカスタム・プロパティーをセットアップすることができます。 これらのインターフェースは、アプリケーションが使用するインターフェースを指定していないとき、アウトバウンド要求を送信するために使用されます。
    1. 管理コンソールで、「サーバー」>「サーバー・タイプ」と展開し、「WebSphere プロキシー・サーバー」>「proxy_nameとクリックします。
    2. 「プロキシー設定」で、「SIP プロキシー・サーバー設定」を展開し、「SIP プロキシー設定」>「カスタム・プロパティー」とクリックします。
    3. SIP プロキシー設定のトランスポート・セクションを構成するためにステップ 4 で既に構成されている適切なチェーン名 (インターフェースやホスト名以外) を入力します。 トランスポート・タイプごとに 1 つのカスタム・プロパティーがあります。
    カスタム・プロパティー名 説明
    defaultUDPChainName setOutboundInterface が呼び出されないときに使用されるデフォルトの UDP チェーン名。
    defaultTCPChainName setOutboundInterface が呼び出されないときに使用されるデフォルトの TCP チェーン名。
    defaultTLSChainName setOutboundInterface が呼び出されないときに使用されるデフォルトの TLS チェーン名。
  6. プロキシー・サーバーをリサイクルします。

タスクの結果

アプリケーションが複数のアウトバウンド・インターフェースを通じて アウトバウンド SIP 要求をルーティングできるようにする、 SIP マルチホーム・ホスティングを正常に構成しました。

以下のサンプル・コードでは、 使用可能なアウトバウンド・インターフェースを獲得して、 セッション・オブジェクトに適切なアウトバウンド・インターフェースを設定する方法を示します。
....
import javax.servlet.sip.SipServlet;
import javax.servlet.sip.SipSession;
....

protected void doInvite(SipServletRequest req1) throws ServletException, IOException
{
	...
		//	This block of code handles setting of the outbound interface.
        		SipSession sipSession = req1.getSession();
		javax.servlet.ServletContext  context = getServletContext();
		java.util.List list = (java.util.List)context.getAttribute(javax.servlet.sip.SipServlet.
OUTBOUND_INTERFACES);
		SipURI uri = getProtocolInterface ("udp", list);

	if (uri != null)
	{
				InetSocketAddress inetSocketAddr = new InetSocketAddress(uri.getHost(), uri.getPort());
				sipSession .setOutboundInterface(inetSocketAddr);
	}
	...
}

// This method simply pulls out the first interface in the list for the specified protocol
private SipURI getProtocolInterface(String transport, List outboundInterfaceList)
{
		SipURI uri = null;
		Iterator iterator = outboundInterfaceList.iterator();
		
	while (iterator.hasNext())
	{
				SipURI tempUri = (SipURI)iterator.next();
			
				if (tempUri.getTransportParam().equals(transport) == true)
		{
						uri = tempUri;
			break;
		}
	}
		
		return (uri);
}

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



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tcea_multihome_cfg
ファイル名:tcea_multihome_cfg.html