Introdução ao Modo PDU de SMS

Operadores de rede móvel e provedores de serviços de SMS usam o protocolo SMS para transferir mensagens SMS entre entidades da rede. O protocolo SMS permite que dispositivos móveis enviem e recebam SMS. SMS enviados por um dispositivo móvel são chamados de SMS Originados no Móvel (MO). SMS recebidos pelo dispositivo móvel são chamados de SMS Terminados no Móvel (MT). Este guia apresenta informações sobre como os telefones móveis codificam as mensagens SMS MO e MT, ou seja, como eles formulam as Unidades de Dados de Protocolo (PDUs) para enviar e receber mensagens através da rede.

Introdução

O modo PDU oferece a possibilidade de enviar informações binárias em formato de 7 ou 8 bits. Isso é útil se você precisar enviar dados compactados, dados binários ou quiser criar sua própria codificação dos caracteres no fluxo de bits binários. Se você voltar à codificação antiga de um Fernschreiber, apenas 5 bits são necessários para enviar um texto alfanumérico. Com codificação de 5 bits, você pode conter 224 caracteres em vez de 160 caracteres no modo de texto de 7 bits. Outra razão pode ser o envio de dados inteiros.

Se você deseja ter controle total sobre seus dados transmitidos no modo de texto, é preciso entender o modo PDU, pois existem alguns comandos onde você pode definir parâmetros numéricos que alteram a forma de envio e recebimento de um SMS em modo de texto também.

Observe que existem algumas diferenças na implementação do modo PDU e nos outros comandos AT.

A mensagem SMS, conforme especificado pela organização Etsi (documentos GSM 03.40 e GSM 03.38), pode ter até 160 caracteres, onde cada caractere tem 7 bits de acordo com o alfabeto padrão de 7 bits. Mensagens de 8 bits (máximo de 140 caracteres) geralmente não são visualizadas pelos telefones como mensagens de texto; em vez disso, são usadas para dados em, por exemplo, mensagens inteligentes (imagens e tons de chamada) e provisionamento OTA de configurações WAP. Mensagens de 16 bits (máximo de 70 caracteres) são usadas para mensagens de texto Unicode (UCS2), visualizadas pela maioria dos telefones. Uma mensagem de texto de 16 bits da classe 0 aparecerá em alguns telefones como um SMS Flash (também conhecido como SMS piscante ou SMS de alerta).

O formato PDU

Existem duas formas de enviar e receber mensagens SMS: por modo de texto e por modo PDU (unidade de descrição de protocolo). O modo de texto (indisponível em alguns telefones) é apenas uma codificação do fluxo de bits representado pelo modo PDU. Alfabetos podem diferir e existem várias alternativas de codificação ao exibir uma mensagem SMS. As opções mais comuns são; "PCCP437", "PCDN", "8859-1", "IRA" e "GSM". Todas são definidas pelo comando AT AT+CSCS, quando você lê a mensagem em um aplicativo de computador. Se você ler a mensagem no seu telefone, o telefone escolherá uma codificação adequada. Um aplicativo capaz de ler mensagens SMS recebidas pode, portanto, usar o modo de texto ou o modo PDU. Se o modo de texto for usado, o aplicativo está vinculado (ou limitado) ao conjunto de opções de codificação predefinidas. Em alguns casos, isso não é suficiente. Se o modo PDU for usado, qualquer codificação pode ser implementada.

Receber uma mensagem no modo PDU

A string PDU contém não apenas a mensagem, mas também muita meta-informação sobre o remetente, seu centro de serviço SMS, o carimbo de data/hora, etc. Tudo está na forma de octetos hexadecimais ou semi-octetos decimais. A seguinte string é o que recebi em um Nokia 6110 ao enviar a mensagem contendo "hellohello" de www.mtn.co.za.

07

917238010010F5

040BC87238880900F100009930925161958003C16010

Esta sequência de octetos consiste em três partes: Um octeto inicial indicando o comprimento da informação do SMSC ("07"), a informação do SMSC em si ("917238010010F5"), e a parte SMS_DELIVER (especificada pela ETSI no GSM 03.40).

! Nota: em alguns telefones (por exemplo, Ericsson 888?) as três primeiras partes (coloridas) são omitidas ao mostrar a mensagem no modo PDU !

Octeto(s) Descrição

07

Comprimento da informação do SMSC (neste caso, 7 octetos)

91

Tipo-de-endereço do SMSC. (91 significa formato internacional do número de telefone)

72 38 01 00 10 F5

Número do centro de serviço (em semi-octetos decimais). O comprimento do número de telefone é ímpar (11), então um F foi adicionado no final para formar octetos adequados. O número de telefone deste centro de serviço é "+27831000015". Veja abaixo.

04

Primeiro octeto desta mensagem SMS-DELIVER.

0B

Comprimento-do-Endereço. Comprimento do número do remetente (0B hex = 11 dec)

C8

Tipo-de-endereço do número do remetente

