WirelessBR |
WirelessBr é um site brasileiro, independente, sem vínculos com empresas ou organizações, sem finalidade comercial, feito por voluntários, para divulgação de tecnologia em telecomunicações |
|
SMPP
- SHORT MESSAGE PEER TO PEER |
||
Autor: João Bosco Silvino Júnior |
4.1.3.2 - Sintaxe do BIND_TRANSCEIVER_RESP
|
Field
Name |
Size Octets |
Type |
Description |
Ref. |
header |
command_length |
4 |
Integer |
Defines
the overall length of the bind_transceiver_resp
PDU. |
|
command_id |
4 |
Integer |
Value
corresponding to bind_transceiver_resp
request. |
|
|
command_status |
4 |
Integer |
Indicates
status (success or error code) of original bind_transceiver
request. |
|
|
sequence_number |
4 |
Integer |
Set
to sequence number of original bind_transceiver
request. |
|
|
body |
system_id
b |
var.
max 16 |
C-Octet
String |
SMSC
identifier. Identifies the SMSC to the ESME. |
|
|
OPTIONAL
PARAMETERS for BIND_TRANSCEIVER_RESP |
||||
|
Optional
Parameter Name |
Type |
Description |
Ref. |
|
|
sc_interface_version |
TLV |
SMPP
version supported by SMSC |
|
Tabela
11 - PDU do BIND_TRANSCEIVER_RESP
Note:
The
body portion of the SMPP bind_transceiver_resp
PDU is not returned if the command_status
field contains a non-zero value; i.e., if there is an error in the
original bind_transceiver
request, the SMSC system_id is
not returned.
Esta operação é utilizada pelo SMSC para sinalizar à ESME para que esta origine um bind_receiver ao SMSC.
4.1.4.1 - Sintaxe do OUTBIND
|
Field
Name |
Size Octets |
Type |
Description |
Ref. |
Header |
command_length |
4 |
Integer |
Defines
the overall length of the outbind
PDU. |
|
command_id |
4 |
Integer |
Value
corresponding to outbind
request. |
|
|
command_status |
4 |
Integer |
Not
used in outbind
PDU. Must be set to NULL. |
|
|
sequence_number |
4 |
Integer |
Set
to a unique sequence number. |
|
|
Body |
system_id |
var.
max 16 |
C-Octet
String |
SMSC
identifier. Identifies the SMSC to the ESME |
|
password |
var.
16 |
C-Octet
String |
The
password may be used by the ESME for security reasons to
authenticate the SMSC originating the outbind. |
|
Tabela 12 - PDU do OUTBIND
O propósito da operação de unbind de acordo com o protocolo SMPP é cancelar o registro de uma instância ESME a partir do SMSC e informar ao SMSC que a ESME não deseja mais utilizar esta conexão de rede para o envio ou recebimento de mensagens. Desta forma, a operação de unbind pode ser vista como uma forma do SMSC requisitar um fechamento da sessão SMPP corrente.
4.2.1
- Sintaxe do UNBIND
|
Field
Name |
Size Octets |
Type |
Description |
Ref. |
Header |
command_length |
4 |
Integer |
Defines
the overall length of the unbind
PDU. |
|
command_id |
4 |
Integer |
Value
corresponding to unbind
request. |
|
|
command_status |
4 |
Integer |
Not
used in unbind
PDU. Must be set to NULL. |
|
|
sequence_number |
4 |
Integer |
Set
to a unique sequence number. The associated unbind_resp
PDU will echo the same sequence number. |
|
Tabela
13 - PDU do UNBIND
4.2.2 - Sintaxe do UNBIND_RESP
|
Field
Name |
Size Octets |
Type |
Description |
Ref. |
Header |
command_length |
4 |
Integer |
Defines
the overall length of the unbind
PDU. |
|
command_id |
4 |
Integer |
Value
corresponding to unbind
request. |
|
|
command_status |
4 |
Integer |
Not
used in unbind
PDU. Must be set to NULL. |
|
|
sequence_number |
4 |
Integer |
Set
to sequence number of original unbind
PDU request. |
|
Tabela
14 - PDU do UNBIND_RESP
Este PDU de resposta é um reconhecimento negativo de um PDU SMPP enviado com um cabeçalho inválido. A resposta generic_nack é retornada nos seguintes casos:
- Invalid command_length
Se a entidade recebedora, ao decodificar o PDU SMPP, detecta um command_length inválido (tanto curto quando longo), ela deve assumir que o dado está corrompido. Neste caso uma resposta com o generic_nack é retornada ao originador da mensagem;
- command_id desconhecido
Se um command_id desconhecido ou inválido é recebido, uma resposta com o generic_nack é retornada ao originador da mensagem.
4.3.1 - Sintaxe do PDU GENERIC_NACK
|
Field
Name |
Size Octets |
Type |
Description |
Ref. |
Header |
command_length |
4 |
Integer |
Defines
the overall length of the generic_nack
PDU. |
|
command_id |
4 |
Integer |
Value
corresponding to generic_nack
request. |
|
|
command_status |
4 |
Integer |
Error
code corresponding to reason for sending the generic_nack. |
|
|
sequence_number |
4 |
Integer |
Set
to sequence number of original PDU or to NULL if the original PDU
cannot be decoded. |
|
Tabela
15 - PDU
do GENERIC_NACK
A operação de submit_sm
é utilizada pela ESME para enviar mensagens para o SMSC. A sessão utilizada
para enviar estas mensagens é a sessão ESME Transmitter. Assim que o SMSC
recebe o pacote submit_sm,
e este é verificado como correto, esta entidade envia um PDU de resposta submit_sm_resp
contendo um código que será utilizado para identificar aquela mensagem. Este
código é o message_id, que será
utilizado posteriormente para associar a mensagem submit_sm
ao recibo de confirmação de entrega correspondente. Conforme dito
anteriormente, as mensagens de resposta submit_sm_resp
não precisam necessáriamente serem precedidas do submit_sm
correspondente, mas devem estar OBRIGATORIAMENTE em ordem, de forma que o message_id
se uma mensagem não seja atribuído à outra. Caso ocorra algum erro no envio
desta mensagem submit_sm,
o SMSC irá retornar o código de erro da operação para o ESME e a mensagem
não será aceita. Dependerá das regras de tratamento de erro de cada
plataforma ESME, qual será a decisão a ser tomada com relação a este
pacote submit_sm
rejeitado. Esta decisão pode ser descartar o pacote, armazenar o pacote em
buffer, esperando uma intervenção no sistema para corrigir o problema, ou
uma tentativa de reenvio, de acordo com o estabelecido na máquina. A mesma
decisão depende do código de erro devolvido, ou seja, não necessariamente a
ESME irá descartar, armazenar ou retransmitir todos os pacotes com algum código
de erro.
O formato do PDU submit_sm é definido pela seguinte tabela:
|
Field
Name |
Size
Octets |
Type |
Description |
Ref. |
Header |
command_length |
4 |
Integer |
Defines
the overall length of the submit_sm
PDU. |
|
command_id |
4 |
Integer |
submit_sm
|
|
|
command_status |
4 |
Integer |
Not
used. Set to NULL. |
|
|
sequence_number |
4 |
Integer |
Set
to a Unique sequence number. The associated submit_sm_resp
PDU
will echo this sequence number. |
|
|
MANDATORY
PARAMETERS |
service_type |
Var. Max 6 |
C-Octet String |
The
service_type
parameter
can be used to indicate the SMS Application service associated with
the message. Specifying the service_type
allows
the ESME to •
Avail of enhanced messaging services such as “replace by service”
type •
To control the teleservice used on the air interface. Set
to NULL for default SMSC
settings. |
|
source_addr_ton |
1 |
Integer |
Type
of Number for source address. If not known, set to NULL (Unknown). |
|
|
source_addr_npi |
1 |
Integer |
Numbering
Plan Indicator for source address. If
not known, set to NULL (Unknown). |
|
|
source_addr |
Var. Max 21 |
C-Octet String |
Address
of SME which originated this message. If
not known, set to NULL (Unknown). |
|
|
dest_addr_ton |
1 |
Integer |
Type
of Number for destination |
|
|
dest_addr_npi |
1 |
Integer |
Numbering
Plan Indicator for Destination. |
|
|
destination_addr |
Var. Max 21 |
C-Octet String |
Destination
address of this short message. For mobile terminated messages, this
is the directory number of the recipient MS. |
|
|
esm_class |
1 |
Integer |
Indicates
Message Mode & Message Type. |
|
|
Protocol_id |
1 |
Integer |
Protocol
Identifier. Network specific field. |
|
|
priority_flag |
1 |
Integer |
Designates
the priority level of the message. |
|
|
Field
Name |
Size
Octets |
Type |
Description |
Ref. |
MANDATORY
PARAMETERS |
Schedule_delivery_time |
1
or 17 |
C-Octet String |
The
short message is to be scheduled by the SMSC for delivery. Set to
NULL for immediate message delivery. |
|
Validity_period |
1
or 17 |
C-Octet String |
The
validity period of this message. Set to NULL to request the SMSC
default validity period. |
|
|
registered_delivery |
1 |
Integer |
Indicator
to signify if an SMSC delivery receipt or an SME acknowledgement is
required. |
|
|
replace_if_present_flag |
1 |
Integer |
Flag
indicating if submitted message should replace an existing message. |
|
|
Data_coding |
1 |
Integer |
Defines
the encoding scheme of the short message user data. |
|
|
sm_default_msg_id |
1 |
Integer |
Indicates
the short message to send from a list of pre-defined (‘canned’)
short messages stored on the SMSC. If not using an SMSC canned
message, set to NULL. |
|
|
sm_length |
1 |
Integer |
Length
in octets of the short_message
user
data. |
|
|
short_message |
Var. Max 0
- 254 |
Octet String |
Up
to 254 octets of short message user data. The exact physical limit
for short_message
size
may vary according to the underlying network. Applications
which need to send messages longer than 254 octets should use the
message_payload
parameter.
In this case the sm_length
field
should be set to zero. Note: The
short message data should be inserted in either the short_message
or
message_payload
fields.
Both fields must not be used simultaneously. |
|
Tabela
16 - PDU do SUBMIT_SM
Nota:
Os parâmetros opcionais do PDU submit_sm
poderão ser encontrados na documentação entregue em anexo (SMPP
Protocol Specification v3.4), e não farão parte do escopo deste curso.
4.4.1.1
- Source and
Destination Addressing
O PDU submit_sm
inclui formas de provisionar tanto o "endereço
fonte" ou source address,
quanto o "endereço de destino"
ou destination address. O endereço
fonte é composto dos campos source_addr_ton,
source_addr_npi e source_addr
e o endereço de destino é
composto dos campos dest_addr_ton, dest_addr_npi
e destination_addr.
Uma ESME Transmitter pode inserir
valores nulos nos campos do endereço
fonte. Neste caso, o SMSC
deve inserir neste campo o valor padrão para aquela ESME em particular. Este
comportamento foi projetado para interfaces que normalmente não são
familiares ao conceito de endereço
fonte para short messages, como por exemplo, sistemas de Voice Mail.