SMPP - Peer-to-Peer Short Message Protocol

Ola! Aínda que os mensaxeiros instantáneos e as redes sociais están a substituír todos os días os métodos tradicionais de comunicación, isto non resta popularidade aos SMS. A verificación nun sitio popular ou unha notificación de transacción repítese que viven e seguirán. Pensaches como funciona todo? Moitas veces, o protocolo SMPP úsase para enviar mensaxes masivas, que se discutirán baixo o corte.

Habré xa tiña artigos sobre smpp, 1,2, pero o seu propósito non era describir o protocolo en si. Por suposto, pode comezar inmediatamente desde a fonte - especificacións, pero creo que estaría ben que houbese un resumo do seu contido. Explicarei usando a versión 3.4 como exemplo. Alégrome da túa crítica obxectiva.

O protocolo SMPP é un protocolo de mensaxería peer-to-peer. Isto significa que todos os servidores peer/hub son iguais. No caso máis sinxelo, o esquema de mensaxería SMS ten o seguinte aspecto:

SMPP - Peer-to-Peer Short Message Protocol

Non obstante, se o operador nacional non ten unha ruta, pídelle a un intermediario para iso a algunha rexión remota: un concentrador de SMS. Ás veces, para enviar unha SMS, cómpre construír unha cadea entre varios países, ou mesmo continentes.

Sobre o protocolo

SMPP é un protocolo de capa de aplicación que se basea no intercambio de PDU e se transmite a través de sesións TCP/IP ou X25 para enviar mensaxes sms e ussd. Normalmente, SMPP úsase en modo de conexión persistente, o que aforra tempo. SMPP usa un modelo de comunicación cliente-servidor.

Modo de comunicación

SMPP - Peer-to-Peer Short Message Protocol

O intercambio de mensaxes entre o remitente e o centro de SMS a través de SMPP pódese realizar nos seguintes modos:

Transmisor (transmisor) - transmisión dunha mensaxe nunha dirección, á súa vez
Receptor (receptor): só recibe unha mensaxe do centro de SMS.
Transreceptor (transceptor) - Intercambio de mensaxes entre o centro de SMS e o usuario

Estrutura

SMPP - Peer-to-Peer Short Message Protocol

Duración da mensaxe

Unha mensaxe SMS pode conter 70 caracteres ao escribir en cirílico e non máis de 157 caracteres latinos + 3 UDH Se envía un SMS cunha gran cantidade de caracteres, dividirase en varios segmentos e combinarase no dispositivo receptor. No caso da segmentación, o número de caracteres redúcese polas cabeceiras da mensaxe, que indican a parte da mensaxe. Polo tanto, cando se envía unha mensaxe SMS grande, contén un máximo de 153 caracteres latinos ou 67 caracteres non típicos.

Esquema de codificación de datos

Non obstante, os caracteres deben codificarse para transmitir unha mensaxe. No protocolo SMPP, un campo especial é responsable da codificación - Data Coding Scheme ou DCS. Este é un campo que especifica como se deben recoñecer as mensaxes. Ademais, o campo DCS inclúe:

  • o conxunto de caracteres que define a codificación;
  • clase de mensaxe;
  • solicitude de eliminación automática despois da lectura;
  • unha indicación de compresión de mensaxes;
  • linguaxe da mensaxe de difusión;

Alfabeto estándar de 7 bits (GSM 03.38). Foi desenvolvido para o sistema de mensaxería en GSM. Esta codificación é adecuada para o inglés e varias linguas latinas. Cada carácter consta de 7 bits e está codificado nun octeto.

UTF-16 (en GSM UCS2) Para incluír os caracteres que faltan no alfabeto de 7 bits, desenvolveuse a codificación UTF-16, que engade caracteres adicionais (incluídos os cirílicos) ao reducir o tamaño da mensaxe de 160 a 70, este tipo de codificación. repite case por completo Unicode.

Datos definidos polo usuario de 8 bits. Estes inclúen KOI8-R e Windows-1251. Aínda que esta solución parece ser máis económica en comparación co mesmo UTF-16. Hai unha cuestión razoable de compatibilidade en diferentes dispositivos. Xa que neste caso ambos os dispositivos deben estar configurados previamente.

