首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Xmpp服务器的VoIP应用程序开发

基于Xmpp服务器的VoIP应用程序开发
EN

Stack Overflow用户
提问于 2016-08-09 08:38:30
回答 1查看 1.3K关注 0票数 0

我想用Xamarin和Xmpp服务器开发一个VoIP应用程序。到目前为止,我发现的唯一东西是服务器端的openfire和"jitsi“,以及客户端的矩阵。但是这个矩阵与语音流无关,它只用于文本消息传递,而"jitsi“没有任何用于.net客户端的sdk。我也找到了red5pro,但这里有客户端sdks,仅用于本地android和ios开发平台,而对Mono则没有任何支持。

那我该找什么呢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 12:49:31

首先,让我们澄清一些基本知识:

  • openfire是一个XMPP服务器。基本上,这是服务器端基本VoIP支持所需的全部内容。替代方案包括埃贾伯德韵律
  • jitsi本质上已经是一个VoIP应用程序了,所以如果你想开发自己的应用程序,你并不需要它。
  • 另一方面,"Jitsi Videobrid“可以用来为视频会议提供中继服务器。对于一个简单的VoIP应用程序的第一步,你也不需要它,但如果你想让你的用户能够创建视频会议与许多参与者,那么这是有帮助的。 (说明:通常,当您创建P2P视频会议时,您有两种选择:首先,所有用户都将视频数据发送给所有参与者(每个人都需要大量带宽),或者您选择一个接收每个参与者端的视频流的参与者(“主机”)将其发送给其他每个参与者。在第二种情况下,普通参与者只需上传一次流并下载n个流,而主机则完成大部分工作--因此只有一个用户需要高带宽。Jitsi可以在服务器上运行并充当会议主机(通常,服务器的带宽比本地用户要好得多),因此没有任何参与者必须充当主机。在简单的VoIP应用程序(没有视频)中,这可能是不必要的,因为音频流通常比视频流小得多。

现在,正如我前面提到的,为了编写一个VoIP应用程序,您基本上只需要一个XMPP服务器(openfire、prosody和ejabberd应该都足以满足这个用例),一个支持静乐的客户端库和用于RTP媒体流的客户端库(传输和显示)。Jingle是XMPP协议扩展的名称,它支持,即P2P数据流的协商,因为VoIP调用需要它们。相关的协议规范:

  • XEP 0166:叮当
  • XEP-0167: Jingle RTP会话

因此,您需要找到一个XMPP库,它支持jingle协议。C#矩阵XMPP (不要与“矩阵协议”混淆,它是一种不同的协议,除了有一个共同的目标之外,与XMPP无关)就是这样一个库的一个例子。根据他们的网站,有支持静乐,但我找不到任何文件。然而,正如我前面提到的,静乐只是关于如何协商数据流,而不是数据流和VoIP本身。因此,这个库可能帮助您解析设置RTP数据流所需的静乐XMPP消息。但是,为了显示和传输RTP流,您需要额外的库。为此,请看以下问题和答案:

我希望我能给你一些有用的提示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38845867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档