You are here:

SMSSolutions.net > Tutorials > WAP Tutorials > WAP Push Messages

WAP Push Messages.

What is WAP Push ?

WAP Push, has been incorporated into the specification to allow WAP content to be pushed to the mobile handset with minimum user intervention. A WAP Push is basically a specially encoded message which includes a link to a WAP or WWW address. WAP Push is specified on top of WDP (WAP Datagram Protocol, resembled the UDP protocol in the Internet); as such, it can be delivered over any WDP-supported bearer, such as GPRS or SMS.

In most GSM networks, however, GPRS activation from the network is not generally supported, so WAP Push messages have to be delivered on top of the SMS bearer. The network entity that processes WAP Pushes and delivers them over an IP or SMS Bearer is known as a Push Proxy Gateway To receive WAP Push messages on your phone, it has to be WAP version 1.2 enabled.

There are 2 types of WAP Push messages, service indications and service load messages. Service Indication messages are used to notify the user that new WAP content is available, Service Load messages forces the phone to go directly to the content without user intervention (depending on the security level of your mobile phone).

WAP Push messages are encoded as XML. Because the XML format is not suitable for low bandwidth applications such as SMS, the messages are encoded using WBXML which stands for WAP Binary XML. When a message is encoded using this standard, common tags and attribute values are replaced with a single byte.

The full specification of this format van be found at www.w3.org.

Sample of a WAP Push message (Service Indication) in XML:

<?xml version="1.0"?>
<!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN" "http://www.wapforum.org/DTD/si.dtd">
<si>
<indication href="http://wap.yahoo.com" action="signal-medium" si-id="6532" >
  WAP Push Message
</indication>
</si>

The same WAP Push message in WBXML (excluding the WSP header) :

0x02                  WBXML Version 1.2
0x05                  SI 1.0 Public Identifier
0x6A                  Charset UTF-8
0x00                  String Table Length ( = 0 )
0x45                  <si>
0xC6                  <indication 
0x0C                  href="http:// 
0x03                  start of string value 
0x77                  'w'
0x61                  'a'
0x70                  'p'
0x2E                  '.'
0x79                  'y'
0x61                  'a'
0x68                  'h'
0x6F                  'o'
0x6F                  'o'
0x2E                  '.'
0x63                  'c'
0x6F                  'o'
ox6D                  'm'
0x00                  end of string value
0x11                  si-id attribute
0x03                  start of string value
0x36                  '6'
0x35                  '5'
0x33                  '3'
0x32                  '2'
0x00                  end of string value
0x07                  action attribute ( signal - medium )
0x01                  > ( end of attributes )
0x03                  start of string value
0x57                  'W'
0x61                  'A'
0x70                  'P'
0x20                  ' '
0x50                  'P'
0x75                  'u'
0x73                  's'
0x68                  'h'
0x20                  ' '
0x4D                  'M'
0x65                  'e'
0x73                  's'
0x73                  's'
0x61                  'a'
0x67                  'g'
0x65                  'e' 
0x00                  end of string value
0x01                  </indication>
0x01                  </si>

Sample of a WAP Push message (Service Load) in XML:

<?xml version="1.0"?>
<!DOCTYPE sl PUBLIC "-//WAPFORUM//DTD SL 1.0//EN" "http://www.wapforum.org/DTD/sl.dtd">
<sl href="http://wap.yahoo.com" action="execute-low" ></sl>

The same WAP Push message in WBXML (excluding the WSP header) :

0x02                  WBXML Version 1.2
0x06                  SL 1.0 Public Identifier
0x6A                  Charset UTF-8
0x00                  String table length ( =0 ) 
0x85                  <sl>
0x0A                  href="http:// 
0x03                  start of string value 
0x77                  'w'
0x61                  'a'
0x70                  'p'
0x2E                  '.'
0x79                  'y'
0x61                  'a'
0x68                  'h'
0x6F                  'o'
0x6F                  'o'
0x2E                  '.'
0x63                  'c'
0x6F                  'o'
ox6D                  'm'
0x00                  end of string value
0x05                  action attribute ( 0x05 = execute-low )
0x01                  </sl>

Sending WAP Push messages

WAP Push messages can be send using a SMPP connection, HTTP connection or GSM phone or modem. The message has to be encoded as an eight bit message. You should also set the 'UDH' indication bit of the SMS message.