77
WAP and WML DBI – Representation and Management of Data on the Internet

WAP and WML

  • Upload
    prue

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

WAP and WML. DBI – Representation and Management of Data on the Internet. Millions. 1,400 1,200 1,000 800 600 400 200 0. 1996. 1997. 1998. 1999. 2000. 2001. 2002. 2003. 2004. 2005. Internet Connectivity Outlook. Projected cellular subscribers. - PowerPoint PPT Presentation

Citation preview

Page 1: WAP and WML

WAP and WML

DBI – Representation and Management of Data on the Internet

Page 2: WAP and WML

Millions

1996 1997 1998 1999 2000 2001 2002 2003 2004 2005

1,400

1,200

1,000

800

600

400

200

0

ProjectedcellularsubscribersMore handsets than PCs

connected to the Internet bythe end of 2003!

'putting the Internet in everyone's pocket'

Internet Connectivity Outlook

Projected PCsconnected tothe Internet(Dataquest 10/98)

Projected Webhandsets

Page 3: WAP and WML

WAP

• WAP = Wireless Application Protocol

• A protocol and set of specifications to connect wireless applications to the Web

Page 4: WAP and WML

Needs for WAP

• Wireless networks and phones – have specific needs and requirements– not addressed by existing Internet technologies

• WAP enables any data transport – TCP/IP, UDP/IP, GUTS (IS-135/6), SMS, or USSD

• The WAP architecture – several modular entities– together form a fully compliant Internet entity– all WML content is accessed via HTTP 1.1 requests

Page 5: WAP and WML

Advantages of WAP

• WAP utilizes standard Internet markup language technology (XML)

• Optimizing the content and airlink protocols• The WML UI components map well onto existing

mobile phone user interfaces– no re-education of the end-users– leveraging market penetration of mobile devices

• WAP utilizes plain Web HTTP 1.1 servers– CGI, ASP, NSAPI, JAVA, Servlets, etc.

Page 6: WAP and WML

The Specification Includes

• WAP Architecture

• Wireless Application Environment

• Protocol Layers

• Interoperability

• Security

Page 7: WAP and WML

WAP Architecture

Web Server

Content

CGIScripts

etc.

WM

L D

ecks

wit

h W

ML

-Scr

ipt

WAP Gateway

WML Encoder

WMLScriptCompiler

Protocol Adapters

Client

WML

WML-Script

WTAI

Etc.

HTTPWSP/WTP

Page 8: WAP and WML

Internet vs. WAPInternet

HTMLJavaScript

HTTP

TLS - SSL

TCP/IPUDP/IP

SMS USSD CSD IS-136 CDMA CDPD PDC-P Etc..

Bearers:

Wireless Application Protocol

Wireless ApplicationEnvironment (WAE)

Session Layer (WSP)

Security Layer (WTLS)

Transport Layer (WDP)

Transaction Layer (WTP)

Other Services andApplications

Page 9: WAP and WML

Big Pipe - Small Pipe Syndrome

Wireless network<HTML><HEAD><TITLE>NNN Interactive</TITLE><META HTTP-EQUIV="Refresh" CONTENT="1800, URL=/index.html"></HEAD><BODY BGCOLOR="#FFFFFF" BACKGROUND="/images/9607/bgbar5.gif" LINK="#0A3990" ALINK="#FF0000" VLINK="#FF0000" TEXT="000000" ONLOAD="if(parent.frames.length!=0)top.location='http://nnn.com';"> <A NAME="#top"></A><TABLE WIDTH=599 BORDER="0"><TR ALIGN=LEFT><TD WIDTH=117 VALIGN=TOP ALIGN=LEFT>

<HTML><HEAD><TITLE>NNN Interactive</TITLE><META HTTP-EQUIV="Refresh" CONTENT="1800, URL=/index.html">

Internet<WML><CARD><DO TYPE="ACCEPT"><GO URL="/submit?Name=$N"/></DO>Enter name:<INPUT TYPE="TEXT" KEY="N"/></CARD></WML>

010011010011110110010011011011011101010010011010

Content encoding

HTTP/HTML WAP

Page 10: WAP and WML

WAP Application Environment Goals

• Network- neutral application environment

• For narrowband wireless devices

• With an Internet/WWW programming model

• And a high degree of interoperability

Page 11: WAP and WML

Device-Side Problems

• Device Independent• Network Independent• Different vendors – requires interfaces• Initial focus on phones

– Slow reactions– Small memory– Limited CPU– Small screen– Limited input model

