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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
belkin wifi stick 12 83
Wifi extender 3 79
Sonicwall AP 3 48
Setting up new wifi in new office 3 33
For Sennheiser, comfort, quality and security are high priority areas. This paper addresses the security of Bluetooth technology and the supplementary security that Sennheiser’s Contact Center and Office (CC&O) headsets provide.  
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…

746 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now