>Hey Guys, I'm trying to send an operator logo to a 3390 handset, and Im >having some weirdness. i can send data, but when I hit save, it doesnt >actually replace my logo (I read thats because the MCC/MNC dont match the >ones used on my phone currently) I've determined that FIDO (my carrier) uses >302-37 as the MCC/MNC. I converted these to HEX and came up with 12E 25 (So, >I put in %12%0E%25 into my URL). Still no luck. Can anyone explain? I've >been pulling my hair out reading hte nokia specs all day. thanks
The operatorcode is constructed: %30 %ab %cd %ef %0A where %ab %cd %ef are operator specific. They are constructed out of the mobile network code and the mobile coutry code and are in reversed BCD format. Meaning for a MCC = 234 and MNC = 10 (BT Cellnet) you will get %32%F4%01 so your 302-37 becomes %03%F2%73. I've attached a document I once wrote for encoding. Gives a few hints... -- Andreas Fink Fink-Consulting ------------------------------------------------------------------ Tel: +41-61-6932730 Fax: +41-61-6932729 Mobile: +41-79-2457333 Address: A. Fink, Schwarzwaldallee 16, 4058 Basel, Switzerland E-Mail: [EMAIL PROTECTED] Homepage: http://www.finkconsulting.com ------------------------------------------------------------------ Something urgent? Try http://www.smsrelay.com/ Nickname afink
Here's some examples for you. --HEADER--- To send binary messages you have to set "udh" to the following value &ud=%06%05%04%a1%a2%b1%b2 a1/a2 are the sender port b1/b2 are the receiver port (usually zero) %06 says that the total UDH header is 6 bytes %05 says its a information element of "WAP Port" %04 says that this information element is 4 bytes long %a1%a2 are the two bytes specifying the destination port %b1%b2 are the two bytes specifying the source port Example: VCALENDAR &udh=%06%05%04%23%F5%00%00 PICTURE + TEXT (Multipart) &udh=%06%05%04%15%8A%00%00 OPERATOR LOGO &udh=%06%05%04%15%82%00%00 RINGTONE &udh=%06%05%04%15%81%00%00 --CONTENT--- The content is the content of the &text= value and can be binary and contain zero's. So it is as usual URL encoded. Pictures (in general) are constructed using the OTA spec. OTA means: byte 0: Version & flags. Usually %00 byte 1: width of the image byte 2: height of the image byte 3: bithdepth of the image. %01 for black and white. byte 4: and following are the pixels of the image. Then whats following is the image as a BITALIGNED structure. If you are familiar with LogoManager (www.logomanager.co.uk), they are writing the image file (NLM) the same way but with 6 bytes in addition in the header and the image being BYTE aligned. I use the NLM format for storing the image so I have a C routine which changes from byte-aligned to bitaligned. This does only apply for large pictures as the small ones are falling on a bit/byte boundary. If you need that, let me know. It's a plain C routine. The operatorcode is constructed: %30 %ab %cd %ef %0A where %ab %cd %ef are operator specific. They are constructed out of the mobile network code and the mobile coutry code and are in reversed BCD format. Meaning for a MCC = 234 and MNC = 10 (BT Cellnet) you will get %32%F4%01 Ringtones you apparently have the spec. I've never created ringtones. I simply send whats in the file and use LogoManager's converter to create OTT files which are the binary representation of the ringtones. Pictures with text (Multipart message) This is %30 version %00 text part %length of text (high byte) %length of text (low byte) ....bytes of text... %02 picture part %length of picture (high byte) %length of picture (low byte) ...bytes of picture... etc. etc. ---------------------------------------------------- Now to the splitting of SMS. On our system you dont have to split the data. The system does automatically split the data into chunks and modifies the user data header on the fly. If you dont leave the splitting of SMS to us you have to expand the UDH header by adding another information element, the concatenation element. generally a UDH header is built out of: byte 1: length of total UDH header byte 2: information element type byte 3: length of this information element byte 4...n the information of that element byte n+1: next information element type byte n+2: next information element size.. etc etc. information element types: type=%05 means its a WAP port information type=%00 means its a concatenation information there are others I never used. WAP Port information (type %05) Example: %06 %05 %04 %23%F5 %00%00 %06 means there are 6 bytes total in this UDH (not including this byte) %05 means this is a WAP port information %04 means there are 4 bytes following %23%F5 is the destination port %00%00 is the source port concatenation example: %06 means there are 5 bytes total in this UDH (not including this byte) %00 means it is a concatenation info %03 means there is 3 bytes in this info element %F1 means this is in reference to message F1 (To distinguish separate SMS from each other) %02 means there are two parts in total %01 means this is part 1 If you have both informations as when sending a large picture: %0B means there are 11 bytes total in this UDH (not including this byte) %05 means this is a WAP port information %04 means there are 4 bytes following %23%F5 is the destination port %00%00 is the source port %00 means it is a concatenation info element %03 means there is 3 bytes in this info element %F1 means this is in reference to message F1 (To distinguish separate split SMS from each other) %02 means there are two parts in total %01 means this is part 1 Example First one: %0B %05 %04 %15 %8A %00 %00 %00 %03 %0F %02 %01 Second one: %0B %05 %04 %15 %8A %00 %00 %00 %03 %0F %02 %02 The code I use does pack 128 bytes into the first packet. Why 128? There are total 140 bytes to be used (if you encode text, its 160 bytes but there the text is 7 bit encoded, not 8 bit binary). Now the user data header is part of the message too. In the above example it uses 12 bytes. 140 - 12 are 128 bytes you can use for "payload". hope this helps to get further...