Concaténation et encodage
Lorsque vous envoyez ou recevez un SMS, vous devez tenir compte de la longueur totale du message, car c'est elle qui détermine si le message arrive en une seule fois ou s'il est divisé en deux messages ou plus. Le schéma d'encodage utilisé par le SMS (text ou unicode) influe sur le nombre maximum de caractères que peut contenir un seul message.
Ce document couvre les sujets suivants :
Concaténation
Si vous envoyez un message qui contient plus que le nombre maximum de caractères par message, Vonage envoie un SMS concaténé. Un SMS concaténé contient plusieurs parties de SMS qui sont reliées par des informations de segmentation dans le fichier En-tête de données utilisateur (UDH).
Ces informations de segmentation indiquent au combiné le nombre de parties de message qui composent le SMS concaténé et la position de chaque partie de message au sein de celui-ci. Lorsque le combiné a reçu toutes les parties du message, il les présente au destinataire sous la forme d'un texte unique.
Pour plus d'informations, la base de connaissances de Vonage contient des informations détaillées sur les points suivants SMS multipartite.
Encodage
L'API SMS de Vonage prend en charge deux principaux types de codage : text et unicode.
Spécifiez l'encodage en définissant le paramètre type dans la demande. Le codage à utiliser dépend des caractères que le message contient :
- Régler le
typeau paramètretextpour les messages qui ne contiennent que des caractères dans le champ Jeux de caractères standard et étendus du GSM. - Régler le
typeau paramètreunicodepour les messages contenant des caractères en dehors des jeux de caractères GSM (tels que les caractères chinois, japonais et coréens).
Nouvelles lignes
Pour inclure une nouvelle ligne dans votre message, vous pouvez représenter un saut de ligne (LF) en utilisant le codage UTF-8, c'est-à-dire %0Adans la valeur de la text des paramètres de la demande. Cela comptera comme un seul caractère au regard du nombre de caractères du message. Par exemple, la valeur suivante pour text:
&text=This is one line.%0AThis is another line.
enverra un message SMS qui ressemblera à celui-ci :
This is one line.
This is another line.
Remarque : les conseils ci-dessus concernant les nouvelles lignes s'appliquent à l'utilisation directe de l'API SMS. Si vous utilisez un client HTTP pour interagir avec l'API, comme le logiciel Vonage SDK de serveurUtilisez les conventions appropriées pour cet outil particulier. Pour les SDK de Vonage Server, il s'agira de la syntaxe spécifique de la nouvelle ligne pour le langage de programmation utilisé par ce SDK.
Jeux de caractères GSM
Vonage prend en charge tous les caractères GSM standard ainsi que les caractères de la table GSM étendue. Les caractères de la table standard nécessitent 7 bits par caractère pour être encodés :
! " # $ % ' ( ) * + , - . / : ; < = > ? @ _ ¡ £ ¥ § ¿ & ¤
0 1 2 3 4 5 6 7 8 9
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
Ä Å Æ Ç É Ñ Ø ø Ü ß Ö à ä å æ è é ì ñ ò ö ù ü Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ
Personnages de la table rallongée nécessitent l'encodage de deux caractères : un ESC suivi du caractère requis de la table étendue :
| ^ € { } [ ] ~ \
Unicode
Les langues telles que l'arabe, le chinois, le coréen, le japonais ou l'alphabet cyrillique nécessitent des caractères Unicode au-delà de la norme GSM et des gammes étendues. Ces caractères nécessitent un codage UCS-2 de 16 bits.
Lorsque vous réglez le type au paramètre unicode, tous dans le message sont codés à l'aide de UCS-2, même s'ils sont présents dans le jeu de caractères standard du GSM.
Exemples de codage
| Message | Type | Octets par caractère | Nombre total d'octets requis | Jeu de caractères utilisé dans le message |
|---|---|---|---|---|
Bonjour monde | text | 1 | 13 | Norme GSM |
This ^ That | text | 1 (2 pour ^ car il fait partie du jeu de caractères étendu) | 12 | GSM standard et GSM étendu |
こんにちは世界 | unicode | 2 (UCS-2) | 14 | Unicode |
Nombre maximal de caractères
La longueur maximale d'un message SMS est de 140 octets, ce qui correspond à 160 caractères GSM standard de 7 bits ou à 70 caractères UCS-2 de 16 bits. Un message plus long est divisé en plusieurs parties.
Note: Le codage des caractères de la table étendue GSM nécessite deux octets par caractère.
Si vous envoyez un message avec un type valeur de text les limites de caractères suivantes s'appliquent :
| Pièces détachées | Nombre maximal de caractères | Calcul |
|---|---|---|
| 1 | 160 | Sans UDH, 160 caractères sont disponibles |
| 2 | 306 | (160 - 7) * 2 = 306 |
| 3 | 459 | (160 - 7) * 3 = 459 |
| 4 | 612 | (160 - 7) * 4 = 612 |
Si vous envoyez un message avec un type de unicode alors chaque caractère du message nécessite deux octets.
Vonage accepte les SMS d'une longueur maximale de 3200 caractères, mais ce n'est pas le cas de tous les opérateurs. La meilleure pratique consiste à s'assurer que le message ne dépasse pas six parties de SMS.
Note : Vous êtes facturé pour chaque partie d'un SMS concaténé.
Testez vos modèles de messages avec cet outil :
Remarque : cet outil est destiné à démontrer comment les messages sont concaténés par l'API. Il n'est pas destiné à une utilisation en production. Si vous envoyez un volume important de messages contenant le même contenu et que vous souhaitez précalculer les coûts potentiels liés à la concaténation des messages, nous vous recommandons d'envoyer d'abord un seul message à un numéro de test afin de déterminer avec précision le nombre de parties du message. Pour le SMS API cela apparaîtra dans le message-count dans la propriété organe de réponse. Pour les Messages API cela apparaîtra dans le sms.count_total dans la propriété Message Status webhook.
Essayez-le
Message
Données
Pièces détachées
It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.Messages entrants
Les messages entrants sont conformes à la spécification SMS. Si un SMS envoyé à votre numéro virtuel est plus long que la durée de validité du nombre maximal de caractères a permis d'envoyer un seul SMS, vous recevrez le message concaténé en plusieurs parties.
Toutefois, vous ne pouvez recevoir des SMS concaténés entrants que si l'opérateur par lequel l'utilisateur envoie ses SMS les prend en charge. Si l'opérateur ne prend pas en charge la concaténation, une solution de contournement utile consiste à traiter comme concaténés tous les SMS provenant d'un même numéro dans un court laps de temps. Voir la page concaténation de SMS entrants pour plus d'informations.
Voir le SMS entrants pour plus d'informations sur la concaténation des SMS entrants.