Page 12: WAP and WML

WML

Wireless Markup Language

Page 13: WAP and WML

WML

• Tag-based browsing language:– Screen management (text, images)– Data input (text, selection lists, etc.)– Hyperlinks & navigation support

• Based on XML

Page 14: WAP and WML

WML (cont.)• Card metaphor

– User interactions are split into cards– Navigation occurs between cards– Cards are put in to decks

• Explicit inter-card navigation model– Hyperlinks– User interface Event handling– History

• State management and variables– Reduce network traffic– Results in better caching

Page 15: WAP and WML

All Decks Must Contain…

• Document prologue– XML & document type declaration

• <WML> element– Must contain one or more cards

<?xml version="1.0“?><!DOCTYPE WML PUBLIC "-//WAPFORUM//DTD WML 1.0//EN"

"http://www.wapforum.org/DTD/wml.xml">

<WML> ... </WML>

Page 16: WAP and WML

Hello World Example

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card id="Card1" title="The dbi Course">

<p>

<!-- Hello World example -->

Hello World

</p>

</card>

</wml>

Page 17: WAP and WML

Basic Tags

• <wml> </wml> defines the beginning and the ending of the ‘deck’, like <html> </html>

• <card> </card> defines the beginning and the ending of a card

Page 18: WAP and WML

The Result on Different Phones

Page 19: WAP and WML

Seeing the Result

• The content type of a WML text is text/vnd.wap.wml

• You can send a created WML file with a correct content type by– Using setContentType(“text/vnd.wap.wml”) in a servlet

– By configuring Tomcat to return the right content type for WML pages

Page 20: WAP and WML

Configuring Tomcat

• Due to a bug in Tomcat we will not use /conf/web.xml

• We set the content type in the local web.xml file

• For example, if the files are under a directory webapps/dbi then we change the file webapps/dbi/WEB-INF/web.xml

Page 21: WAP and WML

Setting the Content Type

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN“ "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app> <mime-mapping> <extension> wml </extension> <mime-type> text/vnd.wap.wml </mime-type> </mime-mapping></web-app>

Page 22: WAP and WML

Text Formats

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“

"http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title=“Text Formats"> <p> normal,

<strong>strong</strong>, <em>emphasized</em>, <b>bold</b>, <i>italic</i>, <u>underline</u>, <big>big</big> and<big><big>very big</big></big>, <small>small</small><br/>

</p> </card>

</wml>

Page 23: WAP and WML

deckit

Page 24: WAP and WML

Tables

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card title=“Table">

<p>

<table columns="2">

<tr><th><b>Name</b></th>

<th><b>Phone</b></th></tr>

<tr><td>Bart</td><td>123</td></tr>

<tr><td>Lisa</td><td>321</td></tr>

</table>

</p>

</card>

</wml>

Page 25: WAP and WML
Page 26: WAP and WML

Anchors

• The <anchor> tag defines what to do when a user choose a link– Comes with a task: go, pre, refresh– For example, <anchor>Login page

<go href=“login.wml"/> </anchor>

Page 27: WAP and WML

A Tag

• The <a> tag always performs a "go" task, with no variables

• For example,

<a href=“login.wml">Login page</a>

Page 28: WAP and WML

Example

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card title=“Using A Tag">

<p>

<a href=“hello.wml">To Hello World</a>

</p></card>

</wml>

Page 29: WAP and WML

Handling User Input

• Select lists– Choose from a list of options

• Input fields– Enter a string of text or numbers

• KEY variables– Set by SELECT and INPUT elements– How user input is passed to other cards and the

application server

Page 30: WAP and WML

Select From Options

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“

"http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title=“Tutorials"> <p>

<select> <option value="htm">HTML Tutorial</option> <option value="xml">XML Tutorial</option> <option value="wap">WAP Tutorial</option> </select>

</p> </card> </wml>

Page 31: WAP and WML

Select From Options

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“

"http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title=“Tutorials"> <p>

<select multiple="true“ default=“htm; xml”> <option value="htm">HTML Tutorial</option> <option value="xml">XML Tutorial</option> <option value="wap">WAP Tutorial</option> </select>

</p> </card> </wml>

Page 32: WAP and WML

Input Fields

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“

"http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card title="Input"> <p>

Name: <input name="Name" size="15"/><br/> Age: <input name="Age" size="15" format="*N"/><br/> Sex: <input name="Sex" size="15"/> </p>

</card> </wml>

Page 33: WAP and WML

