0

我有一个基于 HTTP 的 java 客户端/服务器应用程序。现在我想添加一些 SIP 功能。服务器只能接受来自经过身份验证的用户的 SIP 消息,但身份验证是基于 HTTP 的。

有没有办法只为通过 HTTP 认证的用户授权 SIP 消息?

容器:JBoss 7 上的 mobicents 2

PS:我使用声明性安全性,因此容器必须知道用户身份。

更新

我需要的是一种身份验证跟踪系统,类似于 sip 消息的 cookie:添加到每个 sip 消息中的令牌,通知容器我已经通过 HTTP 进行了身份验证。

一种方法可能是通过自定义 SIP 标头传递令牌,而不是使用@SipApplicationKey加入 SipApplicationSession。在这种情况下,问题是我无法从 HttpSession 生成密钥。此外,我不确定加入 SipApplicationSession 是否能解决问题,因为 jsr289 表示 SipApplicationSession 可以有多个 HttpSession,因此可能有多个经过身份验证的用户。

4

1 回答 1

0

SipApplicationSession用于加入两个(或更多)SipSession以创建背靠背 UA。

我需要做类似的事情,我正在努力以这种方式实现它。最大的问题是如何将 aSipSession与 a关联起来HttpSession。如果你已经这样做了,你可以简单地SipSession从关联的HttpSession.

为此,我将在 SIP 消息中发送一个额外的标头,我们称之为它SESSIONID,值将是 `httpSession.getId()'。然后在处理 SIP 消息时,您可以扫描 HTTP 会话并将 SIP 会话与具有相应 id 的会话相关联。

于 2014-12-23T11:34:09.323 回答