Concatenação e codificação

Ao enviar ou receber uma mensagem SMS, é preciso estar atento ao comprimento total da mensagem, pois isso determina se ela chegará inteira ou se será dividida em duas ou mais mensagens. O esquema de codificação utilizado pela SMS (text ou unicode) afeta o número máximo de caracteres que cabem em uma única mensagem.

Este documento aborda os seguintes tópicos:

Concatenação

Se você enviar uma mensagem que contenha mais do que o número máximo de caracteres por mensagem, a Vonage enviará uma SMS concatenadas. Uma mensagem SMS concatenada contém várias partes de SMS que são conectadas por informações de segmentação no Cabeçalho de Dados do Usuário (UDH).

Essas informações de segmentação indicam ao aparelho celular o número de partes da mensagem que compõem o SMS concatenado e a posição de cada parte da mensagem dentro dele. Quando o aparelho celular recebe todas as partes da mensagem, ele as apresenta ao destinatário como um único texto.

Para mais informações, a Base de Conhecimento da Vonage contém informações detalhadas sobre SMS em várias partes.

Codificação

Existem dois tipos principais de codificação compatíveis com a SMS API da Vonage: text e unicode.

Especifique a codificação definindo o type parâmetro na solicitação. A codificação que você deve usar depende dos caracteres que a mensagem contém:

Novas linhas

Para incluir uma nova linha na sua mensagem, você pode representar um avanço de linha (LF) usando a codificação UTF-8, que é %0A, no valor correspondente ao text propriedade dos parâmetros da solicitação. Isso será contabilizado como um único caractere na contagem de caracteres da mensagem. Por exemplo, o seguinte valor para text:

&text=This is one line.%0AThis is another line.

enviará uma mensagem SMS com o seguinte formato:

This is one line.
This is another line.

Observação: as orientações acima sobre novas linhas se aplicam ao uso direto da SMS API. Se estiver usando um cliente HTTP para interagir com a API, como o Vonage SDKs de servidor, utilize as convenções adequadas para essa ferramenta específica. No caso dos SDKs do Vonage Server, trata-se da sintaxe específica de quebra de linha da linguagem de programação utilizada por esse SDK.

Conjuntos de caracteres GSM

A Vonage suporta todos os caracteres padrão do GSM, bem como os caracteres da tabela estendida do GSM. Os caracteres da tabela padrão requerem 7 bits por caractere para serem codificados:

! " # $ % ' ( ) * + , - . / : ; < = > ? @ _ ¡ £ ¥ § ¿ & ¤
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
Ä Å Æ Ç É Ñ Ø ø Ü ß Ö à ä å æ è é ì ñ ò ö ù ü Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ

Personagens do tabela ampliada exigem dois caracteres para serem codificados: um ESC prefixo de caractere seguido do caractere necessário da tabela estendida:

| ^ € { } [ ] ~ \

Unicode

Idiomas como o árabe, o chinês, o coreano, o japonês ou aqueles que utilizam o alfabeto cirílico exigem caracteres Unicode que vão além do padrão GSM e das faixas estendidas. Esses caracteres requerem a codificação UCS-2 de 16 bits.

Quando você define o type parâmetro para unicode, todos Os caracteres contidos na mensagem são codificados usando UCS-2, mesmo que estejam presentes no conjunto de caracteres padrão do GSM.

Exemplos de codificação

Mensagem Tipo Bytes por caractere Total de bytes necessários Conjunto de caracteres utilizado na mensagem
Bonjour monde text 1 13 Padrão GSM
This ^ That text 1 (2 para ^ (já que está no conjunto de caracteres estendido) 12 Padrão GSM e GSM estendido
こんにちは世界 unicode 2 (UCS-2) 14 Unicode

Número máximo de caracteres

O comprimento máximo de uma única mensagem SMS é de 140 bytes, o que equivale a 160 caracteres padrão GSM de 7 bits ou 70 caracteres UCS-2 de 16 bits. Uma mensagem com comprimento superior a esse valor é dividida em partes.

Nota: Os caracteres da tabela estendida do GSM exigem dois bytes por caractere para serem codificados.

Se você estiver enviando uma mensagem com um type valor de text nesse caso, aplicam-se os seguintes limites de caracteres:

Peças Número máximo de caracteres Cálculo
1 160 Sem o UDH, há 160 caracteres disponíveis
2 306 (160 - 7) * 2 = 306
3 459 (160 - 7) * 3 = 459
4 612 (160 - 7) * 4 = 612

Se você estiver enviando uma mensagem com um type de unicode nesse caso, cada caractere da mensagem ocupa dois bytes.

A Vonage aceita SMS com até 3.200 caracteres, mas nem todas as operadoras fazem o mesmo. É recomendável garantir que a mensagem não exceda seis partes de SMS.

Observação: cada parte de uma mensagem SMS concatenada é cobrada separadamente.

Teste seus modelos de mensagem com esta ferramenta:

Observação: esta ferramenta tem como objetivo demonstrar como as mensagens são concatenadas pela API. Ela não se destina ao uso em produção. Se você estiver enviando um grande volume de mensagens com o mesmo conteúdo e desejar calcular antecipadamente os possíveis custos decorrentes da concatenação de mensagens, recomendamos enviar primeiro uma única mensagem para um número de teste, a fim de determinar com precisão o número de partes da mensagem. Para o SMS API isso será exibido no message-count propriedade na corpo da resposta. Para o Messages API isso será exibido no sms.count_total propriedade na Webhook de status de mensagem.

Experimente

Mensagem

Dados

É necessário o Unicode
Comprimento
611 personagens enviado por meio de uma mensagem d 4 peças

Peças

Parte 1
Cabeçalho definido pelo usuárioIt 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
Parte 2
Cabeçalho definido pelo usuárioh 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
Parte 3
Cabeçalho definido pelo usuárioefore 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
Parte 4
Cabeçalho definido pelo usuárioresent period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.

Mensagens recebidas

As mensagens recebidas estão em conformidade com a especificação SMS. Se um SMS enviado para o seu número virtual tiver mais caracteres do que o número máximo de caracteres Como o limite é de uma única mensagem SMS, você receberá a mensagem concatenada em partes.

No entanto, você só poderá receber SMS concatenadas de entrada se a operadora pela qual o usuário está enviando as mensagens for compatível com esse recurso. Caso a operadora não ofereça suporte à concatenação, uma solução alternativa útil é tratar todas as SMS enviadas pelo mesmo número em um curto intervalo de tempo como concatenadas. Consulte o concatenação de SMS recebidas Artigo da Base de Conhecimento para mais informações.

Veja o SMS recebidas documento conceitual para obter mais informações sobre a concatenação de SMS recebidos.

Leitura complementar