Other INPUT Attributes• DEFAULT=key_value

– Default KEY variable (displayed to user)

• FORMAT=format_specifier

– If omitted, free-form entry is allowed

• EMPTYOK="TRUE"

– Browser will accept null input, even with format

• TYPE=TEXT | PASSWORD

– Special entry mode handled by the browser

• MAXLENGTH=number

– Maximum number of allowed characters

Page 34: WAP and WML

FORMAT Control Characters– N Numeric character

– A, a Alphabetic character

– X, x Numeric or alphabetic character

– M, m Any character

• Leading backslash specifies forced characters• Forced characters included in KEY variable value

• Leading * specifies 0 or more characters• Password: FORMAT=“mmmm*m”

• Leading number specifies 0..N characters• Zipcode: FORMAT=“NNNNN\-4N”

Page 35: WAP and WML

Tasks

• The <go> task represents the action of switching to a new card

• The <prev> task represents the action of going back to the previous card

• The <refresh> task refreshes some specified card variables– If any of the variables are shown on the screen, this

task also refreshes the screen

• The <noop> task says that nothing should be done

Page 36: WAP and WML

The do Action

• The <do> tag can be used to activate a task when the user chooses a word/phrase on the screen<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card> <p>

<do name="back" type="prev" label="Back"> <noop/> </do>

</p> </card> </wml> Overrides the Back link to noop

Page 37: WAP and WML

<DO TYPE="ACCEPT" LABEL="Next"> <GO URL="http://www.mysite.com/file.wml"/></DO>

The DO Element• Binds a task to a user action

– Action type: ACCEPT, OPTIONS, HELP PREV, DELETE, RESET

– Label: Text string or image (optional)– Task: GO

PREV, REFRESH, NOOP– Destination: URL– Post data: if METHOD=POST

Page 38: WAP and WML

Task Binding Rules• User actions are scoped at three levels

• Deck • Card • Anchored links & select list options (ACCEPT)– When tasks are bound to an action at different levels,

the action with narrower scope takes precedence

• Default task bindingsUser Action TaskACCEPT, PREV PREV Others NOOP

Page 39: WAP and WML

Variables

• Variables store data when a user switches from card to card in a deck

• WML variables are case sensitive

• Setting a value to a variable:<setvar name="i" value="500"/>

Set a value to i

Page 40: WAP and WML

Setting Variables From Input

<card id=“card1"> <select name=“i"> <option value=“500">The Number

500</option> <option value=“Five Hundred">500 in Text</option> </select>

</card>

Set a value to i <card id="card2"> <p>You selected: $(i)</p> </card>Get the value of i

Page 41: WAP and WML

Detecting a Click<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card id=“Card1” title=“The DBI Course”>

<do type=“accept” label=“Next”>

<go href=“#Card2”/>

</do>

<p> Select Next to go to Card 2. </p>

</card>

<card id=“Card2” title=“The DBI Course”>

<p> I'm Card 2. </p>

</card>

</wml>

Page 42: WAP and WML
Page 43: WAP and WML

Events

• There are three types of events:– onenterbackward – Occurs when the user

navigates into a card using a “prev” task– onenterforward – Occurs when the user

navigates into a card using a “go” task– ontimer – Occurs when the "timer" expires

Page 44: WAP and WML

Timer

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“ "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="Intro" ontimer="#Main" title=“DBI Course"> <timer value="150"/> <p> Welcome to the dbi site!! We will bring you to our main page after 15 seconds. </p> </card> <card id="Main" title="Menu"> <p> This is our main page. Under construction. </p> </card>

</wml>

Page 45: WAP and WML

After 15 seconds

Page 46: WAP and WML

== DBI Course ==Welcome to the dbi site!! We will bring you to our main page after 15 seconds.

___________________________ Back

== DBI Course ==Welcome to the dbi site!! We will bring you to our main page after 15 seconds.

___________________________ Back

=== Menu ===This is our main page. Under construction.

___________________________ Back

=== Menu ===This is our main page. Under construction.

___________________________ Back

Page 47: WAP and WML

Input

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card id="main" title=“DBI Example">

<do type="accept" label="Next">

<go href="#wel"/> </do>

<p> Please enter your name:

<input type="text" name=“iname"/> </p> </card>

<card id="wel" title="Welcome">

<do type="prev" label="Back"> <prev/> </do>

<p> Your name is $(iname).

Click Back to go to previous page.

</p> </card> </wml>

Page 48: WAP and WML

