I have get from SMSC multi-part SMS, where "esm_class"
field has the UDHI indicator set, and the message contains a header and the user data.
To rebuild the split SMS the client have to check that if the UDHI indicator is set in the esm_class, then the source_addr of the SMPP deliver_sm is the common part of each SMPP message and the header indications of the message gives the part informations.
is encoded ANSII string "0500030002018EAD73990EAAC341CFD61B5E7683F2EFBA1C54CE97E7A067EB5DA783DE6650FE5D9783C4653288D82287F32074780E92A7E76577B3D52ECBE579103B6D2E839EAD379B0C22CBCBE1F61C34AEB7417479BD0C92B6E4E979192400CDD1697719E46CB9CB779059EE26CF41C9569A5C0E83DE66103B6D2E83D46717B17D879F5D41359DDC0EBB8E"
9.2.3.23
TP-User-Data-Header-Indicator (TP-UDHI)
The TP-User-Data-Header-Indicator is a 1 bit field within bit 6 of the first octet of the following six PDUs:
- SMS-SUBMIT,
- SMS-SUBMIT-REPORT
- SMS-DELIVER,
- SMS-DELIVER-REPORT
- SMS-STATUS-REPORT
- SMS-COMMAND.
TP-UDHI has the following values.
Bit no. 6 0 The TP-UD field contains only the short message
1 The beginning of the TP-UD field contains a Header in addition to the short message
9.2.3.24
TP-User Data (TP-UD)
The length of the TP-User-Data field is defined in the PDU's of the SM-TL ( see subclause 9.2.2 ).
The TP-User-Data field may comprise just the short message itself or a Header in addition to the short message
depending upon the setting of TP-UDHI.
Where the TP-UDHI value is set to 0 the TP-User-Data field comprises the short message only, where the user data can
be 7 bit (default alphabet) data, 8 bit data, or 16 bit (UCS2) data.
Where the TP-UDHI value is set to 1 the first octets of the TP-User-Data field contains a Header in the following order
starting at the first octet of the TP-User-Data field.
Irrespective of whether any part of the User Data Header is ignored or discarded, the MS shall always store the entire
TPDU exactly as received.
FIELD LENGTH
Length of User Data Header 1 octet
Information-Element-Identifier "A" 1 octet
Length of Information-Element "A" 1 octet
Information-Element "A" Data 0 to "n" octets
Information-Element-Identifier "B" 1 octet
Length of Information-Element "B" 1 octet
Information-Element "B" Data 0 to "n" octets
Information-Element-Identifier "X" 1 octet
Length of Information-Element "X" 1 octet
Information-Element "X" Data 0 to "n" octets
The diagram below shows the layout of the TP-User-Data-Length and the TP-User-Data for uncompressed GSM 7 bit
default alphabet data. The UDHL field is the first octet of the TP-User-Data content of the Short Message.
Please help, how implement this with ALT.SMS.SmppClient?
they have values when parts information can be retrieved from UDH or from SAR option fields.
But in you case User Data is placed in message_payload and original byte array was prepresented as hex string and encoded like
byte[] message_payload_bytes = Encoding.ASCII.GetBytes(orig_hex_string);