跳转到内容

三种通话方式

nSIM 用一张卡打电话,有三条路:VoWiFi、VoLTE 和模组原生通话。三者都在浏览器里收发声音,区别在于电话从哪里进入运营商的网络。这一页讲清它们的差别,以及为什么同一张卡在不同时刻会走不同的路。

VoWiFi VoLTE 模组原生通话
怎么连到运营商 经互联网连到运营商的 ePDG,即 Wi-Fi 通话的接入网关 经模组驻留的 4G 网络 由模组经 2G/3G 电路域拨打
射频 关着 开着,已驻网 开着,已驻网
谁处理通话 nSIM 在主机上 nSIM 在主机上 模组自己
声音 宽带音质,依编码而定 宽带音质,依编码而定 窄带,经模组的 USB 声卡
在拨号按钮上 「VoWiFi 呼叫」 「VoLTE 呼叫」 「呼叫」
适合 卡在境外,或当地没有这家运营商的信号 卡在本地网络里正常驻网 VoLTE 没就绪时的后备

VoWiFi 和 VoLTE 用的是同一套通话程序,跑在 nSIM 主机上。两者只是连到运营商的通道不同:一条走互联网,一条走模组的 4G 网络。在运营商看来,这和手机用 Wi-Fi 通话、用 4G 通话是一回事。

模组自己也会做 VoLTE,但 nSIM 会把它关掉,改由主机上的程序处理。两边同时注册同一张卡,会互相抢来电。

拨号时你只选「用哪张卡打」。nSIM 看这张卡此刻的状态,自动决定走哪条路,并把结论写在拨号按钮上。顺序是:

  1. 这张卡的 VoWiFi 已就绪,走 VoWiFi。
  2. 否则 VoLTE 已就绪,走 VoLTE。
  3. 否则卡已驻网、模组有可用的声卡,交给模组原生通话。

第 3 条是「可以试,但不保证」。很多地方已经关闭 2G/3G,网络不支持回落时,这通电话会拨不出去。nSIM 不会因此把它判为不可拨。电路域通话不依赖 VoLTE,封死一条可能能用的路,代价比白拨一次大。

VoWiFi 要求射频关着,VoLTE 和模组原生通话要求射频开着并驻网。所以一张卡要么走 VoWiFi,要么走蜂窝网络,不会两者同时可用。走哪边由卡策略决定:打开「飞行模式」并开着「VoWiFi」,就走 VoWiFi;关掉「飞行模式」,就走蜂窝网络。

这也是 VoWiFi 适合境外卡的原因:射频一直关着,卡不在当地驻网,也就不会漫游。

设备「状态」页的就绪进度条,两种方式都分五段,但最后一段不一样:

方式 五段 能打电话的时刻
VoWiFi 「SIM」「接入」「隧道」「IMS」「注册」 「注册」变绿
VoLTE 「SIM」「蜂窝」「承载」「注册」「语音」 「语音」变绿

同一个词「注册」,在 VoWiFi 里是终点,在 VoLTE 里只是倒数第二步。用 API 读状态时也一样。VoWiFi 的阶段名 sms_ready 就是终态,此时语音已经可用,这个名字只是历史遗留。VoLTE 的 registered 则表示语音还没就绪,要等 voice_ready。

不少通话中的功能,要靠 nSIM 在主机上处理通话才做得到。所以:

  • 通话中转接给别的号码,以及会议、视频等高级通话功能,只在 VoWiFi 或 VoLTE 下可用。
  • 模组原生通话的「保持」和按键音,取决于模组是否支持。
  • 这些业务运营商给不给,因运营商、套餐和所在地而异。
  • 都不能拨打紧急电话。 nSIM 一律拒绝拨打紧急号码,这个限制不能关闭。经 VoWiFi 连接时,运营商推断出的位置与你实际所在的地方无关,救援会被派往错误的地点。
  • 都由运营商计费。nSIM 不改变资费。
  • 在浏览器里通话需要 HTTPS。浏览器只在 https:// 或 localhost 下允许网页使用麦克风。