【问题标题】:Java gateway for webrtc <--> sip communication用于 webrtc <--> sip 通信的 Java 网关
【发布时间】:2018-08-12 23:57:33
【问题描述】:

我正在为 webrtc 和 sip 之间的兼容性实现一个 java 网关。我已经完成了 sdp 交换部分。但现在我被困在媒体部分。到目前为止,我假设我需要实现 dtls-srtp 握手,然后是加密、解密部分。所以任何人都可以为

推荐任何 java 库
  1. DTLS 握手
  2. SRTP RTP 转换

或执行此操作的特定方法。
编辑:我正在使用 JsSIP 让 webrtc sip 结束。和 Pangolin 用于 sip 客户端。

【问题讨论】:

  • 在你进入 DTLS / SRTP 之前,你首先需要实现(或找到一个库)交互式连接建立,双方试图找到一对(主机、端口)候选者的机制他们可以用来交流。
  • @jeremy:谢谢。你能推荐任何图书馆吗?
  • 我找到了 jstun 库并使用了它。但它无法解析所有属性并抛出异常。现在我正在尝试使用 jna(java 本机访问)来使用 pjnath stun 库。可以给点建议吗?

标签: encryption webrtc sip rtp jssip


【解决方案1】:

我以前做过。查看我的项目 jPhoneLite。它使用 BouncyCastle 作为 DTLS 部分。

https://github.com/pquiring/javaforce/blob/master/src/javaforce/voip/SRTPChannel.java

但我想将它转换为现在包含 DTLS 的 Java9,但我不确定它是否可以工作。

DTLS 实际上并不用于传输任何数据。客户端/服务器连接、协商密钥,然后使用密钥在正常 RTP 通道中对数据进行编码。一旦交换密钥,DTLS 连接就会断开。

请参阅 RFC 5705,其中 DTLS 仅用于获取我的代码支持的密钥。

请参阅 RFC 5764,其中 DTLS “用于”发送/接收实际数据。我的代码目前不支持这种方法。

【讨论】:

  • 感谢您的回答。我对一件事感到困惑。在 DTLS 之前,我需要处理 P2P STUN 请求/响应。这样做的原因和过程是什么?你能帮帮我吗?
  • 仅供参考 - STUN 用于绕过防火墙,使互联网用户几乎不可能直接相互连接
  • 嗨。我已经完成了 jPhoneLite 中使用的 SRTPChannel 中的 DTLS 部分。我已经实现了 DTLS-SRTP 握手部分。但我无法弄清楚使用交换密钥的加密和解密部分。我刚刚在 SRTPChannel 中找到了加密和解密功能。哪个不使用 DTLS 密钥。你能帮我吗,你在哪里实现了SRTPRTP(加密和解密)。
  • 注意:有两个不同的 RFC 与 DTLS 和 SRTP 相关。我已经更新了我的帖子以反映这一点。
猜你喜欢
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多