1. WAP Push and WTA in a WAP service
Marko Suominen
Tampere university of technology, Pori
November 24th 2002
Abstract— To study the use of WAP Push and WTA in a request, the user will not know it until he makes another
WAP service, Mailmonitor and WAPMail applications request. This is called pull-technology. In push-
were made. The Mailmonitor checks the user's email technology the user is registered to the service in
account frequently and if there is a new mail, Mailmonitor
advance and the server sends data to the user when
sends a push message to the user's mobile phone. When
the user replies to the push message, the mobile phone there is a need for it, i.e. there are changes in the data
connects to the WAPMail service, which sends the new which the user is supposed to be interested in.
email to the WAP browser for the user to read. After this The WAP Push service consists of the Push Initiator
the user may continue to use the WAPMail service to read, (PI), the Push Proxy Gateway (PPG) and the WAP
write or delete emails or logs out. If the email has a certain Client, like a mobile phone which is able to receive
string as a subject, Mailmonitor knows that this email
push messages. The Push Initiator may be a service in a
includes a phone number and instead of making a push
message, which connects to WAPMail, it makes a push content server or an application or part of some
message which uses WTA to call to the included phone application. If the Push Initiator is not in the same
number. Two versions of Mailmonitor were made to send subnet as the PPG and the WAP gateway there are the
push messages with two different gateway solutions. same network security issues to deal with as when
Mailmonitor and WAPMail were tested successfully in an dealing with regular network traffic. The Push Initiator
emulator and with a real WAP phone.
forms a push message with instructions of how to
handle it. The Message is transferred from the Push
Index Terms— WAP, WAP Push, WTA.
Initiator to PPG using the Push Access Protocol (PAP)
I. INTRODUCTION on top of HTTP. PPG is usually but not always in
conjunction with a WAP Gateway. PPG handles the
W AP specification 1.2 introduced new features like
WAP Push and Wireless Telephony Application
(WTA) already in the year 2000 [1], but using these
message as instructed and forwards it to the mobile
phone through the WAP Gateway using the push Over
features in a real world application was not possible
until late in the year 2001. Now in the year 2002 most
of the new WAP devices and WAP gateways are WAP
1.2.1 compliant. Unfortunately most of these devices
are not fully compliant to the specification and usually
the only way to find this out is to try them. For example,
even if a WAP device is able to receive WAP Push
messages, it usually means that it is able to receive only
Service Indication (SI) messages, not the two other
types of push messages defined in the specification. In
addition to a capable WAP device, the WAP Push
service needs a Push Proxy Gateway (PPG) to work.
Fig. 1. From Push Initiator to PGG the push message uses the Push
PPG is independent, but usually WAP gateway Access Protocol on top of HTTP and from PPG to WAP Client it uses
manufacturers have integrated it to the WAP gateway. the push Over the Air Protocol on top of HTTP or WSP.
To use WTA in your WAP services, only a compliant
WAP device is needed. The Air (OTA) protocol on top of HTTP or WSP
(Wireless Session Protocol). [2].
II. WAP PUSH PPG is an essential part of the WAP Push service. For
In a traditional Client/server-model the user first the Push Initiator to be able to send push messages in
requests data or a service from the server, after which the first place, Push Initiator must be known by the
the server sends the requested data to the user. If there PPG. Also the WAP Client must register itself to a
are changes in the data after the server has replied to the WAP push service in PPG to receive push messages. In
16
2. the registration PPG gets information about the WAP Devices memory. Otherwise the user has to delete the
Client, like memory and display limitations, and the push message himself. [4]
Push Initiator is given permission to send push In Service Loading the client's WAP Browser
messages to this WAP Client. connects to the URL in the push message or, in other
In addition to sending push messages, the Push words, loads the content of the given URL before user
Initiator may try to cancel or replace the push message of the WAP Client becomes aware of the push message.
it has sent, if PPG has not already forwarded it to WAP The Push Initiator is able to set low or high priority for
Client. Push Initiator may also make queries about the this operation, but WAP Client has the final word in
state of the push message in PPG and the capabilities of
WAP Client to receive a push message. PPG only <!ELEMENT co (invalidate-object | invalidate-service)+>
<!ELEMENT invalidate-object EMPTY>
replies to the actions of Push Initiator and does not for <!ATTLIST invalidate-object
uri CDATA #REQUIRED
example make any queries to Push Initiator. [3] >
<!ELEMENT invalidate-service EMPTY>
The push message itself is an XML-formatted <!ATTLIST invalidate-service
uri CDATA #REQUIRED
document in three parts. The parts are control, content >
and capability. In the control part there is a push
message's unique id, the address of the receiver and Fig. 4. Description of the mediatype of Cache Operation (CO). [6]
instructions when and how to forward the push message priorities. The content of the given URL may also be
to Client. The capability part is optional and it contains loaded directly to the WAP Devices cache. [5]
requirements for WAP Client to be able to view this In Cache Operation the push message informs the WAP
push message. If these requirements do not meet the device, not the user, that a certain content in the WAP
capability information of WAP Client stored in PPG, devices cache is old. Next time when the user requests
PPG may reject the push message. To make sure WAP this content the device reloads it from the server, not
Client will receive the push message Push Initiator from the cache. [6]
should first query the capabilities of WAP Client from From PPG to WAP Client the push message uses
PPG and then form a suitable push message. The push OTA-HTTP or push OTA-WSP, depending on the
content part contains the push message that Push underlaying protocol. Push OTA-WSP provides both
Initiator wants to send to WAP Client. There are three connection-oriented and connectionless push, but push
<!ELEMENT si (indication,info?)> OTA-HTTP provides only connection-oriented push.
<!ELEMENT indication (#PCDATA)>
<!ATTLIST indication [7]
href %URI; #IMPLIED
si-id CDATA #IMPLIED
created %Datetime; #IMPLIED III. WIRELESS TELEPHONY APPLICATION
si-expires %Datetime; #IMPLIED
action (signal-none|signal-low|signal-medium|
signal-high|delete) quot;signal-mediumquot;
In WTA there are defined services that enable the
>
<!ELEMENT info (item+)>
building of WAP applications and services that use
<!ELEMENT item (#PCDATA)> phone functions from WAP Browser. In the WAP
<!ATTLIST item
class NMTOKEN #REQUIRED specification WTA is in the same layer as Wireless
>
Application Environment (WAE). Therefore it is
Fig. 2. Description of the mediatype of Service Indication (SI) push obvious that the services of WTA are used from WML
message. [4] and WML Script, which are defined in WAE. [8] The
WTA actions are in three Wireless Telephony
kinds of push messages: Service Indication (SI), Service
Loading (SL) and Cache Operation (CO). [2] TABLE I
In Service Indication WAP Client gets a short message PUBLIC WTAI LIBRARY FUNCTIONS
like quot;you have new mailquot; and URL, in which the client's WML
Make Call <a href=quot;wtai://wp/mc;0123456quot;>Call</a>
WAP Browser connects when the user answers the push Send <a href=quot;wtai://wp/sd;6quot;>Play 6</a>
message. The push message is stored in the WAP DTMF
Devices memory and the user does not have to answer Add <a href=quot;wtai://wp/ap;0123456;Namequot;>Add</a>
phonebook
the message right away. The Push message may contain
entry
an expiration date, which means that at that given WML SCRIPT
moment WAP Client reloads a push message with the Make Call WTAPublic.makeCall(quot;0123456quot;);
same id from PPG or deletes the one in the WAP Send WTAPublic.sendDTMF(quot;6quot;);
DTMF
<!ELEMENT sl EMPTY> Add WTAPublic.addPBEntry(quot;0123456quot;,quot;Namequot;);
<!ATTLIST sl phonebook
href %URI; #REQUIRED entry
action (execute-low|execute-high|cache) quot;execute-lowquot;
>
The three public WTAI library functions and their use in WML and
Fig. 3. Description of the mediatype of Service Loading (SL) push WML Script documents.
message. [5]
Application Interface (WTAI) libraries as functions and
17
3. events. The WTAI libraries are public, network the user to be able to respond to the push message a
common and network specific libraries. [9]. WAPMail service was made. With WAPMail the user
The Public WTAI library contains three functions: can read, write, reply to and delete his emails from a
make call, send DTMF and add phonebook entry. Make WAP device. WAPMail runs in a Apache-Tomcat
call simply makes a call to the given number. With the server as servlets and in the same server lies the user
send DTMF function the application can play Dual database. When the user logs into the WAPMail
Tone Multi-Frequency voices. The add phonebook service, he gives his ID, password and the password of
entry simply adds a phone number and name to the his email account. Then WAPMail connects to the
database and reads the user's email account ID and the
TABLE II
NETWORK COMMON WTAI LIBRARY FUNCTIONS AND EVENTS address of the email server. For security reasons the
VOICE CALL FUNCTIONS: VOICE CALL EVENTS: password of the email account is not written in the
WTAVoiceCall.setup IncomingCall (wtaev-cc/ic) database or anywhere else. WAPMail needs this
WTAVoiceCall.accept CallCleared (wtaev-cc/cl) information to connect to the email server. Mailmonitor
WTAVoiceCall.release CallConnected (wtaev-cc/co)
WTAVoiceCall.sendDTMF OutgoingCall (wtaev-cc/oc) uses the same database. Because Mailmonitor is meant
WTAVoiceCall.callStatus CallAlerting (wtaev-cc/cc)
WTAVoiceCall.list DTMFSent (wtaev-cc/dtmf)
NETWORK MESSAGE
NETWORK MESSAGE EVENTS:
FUNCTIONS:
WTANetText.send MessageSendStatus (wtaev-
WTANetText.list nt/st)
WTANetText.remove IncomingMessage (wtaev-nt/it)
WTANetText.getFieldValue
WTANetText.markAsRead
PHONEBOOK FUNCTIONS: CALL LOG FUNCTIONS:
WTAPhoneBook.write WTACallLog.dialled
WTAPhoneBook.search WTACallLog.missed
WTAPhoneBook.remove WTACallLog.received
WTAPhoneBook.getFieldValu WTACallLog.getFieldValue
e
WTAPhoneBook.change
MISCELLANEOUS FUNCTIONS: MISCELLANEOUS EVENTS:
WTAMisc.setIndicator NetworkStatus (wtaev-ms/ns)
WTAMisc.endContext Fig. 5. The architecture of the demonstration service. Mailmonitor
(wtai://ms/ec) polls the email server for new emails and sends a push message to
WTAMisc.getProtection WAP Client, which connects to the WAPMail service to read the new
WTAMisc.setProtection email.
to be used by several users and because it runs in
List of functions and events in the network common library.
different users' computers, it needs an Accessmonitor
mobile phone's phonebook. The use of these functions
application in the server to connect to the database.
in WML and WML Script documents is shown in table
Between Mailmonitor and Accessmonitor there is a
I. [10]
socket connection.
The functions and events in the network common
When the user starts Mailmonitor he gives his ID,
library are divided into five sections. The voice call
password, the password of his email account and a
section contains functions and events to make and
frequency for Mailmonitor to check the user's email.
monitor phone calls and dual tone voices (DTMF). The
Then Mailmonitor connects to the database with
functions and events to send and modify network
Accessmonitor. From the database Mailmonitor gets the
messages are in the network message section. In the
user's email account ID, the address of the email server
phonebook section there are functions to add and
and Push Broxy Gateway ID. Mailmonitor frequently
modify entries in the mobile phone's phonebook. The
polls the email server for new emails and if there is a
Call log section contains functions to read the mobile
new email, Mailmonitor sends an SI push message to
phone's call log. In the miscellaneous section there are
PPG. From PPG the push message goes through the
functions and events to handle WTA itself. All
WAP gateway to the user's mobile phone. When the
functions and events are listed in table II. Most of the
user replies to the push message, the mobile phone's
names are self-explaining and it is quite easy to figure
WAP browser connects to the WAPMail service
out what it is possible to do with these functions and
through the WAP gateway. In WAPMail the user gets
events. [10]
logged in the service and the new email is sent to the
mobile phone's WAP browser for the user to read. After
IV. THE ARCHITECTURE OF THE DEMONSTRATION
SERVICE this the user continues using the WAPMail service or
logs out. If the email has a certain subject, in this case
To study the use of WAP Push and WTA in a WAP 'CALLREQUEST', Mailmonitor knows that this email
service, Mailmonitor was made, which is an application includes a phone number, and instead of making a push
to send a push message if the user gets a new email. For
18
4. message, which connects to WAPMail, it makes a push
message which uses WTA to call that number. The
whole system is illustrated in Figure 5. The boundaries
between the servers are suggestive, i.e. whole system
could also be in one server. In theory there is no limit to
the number of running Mailmonitor applications in one
or several PCs.
V. DEVELOPING AND TESTING OF DEMONSTRATION
SERVICE
Two versions of the Mailmonitor application were
made. The first version used the Openwave WAP push
library to form a push message, and the second version
Fig. 8. The set-up to test the second version of the demonstration
service. The mobile phone was connected to the server for Mobile
Gateway to send a push message as binary SMS through the SMS
server to WAP Client.
attributes of service quality were tried but not used
because they were not necessary for the purpose of
Mailmonitor. Mailmonitor was tested with Openwave's
SDK 5, which received the push messages that had been
sent.
If SMS is used as a bearer in sending a push message, it
is possible to make solutions like Realwow's Mobile
Gateway 3, which bypasses PPG. This means that any
Push Initiator can send a push message to any mobile
phone. Mobile gateway 3 was used to form and send
push messages in the second version of Mailmonitor.
With Mobile Gateway 3 it was possible to define only
the phone number of the client device, URL of the push
message and the message itself. With this second
version the use of WTA's make call function was tested
and a simple application with fields for name and phone
number and a button to send a call request as an email
was made.
VI. RESULTS
WAPMail worked well, though there was occasionally
Fig. 7. The set-up to test the first version of the demonstration some trouble with multi-part emails and some
service. Mailmonitor and Openwave's SDK 5 were running in a laptop annoyance with some device's cache memory. With
and WAPMail and Accessmonitor were running in a desktop. Mailmonitor there was some problems. Mailmonitor did
not always recover from an exception, which was a
sent parameters to Realwow's Mobile Gateway 3 to result of the email server being down and Mailmonitor
form and send a push message. The second version was not being able to connect to it. The server with Mobile
made because it was not possible to send push messages Gateway crashed a few times for some still unknown
to real mobile phones through Openwave's gateway reason, that very likely had nothing to do with the WAP
provisioning. service. After the first push messages were sent there
In the first version the Openwave WAP push library were no problems in sending and receiving push
was used and it was possible to define the same messages. No documentation was found on how long
attributes to the push message as in the specification, the push message can be, but it was noticed that a push
though all attributes were not implemented to the WAP message with reply URL of 500 characters did not go
push library at the time. On the other hand Mailmonitor through Openwave's push provisioning service. The
uses simple Service Indication and only ID for the push biggest problem in developing services for mobile
message, ID for the client device, URL of the PPG, devices in general is that the features and limitations of
URL of the push message and the message itself were every component vary a lot.
needed to be defined. Expiration date, priority and other
19
5. VII. DISCUSSION http://www1.wapforum.org/tech/documents/WAP-168-
ServiceLoad-20010731-a.pdf
It is very hard to think of services that really need a [6] WAP Forum. (2001, July 31). WAP-175, WAP Cache Operation
WAP push. For example, a version of Mailmonitor was Specification. [Online]. Available:
http://www1.wapforum.org/tech/documents/WAP-175-
made to send an SMS message instead of a push CacheOp-20010731-a.pdf
message. The SMS message had a sender, subject and [7] WAP Forum. (2001, April 25). WAP-235, Push OTA Protocol
as much of the text part of the email message as it was Specification. [Online]. Available:
possible to include in 160 characters. Quite often it was http://www1.wapforum.org/tech/documents/WAP-235-
PushOTA-20010425-a.pdf
possible to know what the email message was about, [8] WAP Forum. (2001, November 9). WAP-236, Wireless
and only once in the test it was tempting to write a reply Application Environment Specification. [Online]. Available:
with a mobile phone and not to wait to get back home or http://www1.wapforum.org/tech/documents/WAP-236-
WAESpec-20011109-a.pdf
to the office and use a decent keyboard. Another thing [9] WAP Forum. (2001, September 8). WAP-266, Wireless
to take into account when planning WAP push services Telephony Application Specification. [Online]. Available:
is that push messages are not free. Therefore a field was http://www1.wapforum.org/tech/documents/WAP-266-WTA-
20010908-a.pdf
added to Mailmonitor for the user to write keywords in [10] WAP Forum. (2001, September 8). WAP-268, Wireless
order to filter unwanted emails. Unfortunately this is not Telephony Application Interface Specification. [Online].
enough if someone tries to harm the Mailmonitor user Available: http://www1.wapforum.org/tech/documents/WAP-
268-WTAI-20010908-a.pdf
on purpose and sends for example a hundred emails per
minute.
With WTA the situation is not as difficult, especially
Marko Suominen, born in 1969, received his M. Sc. degree in
with the 'make call' and 'add phone book entry' software engineering from Tampere university of technology, Pori,
functions. The usage might not be versatile, but it is Finland, in 2001 and has since worked there as a researcher in the
easy to imagine them to be used in contact pages, Advanced Multimedia Centre.
because they are easy to add, facilitate the use and do
not increase the costs.
VIII. FUTURE DEVELOPMENT
There are currently no plans to develop Mailmonitor
further, but one of the first features to add would be to
make Mailmonitor able to check if the user has
transferred or deleted email from the email server
before he answers the push message, and then try to
delete the push message in the client device. This
operation would reduce, but does not fully eliminate the
possibility that the email does not exist anymore when
user tries to reply to the push message. At the moment
this feature is possible to implement only in the first
version of Mailmonitor. Another feature to add is to
make it possible to close Mailmonitor from the WAP
device, if Mailmonitor for some reason starts to send
too many push messages.
REFERENCES
[1] WAP Forum. (2001, July 12). WAP-210, Wireless Application
Protocol Architecture Specification. [Online]. Available:
http://www1.wapforum.org/tech/documents/WAP-210-
WAPArch-20010712-a.pdf
[2] WAP Forum. (2001, July 3). WAP-250, Push Architectural
Overview. [Online]. Available:
http://www1.wapforum.org/tech/documents/WAP-250-
PushArchOverview-20010703-a.pdf
[3] WAP Forum. (2001, April 29). WAP-247, Push Access Protocol
Specification. [Online]. Available:
http://www1.wapforum.org/tech/documents/WAP-247-PAP-
20010429-a.pdf
[4] WAP Forum. (2001, July 31). WAP-167, WAP Service
Indication Specification. [Online]. Available:
http://www1.wapforum.org/tech/documents/WAP-167-
ServiceInd-20010731-a.pdf
[5] WAP Forum. (2001, July 31). WAP-168, WAP Service Loading
Specification. [Online]. Available:
20