Introduction au mode PDU des SMS

Les opérateurs de réseaux mobiles et les fournisseurs de services SMS utilisent le protocole SMS pour transférer des messages SMS entre les entités du réseau. Le protocole SMS permet aux appareils mobiles d'envoyer et de recevoir des SMS. Un SMS envoyé par un appareil mobile est appelé SMS Mobile Originated (MO). Un SMS reçu par l'appareil mobile est appelé SMS Mobile Terminated (MT). Ce guide présente des informations sur la façon dont les téléphones mobiles encodent les SMS MO et MT, en d'autres termes, comment ils formulent les Unités de Données de Protocole (PDU) pour envoyer et recevoir des messages à travers le réseau.

Introduction

Le mode PDU permet d'envoyer des informations binaires en format 7 bits ou 8 bits. Cela est utile si vous devez envoyer des données compressées, des données binaires ou si vous souhaitez créer votre propre encodage des caractères dans le flux binaire. Si vous revenez à l'ancien encodage d'un Fernschreiber, alors seulement 5 bits sont nécessaires pour envoyer un texte alphanumérique. Avec un codage 5 bits, vous pouvez contenir 224 caractères au lieu de 160 caractères en mode Texte 7 bits. Une autre raison pourrait être l'envoi de données entières.

Si vous souhaitez avoir un contrôle total sur vos données transmises en mode Texte, vous devez comprendre le mode PDU, car il existe quelques commandes où vous pouvez définir des paramètres numériques qui modifient également la manière d'envoyer et de recevoir un SMS en mode texte.

Veuillez noter qu'il existe quelques différences dans le type d'implémentation du mode PDU et dans les autres commandes AT.

Le message SMS, tel que spécifié par l'organisation Etsi (documents GSM 03.40 et GSM 03.38), peut contenir jusqu'à 160 caractères, où chaque caractère est codé sur 7 bits selon l'alphabet par défaut 7 bits. Les messages 8 bits (max 140 caractères) ne sont généralement pas visibles par les téléphones comme des messages texte ; au lieu de cela, ils sont utilisés pour des données dans, par exemple, la messagerie intelligente (images et sonneries) et la configuration OTA des paramètres WAP. Les messages 16 bits (max 70 caractères) sont utilisés pour les messages texte Unicode (UCS2), visibles par la plupart des téléphones. Un message texte 16 bits de classe 0 apparaîtra sur certains téléphones comme un SMS Flash (alias SMS clignotant ou SMS d'alerte).

Le format PDU

Il existe deux façons d'envoyer et de recevoir des messages SMS ; en mode texte et en mode PDU (unité de description de protocole). Le mode texte (indisponible sur certains téléphones) est simplement un encodage du flux de bits représenté par le mode PDU. Les alphabets peuvent différer et il existe plusieurs alternatives d'encodage lors de l'affichage d'un message SMS. Les options les plus courantes sont ; "PCCP437", "PCDN", "8859-1", "IRA" et "GSM". Celles-ci sont toutes définies par la commande AT AT+CSCS, lorsque vous lisez le message dans une application informatique. Si vous lisez le message sur votre téléphone, le téléphone choisira un encodage approprié. Une application capable de lire les messages SMS entrants peut donc utiliser le mode texte ou le mode PDU. Si le mode texte est utilisé, l'application est liée (ou limitée par) l'ensemble des options d'encodage prédéfinies. Dans certains cas, cela ne suffit pas. Si le mode PDU est utilisé, n'importe quel encodage peut être implémenté.

Réception d'un message en mode PDU

La chaîne PDU contient non seulement le message, mais aussi beaucoup de méta-informations sur l'expéditeur, son centre de service SMS, l'horodatage, etc. Tout est sous forme d'octets hexadécimaux ou de semi-octets décimaux. La chaîne suivante est ce que j'ai reçu sur un Nokia 6110 lors de l'envoi du message contenant "hellohello" depuis www.mtn.co.za.

07

917238010010F5

040BC87238880900F100009930925161958003C16010

Cette séquence d'octets se compose de trois parties : Un octet initial indiquant la longueur des informations SMSC ("07"), les informations SMSC elles-mêmes ("917238010010F5"), et la partie SMS_DELIVER (spécifiée par ETSI dans GSM 03.40).

! Note : sur certains téléphones (par exemple Ericsson 888 ?), les trois premières parties (colorées) sont omises lors de l'affichage du message en mode PDU !

Octet(s) Description

07

Longueur des informations SMSC (dans ce cas 7 octets)

91

Type d'adresse du SMSC. (91 signifie le format international du numéro de téléphone)

72 38 01 00 10 F5

Numéro du centre de service (en semi-octets décimaux). La longueur du numéro de téléphone est impaire (11), donc un F a été ajouté à la fin pour former des octets valides. Le numéro de téléphone de ce centre de service est "+27831000015". Voir ci-dessous.

04

Premier octet de ce message SMS-DELIVER.

0B

Longueur d'adresse. Longueur du numéro de l'expéditeur (0B hex = 11 déc)

C8

Type d'adresse du numéro de l'expéditeur

