Help with Information in User Data Header for producing a concatenated SMS message

Posted on 2011-05-05
Last Modified: 2013-12-27
Hi All

I have a Unicode text contains 132 char and I need to send it as one SMS message. The max length of Unicode SMS message is 70 char.

To be able to send this 132 message as one SMS message, I need to add concatenating information in the User Data Header and I don't know how to do it?

UserDataHeader data must be done for each fragment according to the ETSI GSM 03.40 specification.

Please help me to understand of how to deal with this kind of problem and give me an example of how to write the header.

Some references:

Question by:MissManal
    LVL 13

    Expert Comment

    ok, this is a complicated issue. According to your situation we can make it easier. Please answer the following questions so I can provide you with the suitable solution:

    1. Are you familiar with with PID, DCS, IE, of the PDU ?
    2. Are you willing to build a full solution for sending sms (one or multiparts, Ascii, Unicode, ...) or just a solution to send 2 parts unicode sms ?
    3. Are you willing to use AT commands to send the sms ?

    You can also have a look at the following link that is a Pdu encoding/decoding library in c# that will relief you of a lot of tachnical details:


    Author Comment

    I'm using an ActiveX component called (SMSLibX) from this company

    which doesn't support sending a large unicode text as one sms by concatenating messeges So to be able to use this component, Unicode and binary concatenated messages must be encoded (as fragments) by me, according to the following ETSI / 3GPP specifications (see
      - 3GPP TS 23.040 (Short Message Service)
      - 3GPP TS 23.038 (GSM alphabets)
    Once encoded, each fragment can be submitted to SMSLibX as a binary item, using the UserDataHeader and Body fields.
    If each fragment was correctly encoded, then the final result is a concatenated unicode message, correctly represented by the recipient phone.

    So the big question! How I can encoded this large unicode message as fragments using ETSI / 3GPP specifications ?

    LVL 13

    Accepted Solution


    I took a look at the link you provided and discovered that the library you are using supports long sms (concatenated). Just set the text to the body property of the message and the library will take care of the rest.

    If you want to deal with PDU directly, I'll suggest the following Open Source library. It comes with an example winforms app (Encoder) that does exactly what you want. just set the message parameters and it will produce the pdu for you. If the message text is long, it will produce Pdu for the equivalent number of messages (parts):

    Author Comment

    Unfortunately, I'm using Borland Delphi.
    LVL 13

    Expert Comment

    Your question is added in c# and & vb zones and you haven't put it in the delphi zones.

    Sorry, I cannot help you in delphi

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    What Is Threat Intelligence?

    Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

    Suggested Solutions

    Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
    Before I go to far, let's explain HA (High Availability) and why you should consider it.  High availability is the mechanism used to provide redundancy to any service at the same site and appears as a single service to the users of that service.  As…
    As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
    This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

    794 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

    16 Experts available now in Live!

    Get 1:1 Help Now