1

我正在研究 Sip Servlet,但有些东西我不清楚。

使用像 mobicents 这样的应用程序服务器,我可以有两种类型的会话:

  1. SipSession:是链接到请求/响应的会话;
  2. SipApplicationSession: 是包装SipSession和(最终)的会话HttpSession。这应该用于在 web 和 sip servlet 之间进行通信。

为什么我们要有第二个?如果我打电话:

getServletContext.setAttribute("something", somethingObject);

这是与两个 servlet 共享的,还是我错了?

ServletContext是将 servlet 包装在应用程序中的东西,因此我们可以跨 servlet 进行通信。

那么我们为什么要使用SipApplicationSession呢?

谢谢回答。

4

1 回答 1

1

您对 SIPSession 和 SIPApplicationSession 背后的概念是正确的。

将 SIPApplicationSession 视为一个维持 N 个 SIP Session 的元会话(如果应用程序是一个融合的 SIP 和 HTTP 并使用它们,则为 HTTPSession)。因此,如果您正在构建 B2BUA(如果您在应用程序中包含 Web,则还可以跨 SIP 会话共享其中的属性),但它总是在时间上受限于 SIP 会话和 HTTP 会话生命周期的上下文。

然而,ServletContext 是在应用程序的生命周期内完全独立于 SIP 调用或 Web 请求的,因此您只想将那些寿命更长的属性放在那里,并且您不想持久化或存储在数据库中。

于 2016-07-21T08:50:24.137 回答