72 38 88 09 00 F1

Numéro de l'expéditeur (semi-octets décimaux), avec un F à la fin

00

TP-PID. Identificateur de protocole.

00

TP-DCS Schéma de codage des données

99 30 92 51 61 95 80

TP-SCTS. Horodatage (semi-octets)

0A

TP-UDL. Longueur des données utilisateur, longueur du message. Le champ TP-DCS indique des données 7 bits, donc la longueur ici est le nombre de septets (10). Si le champ TP-DCS était configuré pour indiquer des données 8 bits ou Unicode, la longueur serait le nombre d'octets (9).

E8329BFD4697D9EC37

TP-UD. Message "hellohello", octets 8 bits représentant des données 7 bits.

Tous les octets ci-dessus sont des octets 8 bits hexadécimaux, sauf le numéro du centre de service, le numéro de l'expéditeur et l'horodatage ; ce sont des semi-octets décimaux. La partie message à la fin de la chaîne PDU est constituée d'octets 8 bits hexadécimaux, mais ces octets représentent des données 7 bits (voir ci-dessous). Les semi-octets sont décimaux, et par exemple, le numéro de l'expéditeur est obtenu en effectuant un échange interne des semi-octets de "72 38 88 09 00 F1" à "27 83 88 90 00 1F". La longueur du numéro de téléphone est impaire, donc une séquence d'octets valide ne peut pas être formée par ce numéro. C'est la raison pour laquelle le F final a été ajouté. L'horodatage, une fois analysé, équivaut à "99 03 29 15 16 59 08", où les 6 premiers caractères représentent la date, les 6 suivants représentent l'heure, et les deux derniers représentent le fuseau horaire par rapport à GMT.

Interprétation des octets 8 bits comme des messages 7 bits

Cette transformation est décrite en détail dans GSM 03.38, et un exemple de la transformation "hellohello" est montré ici. La transformation est basée sur l'alphabet par défaut 7 bits, mais une application construite sur le mode PDU peut utiliser n'importe quel encodage de caractères.

Envoi d'un message en mode PDU

L'exemple suivant montre comment envoyer le message "hellohello" en mode PDU depuis un Nokia 6110.

AT+CMGF=0 //Définir le mode PDU

AT+CSMS=0 //Vérifier si le modem prend en charge les commandes SMS

AT+CMGS=23 //Envoyer le message, 23 octets (excluant les deux zéros initiaux) >0011000B916407281553F80000AA0AE8329BFD4697D9EC37Il y a 23 octets dans ce message (46 'caractères'). Le premier octet ("00") ne compte pas, c'est seulement un indicateur de la longueur des informations SMSC fournies (0). La chaîne PDU se compose des éléments suivants :

Octet(s) Description

00