72 38 88 09 00 F1

Número do remetente (semi-octetos decimais), com um F no final

00

TP-PID. Identificador de protocolo.

00

TP-DCS Esquema de codificação de dados

99 30 92 51 61 95 80

TP-SCTS. Carimbo de data/hora (semi-octetos)

0A

TP-UDL. Comprimento dos dados do usuário, comprimento da mensagem. O campo TP-DCS indicou dados de 7 bits, então o comprimento aqui é o número de septets (10). Se o campo TP-DCS estivesse definido para indicar dados de 8 bits ou Unicode, o comprimento seria o número de octetos (9).

E8329BFD4697D9EC37

TP-UD. Mensagem "hellohello", octetos de 8 bits representando dados de 7 bits.

Todos os octetos acima são octetos hexadecimais de 8 bits, exceto o número do centro de serviço, o número do remetente e o carimbo de data/hora; eles são semi-octetos decimais. A parte da mensagem no final da string PDU consiste em octetos hexadecimais de 8 bits, mas esses octetos representam dados de 7 bits (veja abaixo). Os semi-octetos são decimais, e, por exemplo, o número do remetente é obtido realizando trocas internas dentro dos semi-octetos de "72 38 88 09 00 F1" para "27 83 88 90 00 1F". O comprimento do número de telefone é ímpar, então uma sequência de octetos adequada não pode ser formada por este número. Esta é a razão pela qual o F foi adicionado no final. O carimbo de data/hora, quando analisado, é igual a "99 03 29 15 16 59 08", onde os 6 primeiros caracteres representam a data, os seguintes 6 representam o tempo e os últimos dois representam o fuso horário em relação ao GMT.

Interpretando octetos de 8 bits como mensagens de 7 bits

Esta transformação é descrita em detalhes no GSM 03.38, e um exemplo da transformação de "hellohello" é mostrado aqui. A transformação é baseada no alfabeto padrão de 7 bits, mas um aplicativo construído no modo PDU pode usar qualquer codificação de caracteres.

Enviando uma mensagem no modo PDU

O seguinte exemplo mostra como enviar a mensagem "hellohello" no modo PDU de um Nokia 6110.

AT+CMGF=0 //Definir modo PDU

AT+CSMS=0 //Verificar se o modem suporta comandos SMS

AT+CMGS=23 //Enviar mensagem, 23 octetos (excluindo os dois zeros iniciais) >0011000B916407281553F80000AA0AE8329BFD4697D9EC37Há 23 octetos nesta mensagem (46 'caracteres'). O primeiro octeto ("00") não conta, é apenas um indicador do comprimento da informação do SMSC fornecida (0). A string PDU consiste no seguinte:

Octeto(s) Descrição

00

Comprimento da informação do SMSC. Aqui o comprimento é 0, o que significa que o SMSC armazenado no telefone deve ser usado. Nota: Este octeto é opcional. Em alguns telefones este octeto deve ser omitido! (Usar o SMSC armazenado no telefone é, portanto, implícito)

11

Primeiro octeto da mensagem SMS-SUBMIT.

00

TP-Message-Reference. O valor "00" aqui permite que o telefone defina o número de referência da mensagem por si só.

0B

Comprimento-do-Endereço. Comprimento do número de telefone (11)

91

Tipo-de-Endereço. (91 indica formato internacional do número de telefone).

6407281553F8

O número de telefone em semi-octetos (46708251358). O comprimento do número de telefone é ímpar (11), portanto, um F foi adicionado no final, como se o número de telefone fosse "46708251358F". Usar o formato desconhecido (ou seja, o Tipo-de-Endereço 81 em vez de 91) resultaria na sequência de octetos do número de telefone 7080523185 (0708251358). Observe que isso tem o comprimento 10 (A), que é par.

00

TP-PID. Identificador de protocolo

00

TP-DCS. Esquema de codificação de dados. Esta mensagem é codificada de acordo com o alfabeto padrão de 7 bits. Ter "02" em vez de "00" aqui indicaria que o campo TP-User-Data desta mensagem deve ser interpretado como 8 bits em vez de 7 bits (usado em, por exemplo, mensagens inteligentes, provisionamento OTA, etc.).

AA

TP-Validity-Period. "AA" significa 4 dias. Nota: Este octeto é opcional, veja os bits 4 e 3 do primeiro octeto

0A

TP-User-Data-Length. Comprimento da mensagem. O campo TP-DCS indicou dados de 7 bits, então o comprimento aqui é o número de septets (10). Se o campo TP-DCS estivesse definido para dados de 8 bits ou Unicode, o comprimento seria o número de octetos.

E8329BFD4697D9EC3 7

TP-User-Data. Estes octetos representam a mensagem "hellohello". Como fazer a transformação de septets de 7 bits em octetos é mostrado aqui

Introdução ao Modo de Texto SMS

O Serviço de Mensagens Curtas SMS, conforme definido dentro do padrão de telefonia móvel digital GSM 900 / 1800 / 1900, tem várias características únicas:

