Build a Push Proxy Gateway on Linux
By Manas Ranjan Behera
2005-06-15
Basic overview of push
A push mechanism is the delivery of unsolicited information to a mobile device. The process does not require user interaction. The WAP push system consists of a push initiator on the Internet that serves as the source of the information. The PI communicates with the PPG using a special protocol called Push Access Protocol (PAP) over HTTP. On the other side, the PPG communicates with the mobile device using another protocol called Over-The-Air (OTA). OTA can work on top of the Wireless Session Protocol (WSP) (in WAP 1.x) or WHTTP (in WAP 2.0). The PPG and the WAP gateway can be separate or combined into a single component. The OTA protocol can support a number of bearers. They can be SMS, circuit switched, or packet switched. Before continuing, let's quickly discuss push contents. The information conveyed by push is actually contained in an XML file that consist of three different entities: - Control entity: This part of the push contains the basic information and fields. The fields can include recipient address, expiry time, bearer type, delivery attempt time, and a URL to which a response is to be sent if delivery confirmation is requested by the push initiator.
- Content entity: This is the actual data that is received by the mobile device. The various content types are Service Indication (SI), Service Load (SL) and Cache Operation (CO).
- Capability entity: This entity determines the type of mobile device that is to be served. This is determined by WAP user agent profiling. The sender can indicate the hardware vendor and browser version and type of the intended recipients. This capability entity is then matched at the PPG to see which devices are compatible with the requested capability. If there is a match, the content is delivered by the PPG to that specific device.
A sample push control entity, my_uncnfpap.xml, is illustrated in Listing 1. A sample push content entity, si.xml, is illustrated in Listing 2. (You can download both of these files from the Resources section below.) Listing 1. Sample push control entity
<?xml version="1.0"?>
<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP//EN"
"http://www.wapforum.org/DTD/pap_1.0.dtd">
<pap>
<push-message push-id="9fjeo39jf084@pi.com"
deliver-before-timestamp="2001-09-28T06:45:00Z"
deliver-after-timestamp="2001-02-28T06:45:00Z"
progress-notes-requested="false">
<address address-value="WAPPUSH=+358408676001/TYPE=PLMN@ppg.carrier.com"/>
<quality-of-service
priority="low"
delivery-method="unconfirmed"
network-required="true"
network="GSM"
bearer-required="true"
bearer="CSD"/>
</push-message>
</pap>
| Listing 2. Sample push content entity
<?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"
si-id="you@yourdomain.com" action="signal-high"
created="2002-01-13T01:33:09Z"
si-expires="2005-05-31T00:00:00Z"
>
You have got mail.
</indication>
</si>
|
Tutorial Pages:
»
Introduction
» Basic overview of push
»
Configuring the gateway for PPG
»
Testing with a handset simulator
»
Resources
First published by IBM DeveloperWorks
|

|