Envoyer un SMS flash depuis un Mac

Aujourd’hui, un truc un peu technique mais amusant : comment envoyer des SMS flash à la main avec un Mac. Un SMS flash, c’est un message comme ceux qu’envoient les opérateurs : il est visible sur l’écran d’accueil et ne peut généralement pas être sauvé (même si Android le permet).

La méthode expliquée ici est à classer dans les bidouilles, c’est un truc que j’avais tenté sur un Raspberry Pi, avec un vieux téléphone. Un iPhone jailbreaké ou un Android avec les bons softs devrait pouvoir faire la même chose.

Ce qu’il faut

D’abord, un téléphone accessible via une connexion série. Dans mon cas, j’ai utilisé un vieux Sony Ericsson T68i qui traînait dans un tiroir, en sachant que les Sony Ericsson sont souvent pratiques pour ce genre de choses.

Ensuite, une connexion série entre le Mac et le téléphone. Ca doit passer en infrarouge ou en Bluetooth (je n’ai pas testé) mais pour le test, j’ai utilisé un simple câble USB vers série. Plus exactement, un câble intégrant un adaptateur USB vers série relié directement à la prise du Sony Ericsson.

Dans l’absolu, une bonne partie des téléphones du début des années 2000 sont compatibles avec le protocole RS-232 via leurs connecteurs dédiés. Ici, j’ai un câble USB vers le connecteur Sony Ericsson, mais un adaptateur vers un connecteur DE-9 suivi d’un câble série vers le connecteur Sony Ericsson devrait fonctionner.

La majorité des adaptateurs USB/série utilisent une puce Profilic et les pilotes sont disponibles pour Mac.

La création du message

Les SMS flash, ce sont simplement des SMS avec un entête un peu modifié. On peut créer le code à la main — la documentation existe sur le Net — mais ici, on va faire simple : un site permet de « forger » le message rapidement.

Il faut donc le SMSC de l’opérateur du téléphone, le numéro de la cible en format international, utiliser l’alphabet sur 7 bits et la classe O (zéro) (important, elle définit les SMS flash) et entrer le message. Comme souvent en SMS, attention à la limite des 160 caractères…

On obtient deux choses : une commande AT et des chiffres, le SMS en mode PDU.

L’envoi du message

Pour l’envoi, j’utilise ZTerm, un petit programme très pratique pour ce genre de manipulations.

Dans Settings -> Modem Preferences…, il faut vérifier que le connecteur série est bien sélectionné.

Ensuite, on va dans Settings -> Connection… et on paramètre la liaison. Data Rate à 9600 bauds, Data Bits à 8, Parity sur None et Stop Bits sur 1. On fait OK.

Maintenant, on teste le téléphone avec la commande suivante :

AT+CMGF=0

Si ça marche, il réponde OK.

Pour envoyer le message, deux étapes. La première, on tape la commande AT donnée par le site, la valeur change en fonction du message. On tape Enter en fin de ligne.

AT+CMGS=53

Ensuite, on colle les chiffres (le SMS en mode PDU) et on termine par control + Z.

Normalement, le téléphone répond OK et le message part.