"secret" notepad

I am not part of Nokia, but I have worked with SMS and telecomms a lot, there are a couple of possibilities, but I haven't time right now to download and analyse your code.

When you send a text message, you may need to set the Destination and Source Type of Number and/or Numbering Plan Indicator in the SMS PDU. See Look for smpp-submit-dest-addr-ton and smpp-submit-dest-addr-npi

It's possible that right now that the Destination (and maybe Source) TON is not being set and picking up the default for the various providers, some of whom default to 1 (international) and some whom default to 4 (Subscriber Number). Alternatively, you may already be setting the TON and some operators are recognising and overriding the setting, some are not.

My guess is that it's just the TON that might need changing and the NPI is fine.

Another possibility is that when you send the message you send 00nnnnnnn instead of +nnnnnnnnn. IIRC, the + is the correct thing to send as it translates to "use international routing" in the switches. The 00 prefix does the same in most countries, but I don't think it's guaranteed, whereas + is. I am not 100% sure on the accuracy of this statement though .

how do i add TON=1 DEST=358xxxxxxx ?!?!?

Flash SMS is a type of SMS which will be displayed directly on screen once received. This one is known working on Nokia mobile phone, I don’t know with others. As we know, normal SMS once received is saved either on SIM card or mobile phone memory and then user is noticed by a beep or similar SMS alarm. Flash SMS is different.

Flash SMS is done by define message class part of TP-DCS of SMS PDU to zero (0×00), what TP-DCS is? Please read GSM 03.40 :) . Here’s an example of SMS PDU (in hexadecimal):


Let us breakdown:

   * 1st byte: 0×15 or in binary 00010101
         o TP-MTI (bit 0&1) = 01 means this PDU SMS type is SMS-SUBMIT
         o TP-RD (bit 2) = 1 means reject duplicate if there’s a same SMS with same TP-MR
         o TP-VPF (bit 4&3) = 10 means this SMS contain validity period info with relative format
         o TP-SRR (bit 5) = 0 means we don’t ask for delivery report
         o TP-UDHI (bit 6) = 0 means no user data header information (UDHI)
         o TP-RP (bit 7) = 0 means reply path unused
   * 2nd byte: TP-MR = 0×01, means message reference number is 0×01
   * 3rd byte: TP-DA length = 0x0A, this is length of destination address.I want to send to my own number which is 6591407482 -> see there’re 10 digits, to TP-DA should be 0x0A or 10 in decimal
   * 4th byte: TON/NPI info = 0×91 or in binary format 10010001
         o TON (bit 6,5,4) = 001 -> means International Number
         o NPI (bit 3,2,1,0) = 0001 -> means ISDN telephone number
   * 5th byte .. 9th byte: 5619044728 -> this is the destination number 6591407482 but written in BCD semioctet format
   * 10th byte: TP-PID = 0×00 -> means use default protocol identifier
   * 11th byte: TP-DCS = 0xF4 or in binary format 11110100
         o Bit 3,2 = 01, means TP-UD (user data) is encoded using 8 bit format
         o Bit 0,1 = 00, means class 0 {this will make this sms become flash sms}
   * 12th byte: TP-VP = 0xA7 means this SMS is valid only for 24 hours
   * 13th byte: TP-UDL = 0×18 means the user data/message part length is 24 character
   * the rest byte:
         o 496E6920636F6E746F6820666C61736820534D53206C686F
               + Thi is hex representation of string “Ini contoh flash SMS lho”, you may use to convert from hex to string and vice versa

sample string: 1, 10, 10, 129, 64, 21, 33, 19, 0, 0, 0, 3, 234, 119, 93

1 00000001

10 00001010
10 00001010
129 10000001