配置多宿主托管

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

管理员可选择设置三个 SIP 代理定制属性,这些属性用于定义链名,链名定义 SIP 应用程序未调用 setOutboundInterface 方法时要使用的相应接口。如果未设置这些定制属性并且未使用 setOutboundInterface 方法,那么无法最终确定将用于出站请求的接口。

以下过程适用于包含用于带有多个网络接口的多宿主托管的单个代理设置的拓扑。

过程

  1. 在管理控制台中,展开服务器 > 服务器类型,然后单击 WebSphere 代理服务器 > proxy_name
  2. 代理设置下,展开 SIP 代理服务器设置,然后单击 SIP 代理服务器传输
  3. 在“传输链”面板上,删除现有传输链或包含使用星号 (*) 的代理主机名的传输链。
  4. 添加新传输链名称并指定与配置该链使用的接口相关联的 IP 地址或主机名。 代理多宿主配置要求您为每个代理接口配置传输。如果将代理服务器与负载均衡器配合使用,请确保存在用于 TCP 的传输和用于 SIP 流量的期望传输类型。例如,如果代理服务器使用两个接口,那么至少需要六个代理传输链。每个代理接口将具有一个使用负载均衡器集群别名 IP 地址配置的 UDP 传输链 (2)、TCP 传输链 (2) 和用于运行 SIP 流量的期望协议(UDP、TLS 等)的特定传输链 (2)。
    1. 在“传输链”面板上,单击新建 初始化“创建新的传输链”向导。在创建传输链过程中,在“传输链模板”菜单中添加唯一传输链名称并选择代理协议模板(“UDP”、“TCP”或“安全”)。
    2. 单击下一步
    3. 选择使用现有端口创建新端口选项。对于新端口,请提供端口名、主机名和端口号。对于主机值,请指定 IP 地址或特定主机名。不要使用星号 (*) 来表示主机值。
    4. 单击下一步以进至步骤 2。
    5. 查看操作摘要并单击完成以进至步骤 3。
    6. 单击保存以保存对主配置的更改并与节点再同步(如果适用)。
  5. 指定要在代理服务器上使用的缺省链名。 在“SIP 代理设置”面板中,可设置定制属性以对每个协议指定相应缺省接口。这些接口用于在应用程序未指定要使用的接口时发送出站请求。
    1. 在管理控制台中,展开服务器 > 服务器类型,然后单击 WebSphere 代理服务器 > proxy_name
    2. 代理设置下,展开 SIP 代理服务器设置,然后单击 SIP 代理设置 > 定制属性
    3. 输入步骤 4 中先前配置的相应链名(而不是接口或主机名)以配置 SIP 代理设置的传输部分。每个传输类型有一个定制属性。
    定制属性名 描述
    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