net.java.slee.resources.smpp.pdu
Interface PDU

All Superinterfaces:
java.io.Serializable
All Known Subinterfaces:
AlertNotification, BroadcastSM, BroadcastSMResp, CancelBroadcastSM, CancelBroadcastSMResp, CancelSM, CancelSMResp, DataSM, DataSMResp, DeliverSM, DeliverSMResp, GenericNack, QueryBroadcastSM, QueryBroadcastSMResp, QuerySM, QuerySMResp, ReplaceSM, ReplaceSMResp, SmppRequest, SmppResponse, SubmitMulti, SubmitMultiResp, SubmitSM, SubmitSMResp

public interface PDU
extends java.io.Serializable

The SMPP protocol is basically a set of operations, each one taking the form of a request and response Protocol Data Unit (PDU).

All the Request/Response implements PDU interface

Author:
amit bhayani

Method Summary
 void addTLV(Tag tag, java.lang.Object value)
          Tagged Length Value (TLV) parameters are identified by a tag, length and value and can be appended to a PDU in any order.
 java.util.Map<Tag,java.lang.Object> getAllTLVs()
           
 int getCommandId()
           The command_id identifies the SMPP operation e.g.
 int getCommandStatus()
           The command_status represents the means by which an ESME or MC sends an error code to its peer.
 long getSequenceNum()
          Each SMPP request PDU has an identifier called a sequence number that is used to uniquely identify the PDU in the context of its‚Äô originating entity and the current SMPP session.
 java.lang.Object getValue(Tag tag)
           
 boolean hasTLV(Tag tag)
           
 boolean isTLVPermitted(Tag tag)
           
 java.lang.Object removeTLV(Tag tag)
           
 

Method Detail

getCommandId

int getCommandId()

The command_id identifies the SMPP operation e.g. submit_sm, bind_transmitter etc. The command_id is encoded as a 4-octet integer value.

Command_ids for request PDUs are allocated from a range of numbers; 0x00000000 to 0x000001FF.

Command_ids for response PDUs are allocated from a range of numbers; 0x80000000 to 0x800001FF.

The relationship between the command_id for a request PDU and its associated response PDU is that bit 31 is cleared for the request and set for the response. For example, replace_sm has a command_id = 0x00000007 and its’ response PDU replace_sm_resp has a command_id = 0x80000007.

Returns:

getCommandStatus

int getCommandStatus()

The command_status represents the means by which an ESME or MC sends an error code to its peer. This field is only relevant in response PDUs. Thus PDU requests always have this field set to NULL (0x00000000).

When a response PDU carries a non-NULL command_status field, it is indicating some form of error or rejection of the original request PDU. In such circumstances, a PDU body should not be included in the PDU and the command_length of the PDU should therefore be set to 16 (0x00000010). However some ESMEs or Message Centers may always include a PDU body regardless of the command_status being returned. In such circumstances, the receiving ESME or MC should ignore its contents, based on the knowledge that the original request failed.

Returns:

getSequenceNum

long getSequenceNum()
Each SMPP request PDU has an identifier called a sequence number that is used to uniquely identify the PDU in the context of its’ originating entity and the current SMPP session. The resulting response PDU (which must be returned on the same SMPP session) is expected to mirror the sequence number of the original request.

Returns:

addTLV

void addTLV(Tag tag,
            java.lang.Object value)
            throws TLVNotPermittedException
Tagged Length Value (TLV) parameters are identified by a tag, length and value and can be appended to a PDU in any order. The only requirement is that the PDU’s standard fields are first encoded, and then followed by the TLV parameters. Otherwise, the PDU decoding by the peer would be unable to decode the PDU.

Throws:
TLVNotPermittedException

getValue

java.lang.Object getValue(Tag tag)

removeTLV

java.lang.Object removeTLV(Tag tag)

hasTLV

boolean hasTLV(Tag tag)

isTLVPermitted

boolean isTLVPermitted(Tag tag)

getAllTLVs

java.util.Map<Tag,java.lang.Object> getAllTLVs()


Copyright © 2011. All Rights Reserved.