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    (7)

Autor: João Bosco Silvino Júnior  

 

5 - Definição dos parâmetros SMPP

Esta seção descreve os parâmetros SMPP que podem ser utilizados em um comando SMPP.

5.1 - Parâmetros do cabeçalho SMPP (Command Header)

5.1.1 - Command_length

O parâmetro command_length indica o tamanho total em octetos de uma mensagem SMPP. São considerados o cabeçalho SMPP (incluindo o próprio campo command_length), os parâmetros mandatórios e os parâmetros opcionais.

5.1.2 - Command_id

O campo command_id indica o tipo de mensagem que o PDU SMPP representa, por exemplo, submit_sm, deliver_sm etc.

Um identificador de comando é destinado para cada primitiva de solicitação SMPP.

Um identificador de comando de resposta é destinado para cada primitiva de resposta SMPP.

Verifique na tabela a seguir a faixa de valores reservados.

5.1.2.1 - Conjunto de comandos SMPP

Command ID Value
generic_nack 0x80000000
bind_receiver 0x00000001
bind_receiver_resp 0x80000001
bind_transmitter 0x00000002
bind_transmitter_resp 0x80000002
query_sm 0x00000003
query_sm_resp 0x80000003
submit_sm 0x00000004
submit_sm_resp 0x80000004
deliver_sm 0x00000005
deliver_sm_resp 0x80000005
unbind 0x00000006
unbind_resp 0x80000006
replace_sm 0x00000007
replace_sm_resp 0x80000007

 

Command ID Value
cancel_sm 0x00000008
cancel_sm_resp 0x80000008
bind_transceiver 0x00000009
bind_transceiver_resp 0x80000009
Reserved 0x0000000A

0x8000000A

outbind 0x0000000B
Reserved 0x0000000C - 0x00000014

0x8000000B - 0x80000014

enquire_link 0x00000015
enquire_link_resp 0x80000015
Reserved 0x00000016-0x00000020

0x80000016-0x80000020

submit_multi 0x00000021
submit_multi_resp 0x80000021
Reserved 0x00000022-0x000000FF

0x80000022-0x800000FF

Reserved 0x00000100
Reserved 0x80000100
Reserved 0x00000101

0x80000101

alert_notification 0x00000102
Reserved 0x80000102
data_sm 0x00000103
data_sm_resp 0x80000103
Reserved for SMPP extension 0x00000104-0x0000FFFF

0x80000104-0x8000FFFF

Reserved 0x00010000-0x000101FF

0x80010000-0x800101FF

Reserved for SMSC Vendor 0x00010200-0x000102FF

0x80010200-0x800102FF

Reserved 0x00010300-0xFFFFFFFF

Tabela 20 - Valores para o campo command_id do PDU SMPP

5.1.3 - Command_status

O campo command_staus indica o sucesso ou falha de uma solicitação SMPP. Somente é relevante em mensagens de resposta SMPP. Nas mensagens de solicitação SMPP, deve ser preenchido com o valor valor nulo. O código de erro retornado no comando de resposta SMPP é informando neste campo. O conjunto completo de códigos de erro e seus valores associados estão apresentados na tabela 21.

Error Code Value Description
ESME_ROK 0x00000000 No Error
ESME_RINVMSGLEN 0x00000001 Message Length is invalid
ESME_RINVCMDLEN 0x00000002 Command Length is invalid
ESME_RINVCMDID 0x00000003 Invalid Command ID
ESME_RINVBNDSTS 0x00000004 Incorrect BIND Status for given command
ESME_RALYBND 0x00000005 ESME Already in Bound State
ESME_RINVPRTFLG 0x00000006 Invalid Priority Flag
ESME_RINVREGDLVFLG 0x00000007 Invalid Registered Delivery Flag
ESME_RSYSERR 0x00000008 System Error
Reserved 0x00000009 Reserved
ESME_RINVSRCADR 0x0000000A Invalid Source Address
ESME_RINVDSTADR 0x0000000B Invalid Dest Addr
ESME_RINVMSGID 0x0000000C Message ID is invalid
ESME_RBINDFAIL 0x0000000D Bind Failed
ESME_RINVPASWD 0x0000000E Invalid Password
ESME_RINVSYSID 0x0000000F Invalid System ID
Reserved 0x00000010 Reserved
ESME_RCANCELFAIL 0x00000011 Cancel SM Failed
Reserved 0x00000012 Reserved
ESME_RREPLACEFAIL 0x00000013 Replace SM Failed
ESME_RMSGQFUL 0x00000014 Message Queue Full
ESME_RINVSERTYP 0x00000015 Invalid Service Type
Reserved 0x00000016-0x00000032 Reserved
ESME_RINVNUMDESTS 0x00000033 Invalid number of destinations
ESME_RINVDLNAME 0x00000034 Invalid Distribution List name
Reserved 0x00000035-0x0000003F Reserved