Uma única mensagem curta pode ter até 160 caracteres (codificados em 7 bits) ou 140 caracteres (codificados em 8 bits) de texto. Esses 140 /160 caracteres podem ser compostos por palavras ou números ou uma combinação alfanumérica. Mensagens curtas não baseadas em texto (por exemplo, em formato binário) também são suportadas. Mais sobre esse modo binário você encontrará no link Modo PDU.

O Serviço de Mensagens Curtas é um serviço de armazenamento e encaminhamento, em outras palavras, as mensagens curtas não são enviadas diretamente do remetente para o destinatário, mas sempre via um Centro de SMS (SMSC). Cada rede de telefonia móvel que suporta SMS tem um ou mais centros de mensagens para lidar e gerenciar as mensagens curtas. Mais sobre SMSC você pode ler no link SMSC.

O Serviço de Mensagens Curtas possui confirmação de entrega de mensagem. Isso significa que, ao contrário do paging, os usuários não simplesmente enviam uma mensagem curta e confiam e esperam que ela seja entregue. Em vez disso, o remetente da mensagem curta pode receber uma mensagem de retorno notificando se a mensagem curta foi entregue ou não. O parâmetro padrão de fábrica desta confirmação do transmissor de um SMS para o receptor de uma mensagem pela maioria dos modems GSM é OFF, de modo que você não receberá confirmação do receptor. Se você ligá-lo, então você receberá uma confirmação de que o SMSC recebeu a mensagem e após a entrega da mensagem curta para o receptor você receberá uma mensagem adicional, segunda (SMS de volta) que a mensagem foi entregue a um telefone GSM ou modem. Nesta mensagem gerada automaticamente está a data e hora da entrega codificada. A confirmação, o esquema de codificação, o tempo de armazenamento de uma mensagem curta no SMSC e muito mais serão definidos com o comando AT+CSMP.

Outra maneira é enviar um prefixo com a mensagem de texto. Esses prefixos não são iguais entre os diferentes operadores GSM no mundo. Pelo operador GSM alemão Vodafone, você tem que adicionar *N# e pelo operador GSM T-Mobil você tem que adicionar *T#. A notação com AT+CSMP é igual em todos os SMSC. O manuseio com o prefixo *T# ou *N# foi ou é necessário se você quiser receber uma confirmação pelo envio de um SMS com um aparelho GSM móvel. Nem todos os telefones móveis podem ligar o bit para uma confirmação.

Se você quiser entender os 3 parâmetros deste comando, você tem que entender o SMS no modo PDU. Outro comando importante é AT+CNMI. Ele diz ao modem GSM como lidar com uma mensagem curta recebida.

Mensagens curtas podem ser enviadas e recebidas simultaneamente com chamadas de voz GSM, Dados e Fax. Isso é possível porque, enquanto chamadas de voz, Dados e Fax assumem um canal de rádio dedicado durante a duração da chamada, mensagens curtas viajam acima do canal de rádio usando o caminho de sinalização. Como tal, os usuários de SMS raramente, se é que alguma vez, recebem um sinal de ocupado ou engajado como podem fazer durante os horários de pico de uso da rede. Se você ligar o recebimento simultâneo de um SMS durante uma chamada de dados, então você receberá uma string SMS durante uma chamada de fax ou dados.

Existem maneiras de enviar múltiplas mensagens curtas. Concatenação de SMS (juntando várias mensagens curtas) e compressão de SMS (obtendo mais de 160 caracteres de informação dentro de uma única mensagem curta) foram definidas e incorporadas nos padrões GSM SMS. Nem todos esses recursos possíveis são implementados por todos os operadores GSM em todo o mundo. Mensagem única deve funcionar em todos os lugares.

Para usar o Serviço de Mensagens Curtas, os usuários precisam das assinaturas e hardware relevantes, especificamente:

Uma assinatura de uma rede de telefonia móvel que suporte SMS. Na Alemanha, os operadores GSM incluem este serviço em todos os tipos de assinatura.

O uso do SMS deve estar habilitado para esse usuário (o acesso automático ao SMS é dado por alguns operadores de rede móvel, outros cobram uma assinatura mensal e exigem um opt-in específico para usar o serviço). Na Alemanha, isso está incluído sempre.

Um telefone móvel ou modem GSM que suporte SMS. Hoje, isso é suportado por todos os telefones GSM ou modems GSM.

Conhecimento de como enviar ou ler uma mensagem curta usando seu modelo específico de telefone móvel ou modem GSM. A implementação não é igual em todas as unidades. Nem todos os telefones GSM, cartões modem PCMIA ou modems GSM oferecem todos os recursos que são descritos na ETSI.

Um destino para enviar uma mensagem curta ou receber uma mensagem é geralmente outro telefone móvel, mas também pode ser uma máquina de fax ou um endereço de e-mail. Em algumas redes GSM, é possível converter uma mensagem curta em um fax ou e-mail.

More information