二十年前,拨打国际长途需要购买预付费卡并刮开密码。如今,同样的通话只需在浏览器标签页中发起即可。无需SIM卡,无需安装任何软件,也无需座机。这项技术背后的 WebRTC 技术已在各大主流浏览器中运行十余年,但大多数日常用户却从未听说过它的名字。
那么,从点击“呼叫”到另一个大洲的电话响起,这短短三秒钟内发生了什么?

三个系统,一次通话
浏览器与手机之间的通话需要三个独立的系统协同工作。
首先是 WebRTC 本身,它是一项开源的 W3C 标准,内置于 Chrome、Firefox、Safari 和 Edge 浏览器中。它可以从麦克风获取音频,消除回声,过滤背景噪音,并压缩和加密音频流。所有这些功能都是原生运行的,无需插件。
第二个是SIP,即信令协议。SIP本身并不承载任何语音。它的作用是协商:建立会话、协商编解码器、并在通话结束后断开连接。它就像一个调度员,而不是一辆卡车。
第三个是公共交换电话网络(PSTN),也就是传统的电话网络,世界上所有的手机和固定电话号码实际上都存在于此。无论互联网端发生什么,最终呼叫都必须经过这里。
你的声音所走的路径
音频首先经过 Opus 编解码器处理。传统网络仍然依赖 G.711,这是一种于 1972 年标准化的编解码器,仅限于窄带语音。Opus 可以实时调整:连接允许时,以 48 kHz 采样率提供全频音频;连接不允许时,则降低比特率。降低音质总比掉线好。
在 WebRTC 中,加密并非可选项;规范要求必须使用加密。DTLS 握手会交换密钥,然后 SRTP 对语音数据包进行加密。在浏览器和 VoIP 提供商之间,数据流会受到严密保护,防止传输过程中被拦截。
接下来才是真正棘手的部分:路由。大多数设备都位于NAT之后,对公共互联网来说是不可见的。WebRTC利用ICE协议来解决这个问题。STUN服务器允许设备发现其外部地址,当没有直接路径时(通常是企业网络),流量会通过TURN服务器进行中继。维护TURN基础设施的可靠性是一项枯燥乏味的工作,但正是它区分了可以随时随地连接的呼叫服务和那些在办公室防火墙后就无法连接的呼叫服务。
最后一跳是媒体网关,也就是互联网与电话网络的交汇点。Opus 数据包被转码为 G.711 编码,IP 数据包转换成电话信号,然后由目的地国家的本地运营商进行呼叫。整个过程通常需要一到三秒。
为什么一个国家是 0.02 美元,而对另一个国家却是 0.80 美元?
距离几乎与价格无关。服务提供商逐个国家地从当地运营商批发购买终端线路,每个市场都自行设定条款:竞争程度、政府对国际来电收取的费用、号码是移动电话还是固定电话等等。正因如此,不同的服务商拨打美国电话的费用约为每分钟 0.02 美元,而拨打小岛国或卫星电话的费用则要高出许多倍。
线路的差异不仅体现在价格上,还体现在质量上。优质线路能够正确显示来电号码,并保持稳定的延迟。经济型线路虽然价格更低,但接听者屏幕上可能会显示“未知号码”。当通话的目的是让家人接听时,这种质量上的差异远比节省的几分钱重要得多。
无人注意的部分
浏览器通话真正消除的是摩擦:应用商店、下载、设备要求。身在柏林的人可以用图书馆的电脑拨打马尼拉的座机。WebRTC 早在 2021 年就成为了 W3C 的正式推荐标准,自那以后,浏览器悄然转型为一部功能齐全的电话,而这一切甚至无人提及。
下次当网页请求麦克风访问权限,而远方的电话铃声响起时,这其实是开放网络标准、NAT穿透技巧和媒体网关将数十年的电信历史压缩到三秒钟内实现的。你本不应该察觉到。这就是关键所在。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/webrtc/68022.html