SIP和Java,从哪里开始,用什么?

2022-09-03 14:10:12

我想在java中实现SIP协议,并希望能够创建不同的客户端(5个或更多)并使它们连接到代理服务器。这一切都是为了测试目的,所以我希望能够很好地看到在相当低的水平上发生了什么。
客户端应该首先能够通过低速文本进行通信,然后也可以通过音频进行通信。(如果我能走那么远)

我已经阅读了一些关于JAIN库的信息,我从中了解到它们并不适合服务器端?我也没有真正找到任何代理服务器示例,教程,使用JAIN。
我还找到了这本SIP Servlet Tutorial书,我过去使用过HTTP servlet,但我应该更喜欢servlets还是JAIN或...?

我对SIP很陌生,所以我真的不知道从哪里开始,或者选择什么与java结合使用。


答案 1

如果目的是将SIP堆栈合并到生产应用程序中,那么我对您的建议是尽一切努力避免从头开始编写自己的堆栈。可以毫不夸张地说,您需要花费数年时间才能使您的堆栈与所有不同的SIP设备和服务器一起平稳运行。如果你有一个非常狭窄的集成需求,那么也许你可以更快地做到这一点,但这仍然是一项艰巨的任务。

以下是可用 SIP 堆栈的良好列表。另一方面,如果您决定通过查看SIP RFC列表来实现自己的开始。RFC 3261是核心协议规范,但它已被许多其他RFC更新,因此您需要仅为核心SIP功能实现至少六个。之后,如果您想支持传输,状态,消息等待等内容,那么实现的RFC甚至更多。这是SIP堆栈的列表。


答案 2

Sip Servlets平台将帮助您构建融合应用程序,即HTTP和SIP应用程序。Sip 最终用户设备将与 Sip Servlet 应用程序进行交互。例如,Sip Servlet应用程序可以是B2BUA或SIP代理。

我建议你试试Mobicents Sip Servlet,它是一个完整的Sip Servlet平台,位于Java Servlet之上,通过了JSR289规范认证,并使用Jain Sip进行SIP Stack。

该项目有一个活跃的社区,您将找到有用的示例来开始。

通过选择一个平台来开始,您可以专注于业务逻辑,而不必弄乱


推荐