用于网络会议和文件共享的 SIP/XMPP 有啥区别?
Posted
技术标签:
【中文标题】用于网络会议和文件共享的 SIP/XMPP 有啥区别?【英文标题】:What's the difference between SIP/XMPP for web conferencing and file-sharing?用于网络会议和文件共享的 SIP/XMPP 有什么区别? 【发布时间】:2014-05-07 13:51:06 【问题描述】:我想为我的家人、朋友和我自己设置个人视频会议服务。我对当前选项的主要问题是它们要么是封闭源代码和集中式(GG Hangouts、Skype),要么是开源的,但不能在公司环境或酒店中工作(由于严格的防火墙规则和“Skype 正在通过,如果你想要 VOIP 使用那种“网络管理员反应”。
那么我有两个解决方案。要么设置 STUN/TURN 中继服务器,然后像以前一样使用 XMPP 和 SIP,但这也需要我的朋友进行设置。或者设置一个完整的 VOIP 服务器。我想到了 2 个解决方案:SIP 和 XMPP。尽管据我所知,它们中的每一个最终都使用 (S)RTP/RTCP 协议。
这就是问题所在。从他们两个使用的特定信号部分,我真的无法弄清楚它们之间的区别,它们的典型用例。
【问题讨论】:
我知道 SO 并不是关于具体的软件推荐,但如果您还没有的话,请务必查看 Jitsi,特别是 JitMeet。 【参考方案1】:就设置视频会议系统而言,我认为您是对的,XMPP 和 SIP 是等效的。它们都只是信令协议,并且它们设置的媒体会话通常使用 RTP(尽管它们都可以用于设置您想要的任何类型的会话,但 RTP 是规范)。
最大的问题也将是您提到的关于从公司防火墙中获取视频流的问题。 Skype 通过 SSL 连接发送媒体克服了这个障碍,因此能够通过防火墙。从理论上讲,您可以对 RTP 做同样的事情,过去我曾经使用open*** 与 SIP 客户端的连接来测试一些音频呼叫。我的体验不是很好,因为音频非常不连贯,这可能是由于从一端到另一端获取大量小音频数据包所需的所有额外包装的结果。那是近十年前的事了,不过现在有了更好的 CPU 和带宽资源,它可能会更好地工作。
我个人认为我会坚持使用 Skype,因为设置自己的系统会很麻烦。如果您要继续使用自己的第一个选项,我会尝试将Asterisk 与 open*** 结合使用,这样如果客户端位于防火墙后面或有 NAT 问题,他们可以通过它进行连接。
【讨论】:
以上是关于用于网络会议和文件共享的 SIP/XMPP 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Java 中 给一个object 赋值属性, 既可以用构造函数的方式,也可以用setXXXX()的方式,而它们之间有啥区