Sending WAP Push Messages

Sending WAP Push Messages over HTTP

To send a WAP Push message via a menu driven interface, please see the help section titled Web Menu Interface. This section describes how to send a WAP Push programmatically via URL parameters.

Note that it is also possible to send WAP Push messages programmatically using the PAP (Push Access Protocol) / PPG (Push Proxy Gateway) interface, which is described in NowSMS as a WAP Push Proxy Gateway.

WAP Push messages are specially formatted SMS messages that display an alert message to the user, and give the user the option of connecting directly to a particular URL via the mobile phone’s WAP browser.

For example, an e-mail application might send an alert that tells the user they have new e-mail, with a URL link to connect directly to a WAP e-mail application.

The WAP specifications define a format for applications to create XML-based “PAP” (Push Access Protocol) documents that can be posted to an operator’s “PPG” (Push Proxy Gateway), in order to deliver a WAP push message to a mobile device.

Unfortunately, the complexity of this format, and the reluctance of operators to open their “PPG” to just anyone, has made it difficult for developers to deploy “WAP Push” in their applications.

The Now SMS & MMS Gateway makes it easy to generate and deliver “WAP Push” messages. While the gateway does not support all of the options available via the PAP-based PPG interface, it does implement “WAP Push” in an elegantly simple solution.

To send a WAP Push message, use the following URL format:

http://127.0.0.1:8800/?PhoneNumber=xxxxxxxx&WAPURL=name.domain/path&Text=abc+def+ghi

For 127.0.0.1, please substitute the IP address or host name assigned to your gateway PC. (Note: 127.0.0.1 is a local loop back address that can be utilized when you are connecting to the gateway from the same computer.)

For 8800, please substitute the port number that the gateway is configured to use.

Substitute the phone number that you wish to send the SMS message to for the “xxxxxxxx” in the “PhoneNumber” parameter. Use either the local phone number format, or the international phone number format (your network provider may or may not allow you to send to international phone numbers). If the international phone number format is used, note that you must substitute “%2B” for the “+” character, because of URL escaping restrictions. For example, to send an SMS to +447778001210, use %2B447778001210 instead.

The alert text for the WAP Push message is contained in the “Text” parameter, and utilizes the same format as described in “Sending Text Messages”.

Note that there are two types of “WAP Push” messages, “Service Indication (SI)” and “Service Load (SL)”. The “SL” format can be selected by including “WAPSL=1” as a URL parameter, and does not support a “Text” parameter, while the “SI” format does. (By specification, the “SL” format was designed to tell the browser to connect to a URL without user intervention. However, for security reasons, most mobile phones will always display a prompt before connecting to a URL. Therefore, the lack of a text parameter makes the “SL” format considerably less user-friendly than the “SI” format, and in practice, most users will exclusively use the “SI” format.)

The URL to be pushed to the mobile device is specified in the “WAPURL” parameter. Note that the “http://” portion of the URL is not necessary and is assumed. Also note that it may be necessary to escape some URL characters, please refer to the table in the “Sending Text Messages” section for common characters that must be escaped.

The following parameters are supported for sending WAP Push messages:

WAPURL WAP Push URL to be sent in the WAP Push message.
WAPPushInitiatorURI WAP Push, OMA OTA Sets the WAP Push Initiator URI. For more information, refer to the Technical Bulletin titled WAP Push or OTA: Unknown Sender.
WAPPushFlag WAP Push, OMA OTA Sets the WAP Push Flag. For more information, refer to the Technical Bulletin titled WAP Push or OTA: Unknown Sender.
WAPSIID WAP Push (Service Indication) “Service Indication ID” is a text string that defines an id string to be associated with a service indication push.

If a push has an “WAPSIID” associated with it, it is possible to later send a “WAPSIAction=delete” push with the same “WAPSIID” value to delete the previous push message from the device inbox.

Similarly, if a mobile device receives a push message with a “WAPSIID” that matches that of a previously received push that is still in its inbox, the new push message should replace the existing push message.

WAPSIACTION WAP Push (Service Indication) “Signal Action” specifies the type of alert to be associated with the push. While this is not very widely supported, the general intent is to associate a priority with the alert. Valid settings are:

“signal-high” – high priority alert

“signal-medium” – medium priority alert

“signal-low” – low priority alert

“signal-none” – do not generate a notification alert for this push

“delete” – if a previously sent push exists in the device inbox, with the same WAPSIID as a specified in this push, then the push should be deleted from the device inbox.

WAPSIEXPIRES WAP Push (Service Indication) The “SI Expires” field specifies a date/time at which the receiving device should automatically expire the push. This is a date/time value relative to GMT, in the format “yyyy-mm-ddThh:mm:ssZ”. For example, “2006-02-24T00:00:00Z”.
WAPSICREATED WAP Push (Service Indication) The “SI Created” field specifies a creation date/time stamp to be associated with the push. If specified, this date/time stamp should take the format “yyyy-mm-ddThh:mm:ssZ”, specifying a date/time value relative to GMT. For example, “2006-02-24T00:00:00Z”.
WAPSL WAP Push (Service Load) When the “WAPURL” parameter is specified, set this parameter to any value to send the WAP Push as a “Service Load” (SL) message, instead of the default “Service Indication” (SI) message.
WAPSLAction WAP Push (Service Load) Specifies the type of action to be taken upon receipt of a “Service Load” push. Valid settings are:

“execute-low” – The browser fetches the URL and executes it in a non-intrusive manner

“execute-high” – The browser fetches the URL, executes it and displays it in a manner that may be considered intrusive

“cache” – The browser fetches the URL and saves the resulting data in the browser’s cache (if a cache does not exist, the push is ignored)

For a complete list of URL parameters, please refer to the section Submitting SMS Messages – URL Parameters.