Encoding PDUs

Posted on 2004-04-30
Last Modified: 2013-12-09
Hey, I have got a Java Class that should de- and encode PDUs for SMS translation. You can find it here:

in this code you can find the JAVA Class to de- encode SMS-PDU

it is called SMSTransreceiver.

Decoding is no Problem, but Id like to know how to encode a PDU with this code. When I call the Methode GetPDU, it only returns an Array of Bytes, but no PDU String, does anybody know how to generate the PDU with this Byte-array?

Thx and greetings

Steffen Müller
Question by:SteffenM
  • 2
  • 2

Expert Comment

ID: 10960260
Hi Steffen,
I was going thru the code and it looks okay to me. The statement writeln("AT+CMGF=0"); sets the SMS AT commands
into PDU mode and there the    result of getPDU is written to the serial port using write(SMSTools.toHexString(pdu));

It looks fine to me. What kind of problem are you facing here ?


Author Comment

ID: 10962947
Hi anupvijay,

The problem we've encountered is not the communication with the hardware, our problem is the encoding of a pdu for being sent. The java program mentioned above does not seem to create correct PDUs (which seems quite strange, please correct me if I'm wrong) or, what is more likely, I'm not able to use the PDUs the program outputs.
The method getPDU returns an array of bytes (which seem to be signed values in java) and I'm not able to figure out what to do with this array.

Anyway, we're just trying to create a working PDU encoder in Delphi and tried to use the java encoder mentioned above as a blueprint. We're not fixed on the java encoder, if you have any other ideas that could help us, these are also highly appreciated.

Thank you all for your help!


Expert Comment

ID: 10986967
Hi Steffenm,

It is possible that the PDU might be a corrupted one.

I am sorry.I do not have a JVM on my machine where I coudl actually execute the code and see what is being sent.
Please let me know if you find a solution. Would help others too.


Accepted Solution

SteffenM earned 0 total points
ID: 10988232
Hi all!

Finally, I found the solution - which is quite straight ahead: the function getPDU returns a "packed PDU", one byte contains 2 Hex-Characters. Before sending the string to the GSM modem, I have to split every byte in two Hex-Characters (simply using a bitmask).
The java code already provides a function "toHexString" doing this.

The code still misses the SMSC header information, so you have to put "00" in front of the String returned by toHexString ("00" stands for using the SMSC saved on the SIM card). Then it works fine.

Thank you for your help and sorry for having wasted your time,


Expert Comment

ID: 11411863
can some ine port this code for encode SMS-PDU to C# ? Or know some other encode SMS-PDU code in C#

Featured Post

Flexible connectivity for any environment

The KE6900 series can extend and deploy computers with high definition displays across multiple stations in a variety of applications that suit any environment. Expand computer use to stations across multiple rooms with dynamic access.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Hopefully this article will help someone who's had the same issues I had. I have a Dell Wireless 1390 WLAN Mini-Card and Windows 7, and for the past couple of days I was beyond frustrated because my wireless laptop was not able to access the Inte…
DECT technology has become a popular standard for wireless voice communication. DECT devices are not likely to be affected by other electronic devices and signals because they operate in a separate frequency-band.
This Micro Tutorial will show you how to maximize your wireless card to its maximum capability. This will be demonstrated using Intel(R) Centrino(R) Wireless-N 2230 wireless card on Windows 8 operating system.
Viewers will learn how to connect to a wireless network using the network security key. They will also learn how to access the IP address and DNS server for connections that must be done manually. After setting up a router, find the network security…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question