SMPP - Protocol de missatges curts peer-to-peer

Hola! Tot i que la missatgeria instantània i les xarxes socials estan substituint els mètodes tradicionals de comunicació cada dia, això no perjudica la popularitat dels SMS. La verificació en un lloc popular, o una notificació de transacció es repeteix que viuen i es mantindran. Has pensat com funciona tot? Molt sovint, el protocol SMPP s'utilitza per enviar missatges massius, que es tractaran sota el tall.

Habré ja tenia articles sobre smpp, 1,2, però la seva finalitat no era descriure el protocol en si. Per descomptat, podeu començar immediatament des de la font - especificacions, però crec que estaria bé que hi hagués un resum del seu contingut. Us explicaré com a exemple la v3.4. M'alegro de la vostra crítica objectiva.

El protocol SMPP és un protocol de missatgeria peer-to-peer. Això vol dir que tots els servidors peer/hub són iguals. En el cas més senzill, l'esquema de missatgeria SMS té aquest aspecte:

SMPP - Protocol de missatges curts peer-to-peer

Tanmateix, si l'operador nacional no té una ruta, li demana a un intermediari per a alguna regió remota: un centre d'SMS. De vegades, per enviar un SMS, cal construir una cadena entre diversos països, o fins i tot continents.

Sobre el protocol

SMPP és un protocol de capa d'aplicació que es basa en l'intercanvi de PDU i es transmet a través de sessions TCP/IP o X25 per enviar missatges sms i ussd. Normalment, SMPP s'utilitza en mode de connexió persistent, la qual cosa estalvia temps. SMPP utilitza un model de comunicació client-servidor.

Mode de comunicació

SMPP - Protocol de missatges curts peer-to-peer

L'intercanvi de missatges entre l'emissor i el centre d'SMS mitjançant SMPP es pot dur a terme en els modes següents:

Transmissor (transmissor): transmissió d'un missatge en una direcció, al seu torn
Receptor (receptor): només rep un missatge del centre d'SMS.
Transreceptor (transceptor) - Intercanvi de missatges entre el centre d'SMS i l'usuari

Estructura

SMPP - Protocol de missatges curts peer-to-peer

Longitud del missatge

Un missatge SMS pot contenir 70 caràcters en escriure en ciríl·lic i no més de 157 caràcters llatins + 3 UDH Si envieu un SMS amb un gran nombre de caràcters, es dividirà en diversos segments i es combinarà en el dispositiu receptor. En el cas de la segmentació, el nombre de caràcters es redueix per les capçaleres del missatge, que indiquen la part del missatge. Per tant, quan s'envia un missatge SMS gran, conté un màxim de 153 caràcters llatins o 67 caràcters no típics.

Esquema de codificació de dades

Tanmateix, els caràcters s'han de codificar per transmetre un missatge. En el protocol SMPP, un camp especial és responsable de la codificació: Esquema de codificació de dades, o DCS. Aquest és un camp que especifica com s'han de reconèixer els missatges. A més, el camp DCS inclou:

  • el conjunt de caràcters que defineix la codificació;
  • classe de missatge;
  • sol·licitud d'eliminació automàtica després de la lectura;
  • una indicació de compressió de missatges;
  • llenguatge de missatges de difusió;

Alfabet estàndard de 7 bits (GSM 03.38). Va ser desenvolupat per al sistema de missatgeria en GSM. Aquesta codificació és adequada per a l'anglès i una sèrie d'idiomes llatins. Cada caràcter consta de 7 bits i està codificat en un octet.

UTF-16 (en GSM UCS2) Per incloure els caràcters que falten a l'alfabet de 7 bits, es va desenvolupar la codificació UTF-16, que afegeix caràcters addicionals (inclosos els ciríl·lics) reduint la mida del missatge de 160 a 70, aquest tipus de codificació. gairebé completament repeteix Unicode.

Dades definides per l'usuari de 8 bits. Aquests inclouen KOI8-R i Windows-1251. Encara que aquesta solució sembla ser més econòmica en comparació amb la mateixa UTF-16. Hi ha una qüestió raonable de compatibilitat en diferents dispositius. Atès que en aquest cas tots dos dispositius s'han de configurar prèviament.

