1

My iPhone and MacbookPro are both connected to the same Wi-Fi network, and logged in to the same iCloud account, etc. When my OpenVPN connection is not active, calling and receiving cellular calls on macOS works fine.

However, when my OpenVPN connection is active, it's more hit-or-miss. Sometimes it'll work fine, but often I'll get 'Call failed' on macOS (EDIT: meaning the call never starts, I just type a number or choose one from my Contacts and click 'Call' or I receive a call and click 'Accept', and then I get the 'Call failed' message). When receiving a call, I even get the FaceTime notification on macOS where I can Accept the call, but clicking it gives me 'Call failed' and my iPhone then declines the call, not even letting me pick it up there after it failed on macOS. Very annoying!

So I'm wondering if there's anything I can do to fix this. I have full control of both my OpenVPN client config and the OpenVPN server, as well as the Wi-Fi network and any other local network configuration (EDIT: to clarify, I am the administrator of my devices and all network equipment up to the ISP's modem, both at home and at work). I just need to know what is causing this, and if possible how to fix it - although I may be able to figure that out myself if I know the cause.

Right now I figure the FaceTime notification on macOS is received from iOS in a different way from the actual call (ie. one might use bluetooth and the other Wi-Fi, or one might use a TCP connection and the other UDP, or something like that). Does anyone have more information on this? EDIT: I'm asking specifically what the traffic between macOS and iOS concerning the cellular call looks like, so I know what to look for.

Full disclosure on all systems involved:

  • iPhone SE running iOS 12.1.2
  • Macbook Pro 15" 2018 running macOS Mojave 10.14.2
  • OpenVPN 2.4.6 configured through Tunnelblick 3.7.8
  • general traffic does NOT go through the VPN, only connections to specific work-related websites and servers are routed through the VPN connection. EDIT: This means macOS has 2 or more gateways when the VPN is active (sometimes there are multiple simultaneous VPN connections running), but the default gateway is always the one from the local network, meaning the same as when there are no VPN connections running.
  • the OpenVPN connection automatically restarts when it is disconnected for any reason. The call failures seem to happen more often after an automatic reconnection.
  • 1
    When connected to the VPN, you're routing all traffic (FaceTime prioritizes through LAN over cellular) through the VPN tunnel. VoIP (aka FaceTime/Messaging) doesn't perform well over high latency connections like a VPN. You need to configure your VPN policy to allow dual gateways (local and VPN) and route facetime traffic through the local gateway – Allan Jan 17 at 13:44
  • As I wrote in my original post, at the bottom: "general traffic does NOT go through the VPN, only connections to specific work-related websites and servers are routed through the VPN connection". AKA my VPN is already configured to allow dual gateways. I'd like to know how to explicitly route FaceTime traffic through the local gateway though, even if it should be routed like that implicitly already. Could you provide more details on how to do that? – jvdmr Jan 18 at 10:00
  • Also, I think you misunderstood my post. I'm talking about voice calls from macOS through iOS over cellular, not cellular data and definitely not FaceTime calls. macOS has the VPN, not iOS. There is nothing for FaceTime to prioritize LAN over cellular for, the voice call goes from macOS over LAN to iOS and then over cellular to my carrier. – jvdmr Jan 18 at 10:39
  • If your calls are jittery only when connected to the VPN, either the traffic is going through the VPN, or your FT traffic isn’t prioritized where your VPN traffic is and consequently the VPN is hogging your bandwidth. This all can be configured but you need to work with your net admin to config everything – Allan Jan 18 at 11:21
  • They're not jittery, they never start, it just shows 'Call failed'. And I am the net admin. I just need to know how to identify FaceTime traffic, in order to prioritize it or route it properly. What protocol does it run on? is it TCP, UDP, something else? What ports? What are the characteristics exactly? I guess I should clarify my original post; I thought it said all that already but apparently it's not being understood the way I meant it... – jvdmr Jan 18 at 14:14

You must log in to answer this question.

Browse other questions tagged .