Clase de mensaxe

  • Class0, ou flash, unha mensaxe almacenada na memoria do teléfono a petición do usuario;
  • Class1, ou aqueles almacenados na memoria do teléfono;
  • Class1, ou aqueles almacenados na memoria do teléfono;
  • Class2, debe asegurarse de que a mensaxe estea almacenada na memoria do terminal móbil, en caso contrario deberá dar notificacións ao centro de SMS sobre a imposibilidade de gardar;
  • Clase 3: neste caso, o teléfono debería enviar unha notificación de que se pode gardar a mensaxe, independentemente da cantidade de memoria do dispositivo. Este tipo de mensaxes implica que a mensaxe chegou ao seu destino;

Tipo de mensaxe

Mensaxe silenciosa (SMS0) Tipo de mensaxe SMS sen contido. Ese SMS vén sen notificación e non se mostra na pantalla do dispositivo.

PDU

Cada operación pdu está emparellada e consiste nunha solicitude e unha resposta. Por exemplo: un comando que di que se estableceu unha conexión (bind_transmitter / bind_transmitter_resp) ou que se enviou unha mensaxe (deliver_sm / deliver_sm_resp)

SMPP - Peer-to-Peer Short Message Protocol

Cada paquete pdu consta de dúas partes: un encabezado (encabezado) e un corpo (corpo). A estrutura da cabeceira é a mesma para calquera paquete pdu: a lonxitude do comando é a lonxitude do paquete, id é o nome do paquete e o comando de estado indica se a mensaxe foi enviada correctamente ou fallou.

Parámetros TLV adicionais

TLV (Valor da lonxitude da etiqueta) ou campos adicionais. Estes parámetros úsanse para ampliar a funcionalidade do protocolo e son opcionais. Este campo especifícase ao final do campo pdu. Como exemplo, usando o dest_addr_np_information TLV, pode organizar a transferencia de información sobre a portabilidade do número.

Ton e Npi

O parámetro TON (tipo de número) informa a SMSC sobre o formato de enderezo e o tipo de rede.
Parámetro NPI (Numbering Plan Identification) que indica o plan de numeración.

SMPP - Peer-to-Peer Short Message Protocol

Enderezo da fonte da mensaxe ou nome alfabético

As mensaxes enviadas ao teléfono teñen dúas variedades: numéricas e alfabéticas. Os números poden ser longos (semellantes a un número de teléfono) ou curtos. Ás veces, os operadores teñen restricións para o envío de nomes neutros, como Infosms, Alert etc. Ás veces, os operadores non permiten o tráfico se o nome non está rexistrado na súa rede. Non obstante, esta é unha característica máis do operador.

Fases de presentación

SMPP - Peer-to-Peer Short Message Protocol

SMS-ENVIAR está enviando mensaxe MO FSM (mensaxe curta desde o terminal móbil)
SMS-ENVIAR INFORME — confirmación de que a mensaxe foi enviada por SMSC
SRI SM (SendRoutingInfo) - O SMSC recibe información do HLR sobre a localización MSC/VLR do abonado
SRI SM RESP — resposta de HLR sobre a carne de posición de abonado
MT-FSM - despois de recibir a localización, envíase unha mensaxe mediante a operación "Reenviar mensaxe curta".
MT-FSM-ACK — resposta de SMSC de que a mensaxe foi enviada
INFORME DE ESTADO SMS — SMSC envía o estado de entrega da mensaxe.

Estado de entrega da mensaxe

INFORME DE ESTADO SMS pode tomar varios valores:
ENTREGA mensaxe entregouse correctamente
REXEITADA — mensaxe rexeitada polo centro de SMS
CADUCADO - a mensaxe elimínase da cola de envío despois do final do TTL (tempo de vida da mensaxe)
UNELIV - Outros casos de falta de entrega
Descoñecido- Non se recibiu resposta.

Erros de transmisión

Ás veces, os motivos polos que as mensaxes SMS non se entregan ao subscritor. A consecuencia destes motivos é a aparición de erros. Os erros devólvense en PDUs_sms_resp. Todos os erros pódense dividir en temporais (temporais) e permanentes (permanentes).

Por exemplo, absent_subscriber é temporal, o subscritor non está dispoñible ou non está en liña e permanente: o subscritor non existe. Dependendo dos erros que se produzan, fórmase unha política para reenviar estas mensaxes.

Por exemplo, se o abonado estaba ocupado falando e recibiu un erro do teléfono MT está ocupado, a mensaxe pódese reenviar despois duns minutos; non obstante, se o abonado bloqueou o servizo de recepción de mensaxes, o reenvío non terá sentido. Podes atopar unha lista de erros nas páxinas de SMSC, por exemplo, como эта.

Fonte: www.habr.com

Engadir un comentario