开发背靠背 (B2B) 应用程序

可以使用 javax.servlet.sip.B2buaHelper 接口来开发背靠背用户代理 (B2BUA) 应用程序。

开始之前

阅读 JSR289 规范的第 12 节,它提供有关 B2BUA 操作的详细信息。SIP Servlet 1.1 规范定义帮助程序类 javax.servlet.sip.B2buaHelper 以创建 B2BUA 应用程序。有关更多信息,请参阅有关 B2buaHelper 方法的文档。

关于此任务

B2BUA 是一个会话启动协议 (SIP) 应用程序,它包含在 SIP 调用中,用于转发两个或更多 SIP 对话之间的请求和响应。典型 B2BUA 应用程序管理两个用户代理之间的 SIP 会话。但是,B2BUA 应用程序还可处理更复杂的场景,在这些场景中,它需要管理来自下游派生的不同分支的响应。请求拆分为不同分支及消息从用户代理客户机转发至用户代理服务器时,发生下游派生。B2buaHelper 类包含用于创建这类 B2BUA 应用程序的所有必需方法。B2buaHelper 类的行为及用于创建新请求的规则是在 JSR289 规范第 12.2 节中定义的。可使用 B2buaHelper 类函数来链接 SIP 背靠背用户代理呼叫的两个分支:入局呼叫分支和出局呼叫分支。

过程

  1. 通过调用 SipServletRequest.getB2buaHelper() 方法来检索 B2buaHelper 实例。
  2. 检索此实例后,可通过调用 B2buaHelper.createRequest() 来创建新的 SIP 请求。
    private void doInvite(SipServletRequest req) {
    	B2buaHelper b2buaHelper = req.getB2buaHelper();
    	SipServletRequest newRequest = b2buaHelper.createRequest(req, true, headerMap);
    }

    所创建的 newRequest 与在此方法的第一个参数中作为原始请求提供的 SipServletRequest req 完全相同。Boolean 参数指示是否已链接原始请求 reqnewRequestheaderMap 提供要在 newRequest 中覆盖的非系统头的映射。

  3. 确保已链接两个分支。如果调用 createRequest 方法时指定了 false 属性,那么可通过调用以下项以显式链接 SIP 会话:
    B2buaHelper.linkSipSessions(session1, session2)
  4. 链接 SIP 会话和 SIP 请求后,可通过调用以下项来检索所链接会话:
    SipSession linkedSession = B2buaHelper.getLinkedSession(req.getSession());
    注: 在 B2BUA 派生场景中,该应用程序创建多个 SIP 请求,所以不会链接所有 SIP 会话。必须显式链接这些会话。
  5. 从用户代理服务器 (UAS) 接收响应后,创建针对其分支的响应。进行检查以确定响应上是否存在所链接会话,如果存在,请使用所链接请求创建针对用户代理客户机 (UAC) 的响应。
    SipServletRequest linked = b2bHelper.getLinkedSipServletRequest(resp.getRequest()); 
    linked.createResponse(resp.getStatus(),resp.getReasonPhrase()).send(); 

    如果没有与响应相关联的所链接会话,那么该应用程序需要调用 B2buaHelper.createResponseToOriginalRequest 并创建新的派生会话,此会话是与原始请求相关联的 SipSession 的副本。

    注: JSR289 规范第 12.5 节提供一种方法以创建针对原始请求的多个成功响应。如果有多个 SipSession 与原始 INVITE 消息相关联,并且需要将多个成功响应发送至 INVITE 消息,请使用 B2buaHelper.createResponseToOriginalRequest 方法。
  6. 如果使用 createResponseToOriginalRequest 方法,请确保已链接两个分支。应用程序负责将新的派生会话链接至其配对会话,以便它可检索所链接会话以发送与其相关的后续响应。

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



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