Setup : un tracker GPS 4G acheté pour un projet perso. Je dois lui envoyer une série de SMS de configuration (APN, serveur, intervalle de remontée). Le tracker confirme par LED que le réseau est attaché et le GPS fixé. J’envoie ma première commande SMS depuis Google Messages sur Android, j’attends la réponse « OK » du firmware.
Rien.
Symptôme
- LED jaune (cellulaire) solide → enregistré sur le réseau
- LED bleue (GPS) solide → position acquise
- Mon SMS apparaît « envoyé » dans Google Messages
- Aucune réponse du tracker, même après 2 minutes
- Tous les tests connexes marchent : un appel vocal au tracker déclenche son auto-reply Google Maps, son port serveur accepte un
curldepuis l’extérieur
Tout fonctionne sauf mes SMS qui partent dans le vide.
Cause
Google Messages (et Samsung Messages, Apple Messages…) envoie par défaut en RCS dès que le destinataire est éligible. Pour un IoT/M2M qui ne parle que SMS GSM, le message part en RCS et le destinataire reçoit rien — pas de fallback SMS automatique visible, pas de message d’erreur côté expéditeur, juste l’icône « envoyé » qui reste affichée.
C’est différent du fallback SMS attendu : quand RCS détecte en temps réel que la destination ne supporte pas RCS, il bascule. Mais quand la destination est une SIM IoT qui ignore complètement le canal data, l’app peut rester sur « envoi RCS » indéfiniment — ou marquer « envoyé » alors que rien n’est arrivé.
Solution
1. Forcer un message en SMS (one-shot) :
- Google Messages : long-press sur la bulle → « Renvoyer comme SMS »
- Samsung Messages : équivalent dans le menu contextuel
- iMessage : toggle « Envoyer comme SMS » dans Réglages → Messages
2. Désactiver RCS dans l’app (le temps de la session de bring-up) :
- Google Messages → Paramètres → Discussions RCS → désactiver
- Plus simple que de jongler à chaque message envoyé au device
3. Utiliser un téléphone sans RCS :
- iPhone ancien (avant iMessage RCS support)
- Vieux Android sans Google Messages installé
- Téléphone « à touches » type Nokia 105 — ironiquement le plus fiable pour ce cas
Lessons learned
- RCS sur Google/Samsung/Apple Messages se déclenche par défaut dès que la destination est éligible, sans demander l’avis de l’utilisateur, et n’a pas toujours de fallback SMS visible
- Un IoT/M2M qui ne parle que SMS GSM ne voit jamais ces messages RCS — aucune erreur ne remonte côté expéditeur, ce qui rend le diag impossible si on ne connaît pas le piège
- Symptôme typique : l’icône « envoyé » reste affichée, le destinataire ne réagit jamais, et tu te demandes si c’est la SIM, l’APN, le crédit, la couverture, le firmware, la syntaxe de commande…
- Avant de chercher loin : long-press → « Renvoyer en SMS » sur le dernier message envoyé. Si le device répond enfin, tu sais.
- Pour une session de bring-up IoT : désactiver RCS globalement le temps de la config est plus efficace que de gérer message par message
- Tester depuis un téléphone sans RCS (vieux Android, Nokia, iPhone avec iMessage off) est un excellent contrôle pour isoler ce piège — si le SMS arrive depuis là, c’est RCS le coupable