移动群组语音聊天服务器
Mobile group voice chat server
对于我的一个爱好项目,我希望实现一个群组语音聊天功能。非常简单:我是 运行 一台服务器,多个客户端(移动设备)可以连接到该服务器。有些客户在同一个 "group" 中,我希望他们有语音聊天功能。
我已经使用 C# 设置了一个客户端可以连接到的 UDP 服务器客户端。我已经成功地通过服务器在客户端之间实现了音频分发,基本功能运行良好。
不过,我不确定我使用这种方法是否朝着正确的方向前进。
例如,我一直坚持混合不同声音的实现(两个人同时说话,另一个人同时听)。我真的不知道如何将两种声音混合在一起并为不同的客户生成不同的输出 - 上面提到的例子:说话的两个人应该只接收另一个人的输入,而不说话的人应该接收另一个人的混合两人在说话。
最好的服务器端结构是什么?我是否应该转向完全不同的方向并与 SIP 合作?我很难在网上找到适合这个问题的资源,我真的被困住了。
感谢您的帮助!
让我建议您在应用程序中使用标准。如果(正如我强烈建议的那样)您的应用程序是 Web 应用程序,WebRTC 会使您的工作变得更加轻松。请参阅WebRTC samples some ideas that I'm sure will inspire you, including multiple peer connections
如果您只对群组通话感兴趣,您可以安装一个 PBX 服务器作为 asterisk,它具有强大的会议功能集。您可以在客户端的 WebRTC 之上使用 SIP 库(例如 sip.js,sipml5)通过 SIP 连接到 asterisk 并获得会议服务。这听起来可能令人生畏,但呼叫会议室的代码可以减少到很少的几行,并且可以轻松地将 Asterisk 安装在真机、虚拟机或 docker 的 linux 盒子中]容器。
如果您更喜欢胖客户端,我建议使用 SIP 库作为 PJSIP(顺便说一句,它是星号的新 SIP 堆栈的基础)。专有解决方案与未来背道而驰,而标准解决方案则受未来推动。
对于我的一个爱好项目,我希望实现一个群组语音聊天功能。非常简单:我是 运行 一台服务器,多个客户端(移动设备)可以连接到该服务器。有些客户在同一个 "group" 中,我希望他们有语音聊天功能。
我已经使用 C# 设置了一个客户端可以连接到的 UDP 服务器客户端。我已经成功地通过服务器在客户端之间实现了音频分发,基本功能运行良好。
不过,我不确定我使用这种方法是否朝着正确的方向前进。 例如,我一直坚持混合不同声音的实现(两个人同时说话,另一个人同时听)。我真的不知道如何将两种声音混合在一起并为不同的客户生成不同的输出 - 上面提到的例子:说话的两个人应该只接收另一个人的输入,而不说话的人应该接收另一个人的混合两人在说话。
最好的服务器端结构是什么?我是否应该转向完全不同的方向并与 SIP 合作?我很难在网上找到适合这个问题的资源,我真的被困住了。
感谢您的帮助!
让我建议您在应用程序中使用标准。如果(正如我强烈建议的那样)您的应用程序是 Web 应用程序,WebRTC 会使您的工作变得更加轻松。请参阅WebRTC samples some ideas that I'm sure will inspire you, including multiple peer connections
如果您只对群组通话感兴趣,您可以安装一个 PBX 服务器作为 asterisk,它具有强大的会议功能集。您可以在客户端的 WebRTC 之上使用 SIP 库(例如 sip.js,sipml5)通过 SIP 连接到 asterisk 并获得会议服务。这听起来可能令人生畏,但呼叫会议室的代码可以减少到很少的几行,并且可以轻松地将 Asterisk 安装在真机、虚拟机或 docker 的 linux 盒子中]容器。
如果您更喜欢胖客户端,我建议使用 SIP 库作为 PJSIP(顺便说一句,它是星号的新 SIP 堆栈的基础)。专有解决方案与未来背道而驰,而标准解决方案则受未来推动。