Published on

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 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. 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. 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. 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. 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