FIELD OF THE INVENTIONThe invention disclosed broadly relates to ubiquitous computing and more particularly relates to improvements in short range wireless technology.[0001]
BACKGROUND OF THE INVENTIONShort Range Wireless Systems[0002]
Short range wireless systems have a typical range of one hundred meters or less. They often combine with systems wired to the Internet to provide communication over long distances. The category of short range wireless systems includes wireless personal area networks (PANs) and wireless local area networks (LANs). They have the common feature of operating in unlicensed portions of the radio spectrum, usually either in the 2.4 GHz Industrial, Scientific, and Medical (ISM) band or the 5 GHz Unlicensed-National Information Infrastructure (U-NII) band. Wireless personal area networks use low cost, low power wireless devices that have a typical range of ten meters. The best known example of wireless personal area network technology is the Bluetooth Standard, which operates in the 2.4 GHz ISM band. It provides a peak air link speed of one Mbps and a power consumption low enough for use in personal, portable electronics such as PDAs and mobile phones. Wireless local area networks generally operate at higher peak speeds of between 10 to 100 Mbps and have a longer range, which requires greater power consumption. Wireless local area networks are typically used as wireless links from portable laptop computers to a wired LAN, via an access point (AP). Examples of wireless local area network technology include the IEEE 802.11 Wireless LAN Standard and the HiperLAN Standard, which operates in the 5 GHz U-NII band.[0003]
The Bluetooth Short Range Wireless Technology[0004]
Bluetooth is a short range radio network, originally intended as a cable replacement. It can be used to create networks of up to eight devices operating together. The Bluetooth Special Interest Group, Specification Of The Bluetooth System,[0005]Volumes 1 and 2, Core and Profiles: Version 1.1, 22nd February, 2001, describes the principles of Bluetooth device operation and communication protocols. The devices operate in the 2.4 GHz radio band reserved for general use by Industrial, Scientific, and Medical (ISM) applications. Bluetooth devices are designed to find other Bluetooth devices within their ten meter radio communications range and to discover what services they offer, using a service discovery protocol (SDP).
The SDP searching function relies on links being established between the requesting Bluetooth device, such as a stationary access point device, and the responding Bluetooth device, such as a mobile user's device. When the mobile user's device enters within communicating range of the access point, its Link Controller layer in its transport protocol group handles the exchange of inquiry and paging packets to establish the initial link with the access point device. This process is relatively fast, typically being completed in approximately from one to five seconds. Then the Logical Link Control and Adaptation Protocol (L2CAP) layer in the transport protocol group passes the link status up to the layers in the middleware protocol group. The SDP searching function in the middleware protocol group can then be used to find out about application programs in the responding Bluetooth device that may provide desired services. The SDP searching function can require several seconds to complete, depending on the complexity of the search and the size of the device's registry.[0006]
An example application program service that can be discovered by the SDP searching function is the Wireless Application Environment (WAE) graphical user interface (GUI) function of the Wireless Application Protocol (WAP). WAP-enabled wireless devices can use a microbrowser to display content on a small screen of the device. WAP uses a combination of Internet protocols with other protocols especially modified to work with mobile devices. The Internet protocols are: Point to Point Protocol (PPP), Internet Protocol (IP), and User Datagram Protocol (UDP). The special mobile device protocols are: Wireless Transport Layer Security (WTLS), Wireless Transaction Protocol (WTP), Wireless Session Protocol (WSP), and Wireless Application Environment (WAE). It is the WAE that provides the microbrowser user interface for WAP. In order to establish a connection to send content from the requesting access point device to the WAE microbrowser of the responding user's device, each of the WAP protocol layers WTLS, WTP, WSP, and WAE must be established, which can require several more seconds to complete and possibly significant user interaction on the way.[0007]
It can be seen that if the user's mobile Bluetooth device has enough speed to travel across the communications area of the Bluetooth access point before completing downloading data from a network server, the contact with the server will be irretrievably lost. THE IEEE 802.11 WIRELESS LAN STANDARD[0008]
The IEEE 802.11 Wireless LAN Standard defines at least two different physical (PHY) specifications and one common medium access control (MAC) specification. The IEEE 802.11 (a) Standard is designed for either the 2.4 GHz ISM band or the 5 GHz U-NII band, and uses orthogonal frequency division multiplexing (OFDM) to deliver up to 54 Mbps data rates. The IEEE 802.11 (b) Standard is designed for the 2.4 GHz ISM band and uses direct sequence spread spectrum (DSSS) to deliver up to 11 Mbps data rates. The IEEE 802.11 Wireless LAN Standard describes two major components, the mobile station and the fixed access point (AP). IEEE 802.11 networks can be configured where the mobile stations communicate with a fixed access point. IEEE 802.11 also supports distributed activities similar those of the Bluetooth piconets. The IEEE 802.11 standard provides wireless devices with service inquiry features similar to the Bluetooth inquiry and scanning features.[0009]
In order for an IEEE 802.11 mobile station to communicate with other stations in a network, it must first find the stations. The process of finding another station is by inquiring. Active inquiry requires the inquiring station to transmit queries and invoke responses from other wireless stations in a network. In an active inquiry, the mobile station will transmit a probe request frame. If there is a network on the same channel that matches the service set identity (SSID) in the probe request frame, a station in that network will respond by sending a probe response frame to the inquiring station. The probe response includes the information necessary for the inquiring station to access a description of the network. The inquiring station will also process any other received probe response and Beacon frames. Once the inquiring station has processed any responses, or has decided there will be no responses, it may change to another channel and repeat the process. At the conclusion of the inquiry, the station has accumulated information about the networks in its vicinity. Once a station has performed an inquiry that results in one or more network descriptions, the station may choose to join one of the networks. The IEEE 802.11 Wireless LAN Standard is published in three parts as IEEE 802.11-1999; IEEE 802.11a-1999; and IEEE 802.11b-1999, which are available from the IEEE, Inc. web site http://grouper.ieee.org/groups/802/11.[0010]
In the case of IEEE 802.11 mobile stations, if the user's mobile device has enough speed to travel across the communications area of the IEEE 802.11 access point before completing downloading data from a network server, the contact with the server will be irretrievably lost.[0011]
High Performance Radio Local Area Network (HiperLAN)[0012]
The HiperLAN standard provides a wireless LAN with a high data rate of up to 54 Mbps and a medium-range of 50 meters. HiperLAN wireless LANs provide multimedia distribution with video QoS, reserved spectrum, and good in-building propagation. There are two HiperLAN standards. HiperLAN[0013]Type 1 is a dynamic, priority driven channel access protocol similar to wireless Ethernet. HiperLAN Type 2 is reserved channel access protocol similar to a wireless version of ATM. Both HiperLANType 1 and HiperLAN Type 2 use dedicated spectrum at 5 GHz. HiperLANType 1 uses an advanced channel equalizer to deal with intersymbol interference and signal multipath. HiperLAN Type 2 avoids these interference problems by using OFDM and a frequency transform function. The HiperLAN Type 2 specification offers options for bit rates of 6, 16, 36, and 54 Mbps. The physical layer adopts an OFDM multiple carrier scheme using 48 carrier frequencies per OFDM symbol. Each carrier may then be modulated using BPSK, QPSK, 16-QAM, or 64-QAM to provide different data rates. The modulation schemes chosen for the higher bit rates achieve throughput in the range 30-50 Mbps.
The[0014]HiperLAN Type 1 is a dynamic, priority driven channel access protocol that can form networks of wireless devices.HiperLAN Type 1 networks support distributed activities similar those of the Bluetooth piconets and IEEE 802.11 independent basic service sets (IBSS). TheHiperLAN Type 1 standard provides wireless devices with service inquiry features similar to those of the Bluetooth inquiry and scanning features and the IEEE 802.11 probe request and response features. An overview of theHiperLAN Type 1 principles of operation is provided in thepublicationHiperLAN Type1Standard,ETSI ETS 300 652, WA2 December 1997.
HiperLAN Type 2 is a reserved channel access protocol that forms networks. HiperLAN Type 2 networks support distributed activities similar those of the[0015]HiperLAN Type 1 networks, Bluetooth piconets and IEEE 802.11 independent basic service sets (IBSS). HiperLAN Type 2 provides high speed radio communication with typical data rates from 6 MHz to 54 Mbps. It connects portable devices with broadband networks that are based on IP, ATM and other technologies. Centralized mode is used to operate HiperLAN Type 2 as an access network via a fixed access point. A central controller (CC) in the fixed access point provides QoS coordinates the access of the mobile stations support. User mobility is supported within the local service area and wide area roaming mobility can also be supported. An overview of the HiperLAN Type 2 principles of operation is provided in the Broadband Radio Access Networks (BRAN),HiperLAN Type2;System Overview, ETSI TR 101 683 VI.I.1 (2000-02) and a more detailed specification of its ad hoc network architecture is described inHiperLAN Type2, Data Link Control(DLC)Layer; Part4.Extension for Home Environment, ETSI TS 101 761-4 V1.2.1 (2000-12).
In the case of HiperLAN mobile stations, if the user's mobile device has enough speed to travel across the communications area of the HiperLAN access point before completing downloading data from a network server, the contact with the server will be irretrievably lost.[0016]
What is needed is a way of enabling a mobile wireless device to resume an Internet contact with a web site, which was being conducted through a short range wireless access point, but which has been interrupted by moving the mobile device out of the coverage area of the access point.[0017]
SUMMARY OF THE INVENTIONThe invention solves the problem of enabling a mobile wireless device to resume an Internet contact with a web site, which was being conducted through a short range wireless access point, but which has been interrupted by moving the mobile device out of the coverage area of the access point. Short range wireless systems include wireless personal area networks (PANs), such as Bluetooth networks and IrDA Infrared Data Protocol networks, and wireless local area networks (LANs), such as the IEEE 802.11 wireless LANs and HiperLAN networks. The invention involves the use of mobile wireless devices that are equipped with both short range wireless communications circuits and with cellular telephone communications circuits. An example of such a mobile wireless device is a Bluetooth-equipped cellular telephone.[0018]
During the period when a mobile wireless device is within the coverage area of a short range wireless access point, it sends a request for service to be obtained over the Internet from a network server. The short range wireless access point forwards that request over the Internet to the server, augmented with additional information including the network address and geographic location of the access point. The short range wireless access point receives a response message over the Internet from the server, including a global/local parameter. The global/local parameter will notify the mobile wireless device whether the requested service is available outside the coverage area of the short range wireless access point. The access point forwards the response message to the mobile wireless device, which uses the information in the message to contact the server over the Internet to download web pages or to conduct other server operations.[0019]
Regions outside the coverage area of the short range wireless access point are covered by regional cellular telephone access points, such as cellular telephone base stations. Suitable cellular telephone systems include GSM, GPRS, UMTS, EDGE, and the like. In accordance with the invention, if the mobile wireless device detects that it has left the coverage area of the short range wireless access point while in contact with the server, it will determine whether the global/local parameter indicates that the service is global. For example, the server may have been in the process of downloading web pages. If the parameter is global, then the mobile wireless device stores a bookmark of the server's URL, for example the URL and path name for one of the prior web pages downloaded from the server. The mobile wireless device displays a notice to the user offering the user the option of continuing the contact with the server over the regional cellular telephone network.[0020]
If the user selects to continue the contact with the server, then a stored handover address is accessed. The handover address may be stored in the mobile wireless device or alternately, it may be stored in the short range wireless access point. The stored handover address may be a default address or alternately, it may be a handover address included in the prior response message from the server. The handover address will typically be the telephone number of a protocol gateway, such as a WAP gateway, connected between the cellular telephone network and the Internet. A cellular telephone connection is made by the mobile wireless device with the regional cellular telephone access point. Then, a cellular telephone call is placed to the protocol gateway. When the call is completed over the telephone network from the mobile wireless device to the protocol gateway, the mobile wireless device sends a message to the protocol gateway.[0021]
For example, if the mobile wireless device includes the Wireless Application Protocol (WAP) and if the protocol gateway is a WAP gateway, then a Wireless Session Protocol (WSP) request can be generated in the mobile wireless device. The WSP request is generated by a Wireless Markup Language (WML) “<go>” element in the application program of the mobile wireless device, which specifies the server URL. The message can include an HTTP request method, either the GET or the POST method. When GET is used, the data being sent to the server is appended to the end of the URL. When POST is used, the data is passed in the body of the message. The WAP gateway then converts the WSP request into an HTTP request and forwards it over the Internet to the network server.[0022]
Depending on the request, the server responds by resuming the operations it had previously been conducting in its prior contact with the mobile wireless device. For example, WML, HTML, or graphics files can be returned by the server to the WAP gateway. For example, the server can respond to a GET method request by sending the requested web page to the protocol gateway. Alternately, the server can respond by executing CGI, ASP, or JSP scripts or other server programs to dynamically generate WML or HTML content to be returned to the WAP gateway. The protocol gateway then performs an HTML to WML conversion of the content, followed by WML encoding to form the WSP response message. The WSP response message is then transmitted by the WAP gateway over the telephone network to the cellular telephone access device. The cellular telephone access device then transmits the WSP response message containing the content, over the cellular telephone air link to the mobile wireless device.[0023]
Additional options can be offered to the user when resuming the service. Alternately, the user may choose to save the URL link in the terminal memory and continue the service later via digital video broadcast or other broadcasting medium.[0024]
In this manner, the mobile wireless device can resume an Internet contact with a web site, which was being conducted through a short range wireless access point, but which has been interrupted by moving the mobile device out of the coverage area of the short range wireless access point.[0025]
DESCRIPTION OF THE FIGURESFIG. 1 shows the user's[0026]wireless device100 at a first location “A Street” near two short rangewireless access points140 and140A and then later at a second location “B Street”, near a regional cellulartelephone access point148.
FIG. 1A is a flow diagram of processing a service request in the[0027]access point140.
FIG. 1B is a flow diagram of processing a service handoff in the[0028]mobile wireless device100.
FIG. 1C illustrates the Bluetooth packet structure for the[0029]user device100 request to theaccess point140, requesting service from theserver180.
FIG. 1D illustrates the Bluetooth packet structure for the[0030]access point140 forwarding aresponse message435 to theuser device100, from theserver180.
FIG. 1E is a data flow diagram showing the[0031]service request packet420 from the user'sdevice100 being forwarded by theaccess point140 in the augmentedservice request message440, to thecontent server180.
FIG. 1F is a data flow diagram showing the[0032]content server180 returning aresponse message435 to theaccess point140, including a local/global parameter557 and ahandoff address582.
FIG. 1G is a data flow diagram showing the[0033]access point140 sending theresponse message435 to the user'smobile device100.
FIG. 1H illustrates the respective prior art protocol stacks for the user's[0034]Bluetooth device100,access point140, andcontent server180.
FIG. 1I illustrates an alternate embodiment of the invention, with the respective protocol stacks for the user's[0035]Bluetooth device100 andaccess point140 exchanging content by means of an Access Point Service Indicator (APSI)message550.
FIG. 1J is a functional block diagram of the user's[0036]wireless device100, showing theAPSI message buffer236 in the alternate embodiment of the invention.
FIG. 2A is a functional block diagram of the[0037]wireless access point140, with the receivepacket buffer252, trigger word table260,APSI message cache285, and APSI cache hitlogic283.
FIG. 2B is a data flow diagram of the alternate embodiment of the invention, showing the[0038]inquiry response packet510 from the user'sdevice100 being detected by theaccess point140 and the access point sending anevent message610 to thecontent server180 in response to determining that theaccess point140 does not have a corresponding APSI message in its cache.
FIG. 2C is a data flow diagram the alternate embodiment of the invention, showing the[0039]content server180 returning acontent message620 to theaccess point140, in response to the server having processed theevent message610.
FIG. 2D is a data flow diagram showing the alternate embodiment of the invention, the[0040]access point140 sending theAPSI message550 to the user'smobile device100, which the access point has assembled from thecontent message620 received from theserver180.
FIG. 3 is a flow diagram of the alternate embodiment of the invention, showing sequence of operational steps performed by the user's[0041]device100 in processing an APSI message
FIG. 3A is a flow diagram of an alternate embodiment of the invention, which shows the operation of the User's[0042]Bluetooth device100 when receiving anAPSI message550 without any previous warnings.
FIG. 4A shows the alternate embodiment of the invention with the Bluetooth packet structure for an[0043]inquiry packet500 sent by a Bluetooth access point device to the user'sdevice100.
FIG. 4B shows the alternate embodiment of the invention with the Bluetooth frequency hop synchronization (FHS) packet structure for an[0044]inquiry response packet510 sent by the user'sdevice100.
FIG. 4C shows the alternate embodiment of the invention with the Bluetooth frequency hop synchronization (FHS) packet structure for the[0045]paging packet530 sent by the Bluetooth access point device.
FIG. 4D shows the alternate embodiment of the invention with the Bluetooth packet structure for the subsequent APSI message.[0046]
FIG. 5 is a network process diagram of the alternate embodiment of the invention, showing the interaction between the user's[0047]device100, theaccess point140, and thecontent server180.
DISCUSSION OF THE PREFERRED EMBODIMENTFIG. 1 shows the user's[0048]wireless device100 at a first location “A Street” near two short rangewireless access points140 and140A and then later at a second location “B Street”, near a regional cellulartelephone access point148. Themobile wireless device100 of FIG. 1, is equipped withcircuits103 for short range wireless systems andcircuits105 for cellular telephone communications systems. Short range wireless systems include wireless personal area networks (PANs), such as Bluetooth networks and IrDA Infrared Data Protocol networks, and wireless local area networks (LANs), such as the IEEE 802.11 wireless LANs and HiperLAN networks. Cellular telephone communications systems include GSM, GPRS, UMTS, EDGE, and the like. An example of such amobile wireless device100 is a Bluetooth-equipped GSM cellular telephone.
During an initial period when the[0049]mobile wireless device100 is within the coverage area of the short rangewireless access point140, it sends a request for service to be obtained, for example, over theInternet144 fromnetwork server180. In this example, the short rangewireless access point140 is a Bluetooth access point and the short range wireless circuits in themobile wireless device100 are Bluetooth circuits. The user has previously actuated the Bluetooth mode button “BT” on thekeypad104 and the Bluetooth circuits have completed their exchanged of inquiry, paging, and service discovery packets with theBluetooth access point140. In this example, the user wishes to view the daily news service provided by theserver180.
FIG. 1A is a flow diagram of processing the user's service request in the[0050]access point140. Step340 receives theuser request420, which is shown in FIG. 1C. TheBluetooth packet structure420 for the user'srequest425, includes theaccess code422 for the piconet master in the piconet formed by themobile Bluetooth device100 and theBluetooth access point140, theheader424 containing theslave device number421 and thepacket type423, and the payload portion. The payload portion includes thepayload header427 and thepayload data428. The user'sservice request425 to theserver180 is contained in thepayload data428.
In[0051]step342 of the flow diagram of FIG. 1A, the Bluetooth access point forwards the user'sservice request425 in an augmentedservice request message440 to theserver180. FIG.1E is a data flow diagram showing theservice request425 from the user'sdevice100 being forwarded by theaccess point140 in the augmentedservice request message440, over, for example, theLAN142 and theInternet144 to thecontent server180. The augmentedservice request message440 may include thepayload data281, theaddress284 of the user'sBluetooth device100, its class ofdevice286, access pointgeographic location information288, theaccess point address290, the destinationserver path name292 and thedestination server URL294. FIG. 1E shows the augmentedservice request message440 being sent to thenews server180.
In[0052]step344 of the flow diagram of FIG. 1A, the Bluetooth access point receives aresponse message435, shown in FIG. 1F, fromserver180. FIG. 1F is a data flow diagram showing thecontent server180 returning aresponse message435 to theaccess point140, including a local/global parameter557 and ahandoff address582. The local/global parameter557 specifies whether the service from theserver180 can be reached also through alternate channels or bearers. Theresponse message435 includes the local/global parameter557, and may also includepriority information558,timer information560,display mode information562,content564, atitle566, abit map568,soft key—1selection information570, soft key—2selection information572, soft key—3selection information574,location information576,URL information578,service type information580, thehandoff address582 and anend marker584.
In[0053]step346 of the flow diagram of FIG. 1A, the Bluetooth access point forwards theresponse message435 to the user'sBluetooth device100, as shown in FIGS. 1D and 1G. FIG. 1D illustrates theBluetooth packet structure430 for theaccess point140 forwarding aresponse message435 to theuser device100, from theserver180. FIG. 1G is a data flow diagram showing theaccess point140 sending theresponse message435 to the user'smobile device100. TheBluetooth packet structure430 for the user'srequest435, includes theaccess code432 for the piconet master in the piconet formed by themobile Bluetooth device100 and theBluetooth access point140, theheader434 containing theslave device number431 and thepacket type433, and thepayload portion436. The payload portion includes thepayload header437 and thepayload data438. Theresponse message435 is contained in thepayload data438. FIG. 1B is a flow diagram of processing in themobile wireless device100. InStep350, themobile wireless device100 receives theserver response message435 and instep352, it stores the local/global parameter557 in a buffer in itsmemory202, as shown in FIG. 1J. Optionally, themobile wireless device100 receives thehandover address582, which it stores in a buffer in itsmemory202, as shown in FIG. 1J. Themobile wireless device100 uses the information in theserver response message435 to contact the server over the Internet to download web pages or to conduct other server operations.
Regions outside the coverage area of the short range[0054]wireless access point140 of FIG. 1, are typically covered by regional cellulartelephone access points148, such as cellular telephone base stations. Suitable cellular telephone systems include GSM, GPRS, UMTS, EDGE, and the like. In accordance with the invention, if themobile wireless device100 detects that it has left the coverage area of the short rangewireless access point140 while in contact with theserver180, it will determine whether the global/local parameter557 indicates that the service is global. This step is shown asstep354 in FIG. 1B. Ifdecision block356 determines that theparameter557 is “Local”, then step358 ends the service with theserver180. Alternately, if thedecision block356 determines that theparameter557 is “Global”, then the process of FIG. 1B flows to step360. As an example, theserver180 may have been in the process of downloading web pages when interrupted by the motion of themobile device100. If theparameter557 is global, then themobile wireless device100 stores a bookmark of the server'sURL123, as shown instep360. For example, the URL and path name may be saved for one of the prior web pages downloaded from theserver180. Then instep362, themobile wireless device100 displays in FIG. 1, anotice121 “GLOBAL” or some expression having a similar meaning, offering the user the option of continuing the contact with theserver180 over the regionalcellular telephone network116.
If the user selects to continue the contact with the server, then a stored handover address is accessed, as shown in[0055]step364. The handover address may be stored in themobile wireless device100 or alternately, it may be stored in the short rangewireless access point140. The stored handover address may be a default address or alternately, it may be a handover address included in the priorserver response message435 from theserver180. The handover address will typically be the telephone number of aprotocol gateway118, such as a WAP gateway, connected between thecellular telephone network116 and theInternet144. InStep364, the user actuates the cellular telephone mode button “GSM” on thekeypad104 and makes a cellular telephone connection between themobile wireless device100 and the regional cellulartelephone access point148. Then, a cellular telephone call is placed over thetelephone network116 to theprotocol gateway118. When the call is completed over thetelephone network116 from the mobile wireless device110 to theprotocol gateway118, themobile wireless device100 sends a message to theprotocol gateway118.
For example, if the[0056]mobile wireless device100 includes the Wireless Application Protocol (WAP) and if the protocol gateway is a WAP gateway, then a Wireless Session Protocol (WSP) request can be generated in themobile wireless device100. The WSP request is generated by a Wireless Markup Language (WML) “<go>” element in theapplication program106 of themobile wireless device100, which specifies the server URL. The message can include an HTTP request method, either the GET or the POST method. When GET is used, the data being sent to theserver180 is appended to the end of the URL. When POST is used, the data is passed in the body of the message. TheWAP gateway118 then converts the WSP request into an HTTP request and forwards it over theInternet144 to theserver180.
Depending on the request, the[0057]server180 responds by resuming the operations it had previously been conducting in its prior contact with themobile wireless device100. For example, WML, HTML, or graphics files can be returned by theserver180 to theWAP gateway118. For example, theserver180 can respond to a GET method request by sending the requested web page to theprotocol gateway118. Alternately, theserver180 can respond by executing CGI, ASP, or JSP scripts or other server programs to dynamically generate WML or HTML content to be returned to theWAP gateway118. Theprotocol gateway118 then performs an HTML to WML conversion of the content, followed by WML encoding for form the WSP response message. The WSP response message is then transmitted by theWAP gateway118 over thetelephone network116 to the cellulartelephone access device148. The cellulartelephone access device148 then transmits the WSP response message containing the content, over the cellular telephone air link tocellular telephone antenna105 andcircuits208 of themobile wireless device100. Additional options can be offered to the user when resuming the service. Alternately, the user may choose to save the URL link in the terminal memory and continue the service later via digital broadcast or other broadcasting medium.
In this manner, the mobile wireless device can resume an Internet contact with a web site, which was being conducted through a short range wireless access point, but which has been interrupted by moving the mobile device out of the coverage area of the short range wireless access point. This inventive system can easily be implemented also to any other existing or future protocol techniques.[0058]
The invention is described for mobile wireless devices and wireless telephones implementing the Wireless Application Protocol (WAP) standard. Other protocols that can be used in the invention to access the Internet include I-Mode protocol and mobile IPv6 protocol. The user's WAP-enabled[0059]mobile wireless device100 can be a wireless mobile phone, pager, two-way radio, smartphone, personal communicator, or the like. The user's WAP-enabledportable wireless device100 accesses a small file called a deck which is composed of several smaller pages called cards which are small enough to fit into the display area of the device'smicrobrowser102. The small size of themicrobrowser102 and the small file sizes accommodate the low memory constraints of theportable wireless device100 and the low-bandwidth constraints of a wireless network. The cards are written in the Wireless Markup Language (WML) which is specifically devised for small screens and one-hand navigation without a keyboard. The WML language is scaleable from two-line text displays on themicrobrowser102 of a cellular telephone, up through large LCD screens found on smart phones and personal communicators. The cards written in the WML language can include programs written in WMLScript, which is similar to JavaScript, but makes minimal demands on memory and CPU power of thedevice100 because it does not contain many of the unnecessary functions found in other scripting languages. Themicrobrowser102 enables the user to navigate through the cards being displayed and to select options that are programmed by theapplication programs106.
The Nokia WAP Client Version 2.0 is a software product containing the components necessary to implement the WAP client on the[0060]wireless device100. These components include a Wireless Markup Language (WML) Browser, WMLScript engine, Push Subsystem, and Wireless Protocol Stack. The Nokia WAP Client is a source-code product that can port and integrate into wireless devices such as mobile phones and wireless PDAs.Application programs106 stored in thewireless device100 interact with the WAP Client to implement a variety of communications applications. Details of the Nokia WAP Client Version 2.0 can be found in the online paper:Nokia WAP Client Version2.0, Product Overview, Nokia Internet Communications, 2000, www.nokia.com/corporate/wap.
The WAP Client includes the Wireless Public Key infrastructure (PKI) feature, providing the infrastructure and the procedures required for authentication and digital signatures for servers and mobile clients. Wireless PKI is a certificate-based system that utilizes public/private key pairs associated with each party involved in a mobile transaction. Wireless Identity Module (WIM) is a security token feature of the WAP Client, which includes security features, such as the public and private keys and service certificates, needed for user authentication and digital signatures. Additionally, it has the ability to perform cryptographic operations to encrypt and decrypt messages.[0061]
The[0062]WAP protocol gateway118 links theInternet144 and thetelephone network116. TheWAP protocol gateway118 includes the Wireless Public Key infrastructure (PKI) feature to help provide a secure Internet connection to thewireless device100. TheWAP protocol gateway118 enables the WAP-enabledwireless device100 to access Internet applications such as headline news, exchange rates, sports results, stock quotes, online travel and banking services, or to download distinctive ringing tones.
The user's WAP-enabled[0063]portable wireless device100 communicates with the cellulartelephone access point148 and can exchange messages for distances up to several kilometers. The types of wireless networks supported by the WAP standard include GSM, GPRS, UMTS, EDGE, CDPD, CDMA, TDMA,3G-Broadband, and the like.
The overall process of communication between the user's WAP-enabled wireless device (the client)[0064]100, through theWAP protocol gateway118, to theserver180 resembles the way Web pages are served on the Internet using the HyperText Transfer Protocol (HTTP) or World Wide Web protocol:
[1] The user presses a phone key on the user's[0065]device100 related to the Uniform Resource Locator (URL) of theserver180.
[2] The user's[0066]device100 sends the URL, via the cellulartelephone access point148 and thetelephone network116, to thegateway118 using WAP protocols.
[3] The[0067]gateway118 translates the WAP request into an HTTP request and sends it over theInternet144 to theserver180, via Transmission Control Protocol/Internet Protocol (TCP/IP) interfaces.
[4] The[0068]server180 handles the request just like any other HTTP request received over the Internet. Theserver180 either returns a WML deck or a HyperText Markup Language (HTML) page back to thegateway118 using standard server programs written, for example in Common Gateway Interface (CGI) programs, Java servlets, or the like.
[5] The[0069]gateway118 receives the response from theserver180 on behalf of the user'sdevice100. If the response is an HTML page, it gets transcoded into WML if necessary. Then the WML and WMLScript coding is encoded into a byte code that is then sent to the user'sdevice100.
[6] The user's[0070]device100 receives the response in the WML byte code and displays the first card in the deck on themicrobrowser102 to the user.
In FIG. 1, the[0071]protocol gateway118 includes a WAP protocol stack organized into five different layers. An application layer is the wireless application environment, which executes portable applications and services. A session layer is the wireless session protocol, which supplies methods for the organized exchange of content between client/server applications. A transaction layer is the wireless transaction protocol, which provides methods for performing reliable transactions. A security layer is the wireless transport layer security, which provides authentication, privacy, and secure connections between applications. The transport layer is the wireless datagram protocol, which shelters the upper layers from the unique requirements of the diverse wireless network protocols, such as GSM, GPRS, UMTS, EDGE, etc. Additional information about the WAP standard and the WAP protocol stack can be found in the book by Charles Arehart, et al. entitled,Professional WAP, published by Wrox Press Ltd.,2000 (ISBN 1-861004-04-1).
FIG. 1H illustrates the respective prior art protocol stacks used for the user's[0072]Bluetooth device100, theBluetooth access point140, and thecontent server180. As is described in detail in the Bluetooth specification, the protocol stack for Bluetooth device is made up of three protocol groups: the transport protocol group, the middleware protocol group and the application group. The transport protocol group includes the link controller andbaseband216, thelink manager218 and the logical link control and adaptation protocol (L2CAP)220′. The transport protocol group enables Bluetooth devices to locate each other and to create, configure, and manage the physical and logical links that allow higher layer protocols and applications to pass data through these transport protocols. The middleware protocol group includes a serial port emulator protocol called RFCOMM, and the Internet protocols: point-to-point protocol (PPP), Internet protocol (IP), and user datagram protocol (UDP). The application group includes the wireless application protocol (WAP) and the wireless application environment (WAE), as well as graphic user interface (GUI)programs234 and application programs. Also shown for the user'sdevice100 is the service discovery protocol (SDP), which enables devices to discover services offered by other Bluetooth devices. This constitutes the prior art Bluetooth protocol stack. As is shown in FIG. 1H, theaccess point140 includes the same transport protocol group and middleware protocol group protocol layers. Also shown in FIG. 1H is agateway node146, which includes the UDP, IP, and PPP layers. Thecontent server180 includes the middleware layers and the WAP and WAE layers of the application group. The purpose of FIG. 1H is to illustrate that the prior art requires the user'sdevice100 to set up all of the protocol layers in the middleware protocol group and in the application group in order to receive even the mostsimple content564 from thecontent server180. The time required to set up all of the protocol layers in the user'sdevice100 in order to establish a connection with theaccess point device140 can exceed the short interval during which the user'sdevice100 is within communication range of theaccess point140.
FIG. 1I illustrates the respective protocol stacks for the user's[0073]Bluetooth device100 and theaccess point140 exchangingcontent564 by means of an Access Point Service Indicator (APSI)message550, in accordance with an alternate embodiment of the invention. As will be described below, according to one alternate embodiment of the invention, theL2CAP layer220 in the user'sdevice100 is modified to detect a unique class of device (CoD) value in either a paging packet or an inquiry response packet from theL2CAP layer220 in theaccess point140. When the user'sdevice100 detects the arrival of a paging packet with the unique CoD value, it indicates that the next packet to be sent by theaccess point140 is an access point service indication (APSI) message. Then, when the user'sdevice100 receives the next packet from the access point, theL2CAP layer220 in the user'sdevice100 loads it into anAPSI message buffer236. The L2CAP layer verifies that the packet header for theAPSI message550 has a unique message ID indicating that it is in fact, an APSI message from the access point. Then, the L2CAP layer immediately passes the APSI message directly up to theGUI application layer234, thereby bypassing the middleware protocol layers as well as the WAP layers in the user'sdevice100. This significantly reduces the amount of time necessary to set up a connection to enable the user'sdevice100 to receive anddisplay content564 contained in theAPSI message550.
Also shown in FIG. 11 is the receipt by the[0074]access point device140 of acontent message620. As will be described below, if theaccess point device140 does not currently have theAPSI message550 stored in its memory, then theaccess point140 accesses thecontent564 from a content server such as thecontent server180 in FIG. 1. The resultingcontent message620 contains thecontent564 which is assembled by theaccess point140 into theAPSI message550 of FIG. 1I.
According to another alternate embodiment of the invention, the user's[0075]Bluetooth device100 does not need to receive any previous indication of the arrivingAPSI message550. In this alternate embodiment, immediately after successful paging, theAPSI message550 packet having a unique message ID is received by the user'sdevice100. The user's Bluetooth device L2CAP layer determines that the message is, in fact, anAPSI message550 from theaccess point device140. The user's Bluetooth device L2CAP layer loads the APSI message into anAPSI message buffer236. Then, the L2CAP layer immediately passes the APSI message directly up to theGUI application layer234, thereby bypassing the middleware protocol layers as well as the WAP layers in the user'sdevice100. This significantly reduces the amount of time necessary to set up a connection to enable the user'sdevice100 to receive anddisplay content564 contained in theAPSI message550.
FIG. 1J is a functional block diagram of an the user's[0076]Bluetooth device100, showing theAPSI message buffer236, in accordance with the invention. FIG. 1J shows amemory202, connected by means of abus204 to aBluetooth radio206 and itsantenna103, akeypad104, acentral processor210, adisplay212, and acellular telephone radio208 and itsantenna105. Thememory202 stores program instructions which are sequences of operational steps, which, when executed by thecentral processor210, carry out the function of the invention. Thememory202 is shown partitioned intotransport protocol group214,middleware group224, andapplication group235. Within thetransport protocol group214, there is a link controller andbaseband216, alink manager218, a logical link control andadaptation protocol220, and anAPSI message buffer236. In themiddleware protocol group224 is the RFCOMM, the PPP, the IP, the UDP and SDP protocol layers. In theapplication group235 is aGUI application234, anapplication program106, adisplay buffer244, the WAE and the WAP protocol layers, a buffer for the local/global parameter557 and a buffer for thehandoff address582. In accordance with an alternate embodiment of the invention,APSI message550 contained in theAPSI message buffer236 is recognized by the logical link control andadaptation protocol220, and thebody238 of theAPSI message550 is immediately provided over thepath242 to theGUI application234 and theapplication program106.
FIG. 2A is a functional block diagram of an alternate embodiment the[0077]Bluetooth access point140, with a receivepacket buffer252, a trigger word table260, anAPSI message cache285, and an APSI cache hitlogic283. A server notification message table280 is also shown in FIG. 2A. In accordance with the invention, theaccess point140 stores Access Point Service Indicator (APSI) messages in theAPSI message cache285, which characterize service platform offerings. TheAPSI message550 includes aheader554 which contains a uniqueAPSI message ID556. Also included in theAPSI message550 in abody portion238, is the local/global parameter557,priority information558,timer information560,display mode information562,content564, atitle566, abit map568,soft key—1selection information570, soft key—2selection information572, soft key—3selection information574,location information576,URL information578,service type information580, thehandoff address582 and anend marker584. When the user'sdevice100 sends either a paging packet or an inquiry response packet, such asinquiry response packet510, to theaccess point140, the access point uses the information in the received packet as stimuli to be matched with trigger words stored in the trigger word table260. For example, the address of thedevice100 infield520 can be matched withaddress values266 in the trigger word table260. Also, the class of device of thedevice100 infield522 can be compared with class ofdevice values268 stored in the trigger word table260. If there is a match, then theAPSI message cache285 is checked by means of the APSI cache hitlogic283, to determine if a corresponding APSI message is stored in thecache285. If there is a corresponding APSI message in thecache285, then the APSI message is immediately sent to themobile Bluetooth device100. If there is no corresponding APSI message in themessage cache285, then the APSI cache hitlogic283 signals the server notification message table280 to send aserver notification message610 to a content server specified in the message.
FIG. 2B is a dataflow diagram of an alternate embodiment of the invention, showing an[0078]inquiry response packet510 from the user'sdevice100 being detected by theaccess point140. FIG. 2B shows the access point sending anevent message610 to thecontent server180 in response to the access point determining that it does not have a corresponding APSI message in itscache285. As is shown in FIG. 2B, theevent message610, includes specific data values for a servernotification message number282, triggerword number262′, theaddress284 of the user'sBluetooth device100, its class ofdevice286,other information288, theaccess point address290, the destinationserver path name292 and thedestination server URL294. FIG. 2B shows theevent message610 being sent to thenews server180.
FIG. 2C is a dataflow diagram of an alternate embodiment of the invention, showing the[0079]content server180 returning acontent message620 to theaccess point140, in response to theserver180 having processed theevent message610. FIG. 2C shows that thecontent message620 includes content information, which will ultimately be incorporated into theAPSI message550.
FIG. 2D is a dataflow diagram of an alternate embodiment of the invention, showing the[0080]access point140 sending theAPSI message550 to the user'smobile device100, which theaccess point140 has assembled from thecontent message620 received from theserver180.
FIG. 3 is a flow diagram of the operation of the User's[0081]Bluetooth device100 according to one alternate embodiment of the invention when receiving anAPSI message550. During the period when themobile wireless device100 is within the coverage area of the short rangewireless access point140, it sends a request for service to be obtained over the Internet from thenetwork server180. The short range wireless access point forwards that request over the Internet to the server, augmented with additional information including the network address and geographic location of the access point. The short range wireless access point receives a response message over the Internet from the server, including a global/local parameter. The global/local parameter will notify the mobile wireless device whether the requested service is available outside the coverage area of the short range wireless access point. The access point forwards the response message to the mobile wireless device, which uses the information in the message to contact the server over the Internet to download web pages or to conduct other server operations. FIG. 3 shows the followingsteps300 to332.
Step[0082]300:User device100 receives the paging packet530 (FIG. 4C) from the access point (AP)device140.
Step[0083]302: The user device'sL2CAP layer220 determines indecision block304, if the class of device (CoD)field542 in thepaging packet530 indicates that the next packet is an Access Point Service Indication (APSI)message550.
Step[0084]320: If it is, then when the user'sdevice100 receives the next packet(s) from theAP140, theL2CAP layer220 loads it into anAPSI message buffer236.
Step[0085]322: TheL2CAP layer220 verifies thatpacket header554 indicates anAPSI message550 from theAP140.
Step[0086]324: Then, theL2CAP layer220 passes theAPSI message550 directly to theGUI application layer234. TheAPSI message550 contains fields for content, title, bitmap, soft key selection items, location information, service type information, the local/global parameter557, thehandoff address582, and URL.
Step[0087]326: TheGUI layer234 then loads the content, title, bitmap, soft key selection items, location information, service type information, the local/global parameter557, thehandoff address582, and URL from theAPSI message550 into thedisplay buffer244 and other buffers.
Step[0088]328: Then, the user selectively enters an input to theGUI234 to establish a connection with theAP140 for a session with theservice platform server180.
Step[0089]330: Theuser device100 and theAP140 then open an SDP and/or a non-SDP channel and they begin a session.
Step[0090]332: TheAP140 registers the user'sdevice100 with theservice platform server180 and requests service for the user'sdevice100. Then, the user'sdevice100 and theservice platform server180 conduct a session via theAP140. Theservice platform server180 can then download the maps, advertising and/or other service offerings to themobile Bluetooth device100.
Regions outside the coverage area of the short range[0091]wireless access point140 are covered by regional cellulartelephone access points148, such as cellular telephone base stations. The regions inside the short range wireless access ports are also covered by regional cellular telephone access points148. In accordance with the invention, if themobile wireless device100 detects that it has left the coverage area of the short rangewireless access point140 while in contact with theserver180, it will determine whether the global/local parameter557 indicates that the service is global which means in other words that the service can be acquired using other carriers/bearers. If theparameter557 is global, then themobile wireless device100 may store a bookmark of the server's URL, for example the URL and path name for one of the prior web pages downloaded from theserver180. Themobile wireless device100 displays a notice onbrowser102 to the user, offering the user the option of continuing the contact with theserver180 over the regional cellular telephone network. If the user selects to continue the contact with theserver180, then a storedhandover address582 is accessed. Thehandover address582 may be stored in themobile wireless device100 or alternately, it may be stored in the short rangewireless access point140. The storedhandover address582 may be a default address or alternately, it may be a handover address included in the prior response message from theserver180. Thehandover address582 will typically be the telephone number of aprotocol gateway118, such as a WAP gateway, connected between thecellular telephone network116 and theInternet144. A cellular telephone connection is made by themobile wireless device100 with the regional cellulartelephone access point148. Then, a cellular telephone call is placed to theprotocol gateway118. When the call is completed over thetelephone network116 from themobile wireless device100 to theprotocol gateway118, themobile wireless device100 sends a message to theprotocol gateway118, which it forwards to theserver180. Depending on the request, theserver180 responds by resuming the operations it had previously been conducting in its prior contact with themobile wireless device100.
Alternately, if[0092]Step302 determines indecision block304 that the class of device (CoD)field542 in thepaging packet530 does not indicate that the next packet is an Access Point Service Indication (APSI)message550, then the process flows throughsteps306 to318.
Step[0093]306: The user'sdevice100 opens the service discovery protocol (SDP) channel and begins a session with theaccess point140.
Step[0094]308: The user'sdevice100 opens a non-SDP channel with theaccess point140.
Step[0095]310: The user'sdevice100 waits for registration of the user's device and request for service via theaccess point140 from theservice platform server180.
Step[0096]312: The user'sdevice100 conducts a service session via theaccess point140 with theservice platform server180.
Step[0097]314: The user'sdevice100 receives a service message at theL2CAP layer220 with content, title, bitmap, soft key selection items, location information, service type information, the local/global parameter557, thehandoff address582, and URL.
Step[0098]316: TheL2CAP layer220 passes the service message up through all of the layers RFCOMM, PPP, IP, UDP, WAP, and WAE of the protocol stack in the user'sdevice100, to theGUI application layer234.
Step[0099]318: TheGUI application layer234 loads the content, title, bitmap, soft key selection items, the local/global parameter557, thehandoff address582, and URL, from the service message into thedisplay buffer244 or other buffers. Optionally, location information and service type information can also be loaded into thedisplay buffer244.
In accordance with the invention, if the[0100]mobile wireless device100 detects that it has left the coverage area of the short rangewireless access point140 while in contact with theserver180, it will determine whether the global/local parameter557 indicates that the service is global. If theparameter557 is global, then themobile wireless device100 may store a bookmark of the server's URL. Themobile wireless device100 displays a notice onbrowser102 to the user, offering the user the option of continuing the contact with theserver180 over the regional cellular telephone network. If the user selects to continue the contact with theserver180, then a storedhandover address582 is accessed. Thehandover address582 will typically be the telephone number of aprotocol gateway118 connected between thecellular telephone network116 and theInternet144. A cellular telephone connection is made by themobile wireless device100 with the regional cellulartelephone access point148. Then, a cellular telephone call is placed to theprotocol gateway118. When the call is completed over thetelephone network116 from themobile wireless device100 to theprotocol gateway118, themobile wireless device100 sends a message to theprotocol gateway118, which it forwards to theserver180. Depending on the request, theserver180 responds by resuming the operations it had previously been conducting in its prior contact with themobile wireless device100.
In FIG. 3A, a flow diagram of another alternate embodiment of the invention shows the operation of the User's[0101]Bluetooth device100 when receiving anAPSI message550 without any previous warnings. The figure shows thesteps400 to412.
Step[0102]400:User device100 sends inquiry response packet510 (FIG. 4B) and receives the paging packet530 (FIG. 4C) from the access point (AP)device140.
Step[0103]402: Theuser device100 receives the next packet(s) from the AP, and theL2CAP layer220 determines thatpacket header554 indicates anAPSI message550 from theAP140 and theL2CAP layer220 loads it into anAPSI message buffer236.
Step[0104]404: Then, theL2CAP layer220 passes theAPSI message550 directly to theGUI application layer234. TheAPSI message550 contains fields for content, title, bitmap, soft key selection items, location information, service type information, the local/global parameter557, thehandoff address582, and URL.
Step[0105]406: TheGUI layer234 then loads the content, title, bitmap, soft key selection items, location information, service type information, the local/global parameter557, thehandoff address582, and URL from theAPSI message550 into thedisplay buffer244.
Step[0106]408: Then, the user selectively enters an input to theGUI234 to establish a connection with theAP140 for a session with theservice platform server180.
Step[0107]410: Theuser device100 and theAP140 then open an SDP and/or a non-SDP channel and they begin a session.
Step[0108]412: TheAP140 registers the user'sdevice100 with theservice platform server180 and requests service for the user'sdevice100. Then, the user'sdevice100 and theservice platform server180 conduct a session via theAP140. Theservice platform server180 can then download the maps, advertising and/or other service offerings to themobile Bluetooth device100.
The following paragraphs discuss the use of the Bluetooth inquiry, inquiry response, and paging packets by the alternate embodiment of the invention. To recap, the Bluetooth[0109]access point device140 is connected over alandline network142 and144 or alternatively over wireless network to theservice platform server180. Theservice platform server180 has service offerings that it would like to make available tomobile Bluetooth devices100 passing within the RF communications range of the Bluetoothaccess point device140. In accordance with the alternate embodiment of the invention, the Bluetoothaccess point device140 stores an Access Point Service Indicator (APSI)message550 characterizing the offerings of theservice platform server180.
According to one alternate embodiment of the invention, in order to quickly communicate and display the content of the[0110]APSI message550 on the user'sdevice100, notification of the impending arrival of theAPSI message550 is made by information inserted by theaccess point140 into the inquiry response packets or paging packets sent to the user'sdevice100. According to another alternate embodiment of the invention the recognition of the message can also be accomplished without any previous notification to the terminal.
The Bluetooth[0111]access point device140 periodically sends outBluetooth inquiry packets500 via RF link to anymobile Bluetooth devices100 within the RF communications range. FIG. 4A shows the Bluetooth packet structure for aninquiry packet500 sent by a Bluetooth access point device to the user'sdevice100. The general inquiry access code (GIAC) of thepacket500 is recognized by all Bluetooth devices as an inquiry message. During the inquiry procedure, any other Bluetooth devices that are in the inquiry scan state, such as the user'sdevice100, are scanning for the receipt ofinquiry packets500. If the user'sdevice100 in the inquiry scan state receives theinquiry packet500, it will respond with aninquiry response packet510 that has sufficient information to enable the Bluetooth access point device to build its inquiry response table of essential information required to make a connection. Any Bluetooth device recognizinginquiry packet500 can respond. FIG. 4B shows the Bluetooth frequency hop synchronization (FHS) packet structure for aninquiry response packet510 sent by the user'sdevice100. The FHS packet structure for aninquiry response packet510 sent by the user'sdevice100 includes anaccess code field512, a header which includes a slavemember number field514 in which AM_ADDR is no yet assigned and is set to zero, atype field516 and aparity field518. Another slavemember number field524 also has AM_ADDR set to zero.Field522 contains user's class-of-device (CoD) information. The FHS packet structure for aninquiry response packet510, provides essential information about the user'sdevice100 that enables the Bluetooth access point device to the make a connection to the user's device:Field520 contains the user's device BD_ADDR andfield526 contains the user's device current clock value.
The Bluetooth access point device uses the information provided in the[0112]inquiry response packet510 it has received from the user's device to be paged, to prepare and send a paging message to the user's paged device. To establish a connection, the access point paging device must enter the page state. The Bluetooth access point device invokes its link controller to enter the page state, where it will transmit paging messages to the user's paged device using the access code and timing information acquired from theinquiry response packet510. The user's paged device must be in the page scan state to allow the access point paging device to connect with it. Once in the page scan state, the user's paged device will acknowledge the paging messages and the access point paging device will send apaging packet530 shown in FIG. 4C, which provides the clock timing and access code of the Bluetooth access point paging device to the user's paged device. Thepaging packet530 includes the class of device (CoD)field542 that is a 24-bit field usually used to specify the class of the paging device, such as “FAX machine”.
In accordance with one alternate embodiment of the invention, the class of device (CoD)[0113]field542 of thepaging packet530 sent by the Bluetooth access point paging device includes a unique value indicating that the next packet to be received from the Bluetooth access point paging device is the Access Point Service Indicator (APSI) message.
Since Bluetooth access point device has initiated the page, it will be the master device in the new piconet being formed by the two devices. The user's paged device, which will become the slave to the Bluetooth access point device, must also know the Bluetooth access point device BD_ADDR, since it is the master device's address that is used in the piconet access code for the new piconet being formed by the two devices. FIG. 4C shows the Bluetooth frequency hop synchronization (FHS) packet structure for a[0114]paging packet530 sent by the Bluetooth access point device. The FHS packet structure for thepaging packet530 sent by the Bluetooth access point device includes anaccess code field532 which contains the user's paged device's BD_ADDR, a header which includes a slavemember number field534 in which AM_ADDR is now assigned the value of one, atype field536 and aparity field538. Another slavemember number field544 also has AM_ADDR set to one.Field542 contains the Bluetooth access point device class-of-device (CoD) unique value.
According to one alternate embodiment of the invention, the[0115]CoD field542 indicates that the next packet sent to the terminal is an APSI message. If such indication is used, the user'sdevice100 can be set to a mode where APSI messages are refused and if refusal is preferred, the user'sdevice100 is automatically set to not reply to paging with APSI indication.
The FHS packet structure for the[0116]paging packet530, provides the essential information about the Bluetooth access point device that enables the user's paged device to the make the connection to the Bluetooth access point device:Field540 contains the Bluetooth access point device BD_ADDR andfield546 contains the Bluetooth access point device current clock value.
In accordance with the alternate embodiment of the invention, FIG. 4D shows the Bluetooth packet structure for the[0117]subsequent APSI message550. The APSI message includes aheader554 that has theunique message ID556 that indicates it is an APSI message. TheAPSI message550 includes theheader554 which contains the uniqueAPSI message ID556. Also included in theAPSI message550 in thebody portion238, is the local/global parameter557,priority information558,timer information560,display mode information562,content564, atitle566, abit map568, softkey selection—1information570, soft key selection—2information572, soft key selection—3information574,location information576,service type information578,URL information580, thebandoff address582, and anend marker584. Location information includes coordinates and a location name. These parameters can be applied in the GUI of the user's device in an appropriate manner. Local/Global parameters describe whether the service is available locally, i.e., only inside the current Bluetooth coverage area. Global means that the service is available inside the Bluetooth coverage area, but also outside the coverage area. When the service is available also outside the Bluetooth coverage area, the user's device queries whether a default bearer (e.g., WAP over GSM-data) may be activated in order to maintain the connection to the service.
Instead of the[0118]access point140 sending out aninquiry packet500 and receiving aninquiry response packet510 from user'sdevice100 with the user device'saddress520 and class ofdevice522 information, the user'sdevice100, itself, can initiate the connection. The user'sdevice100 can send out aninquiry packet500 shown in FIG. 4A. Theaccess point140 will respond with an inquiry response packet, modified from that shown forpacket510 in FIG. 4B, by having the sender'saddress field520 contain the access point's address and by having the sender's class ofdevice field522 contain the unique CoD value. According to one alternate embodiment of the invention the unique CoD value identifies that the next packet to be sent by theaccess point140 is theAPSI message550. Theaccess point140 will then have to wait until the user'sdevice100 responds with a page packet similar topacket530 of FIG. 4C, since theaccess point140 will need the address in the sender'saddress field540 of the page packet in order to use it as thedestination address552 in theAPSI message550. The user device'spaging packet530, will contain the user device's address infield540 and class of device information infield542, which is the information needed by theaccess point140 to select and return anappropriate APSI message550. The user device'spaging packet530 received by theaccess point140, will be buffered in the receivepacket buffer252 of FIG. 2A. There, its sender'saddress field540 of FIG. 4C can be matched withaddress value266 in the trigger word table260 of FIG. 2A. For example, the address of thedevice100 infield540 can be matched withaddress values266 in the trigger word table260. Also, the class of device of thedevice100 infield542 can be compared with class ofdevice values268 stored in the trigger word table260. If there is a match, then theAPSI message cache285 is checked by means of the APSI cache hitlogic283, to determine if acorresponding APSI message550 is stored in thecache285. If there is a corresponding APSI message in thecache285, then theAPSI message550 is immediately sent to themobile Bluetooth device100.
FIG. 5 is a network process diagram of an alternate embodiment of the invention, showing the interaction between the user's[0119]device100, theaccess point140, and thecontent server180. The network process diagram is divided into three columns with the user'sdevice100 on the left column, theaccess point device140 in the middle column, and thecontent server180 in the right hand column. The network process begins withstep300 in the user'sdevice100 sending aninquiry response510 to theaccess point140 and receiving apage530 from the access point. The corresponding step at theaccess point140 isstep600 where the access point receives the inquiry response packet510 (which is shown in FIG. 4B) from the user'sdevice100. Remaining at theaccess point device140 in FIG. 5, step600 flows to step602 wherein the access point determines that a trigger word is satisfied in its trigger table260 by the receipt of information in theinquiry response510. Then step602 passes to thedecision block603, which determines whether a correspondingAPSI message550 is currently stored in thelocal APSI cache285. If it is, then the decision block603 passes to step624 where theaccess point140 sends theAPSI message550 shown in FIG. 4D to the user'sdevice100. Alternately, if thedecision block603 determines that the correspondingAPSI message550 is not stored in thelocal APSI cache285, then block603 flows to step604. Instep604, theaccess point140 forwards itsaccess point address290 and the user'sdevice ID284 in anevent message610 of FIG. 2B to thecontent server180. Turning now to thecontent server180 of FIG. 5,step614 receives theevent message610 and thecontent server180 accesses content in itsdatabase182 in response to the user'sdevice ID284 and theaccess point address290. Step614 then flows to step616 in thecontent server180, where the content server returns the content information in acontent message620 of FIG. 2C to theaccess point140 as specified in theaccess point address290 provided in theevent message610. Thecontent message620 includes the local/global parameter557 and thehandoff address582. Returning to theaccess point140 in FIG. 5,step622 receives thecontent message620 and uses it to assemble theAPSI message550 so as to contain thecontent564, atitle566, abit map568,soft key—1selection information570, soft key—2selection information572, soft key—3selection information574,location information576,URL information578,service type information580 the local/global parameter557 and thehandoff address582 contained in thecontent message620 of FIG. 2C. Then step622 flows to step624, wherein theaccess point140 sends the newly assembledAPSI message550 to the user'sdevice100. Turning now to the user'sdevice100 of FIG. 5,step304 is optional and depending on the embodiment of the invention. Step320 receives theAPSI message550 and stores it in theAPSI message buffer236. Then instep322, the user'sdevice100 verifies with theL2CAP layer220 that thepacket header554 of the received packet indicates that it is in fact anAPSI message550 as shown in FIG. 4D. Then step322 flows to step324 where theL2CAP layer220 immediately passes theAPSI message550 overpath242 to theGUI application layer234, thereby bypassing themiddleware protocol group224 layers. Thecontent564, atitle566, abit map568,soft key—1selection information570, soft key—2selection information572, soft key—3selection information574,location information576,URL information578,service type information580, the local/global parameter557 and thehandoff address582 are then processed by theapplication group235 programs and thecontent564 is displayed to the user in thebrowser102.
Note that decision block[0120]603 of FIG. 5 enables the access point to pass directly to step624 to send the APSI message(s) stored in its memory directly to all mobile devices entering its coverage area, without fetching content for APSI messages from the server.
The resulting invention solves the problem of enabling a mobile wireless device to resume an Internet contact with a web site, which was being conducted through a short range wireless access point, but which has been interrupted by moving the mobile device out of the coverage area of the access point.[0121]
Although a specific embodiment of the invention has been disclosed, it will be understood by those having skill in the art that changes can be made to that specific embodiment without departing from the spirit and the scope of the invention.[0122]