Entering a name Choosing the “Options”

Choosing the “Next”

Page 49: WAP and WML
Page 50: WAP and WML
Page 51: WAP and WML

Sending Data to the Server

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card id="main" title=“DBI Example">

<do type="accept" label=“Send">

<go method=“POST"

href=“dbi/registerServlet">

<postfield name="firstname"

value="$(first)"/>

<postfield name=“course" value=“dbi"/>

</go> </do>

<p> Please enter your first name:

<input type="text" name="first"/> </p>

</card>

</wml>

Page 52: WAP and WML

Sending Data to the Server

<CARD> <DO TYPE="ACCEPT"> <GO URL=“dbi/myServlet?id=$(sno)"/> </DO> <SELECT KEY=“sno” MULTIPLE="TRUE"

DEFAULT="1;3;5"> <OPTION VALUE="1">Bart</OPTION> <OPTION VALUE="2">Lisa</OPTION> <OPTION VALUE="3">Homer</OPTION> <OPTION VALUE="4">Marge</OPTION> <OPTION VALUE="5">Milhouse</OPTION> <OPTION VALUE="6">Nelson</OPTION> <OPTION VALUE="7">Smithers</OPTION> <OPTION VALUE="8">Maggie</OPTION> <OPTION VALUE="9">Burns</OPTION> <OPTION ONCLICK="#card2">More...</OPTION> </SELECT></CARD>

Page 53: WAP and WML

Collecting Data from More Than One Card

<CARD> <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#card2"/> </DO> First name: <INPUT KEY="fname"/></CARD>

<CARD NAME="card2"> <DO TYPE="ACCEPT" LABEL="Done"> <GO URL=“dbi/myServlet" METHOD="POST" POSTDATA="first=$fname&amp;last=$lname"/> </DO> Last name: <INPUT KEY="lname"/></CARD>

Page 54: WAP and WML

Template Element

• The <template> tag defines a template for all the cards in a deck

• The "code" in the <template> tag is added to each card in the deck 

• You can specify only one <template> tag for each deck 

• A template tag can only contain <do> and <onevent> tags

Page 55: WAP and WML

<WML> <TEMPLATE> <DO TYPE="OPTIONS" LABEL="Main"> <GO URL="main_menu.wml"/> </DO> </TEMPLATE> <CARD NAME="msg1"> <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#msg2"/> </DO> First story </CARD> <CARD NAME="msg2"> Second story </CARD></WML>

The TEMPLATE Element• Defines actions & events for all cards in a deck

First story…

_____________Next Main

Second story...

_____________OK Main

Page 56: WAP and WML

Another Template Example<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<template>

<do type="prev" label="Back">

<prev/>

</do>

</template>

<card id="card1" title="Card 1"> <p> <a href="#card2">Go to Card 2</a> </p> </card>

<card id="card2" title="Card 2"> <p> <a href="#card3">Go to Card 3</a> </p> </card>

<card id="card3" title="Card 3"> <p> Hello World! </p> </card>

</wml>

Page 57: WAP and WML

Another Template Example<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<template>

<onevent type="onenterbackward">

<go href="#card1"/>

</onevent> </template>

<card id="card1" title="Card 1"> <p> <a href="#card2">Go to Card 2</a> </p> </card>

<card id="card2" title="Card 2"> <p> <a href="#card3">Go to Card 3</a> </p> </card>

<card id="card3" title="Card 3"> <p> Hello World! </p> </card>

</wml>

Page 58: WAP and WML

<CARD> <DO TYPE="ACCEPT"> <GO URL="#c2"/> </DO> Continue <IMG LOCALSRC="righthand" ALT="forward..."/></CARD>

<CARD NAME="c2"> <IMG SRC="../images/logo.bmp" ALT="Unwired Planet"/> <BR/>Welcome!</CARD>

Displaying Images• It is possible to insert images or local icons

within display text– 1-bit BMP format

• Images are ignored by non-bitmapped devices

Page 59: WAP and WML

Image Attributes• alt=“..”

– ‘Names’ the image – If the image is not displayed by the browser

the label is displayed instead

• src=".. – Image source - where the image is located

• width=".. • height="..

– Sets the dimensions of the image. – For example, the screen sizes of the devices

is Nokia 7110 (48 x 96 pixels)

Page 60: WAP and WML

WBMP

• Wap supports WBMP (Wireless Bitmap Picture) 2 bit images

• It is possible to convert existing images to wbmp

• The MIME type of the images is declered with the following header:

