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
PROTOCOLOS E APLICAÇÕES    (6)

Autor: João Bosco Silvino Júnior  

 

4.4.1.2 - Operação de reposição de mensagens com SUBMIT_SM

O protocolo SMPP oferece uma operação dedicada à reposição de mensagens, chamada  replace_sm, mas a operação  submit_sm também pode ser utilizada para este fim. A função de reposição utilizando submit_sm pode ser ativada preenchendo o campo replace_if_present_flag  com 1 (um). Alternativamente o administrador do SMSC pode implementar um tipo de serviço específico para a funcionalidade de reposição. Neste caso, a função de reposição de mensagem será ativada no PDU submit_sm através do campo service_type, preenchendo-o com o valor definido. Em todos os casos, o campo contendo a mensagem, na mensagem que será reposta, será substituído pelo texto contido no campo short_message­ da última mensagem enviada.

A diferença em utilizar o método de reposição por submit_sm e replace_sm é que no primeiro caso, se a mensagem não é encontrada no buffer do SMSC (i.e. se já tiver sido entregue), uma nova mensagem será enviada para o destinatário. Já no segundo caso a mensagem não será entregue e o SMSC irá retornar um erro no PDU replace_sm_resp.

4.4.1.3 - Sintaxe do SUBMIT_SM_RESP

O PDU submit_sm_resp possui o seguinte formato:

 

Field Name

Size

Octets

Type

Description

Ref.

Header

command_length

4

Integer

Defines the overall length of the submit_sm_resp PDU.

 

command_id

4

Integer

submit_sm_resp

 

command_status

4

Integer

Indicates outcome of submit_sm request.

 

sequence_number

4

Integer

Set to sequence number of original submit_sm PDU

 

Body

message_id

var. max 65

C-Octet String

This field contains the SMSC message ID of the submitted message. It may be used at a later stage to query the status of a message, cancel or replace the message.

 

Tabela 17 -  PDU do SUBMIT_SM_RESP

Nota: The submit_sm_resp PDU Body is not returned if the command_status field contains a non-zero value.


4.5 - Operação de DELIVER_SM 

A operação de deliver_sm é utilizada pelo SMSC para submeter mensagens para uma ESME. Utilizando este comando, o SMSC pode rotear uma mensagem para entrega.

Adicionalmente, o SMSC utiliza a operação de deliver­_sm para transferir tipos específicos de short messages para o ESME, dentre eles o SMSC Delivery Receipt, que nada mais é do que o recibo de confirmação de entrega da mensagem, que informa à ESME que aquela mensagem descrita neste pacote foi devidamente entregue no aparelho de destino. Desta forma é possível implementar um sistema de tarifação baseado na entrega de mensagens.

4.5.1 -  Sintaxe do DELIVER_SM

 

Field Name

Size Octets

Type

Description

Ref.

Header

command_length

4

Integer

Defines the overall length of the deliver_sm PDU.

 

command_id

4

Integer

deliver_sm

 

command_status

4

Integer

Unused. Set to NULL

 

sequence_number

4

Integer

Set to a unique sequence number. The associated deliver_sm_resp PDU should echo the same 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.

 

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 Type and enhanced network services

 

 

Field Name

Size Octets

Type

Description

Ref.

MANDATORY PARAMETERS

Protocol_id

1

Integer

Protocol Identifier. Network specific field.

 

priority_flag

1

Integer

Designates the priority level of the message.

 

Schedule_delivery_time

1 or 17

C-Octet

String

This field is unused for deliver_sm. It must be set to NULL.

 

Validity_period

1 or 17

C-Octet

String

This field is unused for deliver_sm. It must be set to NULL.

 

registered_delivery

1

Integer

Indicates if an ESME acknowledgement is required.

 

replace_if_present_flag

1

Integer

Not used in deliver_sm. It must be set to NULL.

 

Data_coding

1

Integer

Indicates the encoding scheme of the short message.

 

sm_default_msg_id

1

