我们正忙于开发一款应用程序,让用户使用 webRTC 互相通话。目前,音频可以正常工作,但视频不能。现在我听说代理服务器可以解决这个问题。但这似乎有点不合逻辑,因为在 sip 服务器 Asterisk 之前放置代理服务器有什么好处?为什么视频流应该使用代理,而没有代理就不能?
在 Asterisk 之前,我听说过 kamailio 可以作为代理、注册服务器。但我找不到有关其优点以及视频流为何流动的任何信息。
我希望有人能给我指明方向来解决这个问题。
提前致谢。
答案1
自几周前询问以来,您还没有发布任何补充详细信息,因此我会尽力回答(并建议关闭该问题):
安全:如果您的目标是保护 Asterisk 服务器,那么代理服务器/kamailio 不是答案。请参阅星号安全了解有关如何执行此操作的详细信息。
网络:如果您的问题是 NAT 穿越,那么 SBC/Proxy 可以提供帮助 - 但并非总是必要的。Asterisk 在发布本地子网外的数据包中的外部 IP 方面非常灵活。请参阅NAT 遍历了解有关如何执行此操作的详细信息。
高可用性:如果您的目标是在 Asterisk 发生故障时添加代理来重定向流量,那么代理并不是一个好选择。(除非您不需要任何会话粘性或同步等,否则负载平衡也不是一个好选择)。请参阅高可用性了解有关如何执行此操作的详细信息。
答案2
纯 SIP 代理允许您操纵所有 SIP 消息,这为您提供了很大的灵活性,并帮助您处理 NAT 问题、故障转移和其他使用 Asterisk 不易实现的功能。Asterisk 是一款功能齐全的出色 PBX,但没有提供许多处理 SIP 消息的选项(这是设计使然,因为它被设计为 PBX,而不是 SIP 代理)。
答案3
Kamailio 肯定不会解决视频问题,但它可以从 Asterisk 中卸载一些 SIP 处理,并增加安全性。它还允许将多个媒体服务器放置在一个 Kamailio 服务器后面,从而实现负载平衡和故障转移。
我看到某处说最近的 Chrome 更新破坏了与 FreeSWITCH 中 WebRTC 实现的兼容性,因此 Asterisk 可能也受到了影响。此外,只有 Asterisk 版本 12 支持视频。
我实际上建议看一下 FreeSWITCH 及其 mod_verto 模块。FreeSWITCH 可以完全取代 Asterisk,而且更容易排除故障和集成。