VoWiFi 會因為沒有 IPsec 穿透力而無法啟動的問題

現在人在日本,加上前陣子因為台灣之星的舊 SIM 卡不支援 VoLTE,6/30 要關閉 3G 網路,就找時間去換成台灣大哥大的了,除了 VoLTE 外,台星之前一直不支援 VoWiFi,這次換到台哥大以後也順便可以用了。

換完以後在家裡可以看到會自動跳 VoWiFi 確認可以用,這次到日本剛好可以用他接台灣的電話 (就不用付漫遊費用了),但發現在飯店的網路可以切到 VoWiFi,可是用我自己的分享機 (上面是樂天的 SIM 卡) 卻無法的情況。

翻了維基百科上面「Wi-Fi calling」的說明可以看到用的技術:

The service is dependent on IMS, IPsec, IWLAN and ePDG.

這邊看到 IPsec 就知道不太妙了,這東西在 NAT 上面需要額外「照顧」才會通 (IPsec passthrough),在這種情況下需要 500/udp 與 4500/udp,而透過搜尋引擎查了可以發現有電信商會擋... 大概知道發生什麼事情了 @_@

在南極洲收銀行 OTP 簡訊的方式

看到「SMS Multifactor Authentication in Antarctica」這篇,講在南極洲收銀行 OTP 簡訊的方式 (one-time password,常見的形式是六碼或是七碼數字)。

很明顯的,南極洲沒有什麼電信商可以讓你漫遊 XD

一開始是試著用 Verizon Messages Plus,這個服務可以在電信商直接把簡訊改成 e-mail 寄出來,但作者發現所有的簡訊都會轉送,就是銀行的不會轉送 XDDD

接著是試著用 Google Voice 的號碼,但銀行會判定為 VoIP 電話而不送。

另外的方式是「Wifi Calling」,看起來應該是 VoWiFi 這個台灣更常見的詞,透過 internet 連到電信商的網路掛進去,而不需要透過電信商的基地台。

McMurdo 的網路目前還是有很多不一樣的限制與問題:

At McMurdo, phones have access to a wifi network only for wifi calling and texting, not for general Internet access. It’s just a prototype at this time. It doesn’t work in all cases or in all areas, and for one reason or another it doesn’t work for some people, even if they’ve followed all the steps for enabling wifi calling.

看起來作者遇到的問題是 latency 過高以及頻寬不穩定的問題:

Also, the protocol assumes terrestrial broadband with reasonable latency and bandwidth. At McMurdo, as of this writing, latency to terrestrial locations is in excess of 700 milliseconds. Usable bandwidth for any given end user can vary widely, down to a few dozen kilobits per second.

然後也很難 troubleshooting:

The protocol also doesn’t expose any useful diagnostic info to the end user in order to troubleshoot. You just have to cross your fingers that the magic “wifi calling” icon lights up.

接下來作者嘗試的是 Voice MFA,但不存在這樣的電話號碼可以轉接之類的:

Direct inward dialing to US Antarctic stations isn’t generally available, so you probably can’t configure your cell phone number to forward to a number you can directly answer on-station. (I’m aware of some exceptions to this.)

作者最後提了兩個方法,第一個是想辦法找一個銀行不會擋的虛擬號碼註冊,但這個方法基本上是個貓抓老鼠的遊戲。第二個是作者實做的方法,自己搞 relay,透過 IFTTT 或是其他類似的工具來轉:

轉出來像是這樣:

也許等基礎建設好一點之後,VoWiFi 應該就有機會通?