Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


Encoding PDUs

Posted on 2004-04-30
Medium Priority
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

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

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

In this article we have discussed about the OS X EI Capitan and how to fix Wi-Fi issue in OS X El Capitan. We have explained how to delete system level preferences and create a new Wi-Fi location to resolve Wi-Fi issue.
This paper addresses the security of Sennheiser DECT Contact Center and Office (CC&O) headsets. It describes the DECT security chain comprised of “Pairing”, “Per Call Authentication” and “Encryption”, which are all part of the standard DECT protocol.
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…

564 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