Concatenación y codificación

Cuando envías un mensaje SMS tienes que tener en cuenta la longitud total del mensaje porque determina si el mensaje llega entero o se divide en dos o más mensajes. El esquema de codificación que utiliza el SMS (text o unicode) afecta al número máximo de caracteres que caben en un solo mensaje. La Messages API detecta automáticamente si hay caracteres unicode en el mensaje enviado y utiliza el tipo de codificación apropiado. Esta configuración puede modificarse mediante una directiva encoding_type en el cuerpo de la solicitud.

Este documento abarca los siguientes temas:

Concatenación

Si envías un mensaje que contiene más del número máximo de caracteres por mensaje, Vonage envía un SMS concatenados. Un SMS concatenado contiene múltiples partes de SMS que están conectadas por información de segmentación en el Cabecera de datos de usuario (UDH).

Esta información de segmentación indica al terminal el número de partes de mensaje que componen el SMS concatenado y la posición de cada parte de mensaje dentro de él. Cuando el terminal ha recibido todas las partes del mensaje, las presenta al destinatario como un texto único.

Para obtener más información, la base de conocimientos de Vonage contiene información detallada sobre SMS multiparte.

Codificación

Existen dos tipos principales de codificación que la API de Messages de Vonage admite para el envío de SMS: text y unicode. Por defecto, la Messages API detecta automáticamente si el texto contiene caracteres unicode y envía el mensaje como texto o como SMS unicode. Puede anular este comportamiento configurando explícitamente cualquiera de las opciones siguientes text o unicode como valor para el encoding_type de la propiedad opcional sms objeto. La codificación que debe utilizar depende de los caracteres que contenga el mensaje:

Nuevas líneas

Para incluir una nueva línea en su mensaje, puede representar un salto de línea (LF) utilizando la tecla \n en el valor de la cadena para el text del cuerpo JSON. Esto contará como un único carácter con respecto al recuento de caracteres del mensaje. Por ejemplo, el siguiente valor para text:

enviará un mensaje SMS con el siguiente aspecto:

Nota: la guía anterior sobre líneas nuevas se aplica cuando se utiliza la API de Messages directamente. Si utilizas un cliente HTTP para interactuar con la API, como el cliente Vonage SDK de servidorutiliza las convenciones apropiadas para esa herramienta en particular. Para los SDK del servidor de Vonage, esta será la sintaxis de nueva línea específica para el lenguaje de programación utilizado por ese SDK.

Juegos de caracteres GSM

Vonage admite todos los caracteres GSM estándar, así como los caracteres de la tabla GSM ampliada. La codificación de los caracteres de la tabla estándar requiere 7 bits por carácter:

Personajes de la mesa extendida requieren la codificación de dos caracteres: un ESC seguido del carácter requerido de la tabla extendida:

Unicode

Lenguas como el árabe, el chino, el coreano, el japonés o el alfabeto cirílico requieren caracteres Unicode más allá del estándar GSM y rangos extendidos. Estos caracteres requieren una codificación UCS-2 de 16 bits.

Cuando ajuste el type a unicode, todos los caracteres del mensaje se codifican utilizando UCS-2, aunque estén presentes en el conjunto de caracteres estándar GSM.

Ejemplos de codificación

Mensaje Tipo Bytes por carácter Total de bytes necesarios Juego de caracteres utilizado en el mensaje
Bonjour monde text 1 13 Norma GSM
This ^ That text 1 (2 para ^ ya que está en el juego de caracteres ampliado) 12 GSM estándar y GSM ampliado
こんにちは世界 unicode 2 (UCS-2) 14 Unicode

Número máximo de caracteres

La longitud máxima de un mensaje SMS es de 140 bytes, lo que equivale a 160 caracteres estándar GSM de 7 bits o 70 caracteres UCS-2 de 16 bits. Un mensaje más largo se divide en partes.

Nota: Los caracteres de la tabla ampliada GSM requieren dos bytes por carácter para codificarse.

Si envía un mensaje con un type valor de text se aplicarán los siguientes límites de caracteres:

Piezas Máximo de caracteres Cálculo
1 160 Sin UDH se dispone de 160 caracteres
2 306 (160 - 7) * 2 = 306
3 459 (160 - 7) * 3 = 459
4 612 (160 - 7) * 4 = 612

Si envía un mensaje con un type de unicode entonces cada carácter del mensaje requiere dos bytes.

Vonage acepta SMS de hasta 3200 caracteres, pero no todas las compañías lo hacen. La mejor práctica es asegurarse de que el mensaje no supere las seis partes de SMS.

Nota: Se le cobrará por cada parte de SMS en un SMS concatenado.

Pruebe sus plantillas de mensajes con esta herramienta:

Nota: esta herramienta está pensada para demostrar cómo la API concatena los mensajes. No está pensada para su uso en producción. Si va a enviar un gran volumen de mensajes con el mismo contenido y desea precalcular los posibles costes debidos a la concatenación de mensajes, le recomendamos que envíe primero un único mensaje a un número de prueba para determinar con precisión el número de partes del mensaje. Para el SMS API se mostrará en el message-count en la propiedad cuerpo de la respuesta. Para el Messages API se mostrará en el sms.count_total en la propiedad Webhook de estado de mensajes.

Pruébalo

Mensaje

Datos

Se requiere Unicode
Longitud
611 characters sent in 4 message parts

Piezas

Pieza 1
Cabecera definida por el usuarioIt 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 epoc
Pieza 2
Cabecera definida por el usuarioh 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 b
Pieza 3
Cabecera definida por el usuarioefore 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 p
Pieza 4
Cabecera definida por el usuarioresent period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.