Longueur des informations SMSC. Ici, la longueur est 0, ce qui signifie que le SMSC stocké dans le téléphone doit être utilisé. Note : Cet octet est optionnel. Sur certains téléphones, cet octet doit être omis ! (L'utilisation du SMSC stocké dans le téléphone est donc implicite)

11

Premier octet du message SMS-SUBMIT.

00

TP-Message-Reference. La valeur "00" ici permet au téléphone de définir lui-même le numéro de référence du message.

0B

Longueur d'adresse. Longueur du numéro de téléphone (11)

91

Type d'adresse. (91 indique le format international du numéro de téléphone).

6407281553F8

Le numéro de téléphone en semi-octets (46708251358). La longueur du numéro de téléphone est impaire (11), donc un F a été ajouté à la fin, comme si le numéro de téléphone était "46708251358F". L'utilisation du format inconnu (c'est-à-dire le Type d'adresse 81 au lieu de 91) donnerait la séquence d'octets du numéro de téléphone 7080523185 (0708251358). Notez que cela a une longueur de 10 (A), qui est paire.

00

TP-PID. Identificateur de protocole

00

TP-DCS. Schéma de codage des données. Ce message est codé selon l'alphabet par défaut 7 bits. Avoir "02" au lieu de "00" ici indiquerait que le champ TP-User-Data de ce message devrait être interprété comme 8 bits plutôt que 7 bits (utilisé dans, par exemple, la messagerie intelligente, la configuration OTA, etc.).

AA

TP-Validity-Period. "AA" signifie 4 jours. Note : Cet octet est optionnel, voir les bits 4 et 3 du premier octet

0A

TP-User-Data-Length. Longueur du message. Le champ TP-DCS indique des données 7 bits, donc la longueur ici est le nombre de septets (10). Si le champ TP-DCS était configuré pour des données 8 bits ou Unicode, la longueur serait le nombre d'octets.

E8329BFD4697D9EC3 7

TP-User-Data. Ces octets représentent le message "hellohello". Comment effectuer la transformation des septets 7 bits en octets est montré ici

Introduction au mode Texte des SMS

Le service de messages courts SMS, tel que défini dans la norme GSM 900 / 1800 / 1900 pour les téléphones mobiles numériques, possède plusieurs caractéristiques uniques :

Un seul message court peut contenir jusqu'à 160 caractères (codés en 7 bits) ou 140 caractères (codés en 8 bits) de texte. Ces 140 /160 caractères peuvent comprendre des mots ou des nombres ou une combinaison alphanumérique. Les messages courts non basés sur du texte (par exemple, en format binaire) sont également pris en charge. Plus d'informations sur ce mode binaire peuvent être trouvées au lien Mode PDU.

Le service de messages courts est un service de stockage et de transmission, en d'autres termes, les messages courts ne sont pas envoyés directement de l'expéditeur au destinataire, mais toujours via un centre SMS (SMSC) à la place. Chaque réseau de téléphonie mobile qui prend en charge les SMS possède un ou plusieurs centres de messagerie pour gérer et administrer les messages courts. Plus d'informations sur le SMSC peuvent être lues au lien SMSC.

Le service de messages courts offre une confirmation de livraison des messages. Cela signifie que contrairement à la radiotéléphonie, les utilisateurs n'envoient pas simplement un message court et font confiance et espèrent qu'il est livré. Au lieu de cela, l'expéditeur du message court peut recevoir un message de retour l'informant si le message court a été livré ou non. Le paramètre d'usine par défaut de cette accusé de réception de l'émetteur d'un SMS vers le récepteur d'un message par la plupart des modems GSM est DÉSACTIVÉ, de sorte que vous n'obtiendrez aucune confirmation du récepteur. Si vous l'activez, vous obtiendrez une confirmation que le SMSC a reçu le message et après la livraison du message court au récepteur, vous obtiendrez un message supplémentaire, un deuxième message (SMS en retour) indiquant que le message a été livré à un téléphone ou modem GSM. Dans ce message généré automatiquement, les données et l'heure de la livraison sont codées. L'accusé de réception, le schéma de codage, l'heure de stockage d'un message court dans le SMSC, et bien plus encore seront définis avec la commande AT+CSMP.

Une autre méthode consiste à envoyer un préfixe avec le message texte. Ces préfixes ne sont pas identiques selon les différents opérateurs GSM dans le monde. Chez l'opérateur GSM allemand Vodafone, vous devez ajouter *N# et chez l'opérateur GSM T-Mobile, vous devez ajouter *T#. La notation avec AT+CSMP est identique dans tous les SMSC. La gestion avec le préfixe *T# ou *N# était ou est nécessaire si vous souhaitez obtenir un accusé de réception lors de l'envoi d'un SMS avec un téléphone mobile GSM. Tous les téléphones mobiles ne peuvent pas activer le bit pour un accusé de réception.

Si vous souhaitez comprendre les 3 paramètres de cette commande, vous devez comprendre les SMS en mode PDU. Une autre commande importante est AT+CNMI. Elle indique au modem GSM comment gérer un message court entrant.

Les messages courts peuvent être envoyés et reçus simultanément avec des appels vocaux GSM, des données et des fax. Cela est possible car alors que les appels vocaux, les données et les fax prennent en charge un canal radio dédié pour la durée de l'appel, les messages courts voyagent sur et au-dessus du canal radio en utilisant le chemin de signalisation. En tant que tels, les utilisateurs des SMS reçoivent rarement, voire jamais, un signal occupé ou encombré comme ils peuvent le faire pendant les périodes de pointe du réseau. Si vous activez la réception simultanée d'un SMS pendant un appel de données, vous recevrez une chaîne SMS pendant un appel de fax ou de données.

Des méthodes pour envoyer plusieurs messages courts sont disponibles. La concaténation SMS (enchaînement de plusieurs messages courts) et la compression SMS (obtenir plus de 160 caractères d'information dans un seul message court) ont été définies et incorporées dans les normes GSM SMS. Toutes ces fonctionnalités possibles ne sont pas implémentées par tous les opérateurs GSM dans le monde. Un seul message devrait fonctionner partout.

Pour utiliser le service de messages courts, les utilisateurs ont besoin des abonnements et du matériel appropriés, notamment :

Un abonnement à un réseau de téléphonie mobile qui prend en charge les SMS. En Allemagne, les opérateurs GSM incluent ce service avec tout type d'abonnement.

L'utilisation des SMS doit être activée pour cet utilisateur (l'accès automatique aux SMS est donné par certains opérateurs de réseaux mobiles, d'autres facturent un abonnement mensuel et nécessitent une inscription spécifique pour utiliser le service). En Allemagne, cela est inclus à chaque fois.

Un téléphone mobile ou un modem GSM qui prend en charge les SMS. Aujourd'hui, cela est pris en charge par tous les téléphones GSM ou modems GSM.

La connaissance de la façon d'envoyer ou de lire un message court en utilisant leur modèle spécifique de téléphone mobile ou de modem GSM. L'implémentation n'est pas identique pour chaque appareil. Tous les téléphones GSM, cartes modem PCMIA ou modems GSM n'offrent pas toutes les fonctionnalités qui sont décrites dans l'ETSI.

Une destination pour envoyer un message court ou recevoir un message est généralement un autre téléphone mobile, mais cela peut aussi être un fax ou une adresse e-mail. Dans certains réseaux GSM, il est possible de convertir un message court en fax ou en e-mail.

More information