Classe de missatges

  • Class0, o flash, un missatge emmagatzemat a la memòria del telèfon a petició de l'usuari;
  • Class1, o els emmagatzemats a la memòria del telèfon;
  • Class1, o els emmagatzemats a la memòria del telèfon;
  • Class2, ha de garantir que el missatge s'emmagatzema a la memòria del terminal mòbil, en cas contrari ha de notificar al centre SMS sobre la impossibilitat de guardar;
  • Classe 3: en aquest cas, el telèfon hauria d'enviar una notificació que es pot desar el missatge, independentment de la quantitat de memòria del dispositiu. Aquest tipus de missatges implica que el missatge ha arribat al seu destí;

Tipus de missatge

Missatge silenciós (SMS0) Tipus de missatge SMS sense contingut. Aquest SMS arriba sense notificació i no es mostra a la pantalla del dispositiu.

PDU

Cada operació pdu està aparellada i consta d'una sol·licitud i una resposta. Per exemple: una ordre que diu que s'ha establert una connexió (bind_transmitter / bind_transmitter_resp) o que s'ha enviat un missatge (deliver_sm / deliver_sm_resp)

SMPP - Protocol de missatges curts peer-to-peer

Cada paquet pdu consta de dues parts: una capçalera (capçalera) i un cos (cos). L'estructura de la capçalera és la mateixa per a qualsevol paquet pdu: la longitud de l'ordre és la longitud del paquet, id és el nom del paquet i l'ordre d'estat indica si el missatge s'ha enviat correctament o ha fallat.

Paràmetres TLV addicionals

TLV (Valor de la longitud de l'etiqueta) o camps addicionals. Aquests paràmetres s'utilitzen per ampliar la funcionalitat del protocol i són opcionals. Aquest camp s'especifica al final del camp pdu. Com a exemple, utilitzant el dest_addr_np_information TLV, podeu organitzar la transferència d'informació sobre la portació del número.

Ton i Npi

El paràmetre TON (Tipus de número) informa a SMSC sobre el format d'adreçament i el tipus de xarxa.
Paràmetre NPI (Numbering Plan Identification) que indica el pla de numeració.

SMPP - Protocol de missatges curts peer-to-peer

Adreça d'origen del missatge o nom alfa

Els missatges enviats al telèfon tenen dues varietats: numèrics i alfabètics. Els números poden ser llargs (semblant a un número de telèfon) o curts. De vegades, els operadors tenen restriccions sobre l'enviament de noms neutrals, com ara Infosms, Alert, etc. De vegades, els operadors no permeten el trànsit si el nom no està registrat a la seva xarxa. Tanmateix, aquesta és més una característica de l'operador.

Fases de presentació

SMPP - Protocol de missatges curts peer-to-peer

ENVIAR SMS està enviant un missatge MO FSM (missatge breu des del terminal mòbil)
SMS-ENVIA INFORME — confirmació que el missatge ha estat enviat per SMSC
SRI SM (SendRoutingInfo) - L'SMSC rep informació de l'HLR sobre la ubicació MSC/VLR de l'abonat
SRI SM RESP — resposta de HLR sobre la carn de la posició d'abonat
MT-FSM - després de rebre la ubicació, s'envia un missatge mitjançant l'operació "Reenvia missatge curt".
MT-FSM-ACK — resposta de SMSC que el missatge ha estat enviat
INFORME D'ESTAT DELS SMS — SMSC envia l'estat de lliurament del missatge.

Estat de lliurament del missatge

INFORME D'ESTAT DELS SMS pot prendre diversos valors:
DELIVRD missatge lliurat correctament
REBUTAT — missatge rebutjat pel centre d'SMS
CADUCAT - el missatge s'elimina de la cua d'enviament després del final del TTL (durada del missatge)
UNDELIV - Altres casos de no lliurament
DESCONEGUT- No s'ha rebut cap resposta.

Errors de transmissió

De vegades, els motius pels quals els missatges SMS no s'entreguen al subscriptor. La conseqüència d'aquests motius és l'aparició d'errors. Els errors es tornen a PDUs_sms_resp. Tots els errors es poden dividir en temporals (temporals) i permanents (permanents).

Per exemple, absent_subscriber és temporal, el subscriptor no està disponible o no està en línia i permanent: el subscriptor no existeix. En funció dels errors que es produeixin, es forma una política per reenviar aquests missatges.

Per exemple, si l'abonat estava ocupat parlant i va rebre un error del telèfon MT està ocupat, el missatge es pot tornar a enviar al cap d'uns minuts, però, si l'abonat ha bloquejat el servei de recepció de missatges, tornar a enviar no tindrà sentit. Podeu trobar una llista d'errors a les pàgines SMSC, per exemple, com això.

Font: www.habr.com

Afegeix comentari