Integer

Unused for deliver_sm. It must be set to NULL.

 

sm_length

1

Integer

Length in octets of the short_message user data in octets.

 

short_message

Var.

Max

0 - 254

Octet

String

Up to 254 octets of short message user data.

When sending messages longer than 254 octets the message_payload parameter should be used and the sm_length parameter 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 18 -  PDU do DELIVER_SM

Nota: Os parâmetros opcionais do PDU deliver_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.[j1] 


4.5.2 - Sintaxe do DELIVER_SM_RESP

 

Field Name

Size

Octets

Type

Description

Ref.

Header

command_length

4

Integer

Defines the overall length of the deliver_sm_resp PDU.

 

command_id

4

Integer

deliver_sm_resp

 

command_status

4

Integer

Indicates outcome of deliver_sm request.

 

sequence_number

4

Integer

Set to sequence number of original deliver_sm PDU

 

Body

message_id

1

C-Octet String

This field is unused and is set to NULL.

 

Tabela 19 -  PDU do DELIVER_SM_RESP

O recibo de confirmação de entrega, que utiliza o PDU deliver_sm será detalhado em um tópico especial mais adiante.

4.6 - Outras operações do SMPP

Existem outras operações suportadas pelo protocolo SMPP. Estas operações não serão detalhadas neste curso. Posteriormente será desenvolvido um módulo avançado, destinado ao detalhamento das operações SMPP não descritas neste curso.

4.6.1 - DATA_SM

Esta operação é utilizada para transmitir dados entre a ESME e o SMSC. Pode ser utilizado por ambas as entidades. Este comando é uma alternativa aos comando submit_sm  e deliver_sm. Foi introduzido como um novo comando para ser utilizado por aplicações interativas, como por exemplo, operações via WAP. A ESME pode utilizar este comando para requisitar que o SMSC transfira uma mensagem para um móvel. Desta forma, o SMSC pode utilizar este comando para transferir mensagens originadas por terminais para uma ESME. Da mesma forma que a operação deliver_sm, esta operação pode ser utilizada para transferir o recibo de confirmação de entrega para uma ESME.

4.6.2 - QUERY_SM

Este comando é utilizado pelo ESME para questionar o SMSC sobre o status de uma determinada mensagem submetida previamente.

Este mecanismo é baseado no message_id associado, repassado pelo SMSC, e pelo endereço fonte.

4.6.3 - CANCEL_SM

Este comando é utilizado pela ESME para cancelar uma mensagem previamente enviada para o SMSC, que ainda estão com a entrega pendente. Este comando pode especificar uma única mensagem, cancelando-a, ou pode também cancelar mensagens específicas de acordo com o endereço fonte ou endereço de destino.

4.6.4 - REPLACE_SM

Conforme descrito anteriormente, esta operação permite que uma determinada mensagem seja substituída por outra mensagem. Novamente o mecanismo de message_id é utilizado para detectar a mensagem que se deseja repor.

4.6.5 - ENQUIRE_LINK

Esta mensagem pode ser utilizada tanto pelo ESME quanto pelo SMSC, para proporcionar uma checagem confiável do caminho de comunicação entre a ESME e o SMSC. Uma das endidades, ao receber esta mensagem, deve respondê-la com uma mensagem enquire_link_resp, indicando que está "viva", ou seja, o nível de aplicação entre as entidades está funcionando.

4.6.6 - ALERT_NOTIFICATION

Este comando é enviado pelo SMSC para a ESME quando o SMSC detecta que um assinante em particular se tornou disponível para receber mensagens e um sinalizador de entrega foi enviado para aquele assinante por uma operação data_sm anterior.

Esta mensagem pode ser utilizada por exemplo como um gatilho para uma operação "Push" para dados de um Servidor WAP Proxy. 

Nota: Esta operação é a única que não contem uma mensagem de reposta associada, ou seja, não existe um PDU alert_notification_resp.

 

Anterior                               Home WirelessBR                              Próxima