我们正在忙于开发一个应用程序,让用户使用webRTC打电话给彼此。 在这一刻我们有audio工作,但不是video。 现在我听说代理服务器可以解决这个问题。 但是这似乎有点不合逻辑,因为在SIP服务器Asterisk之前放置代理服务器有什么好处? 为什么video应该使用代理而不是没有代理呢?
我听说kamailio作为代理,在星号前注册服务器。 但是我找不到任何关于好处的信息,以及为什么videostream会stream动。
我希望有人能指出我的方向来解决这个问题。
提前致谢。
你几个星期前还没有发布任何补充细节,所以我会尽力回答(并build议closures的问题):
安全 :如果你的目标是保护你的Asterisk服务器,那么代理服务器/ kamailio不是答案。 有关如何执行此操作的详细信息,请参阅Asterisk安全性 。
networking :如果你的问题是NAT穿越,那么一个SBC /代理可以帮助 – 但并不总是必要的。 Asterisk非常灵活地发布在本地子网外绑定的数据包中的外部IP。 有关如何执行此操作的详细信息,请参阅NAT遍历 。
高可用性 :如果您的目标是添加一个代理来redirectstream量,如果发生Asterisk故障,那么代理不是一个好的select。 (除非你不需要任何会话粘性或同步等,否则负载均衡也是如此)。 请参阅高可用性了解如何执行此操作的详细信息。
一个纯粹的SIP代理让你操纵所有的SIP消息,这为你提供了很多灵活性,并将帮助你处理NAT问题,故障转移和其他function不容易实现与星号。 Asterisk是一个function完善的PBX,但是没有提供很多用于处理SIP消息的选项(这是由于预计是PBX而不是SIP代理)。
Kamailio绝对不会解决video问题,但它可以从Asterisk卸载一些SIP处理,并增加安全性。 此外,它允许将多个媒体服务器放置在一个Kamailio服务器之后,从而实现负载平衡和故障转移。
我发现最近一次Chrome更新已经破坏了FreeSWITCH中WebRTC实现的兼容性,所以可能还会影响到星号。 另外,只有Asterisk 12版本才支持video。
我实际上build议看FreeSWITCH和他们的mod_verto模块。 FreeSWITCH可以完全替代Asterisk,而且更容易排除和整合。