ESME_RINVDESTFLAG

0x00000040 Dest. flag is invalid (submit_multi)
Error Code Value Description
Reserved 0x00000041 Reserved
ESME_RINVSUBREP 0x00000042 Invalid ‘submit with replace’ request(i.e. submit_sm with replace_if_present_flag set)
ESME_RINVESMCLASS 0x00000043 Invalid esm_class field data
ESME_RCNTSUBDL 0x00000044 Cannot Submit to Distribution List
ESME_RSUBMITFAIL 0x00000045 submit_sm or submit_multi failed
Reserved 0x00000046-0x00000047 Reserved
ESME_RINVSRCTON 0x00000048 Invalid Source address TON
ESME_RINVSRCNPI 0x00000049 Invalid Source address NPI
ESME_RINVDSTTON 0x00000050 Invalid Destination address TON
ESME_RINVDSTNPI 0x00000051 Invalid Destination address NPI
Reserved 0x00000052 Reserved
ESME_RINVSYSTYP 0x00000053 Invalid system_type field
ESME_RINVREPFLAG 0x00000054 Invalid replace_if_present flag
ESME_RINVNUMMSGS 0x00000055 Invalid number of messages
Reserved 0x00000056-0x00000057 Reserved
ESME_RTHROTTLED 0x00000058 Throttling error (ESME has exceededallowed message limits)
Reserved 0x00000059-0x00000060 Reserved
ESME_RINVSCHED 0x00000061 Invalid Scheduled Delivery Time
ESME_RINVEXPIRY 0x00000062 Invalid message validity period(Expiry time)
ESME_RINVDFTMSGID 0x00000063 Predefined Message Invalid or Not Found
ESME_RX_T_APPN 0x00000064 ESME Receiver Temporary App Error Code
ESME_RX_P_APPN 0x00000065 ESME Receiver Permanent App Error Code
ESME_RX_R_APPN 0x00000066 ESME Receiver Reject Message ErrorCode
ESME_RQUERYFAIL 0x00000067 query_sm request failed
Reserved 0x00000068-0x000000BF Reserved
ESME_RINVOPTPARSTREAM 0x000000C0 Error in the optional part of the PDU Body.
Error Code Value Description
ESME_ROPTPARNOTALLWD  0x000000C1 Optional Parameter not allowed
ESME_RINVPARLEN 0x000000C2 Invalid Parameter Length.
ESME_RMISSINGOPTPARAM 0x000000C3 Expected Optional Parameter missing
ESME_RINVOPTPARAMVAL 0x000000C4 Invalid Optional Parameter Value
Reserved 0x000000C5-0x000000FD Reserved
ESME_RDELIVERYFAILURE 0x000000FE Delivery Failure (used for data_sm_resp)
ESME_RUNKNOWNERR 0x000000FF Unknown Error
Reserved for SMPP extension 0x00000100-0x000003FF Reserved for SMPP extension
Reserved for SMSC vendor specific errors 0x00000400-0x000004FF Reserved for SMSC vendor specific errors
Reserved 0x00000500-0xFFFFFFFF Reserved

Tabela 21 -  Códigos de erro do SMPP

5.1.4 - Sequence_number

Um número de sequência permite que um PDU de resposta seja relacionado a um PDU de solicitação. O PDU de resposta SMPP deve preservar este campo. A faixa de valores possíveis deste campo vai de 0x00000001 a 0x7FFFFFFF.

5.2 - Parâmetros mandatórios do SMPP

5.2.1 - System_id

O parãmetro system_id é utilizado para identificar uma ESME ou um SMSC no momento do BIND.

5.2.2 - Password

O parâmetro password é utilizado pelo SMSC para autenticar uma ESME que está solicitanto o BIND. Também é utilizado pela ESME para autenticar um SMSC, no caso da operação de outbind.

5.2.3 - System_type

