Cuando está en una VPN (como el Acceso Privado a Internet) la Continuidad y el Traspaso dejan de funcionar. Algunas VPN, como PIA, tienen una función para excluir ciertas direcciones IP, redes o ejecutables de la VPN. Para que la continuidad funcione para realizar y recibir llamadas con mi iPhone, es necesario excluir un ejecutable. ¿Qué ejecutable debe ser excluido?
Respuesta
¿Demasiados anuncios?Al excluir el ejecutable \usr\sbin\mDNSResponder
ejecutable y reiniciando o matando el proceso existente, Continuity funciona correctamente para hacer y recibir llamadas telefónicas usando un iPhone. Esto significa que los usuarios de VPN pueden excluir ese proceso y seguir obteniendo la funcionalidad de Continuity si lo desean.
Hay que tener en cuenta que al excluir ese ejecutable estarían exponiendo su tráfico de red a la red sin la protección de la VPN. Por lo tanto, si en una red insegura podría ser posible para el proveedor de la red ver lo que el usuario está haciendo (aunque el tráfico de llamadas real está cifrado, IIRC).
Diferentes VPN's tienen diferentes mecanismos, sé que funciona para PIA para excluir el ejecutable pero no estoy familiarizado con todos los paquetes VPN. La interfaz de usuario de la aplicación PIA no permite excluir sólo los ejecutables, pero es posible. Tirando de este post en el foro de PIA hay que instalar un paquete llamado jq
usando Homebrew.
Una vez instalado, se puede excluir a través de:
piactl -u applysettings '{"splitTunnelRules":'"$(cat /Library/Preferences/com.privateinternetaccess.vpn/settings.json | jq '.splitTunnelRules + [{"linkTarget":"","mode":"exclude","path":"/usr/sbin/mDNSResponder"}]' -c)"'}'
La aplicación FaceTime también debe ser excluida, pero eso se puede hacer a través de la interfaz de usuario de PIA sin ningún problema.
El cambio es persistente y sobrevive a un reinicio. Antes de que los cambios funcionen una persona tendrá que reiniciar o matar el proceso de mDNSResponder para forzarlo a recargar. Otros servicios ofrecen Split Tunnel también para excluir ciertas aplicaciones, pero como dije no sé cómo hacer que funcione para nada más que PIA. Excluir el ejecutable debería funcionar, siempre y cuando haya una forma de hacerlo.
Como complemento, también he descubierto que necesito excluir /System/Library/PrivateFrameworks/IDS.framework/identityservicesd.app
así como /usr/libexec/avconferenced
de la VPN para que la conexión sea fiable cuando se utiliza la llamada WiFi. Parece que el sistema establece una VPN propia utilizando identityservicesd
y aunque no pude ver ninguna actividad en la red desde avconferenced
el sistema se puso muy escabroso para establecer una llamada telefónica hasta que lo excluí. No sé por qué.