在 Liberty 上接收会话启动协议 (SIP) 中的不匹配消息

使用 UnmatchedMessageListener API 接收 SIP 容器无法处理的入局会话启动协议 (SIP) 请求或响应消息。

开始之前

server.xml 文件中,安装并配置 sipServlet-1.1 功能部件。有关更多信息,请参阅在 Liberty 上管理会话启动协议 (SIP)

关于此任务

SIP 容器提供接口以允许应用程序接收无法与任何现有对话匹配的所有入局请求或响应消息。与现有对话不匹配的所有请求或响应消息称为不匹配消息。

不匹配请求具有 ToFrom 标记的请求,但在 SIP 容器中找不到相关对话,因为从未创建此对话或此对话处于失效状态。如果 SIP 容器接收到入局不匹配请求,那么该容器的响应为 481 Call/Transaction Does Not Exist,然后将此入局请求转发至侦听器类。入局请求将作为 UnmatchedRequestEvent 事件的一部分进行转发,此事件是在 com.ibm.websphere.sip.unmatchedMessages.events 包中定义的。此事件包含接口以获取入局不匹配请求及与接收此事件的应用程序相关的 ServletContext。此应用程序可使用 ServletContext 以创建新的 SIP 活动。侦听器无法为所接收不匹配请求创建响应或代理此请求。如果发生此情况,那么 SIP 容器中将出现 IllegalStateException 异常。

不匹配响应是在 SIP 容器中接收的,但与任何出局请求不匹配。SIP 容器废弃不匹配响应前,不匹配响应将作为 UnmatchedResponseEvent 事件的一部分发送至 UnmatchedMessageListener 侦听器。与不匹配请求一样,此应用程序访问不匹配响应及相关应用程序 ServletContext。

如果应用程序有多个已定义 UnmatchedMessageListener 侦听器,那么每个侦听器以相互独立的方式启动。如果单个应用程序服务器上有多个应用程序并且多个应用程序具有 UnmatchedMessageListener 侦听器,那么所有侦听器以随机顺序启动。如果一个应用程序向同一服务器上的另一应用程序发送请求(作为应用程序组合的一部分),那么 SIP 容器确定此请求是其无法处理的请求,然后该服务器上的所有 UnmatchedMessageListener 侦听器将激活。

UnmatchedMessageListener API 是在 com.ibm.websphere.sip.unmatchedMessages 包中的 com.ibm.websphere.appserver.api.sipServlet 文件内定义的。

过程

可在应用程序代码中使用下列其中一个方法来访问 UnmatchedMessageListener API:


用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_sip_unmatchedmsg_api
文件名:twlp_sip_unmatchedmsg_api.html