Content-type: image/vnd.wap.wbmp

Page 61: WAP and WML

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card id="main" title="Where are you?">

<timer value="10"/>

<img src="snail2.wbmp" alt="A search snail"/>

</card>

<card id="look" title="I found you">

<img src="snail3.wbmp" alt="A looking snail"/>

</card>

</wml>

Page 62: WAP and WML

Adding Images

Page 63: WAP and WML

Special WML Characters• Use character entities in display text

&quot; "&amp; &&apos; '&lt; <&gt; >&nbsp; Blank space&shy; Soft hyphen (discretionary line break)

• Replace the “&” character in URL strings URL=“myServlet?first=$fname&amp;last=$lname”

• Use “$$” to display a single “$” character

Page 64: WAP and WML

The <head> Tag

• The <head> tag contains information about the document

<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"><wml> <head> <access domain="www.cs.huji.ac.il"/> <meta name="keyword" content="WAP"/> </head>.... .... </wml>

Page 65: WAP and WML

Doing more with WML• Setting card styles to create forms

• Using variables to cache user data

• Using card intrinsic events to trigger

transparent tasks

• Using timers

• Securing WML decks

• Bookmarking decks

Page 66: WAP and WML

WMLScript

• Scripting language:– Procedural logic, loops, conditionals, etc.– Optimized for small-memory, small-cpu devices

• Derived from JavaScript™• Integrated with WML

– Reduces overall network traffic

• Bytecode-based virtual machine– Stack-oriented design– ROM-able

Page 67: WAP and WML

WMLScript Standard Libraries

• Lang – VM constants, general-purpose math functionality, etc.

• String – string processing functions

• URL – URL processing

• Browser – WML browser interface

• Dialog – simple user interface

• Float – floating point functions

Page 68: WAP and WML

WMLScript Example Uses

• Reduce network round-trips and enhance functionality

• Field validation– Check for formatting, input ranges, etc.

• Device extensions– Access device or vendor-specific API

• Conditional logic– Download intelligence into the device

Page 69: WAP and WML

Functions

WMLScript Example

ProgrammingConstructs

Variables

function currencyConvertor(currency, exchRate) { return currency*exchRate; }

function myDay(sunShines) { var myDay; if (sunShines) { myDay = “Good”; } else { myDay = “Not so good”; }; return myDay;}

Page 70: WAP and WML

WMLScript Example

<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml> <card id=“card1" title="Go to URL"> <do type="options" label="Go"> <go href="check.wmls#go_url(‘abc’)"/> </do> </card> </wml>

Page 71: WAP and WML

WMLScript Example

extern function go_url(val){

if (val==“abc") { WMLBrowser.go("http://wap.google.com/start.wml")

} }

Page 72: WAP and WML

Wireless Telephony Applications

• Tools for building telephony applications

• Designed primarily for:– Network Operators / Carriers– Equipment Vendors

• Network security and reliability a major consideration

Page 73: WAP and WML

WTA (cont.)• WTA Browser

– Extensions added to standard WML/WMLScript browser

– Exposes additional API (WTAI)

• WTAI includes:– Call control– Network text messaging– Phone book interface– Indicator control– Event processing

Page 74: WAP and WML

WTA (cont.)

• Network model for client/server interaction– Event signaling– Client requests to server

• Security model: segregation– Separate WTA browser– Separate WTA port

• WTAI available in WML & WMLScript

Page 75: WAP and WML

Placing an outgoing call with WTAI:

Input Element

WTAI Call

<WML><CARD> <DO TYPE=“ACCEPT”> <GO URL=“wtai:cc/mc;$(N)”/> </DO> Enter phone number: <INPUT TYPE=“TEXT” KEY=“N”/></CARD></WML>

WTA Example

Page 76: WAP and WML

Placing an outgoing call with WTAI:

WTA Example

WTAI Call

function checkNumber(N) { if (Lang.isInt(N)) WTAI.makeCall(N); else Dialog.alert(“Bad phone number”);}

Page 77: WAP and WML

References• WAP Forum. http://www.wapforum.org/

• Unwired Planet, Inc. “Wireless Internet Today.” PDF File. February 1999. http://www.phone.com/industry/wap.html

• Nokia Wireless Data Forum. “ Wireless Application Protocol.” Web Page. http://www.forum.nokia.com/developers/wap/wap.html

• Motorola “Wireless Application Development” PDF File http://www.mot.com/MIMS/MSPG/spin/library_files/wad.pdf