O parâmetro system_type é utilizado para categorizar o tipo da ESME que está solicitando o BIND ao SMSC. Por exemplo, "VMS", no caso de um Sistema de Voice Mail, ou "OTA", para um sistema de Over-The-Air activation.

A especificação do system_type é opcional. Alguns SMSC podem não solicitar que a ESME informe este detalhe. Neste caso a ESME pode preencher este campo com o valor nulo.

5.2.4 - Interface_version

Este parâmetro é utilizado para indicar a versão do protocolo SMPP utilizado pela entidade. As seguintes versões de interface são definidas:

Interface Version Value
Indicates that the EMSE supports version 3.3 or earlier of the SMPP protocol. 0x00-0x33
Indicates that the ESME is supporting SMPP version 3.4 0x34
All other values reserved  

Tabela 22 -  Valores disponíveis para o campo interface_version

5.2.5 - addr_ton, source_addr_ton, dest_addr_ton, esme_addr_ton

Estes campos definem o tipo de número ou TON (Type Of Number) para ser utilizado nos parâmetros da SME. Os valores possíveis são apresentados na tabela 23.

TON

Value

Decimal

Unknown

00000000

0

International

00000001

1

National

00000010

2

Network Specific

00000011

3

Subscriber Number

00000100

4

Alphanumeric

00000101

5

Abbreviated

00000110

6

All other values reserved

Tabela 23 -  Valores possíveis para TON (Type Of Number)

5.2.6 - addr_npi, source_addr_npi, dest_addr_npi, esme_addr_npi

Estes campos definem o indicador de plano numérico, ou NPI (Numeric Plan Indicator) que será utilizado nos parâmetros da SME. Os valores possíveis são apresentados na tabela 24.

 


NPI

Value Decimal
Unknown 00000000

0

ISDN (E163/E164) 00000001

1

Data (X.121) 00000011

3

Telex (F.69) 00000100

4

Land Mobile (E.212) 00000110

6

National 00001000

8

Private 00001001

9

ERMES 00001010

10

Internet (IP) 00001110

14

WAP Client Id (to be defined by WAP Forum) 00010010

18

All other values reserved

Tabela 24 - Valores possíveis para NPI (Numeric Plan Indicator)

5.2.7 - Address_range

O parâmetro address_range é utilizado nas operações de bind_receiver e bind_tranceiver para especificar um conjunto de endereços das SME's servidas pelo cliente ESME. Um endereço único pode ser especificado no parâmetro address_range. A notação de expressão regular do UNIX deve ser utilizada para especificar a faixa de endereços.

5.2.8 - Source_addr

Este campo especifica o endereço da SME que originou a mensagem. Uma ESME que é implementada com um único endereço SME, i.e. Voice Mail, pode preencher este campo com o valor nulo, para permitir que o SMSC preencha este campo com o valor padrão.

5.2.9 - Destination_addr

Este campo especifica o endereço da SME de destino da mensagem. Para mensagens terminadas, este endereço especifica o DN do terminal.

5.2.10 - Esme_addr

Especifica o endereço da ESME para onde as mensagens de alert_notification deverão ser enviadas.

5.2.11- Service_type

O parâmetro service_type pode ser usado para indicar o serviço de aplicação SMS associado à mensagem, permitindo à ESME:

-      Disponibilizar serviços avançados de mensagens, tais como aqueles descritos no item 4.4.1.2;

-      Controlar o teleserviço utilizado na interface aérea (i.e. IS-136/TDMA, IS-95/CDMA)

O SMSC pode associar implicitamente a função "replace if present" do service_type indicado em uma submissão de mensagem. Por exemplo, o SMSC pode sempre repor uma mensagem pendente de entrega que tenha o mesmo originador e destinatário da mensagem submetida. Desta forma, um SMSC pode garantir que um sistema de Voice Mail, utilizando o service_type "VMA" tem no máximo uma notificação por destinatário, invocando automaticamente a função "replace if present".

Os tipos genéricos de service_type estão apresentados abaixo:

““ (NULL) Default

“CMT” Cellular Messaging

“CPT” Cellular Paging

“VMN” Voice Mail Notification

“VMA” Voice Mail Alerting

“WAP” Wireless Application Protocol

“USSD” Unstructured Supplementary Services Data

Outros valores podem ser definidos, bastado apenas um acordo mútuo entre os administradores da ESME e do SMSC.

 

Anterior                               Home WirelessBR                              Próxima