Accéder au contenu principal

Gérer les requêtes USSD sur un MoDem avec les commandes AT


Introduction

L'USSD (Universal Structured Service D) est un service des réseaux télécoms defini dans 3GPP TS 02.90 et dans 3GPP TS 23.090. Il permet à un terminal mobile d'effectuer des requetes ou une suite de requete à l'operateur. Il est courament utiliser pour consulter le solde.
Dans ce tutoriel nous apprendrons à effectuer des requetes USSD depuis une connection serie avec une modem.

Pré requis

Pour utiliserons pour ce faire:
  • un modem GSM (Huawei E1552) bien sur avec une carte SIM (AIRTEL Burkina)
  • un ordinateur auquel sera connecte le modem
  • un terminal (minicom) pour dialoger avec le modem depuis l'ordinateur
  • perl, pour encoder et decoder les PDU

Demarche

Nous allons consulter le solde du compte de l'utilisateur. Pour l'opérateur courant il faut composer le code USSD *160#.

connecter le modem

Connectez le modem au port USB de l'ordinateur et retrouvez ses port series logiciels. Notre modem créé trois ports series (/dev/ttyUSB0, /dev/ttyUSB1, /dev/ttyUSB2). Nous utiliserons le dernier port. Lancons ensuite minicom et configurons le port serie à utiliser.


Illustration 1: Connection au modem avec minicom

encoder le message

La commande suivante permet de convertir un texte courant au format PDU:
perl -e '@a=split(//,unpack("b*","*160#")); for ($i=7; $i < $#a; $i+=8) { $a[$i]="" } print uc(unpack("H*", pack("b*", join("", @a))))."\n"'
Ainsi *160# correspond à AA980D3602.


Illustration 2: Execution de conversion du code USSD au format PDU




effectuer la requete

La commande AT à envoyer au modem pour une requete USSD est le suivant:
AT+CUSD=1,commande,15
Pour notre cas, nous aurons:
AT+CUSD=1,AA980D3602,15
Nous obtenons comme resultat:
D6375D5E06CDDF6C725937C3C1404363D0054ABAE965B9BB4CD7C140CD370855C4C375A5


Illustration 3: resultat de la commande AT

decoder le message

Nous pouvons décoder le message du format PDU au format humainement comprehensible avec la commande perl:
perl -e '@a=split(//,unpack("b*", pack("H*","D6375D5E06CDDF6C725937C3C1404363D0054ABAE965B9BB4CD7C140CD370855C4C375A5"))); for ($i=6; $i < $#a; $i+=7) {$a[$i].="0" } print pack("b*", join("", @a)).""'



Et nous obtenons: “Votre solde:380 CFA. Internet:0 Mo...

Conclusion

Nous avons envoyer la commande USSD *160# et nous avons reçu la reponse “Votre solde:380 CFA. Internet:0 Mo...” en utilisant la commande AT “AT+CUSD” et des programmes pour les conversion de format.

Commentaires

Learn a dit…
et comment ca se passe pour les moderm wifi

Posts les plus consultés de ce blog

IANA TCP UDP Ports

Port TCP UDP Description Status 0 UDP Reserved Official 0 TCP Programming technique for specifying system-allocated (dynamic) ports[2] Unofficial 1 TCP UDP TCP Port Service Multiplexer (TCPMUX) Official 2 TCP UDP CompressNET[3] Management Utility[4] Official 3 TCP UDP CompressNET[3] Compression Process[5] Official 4 TCP UDP Unassigned Official 5 TCP UDP Remote Job Entry Official 7 TCP UDP Echo Protocol Official 8 TCP UDP Unassigned Official 9 UDP Wake-on-LAN Unofficial 9 TCP UDP Discard Protocol Official 10 TCP UDP Unassigned Official 11 TCP UDP Active Users (systat service)[6][7] Official 12 TCP UDP Unassigned Official 13 TCP UDP Daytime Protocol (RFC 867) Official 14 TCP UDP Unassigned Official 15 TCP UDP Previously netstat service[6] Unofficial 16 TCP UDP Unassigned Official 17 TCP UDP Quote of the Day Official 18 TCP UDP Message Send Protocol Official 19 TCP UDP Character Generator Protocol (CHARGEN) Official 20 TCP UDP FTP data transfer Official 21 TCP FTP 

INTERUPTEUR CREPUSCULAIRE

BUT : contrôler l’allumage et l’institution d’une lampe électrique en fonction de l’intensité de la lumière ambiante. FONCTIONNEMENT : le potentiomètre RV2 règle la sensibilité à la lumière. S’il fait assez noir, la lampe s’allume. Si par contre,s' il y’a assez de lumière alors la lampe s’éteint. La résistance variable RV1 permet de régler le décalage entre le seuil d’allumage et le seuil d’instinction. INTERET : sécurité, automatisation et économie d’énergie. SCHEMAS :