We have seen how you can use the User Data Header (UDH) in an SMS message to combine several SMS messages into one bigger one. Here is an other application of the UDH:
Text formatting in SMS
Remember that the UDH consists of Information Elements (IE) that each have the following structure
| Length |
Value |
Description |
| 1 octet |
IEI |
Information Element Identifier. This determines what this IE is about. |
| 1 octet |
IE length |
The length of the data belonging to this IE in octets. |
| n octets |
IE data |
Meaning of the content varies per IEI. |
The text formatting is controlled by just one IE. Here is a description:
Read More…
Posted Under:
SMS
This post was written by Jeroen on March 12, 2009
Comments (2)
Just a quick update.
The next article I’ll publish will be about receiving SMS messages on your computer.
There are interesting applications you can build with SMS, some require you to be able to receive SMS messages as well as send them:
- Phone number verification. After the user has supplied you with their cell-phone number, you can send a code in a SMS message to a cell phone and have the user confirm that code on a web page.
- Remote control. You can write an application that waits for incoming SMS ‘commands’. Your application sends the commands and returns the results of the commands via SMS.
- SMS alerts. You can write an application that monitors your computer/software/network and/or website and sends out an SMS alert whenevr their is something out of the ordinary.
- SMS marketing. After you’ve captured you’re audience’s cell phone numbers, you can occasionally send reminders, offers, coupons, etc you get them back to you’re website.
- SMS voting. Made popular by shows like American Idols, voting by SMS is one of the more successful applications of SMS.
Read More…
Posted Under:
SMS
This post was written by Jeroen on March 5, 2009
Comments (1)
Another use for SMS is configuring phones over the air (OTA). There are elaborate standard specifications written by the WAP Forum (now Open Mobile Alliance) and somewhat proprietary standards developed by Nokia and Ericsson.
Today I’ll show in detail how to send a bookmark according the Nokia / Ericsson specification. The specification is somewhat older, it dates from September 2001, but it seems almost all Nokia and many Ericsson devices still support this.
The bookmark is described in an XML file like the following:
<?xml version="1.0"?>
<!DOCTYPE CHARACTERISTIC-LIST SYSTEM "settings.dtd">
<CHARACTERISTIC-LIST>
<CHARACTERISTIC TYPE="BOOKMARK">
<PARM NAME="NAME" VALUE="Mobile Tidings"/>
<PARM NAME="URL" VALUE="http://mobiletidings.com"/>
</CHARACTERISTIC>
</CHARACTERISTIC-LIST>
As before we send this XML document using an unconfirmed push. Here are the layers we need to implement:
- the XML document needs to be WBXML encoded and
- the WBXML need to be wrapped in a WSP (Wireless Session Protocol) Push PDU
- this needs to be wrapped in a WDP (Wireless Datagram Protocol) packet
- this needs to be sent inside an SMS
As always we start with the AT command that is used to send the bookmark and analyze in detail how this AT command was constructed:
Read More…
Posted Under:
SMS
This post was written by Jeroen on March 3, 2009
Comments (0)
I still needed to show how you can send an Service Indication (SI) document like:
1
2
3
4
5
6
7
8
| <?xml version="1.0"?>
<!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN"
"www.wapforum.org/DTD/si.dtd">
<si>
<indication href="http://mobiletidings.com/"
created="2009-02-26T16:25:00Z"
si-expires="2009-03-04T16:25:00Z">Check out Mobile Tidings!</indication>
</si> |
This document, a Service Indication, tells the WAP client to store the following:
- A link to http://mobiletidings.com/
- With text “Check out Mobile Tidings!“
- This typically shows up in a “WAP Push Inbox” or sometimes in the “SMS Inbox”
- The link will show when it was created
- It should automatically be removed after the expiry time mentioned
Well here is the AT command to send this particular SI document:
Read More…
Posted Under:
SMS
This post was written by Jeroen on February 26, 2009
Comments (8)
As I have been writing about EMS and WAP Push, I am sure your ask yourself: “Does my phone support this?”. Again we dig into the WURFL database and we see that WAP Push is widely supported, but EMS a little less so.
This is understandable, because WAP Push is a protocol used in MMS (or picture messaging). Since most phones nowadays are camera phones and support picture messaging, they’re very likely to support WAP Push.
Here is a list of devices that support EMS and/or WAP Push, according to WURFL:
Read More…
As I started to explain in the last post, a WAP push consists of an XML document sent to the device over SMS. This is true but somewhat simplified.
The truth is that we send:
- an WBXML encoded XML
- over WSP (Wireless Session Protocol)
- over WDP (Wireless Datagram Protocol)
- over SMS
This is called an unconfirmed push.
Read More…
Posted Under:
SMS
This post was written by Jeroen on February 21, 2009
Comments (1)
As you may understand, the data you can send via SMS is limited. It is limited because:
- A single message can only hold 160 GSM-7 encoded characters
- Even though messages can be combined in to bigger ones, the total size is still limited in several ways:
- A message can have at most 256 parts
- The receiving device as a (much lower) limit on how many parts it can reassemble into a bigger message
- And if the technical limits aren’t prohibitive, the cost might be
So how do you send more and richer information to a device? There are 2 possibilities:
Today I’ll focus on WAP push.
Read More…
Posted Under:
SMS
This post was written by Jeroen on February 20, 2009
Comments (6)
As discussed in a previous post, many features of SMS messages become available if you can set the User Data Header (UDH) field.
When using a GSM modem in text mode you can’t sent a UDH, so you need to use PDU mode.
How do you add a UDH?
There are 2 things you need to do:
- Set the UDH bit in the first octet of the PDU. For an SMS-SUBMIT PDU (the only one we’ve been using so far) the value is normally 0×01. To indicate that a UDH is present we need to set bit 6 (0×40). So for an SMS-SUBMIT with UDH present we set the PDU type to 0×41.
- With the UDH bit set, this first octet of the payload (or User Data = UD) needs to indicate the length of the UDH in octets. This field is known as UDHL.
Read More…
Posted Under:
SMS
This post was written by Jeroen on February 18, 2009
Comments (6)
EMS stands for Enhance Message Services. EMS messages are just SMS messages with a twist.
EMS messages make use of the User Data Header to add some meta data to the SMS message being sent. This meta data is separate from the actual text and devices that don’t understand some or any of the EMS features will easily skip over them and just render the text.
The uses of EMS are many:
Read More…
Posted Under:
SMS
This post was written by Jeroen on February 13, 2009
Comments (5)
So far I’ve show how to send a text message in PDU mode. There is nothing special about this. There are a number of things you can do in PDU mode, that you can’t do in text mode.
A first example is a flash SMS message.
A flash SMS message is an SMS message that, instead of being stored in the SIM or memory of the receiving phone, pops-up on the receiving phone’s screen, without the user taking any action. When dismissed the message is usually gone.
Here is an example AT command to send a flash SMS message in PDU mode:
AT+CMGS=28<crlf>
> 0001010B915121551532F40010104190991D9EA341EDF27C1E3E9743<Ctrl-Z>
Here is what the individual octets represent:
Read More…
Posted Under:
SMS
This post was written by Jeroen on February 12, 2009
Comments (3)