语音和视频通话如何在 Android 中工作?
互联网协议语音 (VoIP)是一种通过互联网进行语音和视频通信的常用技术。这篇 Geeks for Geeks 文章将详细介绍语音和视频通话的函数。我们都在 WhatsApp、Skype、Messenger、Facebook 等服务上使用音频和视频。
从本质上讲,语音和视频通话都取决于我们如何在相互链接的两个客户端之间传输材料。因此,必须有某种东西能够将媒体从一个客户端流式传输到另一个客户端。 WebRTC 是一个免费且开放的项目,它通过简单的 API 向浏览器和移动应用程序提供实时通信 (RTC) 功能。 WebRTC 组件已经过调整以最大程度地适应此函数。但是,还有很多事情必须做,因为仅 WebRTC 不足以进行全面部署。
其他需要考虑的事项是:
- 信令
- STUN 服务器
- 转服务器
信令
究竟什么是信号?
要在两个客户端之间建立呼叫,每个客户端都必须通过交换关键数据、消息和媒体元数据来使对方保持一致。我们通过过度信号来做这些事情。
GeekTip: Signaling may be accomplished via WebSocket.
它只是用来表示这两个客户端想要连接以进行呼叫。
点对点通信
在信令之后,我们必须将两个客户端对等链接。我们需要两个客户端的公共 IP 地址才能加入。因此,我们利用 STUN Server 来获取公共 IP 地址。 STUN Server 用于获取公网 IP 地址。
为什么需要公共 IP 地址?
公共 IP 地址是全球唯一的 Internet 地址。公共 IP 地址只能分配给一台设备。私有 IP 地址不是全球唯一的,可以同时驻留在许多设备上。私有 IP 地址永远不会直接链接到 Internet。具有私有 IP 地址的设备将拥有自己的 IP 空间(例如不同的公司或域)。
NAT(网络地址转换)提供设备的本地 IP 地址,该地址不能公开用于加入对等方。为了使用 WebRTC,我们必须有一个公共 IP 地址。 STUN Server 能够做到这一点。
如果一切正常,我们获取两个客户端的公共 IP 地址,然后通过 WebRTC 链接两个客户端以开始连接。 WebRTC 可以处理任何类型的媒体。
如果我们无法获取两个客户端的公共 IP 地址。然后我们将无法连接点对点。在这种情况下,需要 TURN 服务器。
转服务器
如果点对点失败,TURN 服务器用作连接两个客户端的中介。本质上,它从一个客户端获取数据并将其传输到另一个客户端。所以它的作用是从媒体传递信息。
结果,这两个客户开始相互交谈。其他未连接到媒体的次要数据,例如客户端切断呼叫、设置更改、消息等,通过信令过程传递。下面的想法出现在我们身上。
为什么 WebRTC 不能做信令?
答:为了减少冗余和促进与现有技术的兼容性,WebRTC 标准没有指定信令技术或协议。 WebRTC 的设计考虑了媒体。因此,语音和视频通话函数正常。
结论
Internet 协议语音 (VoIP) 是一种技术,使您能够通过宽带 Internet 连接而不是传统(或模拟)电话线进行语音呼叫。某些 VoIP 服务可能只允许您联系其他 VoIP 用户,而其他服务可能允许您使用电话号码呼叫任何人,包括本地、长途、移动和国际线路。此外,虽然某些 VoIP 服务要求您使用计算机或特定的 VoIP 电话,但其他服务允许您使用连接到 VoIP 适配器的普通电话。