J’ai récemment changé pour T-Mobile avec la sortie de l’iPhone 6, mais j’ai rencontré quelques problèmes avec le Wifi Calling.
Les principaux problèmes
- Les appels entrants ne sonnent souvent pas sur le téléphone (testé dans différents scénarios).
- Le téléphone devient notablement chaud lorsque le Wifi Calling est activé.
- Le nom de l’opérateur en haut de l’écran passe souvent de “Tmobile Wifi” à “Tmobile”.
J’ai effectué quelques tests de débogage réseau et j’ai quelques idées sur la raison pour laquelle nous rencontrons ces problèmes, mais aucune solution concrète. Il semble que l’iPhone établisse une connexion VPN (IPSec) avec T-Mobile quelque part dans la plage de réseau 208.54.0.0/16. Cela semble servir à transporter en toute sécurité le trafic d’appel/sms via n’importe quelle connexion que vous utilisez. Voici un extrait partiel de la négociation/authentification :
13:40:53.455370 IP 192.168.1.50.500 > 208.54.73.75.500: isakmp: parent_sa ikev2_init[I]
13:40:53.530091 IP 208.54.73.75.500 > 192.168.1.50.500: isakmp: parent_sa ikev2_init[R]
13:40:53.566009 IP 192.168.1.50.4500 > 208.54.73.75.4500: NONESP-encap: isakmp: child_sa ikev2_auth[I]
13:40:53.978595 IP 208.54.73.75.4500 > 192.168.1.50.4500: NONESP-encap: isakmp: child_sa ikev2_auth[R]
Même lorsque le téléphone est en veille, il reste en contact avec T-Mobile via un paquet de type “isakmp-nat-keep-alive” (UDP) toutes les 20 à 30 secondes environ :
13:43:51.901446 IP 192.168.1.50.4500 > 208.54.73.75.4500: isakmp-nat-keep-alive
13:44:18.494643 IP 192.168.1.50.4500 > 208.54.73.75.4500: isakmp-nat-keep-alive
Malheureusement, à un moment donné (que le téléphone soit en veille ou non), cela se produit :
13:45:31.425096 IP 208.54.73.75.4500 > 192.168.1.50.4500: NONESP-encap: isakmp: parent_sa inf2
13:45:31.427986 IP 192.168.1.50 > 208.54.73.75: ICMP 192.168.1.50 udp port 4500 unreachable, length 36
Il semble que l’iPhone signale que le port 4500 n’est plus accessible, ce qui force la réauthentification du VPN. Le VPN semble être arrêté puis redémarré en boucle, ce qui expliquerait probablement la chaleur excessive du téléphone. Le processus de démarrage de l’encryption semble nécessiter beaucoup de puissance de calcul (supposition).
Malheureusement, lorsque le VPN se retrouve dans cet état, le serveur de T-Mobile semble toujours considérer le téléphone comme connecté et ne tente pas de faire sonner le téléphone via le réseau cellulaire, comme on peut le voir ici :
13:48:58.451378 IP 208.54.73.78.4500 > 192.168.1.50.4500: UDP-encap: ESP(spi=0x06d483b4,seq=0x21), length 132
13:49:01.523505 IP 208.54.73.78.4500 > 192.168.1.50.4500: UDP-encap: ESP(spi=0x06d483b4,seq=0x22), length 132
Dans ce cas, le serveur de T-Mobile essaie de me contacter en retour, mais échoue car l’iPhone n’est plus intéressé par la communication via UDP/4500. Cela me porte à croire que la faute ne revient pas à T-Mobile, mais bien à Apple.
J’ai effectué de nombreux tests de débogage, y compris en forçant les ports d’entrée et de sortie, mais dans tous les cas, l’iPhone finit par envoyer un message ICMP indiquant que le port 4500 est inaccessible. J’ai également changé de routeur pendant les tests et j’utilise actuellement le routeur T-Mobile Cellspot. J’ai également effectué ces tests avec deux iPhone 6 différents.
Tout cela a été très frustrant, mais à partir de là, je suis profondément convaincu que soit 1) T-Mobile et Apple ne sont pas tout à fait synchronisés sur le fonctionnement de ce VPN, soit 2) quelque chose dans l’état de veille d’iOS perturbe la mise en œuvre IPSec en arrière-plan sur le téléphone, soit 3) je n’en ai aucune idée.
S’il vous plaît, Apple, réglez ce problème. La fonctionnalité est géniale, surtout lorsque vous êtes dans une zone avec une couverture réseau médiocre. Mais dans son état actuel, cela vide rapidement la batterie et est tout simplement inutilisable.