[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

EP1547331A2 - System and method of wireless instant messaging - Google Patents

System and method of wireless instant messaging

Info

Publication number
EP1547331A2
EP1547331A2 EP03750214A EP03750214A EP1547331A2 EP 1547331 A2 EP1547331 A2 EP 1547331A2 EP 03750214 A EP03750214 A EP 03750214A EP 03750214 A EP03750214 A EP 03750214A EP 1547331 A2 EP1547331 A2 EP 1547331A2
Authority
EP
European Patent Office
Prior art keywords
presence information
messaging
messaging clients
client
clients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP03750214A
Other languages
German (de)
French (fr)
Other versions
EP1547331B1 (en
Inventor
Matthew Bells
David M. Haigh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of EP1547331A2 publication Critical patent/EP1547331A2/en
Application granted granted Critical
Publication of EP1547331B1 publication Critical patent/EP1547331B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Definitions

  • This invention relates generally to the field of instant messaging. More particularly, the invention provides a system and method of instant messaging to and from wireless devices.
  • IM Instant Messaging
  • ICQ IM presence information
  • each correspondent in the “buddy list” sends a message to the user if the correspondent's presence information changes, e.g., if a correspondent disconnects or reconnects to a network.
  • the traditional IM presence information in ICQ is defined using states such as “connected,” “chatty,” “away,” “extended away,” “occupied,” “do not disturb (DND),” “invisible,” and “offline.”
  • Traditional IM techniques may use frequent network traffic communications that may exceed typical wireless network capacity. This occurs because in traditional IM techniques, such as ICQ, presence information is transmitted between stations even . in situations where the stations are not presently communicating with one another. This continuous transmission of presence information, regardless of the state of the stations, can result in increased network traffic and a reduction in station battery life, particularly when the station is a wireless mobile communication device. Furthermore, traditional IM techniques may assume that the users are not always activated and always connected to the network - which may not always be the case with certain wireless network users that maintain constant connectivity.
  • a system and method of instant messaging is provided.
  • a plurality of messaging clients capable of transmitting instant messages to one another are each configured to share presence information with one another via a network.
  • a determination is made, with respect to each of the messaging clients, as to whether the messaging client is in a state in which it is receptive to receiving presence information from the other messaging clients, and if so, then the presence information is provided to the messaging client.
  • the presence information may be provided directly between the messaging clients, or it may be provided through one or more centralized proxy servers that store and propagate the presence information.
  • a special state is provided, referred to herein as the unknown state, which when entered by a particular messaging client will cause the system to cease further transmissions of presence information to that client.
  • the system Upon changing to a communicative state, the system resumes providing presence information to the messaging client.
  • Fig. 1 is a block diagram of a dual-mode mobile communication device
  • Fig. 2 is a block diagram of an exemplary wireless instant messaging system in accordance with the present invention
  • Fig. 3 is an interaction diagram illustrating steps of a first embodiment of a method of wireless instant messaging in accordance with the present invention
  • Fig. 4 is an interaction diagram illustrating steps of a second embodiment of a method of wireless instant messaging in accordance with the present invention
  • Fig. 5 is an interaction diagram illustrating steps of a third embodiment of a method of wireless instant messaging in accordance with the present invention.
  • Fig. 1 is a block diagram of a dual-mode mobile communication device 10.
  • the dual-mode device 10 includes a transceiver 11 , a microprocessor 38, a display 22, Flash memory 24, RAM memory 26, auxiliary input/output (I/O) devices 28, a serial port 30, a keyboard 32, a speaker 34, a microphone 36, a short-range wireless communications sub-system 40, and may also include other device sub-systems 42.
  • the transceiver 11 preferably includes transmit and receive antennas 16, 18, a receiver 12, a transmitter 14, one or more local oscillators 13, and a digital signal processor 20.
  • the device 10 preferably includes a plurality of software modules 24A-24N that can be executed by the microprocessor 38 (and/or the DSP 20), including a voice communication module 24A, a data communication module 24B, and a plurality of other operational modules 24N for carrying out a plurality of other functions.
  • the mobile communication device 10 is preferably a two-way communication device having voice and data communication capabilities.
  • the device may communicate over a voice network, such as any of the many known analog or digital cellular networks, and may also communicate over a data network.
  • the voice and data networks are depicted in Fig. 1 by the communication tower 19. These voice and data networks may be separate communication networks using separate infrastructure, such as base stations, network controllers, etc., or they may be integrated into a single wireless network.
  • the communication subsystem 11 is used to communicate with the voice and data network 19, and includes the receiver 12, the transmitter 14, the one or more local oscillators 13 and may also include the DSP 20.
  • the DSP 20 is used to send and receive signals to and from the transmitter 14 and receiver 12, and is also utilized to receive control information from the transmitter 14 and to provide control information to the receiver 12. If the voice and data communications occur at a single frequency, or closely spaced set of frequencies, then a single local oscillator 13 may be used in conjunction with the transmitter 14 and receiver 12. Alternatively, if different frequencies are utilized for voice communications versus data communications, then a plurality of local oscillators 13 can be used to generate a plurality of frequencies corresponding to the voice and data networks 19. Although two antennas 16, 18 are depicted in Fig. 1 , the mobile device 10 could be used with a single antenna structure. Information, which includes both voice and data information, is communicated to and from the communication module 11 via a link between the DSP 20 and the microprocessor 38.
  • the detailed design of the communication subsystem 11 such as frequency band, component selection, power level, etc., will be dependent upon the communication network 19 in which the device is intended to operate.
  • a device 10 intended to operate in a North American market may include a communication subsystem 11 designed to operate with the MobitexTM or DataTACTM mobile data communication networks and also designed to operated with any of a variety of voice communication networks, such as AMPS, TDMA, CDMA, PCS, etc., whereas a device 10 intended for use in Europe may be configured to operate with the General Packet Radio Service (GPRS) data communication network and the GSM voice communication network.
  • GPRS General Packet Radio Service
  • Other types of data and voice networks, both separate and integrated, may also be utilized with the mobile device 10.
  • the access requirements for the dual-mode mobile device 10 may also vary.
  • mobile devices are registered on the network using a unique identification number associated with each device.
  • network access is associated with a subscriber or user of a device 10.
  • a GPRS device typically requires a subscriber identity module (“SIM”), which is required in order to operate the device 10 on the GPRS network.
  • SIM subscriber identity module
  • Local or non-network communication functions may be operable without the SIM device, but the device 10 will be unable to carry out any functions involving communications over the data network 19, other than any legally required operations, such as 911 emergency calling.
  • the dual-mode device 10 may send and receive communication signals, including both voice and data signals, over the network 19 (or networks).
  • Signals received by the antenna 16 from the communication network 19 are routed to the receiver 12, which provides for signal amplification, frequency down conversion, filtering, channel selection, etc., and may also provide analog to digital conversion. Analog to digital conversion of the received signal allows more complex communication functions, such as digital demodulation and decoding to be performed using the DSP 20.
  • signals to be transmitted to the network 19 are processed, including modulation and encoding, for example, by the DSP 20 and are then provided to the transmitter 14 for digital to analog conversion, frequency up conversion, filtering, amplification and transmission to the communication network 19 (or networks) via the antenna 18.
  • a single transceiver 11 is shown in Fig. 1 for both voice and data communications, it is possible that the device 10 may include two distinct transceivers, a first transceiver for transmitting and receiving voice signals, and a second transceiver for transmitting and receiving data signals.
  • the DSP 20 In addition to processing the communication signals, the DSP 20 also provides for receiver and transmitter control. For example, the gain levels applied to communication signals in the receiver 12 and transmitter 14 may be adaptively controlled through automatic gain control algorithms implemented in the DSP 20. Other transceiver control algorithms could also be implemented in the DSP 20 in order to provide more sophisticated control of the transceiver 11.
  • the microprocessor 38 preferably manages and controls the overall operation of the dual-mode mobile device 10. Many types of microprocessors or micro-controllers could be used here, or, alternatively, a single DSP 20 could be used to carry out the functions of the microprocessor 38. Low-level communication functions, including at least data and voice communications, are performed through the DSP 20 in the transceiver 11.
  • a voice communication application 24A may be stored in the Flash memory 24 for execution by the microprocessor 38.
  • the voice communication module 24A may provide a high-level user interface operable to transmit and receive voice calls between the dual-mode mobile device 10 and a plurality of other voice devices via the network 19.
  • the data communication module 24B may provide a high-level user interface operable for sending and receiving data, such as e-mail messages, files, organizer information, short text messages, etc., between the dual-mode mobile device 10 and a plurality of other data devices via the network 19.
  • the microprocessor 38 • also interacts with other device subsystems, such as the display 22, Flash memory 24, random access memory (RAM) 26, auxiliary input/output (I/O) subsystems 28, serial port 30, keyboard 32, speaker 34, microphone 36, a short-range communications subsystem 40 and any other device subsystems generally designated as 42.
  • other device subsystems such as the display 22, Flash memory 24, random access memory (RAM) 26, auxiliary input/output (I/O) subsystems 28, serial port 30, keyboard 32, speaker 34, microphone 36, a short-range communications subsystem 40 and any other device subsystems generally designated as 42.
  • Fig. 1 Some of the subsystems shown in Fig. 1 perform communication-related functions, whereas other subsystems may provide "resident" or on-device functions. Notably, some subsystems, such as keyboard 32 and display 22 may be used for both communication-related functions, such as entering a text message for transmission over a data communication network, and device-resident functions, such as a calculator or task list or other PDA type functions. Operating system software used by the microprocessor 38 is preferably stored in a persistent store, such as Flash memory 24.
  • a persistent store such as Flash memory 24.
  • the Flash memory 24 may include a plurality of high-level software application programs, or modules, such as a voice communication module 24A, a data communication module 24B, an organizer module, or any other type of software module 24N.
  • the Flash memory 24 also may include a file system for storing data. These modules are executed by the microprocessor 38 and provide a high-level interface between a user of the device and the device. This interface typically includes a graphical component provided through the display 22, and an input/output component provided through the auxiliary I/O 28, keyboard 32, speaker 34, and microphone 36.
  • the operating system, specific device applications or modules, or parts thereof, may be temporarily loaded into a volatile store, such as RAM 26 for faster operation.
  • received communication signals may also be temporarily stored to RAM 26, before permanently writing them to a file system located in the persistent store 24.
  • An exemplary application module 24N that may be loaded onto the dual-mode device 10 is a personal information manager (PIM) application providing PDA functionality, such as calendar events, appointments, and task items.
  • PIM personal information manager
  • This module 24N may also interact with the voice communication module 24A for managing phone calls, voice mails, etc., and may also interact with the data communication module for managing e-mail communications and other data transmissions.
  • all of the functionality of the voice communication module 24A and the data communication module 24B may be integrated into the PIM module.
  • the Flash memory 24 preferably provides a file system to facilitate storage of PIM data items on the device.
  • the PIM application preferably includes the ability to send and receive data items, either by itself, or in conjunction with the voice and data communication modules 24A, 24B, via the wireless network 19.
  • the PIM data items are preferably seamlessly integrated, synchronized and updated, via the wireless network 19, with a corresponding set of data items stored or associated with a host computer system, thereby creating a mirrored system for data items associated with a particular user.
  • the mobile device 10 may also be manually synchronized with a host system by placing the device 10 in an interface cradle, which couples the serial port 30 of the mobile device 10 to the serial port of the host system.
  • the serial port 30 may also be used to enable a user to set preferences through an external device or software application, or to download other application modules 24N for installation. This wired download path may be used to load an encryption key onto the device, which is a more secure method than exchanging encryption information via the wireless network 19.
  • Additional application modules 24N may be loaded onto the dual-mode device 10 through the network 19, through an auxiliary I/O subsystem 28, through the serial port 30, through the short-range communications subsystem 40, or through any other suitable subsystem 42, and installed by a user in the Flash memory 24 or RAM 26.
  • Such flexibility in application installation increases the functionality of the device 10 and may provide enhanced on-device functions, communication-related functions, or both.
  • secure communication applications may enable electronic commerce functions and other such financial transactions to be performed using the device 10.
  • a received signal such as a text message or a web page download
  • the transceiver 11 When the dual-mode device 10 is operating in a data communication mode, a received signal, such as a text message or a web page download, will be processed by the transceiver 11 and provided to the microprocessor 38, which will preferably further process the received signal for output to the display 22,. or, alternatively, to an auxiliary I/O device 28.
  • a user of dual-mode device 10 may also compose data items, such as email messages, using the keyboard 32, which is preferably a complete alphanumeric keyboard laid out in the QWERTY style, although other styles of complete alphanumeric keyboards such as the known DVORAK style may also be used.
  • auxiliary I/O devices 28 may include a thumbwheel input device, a touchpad, a variety of switches, a rocker input switch, etc.
  • the composed data items input by the user may then be transmitted over the communication network 19 via the transceiver 11.
  • the dual-mode device 10 is operating in a voice communication mode, the overall operation of the device 10 is substantially similar to the data mode, except that received signals are preferably output to the speaker 34 and voice signals for transmission are generated by a microphone 36.
  • Alternative voice or audio I/O subsystems such as a voice message recording subsystem, may also be implemented on the device 10.
  • the display 22 may also be used to provide an indication of the identity of a calling party, the duration of a voice call, or other voice call related information.
  • the microprocessor 38 in conjunction with the voice communication module and the operating system software, may detect the caller identification information of an incoming voice call and display it on the display 22.
  • a short-range communications subsystem 40 may also be included in the dual- mode device 10.
  • the subsystem 40 may include an infrared device and associated circuits and components, or a BluetoothTM short-range wireless communication module to provide for communication with similarly enabled systems and devices.
  • Fig. 2 is a block diagram of an exemplary wireless instant messaging system in accordance with the present invention.
  • Wireless devices 10 communicate with base stations 20 wirelessly using radio waves.
  • the base stations 20 communicate via a wireless . network 90, which in turn communicates via the Internet 100 with a wireless instant messaging server 200 and Internet-based instant messaging clients 120.
  • Fig. 3 is an interaction diagram illustrating steps of a first embodiment of a method of wireless instant messaging in accordance with the present invention.
  • Messaging server 200 communicates with client applications on wireless devices A and B (10A and 10B), as well as with other client applications, such as C.
  • client applications such as C.
  • FIG. 3 an arrow between messaging server 200 and clients 10A, B illustrate communications. The relative time between these communications is illustrated by time flowing generally downward so that if a first arrow is higher than a second arrow in Fig. 3, this is meant to illustrate that the first communication occurred before the second communication.
  • Messaging server 200 keeps track of presence information.
  • initially messaging server 200 has a server presence table 210 having one row per wireless client A, B, C, etc., wherein each row stores the presence state for each wireless client.
  • client 10B is initially in the "chatty" state according to table 210
  • clients 10A and C are in the "CAT” state (named after Shr ⁇ dinger's cat) according to table 210.
  • the CAT state is also referred to herein as the unknown state. While represented in the "CAT" state, the presence information for a client is understood to be neither available nor unavailable, i.e., its state is undetermined, and the messaging server 200 preferably does not propagate presence information to any client in this state.
  • the "CAT” state is maintained until the state of the client is "observed,” in which case the undetermination is resolved.
  • the act of "observing” a client may cause the state of the client to change.
  • the "CAT” state is thus a pseudo-state that can be used by both the messaging server 200 and clients 10A, B.
  • the "CAT” state can be displayed to the user of client devices 10A, B, for instance, in co-operation with a "buddy” list.
  • the "CAT” state is preferably not communicated between messaging server 200 and client 10A, B.
  • representing the state of a client with the "CAT” state enables wireless presence information to operate with the lack of state information for that particular client.
  • each client 10A, B maintains a client presence table 220A, B, wherein each row of the client presence table 220A stores the presence state for a wireless client.
  • the client presence tables 220A, B preferably only keep track of the presence information for select wireless messaging correspondents, for instance only those correspondents found on a "buddy" list.
  • client presence tables 220A, B is the local client state, which need not necessarily be stored in the same table as the select clients.
  • client 10B is initially in the "CAT” state, whereas client 10A is in the "Available” state.
  • Table 220B also shows that client 10A is initially in the "CAT” state, whereas client 10B is in the "Chatty" state.
  • client 10A changes its state from “Available” to "chatty” in response to some trigger 225 - for instance when the user of client 10A activates the instant messaging application.
  • Client 10A then communicates 230A its new state information to the messaging server 200, which tracks this information and updates the change in table
  • both clients 10A and 10B are now in the "chatty” state.
  • Messaging server 200 sends client state update messages to all clients that are in the "chatty” state.
  • client 10B receives an update 235B indicating that client 10A is now in the "chatty” state, and updates client table 220B accordingly.
  • client 10A receives an update 235A indicating that client 10B is now in the "chatty” state.
  • client 10A effectively "observes” the state of client 10B thereby resolving the indeterminacy of the original "CAT” state for client 10B in table 220A of client 10A.
  • messaging server 200 While clients 10A and 10B remain in the "chatty" state, as indicated in the server presence table 210, messaging server 200 periodically (with period Tu) sends updates 235B and 235A to clients 10B and 10A, respectively.
  • the updates preferably include all non-CAT states of buddies, and optionally may include all "chatty" states, as well as other optional information (bandwidth permitting).
  • client 10A changes state from “chatty” to “available” in table 220A, for instance as a result of the user of client 10A stopping the instant messaging application.
  • Client 10A therefore sends update 230A to messaging server 200, which continues to send periodic (with period Tu) update messages 235B to client 10B since client 10B is in the "chatty" state.
  • periodic (with period Tu) update messages 235B to client 10B since client 10B is in the "chatty” state.
  • client 10A is no longer in the "chatty” state in table 210, however, after a "CAT" timeout interval Tcs has expired, client 10A is represented by the "CAT" state in table 210.
  • Fig. 4 is an interaction diagram illustrating steps of a second embodiment of a method of wireless instant messaging in accordance with the present invention. Fig.
  • FIG. 4 shows communications between messaging server 200 and client 10A illustrating in greater detail steps surrounding updates queued by wireless network 90 when client 10A falls out of coverage.
  • Client 10A and messaging server 200 originally have presence information tables 220A and 210, respectively.
  • a trigger 225 at client 10A causes client 10A to enter the "chatty" state.
  • Client 10A then changes its state from "Available” to "chatty” in response to the trigger 225 - for instance when the user of client 10A activates the instant messaging application.
  • Client 10A then communicates 230A its new state information to the messaging server 200, which tracks and updates the change in table 210.
  • Messaging server 200 sends client state update messages to all clients that are in the "chatty" state. Because only client 10A is shown in Fig. 4, only update messages sent to client 10A are shown. Client 10A receives an update 235A indicating that client 10B is now in the "chatty" state, and updates client table 220A accordingly.
  • messaging server 200 While client 10A remains in the "chatty" state, as indicated in the server presence table 210, messaging server 200 periodically (with period Tu) sends updates 235A to client 10A. However, as shown, the third update does not reach client 10A because client 10A has gone out of coverage - as illustrated by the X. As a result, wireless network 90 preferably queues update message 235A in queue 240A for client 10A, and sends a queued message status message 237A back to messaging server 200. Preferably, upon receiving a queued message status message 237A, messaging server 200 pauses the periodic transmission of update messages to client 10A.
  • wireless network 90 This ensures that the capacity of wireless network 90 is not overflowed by update messages 235A for client 10A for the duration of time client 10A is out of coverage - illustrated as a portion of the duration T>Tu. Finally, after client 10A returns to coverage - illustrated by the check mark - queued message 235A in queue 240A is sent to client 10A by wireless network 90. The wireless network 90 also sends a queued message delivered message 239A to messaging server 200
  • messaging server 200 resumes the periodic transmission of update messages to client 10A.
  • Fig. 5 is an interaction diagram illustrating steps of a third embodiment of a method of wireless instant messaging in accordance with the present invention.
  • a wireless device 10A sends a single message 300A addressed to a group GID1 via wireless messaging server 200.
  • Group GID1 is a unique identifier which is resolved by messaging server by consulting a database 310 that relates group ids such as GID1 320 to user ids 330, such as UID1 ,...,UIDN.
  • messaging server 200 then sends messages 340B-C to each wireless device having user ids 330, as well as sending messages 350A-B to internet clients 120A-B. This mechanism, ensures that wireless device 10A only needs to transmit one wireless message 300A in order to reach multiple wireless users 10B-C and internet users 120A-B.
  • the above-described embodiments of the present invention are intended to be examples only. Those of skill in the art may effect alterations, modifications and variations to the particular embodiments without departing from the scope of the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method of operating a server includes receiving a single message, from a messaging client, addressed to a group. The group is resolved to user identifiers that identify both wireless device clients and Internet clients. A message is sent to each of the wireless device clients and each of the Internet clients.

Description

SYSTEM AND METHOD OF WIRELESS INSTANT MESSAGING
TECHNICAL FIELD
This invention relates generally to the field of instant messaging. More particularly, the invention provides a system and method of instant messaging to and from wireless devices.
BACKGROUND ART
Known Instant Messaging (IM) techniques typically send short messages and maintain presence information. One technique for maintaining presence information is the "buddy list." In a "buddy list," users keep a list of correspondents that they regularly communicate with. Correspondents in a "buddy list" typically poll each other for presence information, such as correspondent active, disconnected, etc. The users can glance through the "buddy list" to see if anyone is available to communicate with. One known IM technique that uses a "buddy list" is ICQ. In ICQ, each correspondent in the "buddy list" sends a message to the user if the correspondent's presence information changes, e.g., if a correspondent disconnects or reconnects to a network. The traditional IM presence information in ICQ is defined using states such as "connected," "chatty," "away," "extended away," "occupied," "do not disturb (DND)," "invisible," and "offline."
Traditional IM techniques may use frequent network traffic communications that may exceed typical wireless network capacity. This occurs because in traditional IM techniques, such as ICQ, presence information is transmitted between stations even . in situations where the stations are not presently communicating with one another. This continuous transmission of presence information, regardless of the state of the stations, can result in increased network traffic and a reduction in station battery life, particularly when the station is a wireless mobile communication device. Furthermore, traditional IM techniques may assume that the users are not always activated and always connected to the network - which may not always be the case with certain wireless network users that maintain constant connectivity.
DISCLOSURE OF INVENTION
A system and method of instant messaging is provided. A plurality of messaging clients capable of transmitting instant messages to one another are each configured to share presence information with one another via a network. A determination is made, with respect to each of the messaging clients, as to whether the messaging client is in a state in which it is receptive to receiving presence information from the other messaging clients, and if so, then the presence information is provided to the messaging client. The presence information may be provided directly between the messaging clients, or it may be provided through one or more centralized proxy servers that store and propagate the presence information. A special state is provided, referred to herein as the unknown state, which when entered by a particular messaging client will cause the system to cease further transmissions of presence information to that client. Upon changing to a communicative state, the system resumes providing presence information to the messaging client.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a block diagram of a dual-mode mobile communication device; Fig. 2 is a block diagram of an exemplary wireless instant messaging system in accordance with the present invention;
Fig. 3 is an interaction diagram illustrating steps of a first embodiment of a method of wireless instant messaging in accordance with the present invention;
Fig. 4 is an interaction diagram illustrating steps of a second embodiment of a method of wireless instant messaging in accordance with the present invention; and Fig. 5 is an interaction diagram illustrating steps of a third embodiment of a method of wireless instant messaging in accordance with the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION Turning now to the drawing figures, Fig. 1 is a block diagram of a dual-mode mobile communication device 10. The dual-mode device 10 includes a transceiver 11 , a microprocessor 38, a display 22, Flash memory 24, RAM memory 26, auxiliary input/output (I/O) devices 28, a serial port 30, a keyboard 32, a speaker 34, a microphone 36, a short-range wireless communications sub-system 40, and may also include other device sub-systems 42. The transceiver 11 preferably includes transmit and receive antennas 16, 18, a receiver 12, a transmitter 14, one or more local oscillators 13, and a digital signal processor 20. Within the Flash memory 24, the device 10 preferably includes a plurality of software modules 24A-24N that can be executed by the microprocessor 38 (and/or the DSP 20), including a voice communication module 24A, a data communication module 24B, and a plurality of other operational modules 24N for carrying out a plurality of other functions.
The mobile communication device 10 is preferably a two-way communication device having voice and data communication capabilities. Thus, for example, the device may communicate over a voice network, such as any of the many known analog or digital cellular networks, and may also communicate over a data network. The voice and data networks are depicted in Fig. 1 by the communication tower 19. These voice and data networks may be separate communication networks using separate infrastructure, such as base stations, network controllers, etc., or they may be integrated into a single wireless network. The communication subsystem 11 is used to communicate with the voice and data network 19, and includes the receiver 12, the transmitter 14, the one or more local oscillators 13 and may also include the DSP 20. The DSP 20 is used to send and receive signals to and from the transmitter 14 and receiver 12, and is also utilized to receive control information from the transmitter 14 and to provide control information to the receiver 12. If the voice and data communications occur at a single frequency, or closely spaced set of frequencies, then a single local oscillator 13 may be used in conjunction with the transmitter 14 and receiver 12. Alternatively, if different frequencies are utilized for voice communications versus data communications, then a plurality of local oscillators 13 can be used to generate a plurality of frequencies corresponding to the voice and data networks 19. Although two antennas 16, 18 are depicted in Fig. 1 , the mobile device 10 could be used with a single antenna structure. Information, which includes both voice and data information, is communicated to and from the communication module 11 via a link between the DSP 20 and the microprocessor 38.
The detailed design of the communication subsystem 11 , such as frequency band, component selection, power level, etc., will be dependent upon the communication network 19 in which the device is intended to operate. For example, a device 10 intended to operate in a North American market may include a communication subsystem 11 designed to operate with the Mobitex™ or DataTAC™ mobile data communication networks and also designed to operated with any of a variety of voice communication networks, such as AMPS, TDMA, CDMA, PCS, etc., whereas a device 10 intended for use in Europe may be configured to operate with the General Packet Radio Service (GPRS) data communication network and the GSM voice communication network. Other types of data and voice networks, both separate and integrated, may also be utilized with the mobile device 10.
Depending upon the type of network 19 (or networks), the access requirements for the dual-mode mobile device 10 may also vary. For example, in the Mobitex and DataTAC data networks, mobile devices are registered on the network using a unique identification number associated with each device. In GPRS data networks, however, network access is associated with a subscriber or user of a device 10. A GPRS device typically requires a subscriber identity module ("SIM"), which is required in order to operate the device 10 on the GPRS network. Local or non-network communication functions (if any) may be operable without the SIM device, but the device 10 will be unable to carry out any functions involving communications over the data network 19, other than any legally required operations, such as 911 emergency calling.
After any required network registration or activation procedures have been completed, the dual-mode device 10 may send and receive communication signals, including both voice and data signals, over the network 19 (or networks). Signals received by the antenna 16 from the communication network 19 are routed to the receiver 12, which provides for signal amplification, frequency down conversion, filtering, channel selection, etc., and may also provide analog to digital conversion. Analog to digital conversion of the received signal allows more complex communication functions, such as digital demodulation and decoding to be performed using the DSP 20. In a similar manner, signals to be transmitted to the network 19 are processed, including modulation and encoding, for example, by the DSP 20 and are then provided to the transmitter 14 for digital to analog conversion, frequency up conversion, filtering, amplification and transmission to the communication network 19 (or networks) via the antenna 18. Although a single transceiver 11 is shown in Fig. 1 for both voice and data communications, it is possible that the device 10 may include two distinct transceivers, a first transceiver for transmitting and receiving voice signals, and a second transceiver for transmitting and receiving data signals.
In addition to processing the communication signals, the DSP 20 also provides for receiver and transmitter control. For example, the gain levels applied to communication signals in the receiver 12 and transmitter 14 may be adaptively controlled through automatic gain control algorithms implemented in the DSP 20. Other transceiver control algorithms could also be implemented in the DSP 20 in order to provide more sophisticated control of the transceiver 11. The microprocessor 38 preferably manages and controls the overall operation of the dual-mode mobile device 10. Many types of microprocessors or micro-controllers could be used here, or, alternatively, a single DSP 20 could be used to carry out the functions of the microprocessor 38. Low-level communication functions, including at least data and voice communications, are performed through the DSP 20 in the transceiver 11. Other, high-level communication applications, such as a voice communication application 24A, and a data communication application 24B may be stored in the Flash memory 24 for execution by the microprocessor 38. For example, the voice communication module 24A may provide a high-level user interface operable to transmit and receive voice calls between the dual-mode mobile device 10 and a plurality of other voice devices via the network 19. Similarly, the data communication module 24B may provide a high-level user interface operable for sending and receiving data, such as e-mail messages, files, organizer information, short text messages, etc., between the dual-mode mobile device 10 and a plurality of other data devices via the network 19. The microprocessor 38 also interacts with other device subsystems, such as the display 22, Flash memory 24, random access memory (RAM) 26, auxiliary input/output (I/O) subsystems 28, serial port 30, keyboard 32, speaker 34, microphone 36, a short-range communications subsystem 40 and any other device subsystems generally designated as 42.
Some of the subsystems shown in Fig. 1 perform communication-related functions, whereas other subsystems may provide "resident" or on-device functions. Notably, some subsystems, such as keyboard 32 and display 22 may be used for both communication-related functions, such as entering a text message for transmission over a data communication network, and device-resident functions, such as a calculator or task list or other PDA type functions. Operating system software used by the microprocessor 38 is preferably stored in a persistent store, such as Flash memory 24. In addition to the operating system, which controls all of the low-level functions of the device 10, the Flash memory 24 may include a plurality of high-level software application programs, or modules, such as a voice communication module 24A, a data communication module 24B, an organizer module, or any other type of software module 24N. The Flash memory 24 also may include a file system for storing data. These modules are executed by the microprocessor 38 and provide a high-level interface between a user of the device and the device. This interface typically includes a graphical component provided through the display 22, and an input/output component provided through the auxiliary I/O 28, keyboard 32, speaker 34, and microphone 36. The operating system, specific device applications or modules, or parts thereof, may be temporarily loaded into a volatile store, such as RAM 26 for faster operation. Moreover, received communication signals may also be temporarily stored to RAM 26, before permanently writing them to a file system located in the persistent store 24.
An exemplary application module 24N that may be loaded onto the dual-mode device 10 is a personal information manager (PIM) application providing PDA functionality, such as calendar events, appointments, and task items. This module 24N may also interact with the voice communication module 24A for managing phone calls, voice mails, etc., and may also interact with the data communication module for managing e-mail communications and other data transmissions. Alternatively, all of the functionality of the voice communication module 24A and the data communication module 24B may be integrated into the PIM module.
The Flash memory 24 preferably provides a file system to facilitate storage of PIM data items on the device. The PIM application preferably includes the ability to send and receive data items, either by itself, or in conjunction with the voice and data communication modules 24A, 24B, via the wireless network 19. The PIM data items are preferably seamlessly integrated, synchronized and updated, via the wireless network 19, with a corresponding set of data items stored or associated with a host computer system, thereby creating a mirrored system for data items associated with a particular user. The mobile device 10 may also be manually synchronized with a host system by placing the device 10 in an interface cradle, which couples the serial port 30 of the mobile device 10 to the serial port of the host system. The serial port 30 may also be used to enable a user to set preferences through an external device or software application, or to download other application modules 24N for installation. This wired download path may be used to load an encryption key onto the device, which is a more secure method than exchanging encryption information via the wireless network 19.
Additional application modules 24N may be loaded onto the dual-mode device 10 through the network 19, through an auxiliary I/O subsystem 28, through the serial port 30, through the short-range communications subsystem 40, or through any other suitable subsystem 42, and installed by a user in the Flash memory 24 or RAM 26. Such flexibility in application installation increases the functionality of the device 10 and may provide enhanced on-device functions, communication-related functions, or both. For example, secure communication applications may enable electronic commerce functions and other such financial transactions to be performed using the device 10.
When the dual-mode device 10 is operating in a data communication mode, a received signal, such as a text message or a web page download, will be processed by the transceiver 11 and provided to the microprocessor 38, which will preferably further process the received signal for output to the display 22,. or, alternatively, to an auxiliary I/O device 28. A user of dual-mode device 10 may also compose data items, such as email messages, using the keyboard 32, which is preferably a complete alphanumeric keyboard laid out in the QWERTY style, although other styles of complete alphanumeric keyboards such as the known DVORAK style may also be used. User input to the device 10 is further enhanced with a plurality of auxiliary I/O devices 28, which may include a thumbwheel input device, a touchpad, a variety of switches, a rocker input switch, etc. The composed data items input by the user may then be transmitted over the communication network 19 via the transceiver 11. When the dual-mode device 10 is operating in a voice communication mode, the overall operation of the device 10 is substantially similar to the data mode, except that received signals are preferably output to the speaker 34 and voice signals for transmission are generated by a microphone 36. Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented on the device 10. Although voice or audio signal output is preferably accomplished primarily through the speaker 34, the display 22 may also be used to provide an indication of the identity of a calling party, the duration of a voice call, or other voice call related information. For example, the microprocessor 38, in conjunction with the voice communication module and the operating system software, may detect the caller identification information of an incoming voice call and display it on the display 22.
A short-range communications subsystem 40 may also be included in the dual- mode device 10. For example, the subsystem 40 may include an infrared device and associated circuits and components, or a Bluetooth™ short-range wireless communication module to provide for communication with similarly enabled systems and devices.
Fig. 2 is a block diagram of an exemplary wireless instant messaging system in accordance with the present invention. Wireless devices 10 communicate with base stations 20 wirelessly using radio waves. The base stations 20 communicate via a wireless . network 90, which in turn communicates via the Internet 100 with a wireless instant messaging server 200 and Internet-based instant messaging clients 120.
Fig. 3 is an interaction diagram illustrating steps of a first embodiment of a method of wireless instant messaging in accordance with the present invention. Messaging server 200 communicates with client applications on wireless devices A and B (10A and 10B), as well as with other client applications, such as C. In Fig. 3, an arrow between messaging server 200 and clients 10A, B illustrate communications. The relative time between these communications is illustrated by time flowing generally downward so that if a first arrow is higher than a second arrow in Fig. 3, this is meant to illustrate that the first communication occurred before the second communication.
Messaging server 200 keeps track of presence information. As illustrated, initially messaging server 200 has a server presence table 210 having one row per wireless client A, B, C, etc., wherein each row stores the presence state for each wireless client. As shown, client 10B is initially in the "chatty" state according to table 210, whereas clients 10A and C are in the "CAT" state (named after Shrδdinger's cat) according to table 210. The CAT state is also referred to herein as the unknown state. While represented in the "CAT" state, the presence information for a client is understood to be neither available nor unavailable, i.e., its state is undetermined, and the messaging server 200 preferably does not propagate presence information to any client in this state. The "CAT" state is maintained until the state of the client is "observed," in which case the undetermination is resolved. The act of "observing" a client may cause the state of the client to change. The "CAT" state is thus a pseudo-state that can be used by both the messaging server 200 and clients 10A, B. Optionally, the "CAT" state can be displayed to the user of client devices 10A, B, for instance, in co-operation with a "buddy" list. The "CAT" state is preferably not communicated between messaging server 200 and client 10A, B. In addition, representing the state of a client with the "CAT" state enables wireless presence information to operate with the lack of state information for that particular client. In a similar manner to how presence information is maintained at the messaging server 200, each client 10A, B maintains a client presence table 220A, B, wherein each row of the client presence table 220A stores the presence state for a wireless client. Instead of keeping track of all clients as was the case with the server presence table 210, the client presence tables 220A, B preferably only keep track of the presence information for select wireless messaging correspondents, for instance only those correspondents found on a "buddy" list. Also shown in client presence tables 220A, B is the local client state, which need not necessarily be stored in the same table as the select clients. As shown in table 220A, for example, client 10B is initially in the "CAT" state, whereas client 10A is in the "Available" state. Table 220B also shows that client 10A is initially in the "CAT" state, whereas client 10B is in the "Chatty" state.
In Fig. 3, client 10A changes its state from "Available" to "chatty" in response to some trigger 225 - for instance when the user of client 10A activates the instant messaging application. Client 10A then communicates 230A its new state information to the messaging server 200, which tracks this information and updates the change in table
210.
At messaging server 200, both clients 10A and 10B are now in the "chatty" state. Messaging server 200 sends client state update messages to all clients that are in the "chatty" state. As shown, client 10B receives an update 235B indicating that client 10A is now in the "chatty" state, and updates client table 220B accordingly. Similarly, client 10A receives an update 235A indicating that client 10B is now in the "chatty" state. Thus, by communicating its state to messaging server 200, client 10A effectively "observes" the state of client 10B thereby resolving the indeterminacy of the original "CAT" state for client 10B in table 220A of client 10A.
While clients 10A and 10B remain in the "chatty" state, as indicated in the server presence table 210, messaging server 200 periodically (with period Tu) sends updates 235B and 235A to clients 10B and 10A, respectively. The updates preferably include all non-CAT states of buddies, and optionally may include all "chatty" states, as well as other optional information (bandwidth permitting).
After N updates, client 10A changes state from "chatty" to "available" in table 220A, for instance as a result of the user of client 10A stopping the instant messaging application. Client 10A therefore sends update 230A to messaging server 200, which continues to send periodic (with period Tu) update messages 235B to client 10B since client 10B is in the "chatty" state. Because client 10A is no longer in the "chatty" state in table 210, however, after a "CAT" timeout interval Tcs has expired, client 10A is represented by the "CAT" state in table 210. Similarly, because the state of client 10B is no longer being updated in table 220A, after a "CAT" timeout interval Tea has expired, the state of client 10B is represented by the "CAT" state in table 220A. The same operation occurs after a timeout interval Tcb at client 10B, so that client 10A is represented with the "CAT" state in table 220B. Even though client B is in the "chatty" state both in table 210 and 220B, messaging server 200 does not send periodic updates to client 10B because both client 10A and 10C have the "CAT" state in table 210. Fig. 4 is an interaction diagram illustrating steps of a second embodiment of a method of wireless instant messaging in accordance with the present invention. Fig. 4 shows communications between messaging server 200 and client 10A illustrating in greater detail steps surrounding updates queued by wireless network 90 when client 10A falls out of coverage. Client 10A and messaging server 200 originally have presence information tables 220A and 210, respectively. As was the case in Fig. 3, a trigger 225 at client 10A causes client 10A to enter the "chatty" state. Client 10A then changes its state from "Available" to "chatty" in response to the trigger 225 - for instance when the user of client 10A activates the instant messaging application. Client 10A then communicates 230A its new state information to the messaging server 200, which tracks and updates the change in table 210.
At messaging server 200, both clients 10A and 10B are now in the "chatty" state. Messaging server 200 sends client state update messages to all clients that are in the "chatty" state. Because only client 10A is shown in Fig. 4, only update messages sent to client 10A are shown. Client 10A receives an update 235A indicating that client 10B is now in the "chatty" state, and updates client table 220A accordingly.
While client 10A remains in the "chatty" state, as indicated in the server presence table 210, messaging server 200 periodically (with period Tu) sends updates 235A to client 10A. However, as shown, the third update does not reach client 10A because client 10A has gone out of coverage - as illustrated by the X. As a result, wireless network 90 preferably queues update message 235A in queue 240A for client 10A, and sends a queued message status message 237A back to messaging server 200. Preferably, upon receiving a queued message status message 237A, messaging server 200 pauses the periodic transmission of update messages to client 10A. This ensures that the capacity of wireless network 90 is not overflowed by update messages 235A for client 10A for the duration of time client 10A is out of coverage - illustrated as a portion of the duration T>Tu. Finally, after client 10A returns to coverage - illustrated by the check mark - queued message 235A in queue 240A is sent to client 10A by wireless network 90. The wireless network 90 also sends a queued message delivered message 239A to messaging server 200
Preferably, upon receiving a queued message delivered message 239A, messaging server 200 resumes the periodic transmission of update messages to client 10A.
Fig. 5 is an interaction diagram illustrating steps of a third embodiment of a method of wireless instant messaging in accordance with the present invention.
A wireless device 10A sends a single message 300A addressed to a group GID1 via wireless messaging server 200. Group GID1 is a unique identifier which is resolved by messaging server by consulting a database 310 that relates group ids such as GID1 320 to user ids 330, such as UID1 ,...,UIDN. As shown, messaging server 200 then sends messages 340B-C to each wireless device having user ids 330, as well as sending messages 350A-B to internet clients 120A-B. This mechanism, ensures that wireless device 10A only needs to transmit one wireless message 300A in order to reach multiple wireless users 10B-C and internet users 120A-B. The above-described embodiments of the present invention are intended to be examples only. Those of skill in the art may effect alterations, modifications and variations to the particular embodiments without departing from the scope of the invention.

Claims

Claims:
1. A method of instant messaging, comprising the steps of: providing a plurality of messaging clients capable of transmitting instant messages to one another; each of the plurality of messaging clients configured to share presence information with one another via a network; and for each of the plurality of messaging clients, determining whether the messaging client is in a state in which it is receptive to receiving presence information from the other messaging clients, and if so, then receiving presence information for each of the other messaging clients via the network.
2. The method of claim 1 , further comprising the steps of: for each of the plurality of messaging clients, setting a communication timer to a predetermined value that, when expired, will put the messaging client into an unknown state in which it is not receptive to receiving presence information from each of the other messaging clients.
3. The method of claim 1, further comprising the steps of: for each of the plurality of messaging clients, detecting a trigger signal indicating that the messaging client should be put into an unknown state in which it is not receptive to receiving presence information from each of the other messaging clients.
4. The method of claim 1 , further comprising the steps of: transmitting presence information directly from each of the plurality of messaging clients to the other messaging clients without using an intermediate server.
5. The method of claim 1 , further comprising the steps of: transmitting presence information from each of the plurality of messaging clients to an intermediate server system and storing the presence information in a data store at the intermediate server; the intermediate server system processing the presence information in the data store to determine whether or not to propagate presence information for the plurality of messaging clients to each of the individual messaging clients represented by the presence information in the data store.
6. The method of claim 1 , further comprising the steps of: each of the plurality of messaging clients having a buddy list of other messaging clients with which the messaging client is interested in communicating with; when the messaging client is in a state in which it is receptive to receiving presence information, then obtaining presence information for each of the other messaging clients on the buddy list.
7. The method of claim 1 , wherein the network is a wide area wireless network.
8. The method of claim 1 , wherein the presence information is communicated between the plurality of messaging clients via a proxy server coupled to the network.
9. The method of claim 8, wherein the proxy server maintains a presence information database storing current presence information for each of the plurality of messaging clients.
10. The method of claim 9, further comprising the steps of: the proxy server propagating presence information to each of the plurality of messaging clients unless the presence information database indicates that a particular messaging client is in a state indicating that it is not receptive to receiving presence information.
11. The method of claim 1 , further comprising the steps of: transmitting instant messages between two of the messaging clients having presence information regarding one another.
12. The method of claim 3, wherein the trigger signal is generated when an instant messaging application is turned off.
13. The method of claim 1 , further comprising the steps of: determining that at least one of the messaging clients is no longer capable of communicating via the network; and not providing presence information for the other messaging clients to the at least one of the messaging clients via the network until it is determined that the at least one of • the messaging clients is capable of communicating via the network.
14. An instant messaging system, comprising: a plurality of messaging clients capable of transmitting instant messages to one another, wherein each of the plurality of messaging clients is configured to share presence information with one another via a network; and means for determining whether each messaging client is in a state in which it is receptive to receiving presence information from the other messaging clients, and if so, then for transmitting presence information for each of the other messaging clients via the network.
15. The system of claim 14, further comprising: a communication timer for each of the messaging clients set to a predetermined value that, when expired, will put the messaging client into an unknown state in which it is not receptive to receiving presence information from each of the other messaging clients.
16. The system of claim 14, wherein the messaging clients further comprise: means for detecting a trigger signal indicating that the messaging client should be put into an unknown state in which it is not receptive to receiving presence information from each of the other messaging clients.
17. The system of claim 14, wherein the messaging clients further comprise: means for transmitting presence information directly from each of the plurality of messaging clients to the other messaging clients without using an intermediate server.
18. The system of claim 14, further comprising: an intermediate server system for receiving and storing presence information in a data store for each of the plurality of messaging clients; the intermediate server system processing the presence information in the data store to determine whether or not to propagate presence information for the plurality of messaging clients to each of the individual messaging clients represented by the presence information in the data store.
19. The system of claim 14, further comprising: each of the plurality of messaging clients having a buddy list of other messaging clients with which the messaging client is interested in communicating with; and wherein when the messaging client is in a state in which it is receptive to receiving presence information, then obtaining presence information for each of the other messaging clients on the buddy list.
20. The system of claim 14, wherein the network is a wide area wireless network.
21. The system of claim 14, wherein the presence information is communicated between the plurality of messaging clients via a proxy server coupled to the network.
22. The system of claim 21 , wherein the proxy server maintains a presence information database storing current presence information for each of the plurality of messaging clients.
23. The system of claim 22, wherein the proxy server propagates presence information to each of the plurality of messaging clients unless the presence information database indicates that a particular messaging client is in a state indicating that it is not receptive to receiving presence information.
24. The system of claim 14, wherein the presence information transmitted to the messaging client is associated with other messaging clients whose state is known.
EP03750214A 2002-09-24 2003-09-24 System and method of wireless instant messaging Expired - Lifetime EP1547331B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41281802P 2002-09-24 2002-09-24
US412818P 2002-09-24
PCT/CA2003/001458 WO2004030384A2 (en) 2002-09-24 2003-09-24 System and method of wireless instant messaging

Publications (2)

Publication Number Publication Date
EP1547331A2 true EP1547331A2 (en) 2005-06-29
EP1547331B1 EP1547331B1 (en) 2007-12-12

Family

ID=32043193

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03750214A Expired - Lifetime EP1547331B1 (en) 2002-09-24 2003-09-24 System and method of wireless instant messaging

Country Status (13)

Country Link
US (4) US7379732B2 (en)
EP (1) EP1547331B1 (en)
JP (1) JP4062544B2 (en)
KR (1) KR100715966B1 (en)
CN (1) CN100452776C (en)
AT (1) ATE381184T1 (en)
AU (1) AU2003269650B2 (en)
BR (1) BR0314480A (en)
CA (1) CA2500037C (en)
DE (1) DE60318078T2 (en)
HK (1) HK1080312A1 (en)
MX (1) MXPA05003144A (en)
WO (1) WO2004030384A2 (en)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315613B2 (en) * 2002-03-11 2008-01-01 International Business Machines Corporation Multi-modal messaging
US20050009537A1 (en) * 2003-07-11 2005-01-13 Crocker Ronald T. Method and apparatus for facilitating wireless presence-based services
US20050169223A1 (en) * 2004-01-16 2005-08-04 Crocker Ronald T. Method and apparatus for facilitating a PTT session initiation using an IP-based protocol
SE528357C2 (en) * 2004-03-12 2006-10-24 Ericsson Telefon Ab L M A method and arrangement for providing user information to a telecommunication client
US7764637B2 (en) * 2004-04-05 2010-07-27 Daniel J. LIN Peer-to-peer mobile instant messaging method and device
US7672255B2 (en) 2004-04-05 2010-03-02 Oomble, Inc. Mobile instant messaging conferencing method and system
US7546086B2 (en) 2004-05-07 2009-06-09 Telefonaktiebolaget L M Ericsson (Publ) Ad-hoc messaging between wireless devices
US7509093B2 (en) 2004-10-07 2009-03-24 Nokia Corporation Apparatus and method for indicating proximity co-presence for social application using short range radio communication
CN1767414B (en) * 2004-10-29 2010-05-05 腾讯科技(深圳)有限公司 Mobile communication system and method based on instant messaging
JP2006157166A (en) * 2004-11-25 2006-06-15 Toshiba Corp Communication apparatus and method
US7747685B2 (en) * 2005-01-20 2010-06-29 International Business Machines Corporation Method for automatic detection of display sharing and alert generation in instant messaging
CN100558083C (en) * 2005-07-14 2009-11-04 华为技术有限公司 A kind of IP Multimedia System instant message transfer approach and device
US20070036137A1 (en) * 2005-07-29 2007-02-15 Horner Richard M Indicating presence of a contact on a communication device
EP1760584A1 (en) * 2005-08-23 2007-03-07 Research In Motion Limited Method and system for transferring an application state from a first electronic device to a second electronic device
US9864628B2 (en) 2005-08-23 2018-01-09 Blackberry Limited Method and system for transferring an application state from a first electronic device to a second electronic device
JP4420955B2 (en) * 2005-09-29 2010-02-24 富士通株式会社 Presence communication system and method
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
CN100496027C (en) * 2005-11-01 2009-06-03 中国移动通信集团公司 Method for sharing data of instant message
US20070130288A1 (en) * 2005-12-02 2007-06-07 Inter-Tel, Inc. Distributed communication through media services
US8848880B2 (en) * 2005-12-29 2014-09-30 Bridgeport Networks, Inc. Inter-system communication
US20070162605A1 (en) * 2006-01-07 2007-07-12 Chalasani Nanchariah R Distributed instant messaging
CN100454908C (en) * 2006-04-21 2009-01-21 华为技术有限公司 Instant message service processing method and service system
CN101163113B (en) * 2006-10-12 2011-01-26 阿里巴巴集团控股有限公司 Disconnection reconnecting system and method of instant communication
JP4846518B2 (en) * 2006-10-20 2011-12-28 ソフトバンクモバイル株式会社 Activity information transmission / reception system and terminal
US8285312B2 (en) 2006-12-06 2012-10-09 Research In Motion Limited Method and apparatus for deriving presence information using message traffic analysis
US8095603B2 (en) * 2007-02-21 2012-01-10 Research In Motion Limited Efficient transmission of presence update information to presence service clients
US9451038B2 (en) * 2007-10-02 2016-09-20 International Business Machines Corporation Managing contact status updates in a presence management system
US8136125B2 (en) * 2007-10-02 2012-03-13 International Business Machines Corporation Prioritization for online contact status updates
TW201008234A (en) 2008-08-12 2010-02-16 Acer Inc Energy-saving method for handheld Internet accessing device, the handheld Internet accessing device, and the real-time message system
US8634817B2 (en) * 2008-10-28 2014-01-21 Qualcomm Incorporated Location information for control of mode/technology
WO2011099774A2 (en) * 2010-02-10 2011-08-18 Lg Electronics Inc. Method of exchanging sms data in a wireless communications system
US20110312296A1 (en) * 2010-06-18 2011-12-22 Sony Ericsson Mobile Communications Ab Prioritization of Emergency SMS Messages
GB2483280A (en) * 2010-09-02 2012-03-07 Skype Ltd Point-to-point communication with persistent connection to front-end server
JP5285186B2 (en) * 2010-12-28 2013-09-11 株式会社ビジョナリスト Screen data transmission / reception system and screen data transmission / reception program
EP2640097B1 (en) * 2012-03-12 2018-01-10 BlackBerry Limited System and Method for Updating Status Information
US9292829B2 (en) * 2012-03-12 2016-03-22 Blackberry Limited System and method for updating status information
US9992021B1 (en) 2013-03-14 2018-06-05 GoTenna, Inc. System and method for private and point-to-point communication between computing devices
US10455362B1 (en) * 2016-12-30 2019-10-22 Amazon Technologies, Inc. Contextual presence
US11757999B1 (en) 2020-06-02 2023-09-12 State Farm Mutual Automobile Insurance Company Thick client and common queuing framework for contact center environment
US11671388B1 (en) 2020-07-16 2023-06-06 State Farm Mutual Automobile Insurance Company Contact center messaging
US11928376B2 (en) 2020-07-31 2024-03-12 Hewlett-Packard Development Company, L.P. Recommended print job delivery paths
US12028485B2 (en) 2020-09-16 2024-07-02 State Farm Mutual Automobile Insurance Company Integrated representative profile data in contact center environment
US11706344B2 (en) 2020-12-08 2023-07-18 State Farm Mutual Automobile Insurance Company Monitoring representatives in a contact center environment

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859821B1 (en) * 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
JP2003532171A (en) * 1999-11-24 2003-10-28 ケナミア、インコーポレイテッド Method and system for continuous and interactive communication over an electronic network
EP1104965B1 (en) * 1999-12-02 2007-02-28 Sony Deutschland GmbH Protocol for instant messaging
US7359938B1 (en) 1999-12-14 2008-04-15 Nortel Networks Limited System indicating the presence of an individual or group of individuals
US20020035605A1 (en) 2000-01-26 2002-03-21 Mcdowell Mark Use of presence and location information concerning wireless subscribers for instant messaging and mobile commerce
DE60125637T2 (en) * 2000-05-17 2007-10-04 International Business Machines Corp. System and method to detect the residence or availability of a telephone user and to publish the telephone number on the Internet
US7283805B2 (en) * 2000-11-20 2007-10-16 Cingular Wireless Ii, Llc Methods and systems for providing application level presence information in wireless communication
US6681107B2 (en) * 2000-12-06 2004-01-20 Xybernaut Corporation System and method of accessing and recording messages at coordinate way points
US8315651B2 (en) * 2001-05-03 2012-11-20 Kyocera Corporation Instant messaging to a mobile device
US7190956B2 (en) * 2001-05-15 2007-03-13 Motorola Inc. Instant message proxy for circuit switched mobile environment
US20020174248A1 (en) * 2001-05-16 2002-11-21 Motorola, Inc. Method and system for communicating chat and game messages in a wireless network
US6983305B2 (en) * 2001-05-30 2006-01-03 Microsoft Corporation Systems and methods for interfacing with a user in instant messaging
US20030005350A1 (en) * 2001-06-29 2003-01-02 Maarten Koning Failover management system
US7221933B2 (en) * 2001-10-22 2007-05-22 Kyocera Wireless Corp. Messaging system for mobile communication
US6993327B2 (en) * 2001-10-29 2006-01-31 Motorola, Inc. Multicast distribution of presence information for an instant messaging system
US8150922B2 (en) * 2002-07-17 2012-04-03 Research In Motion Limited Voice and text group chat display management techniques for wireless mobile terminals
US20040122901A1 (en) * 2002-12-20 2004-06-24 Nortel Networks Limited Providing computer presence information to an integrated presence system
US7451190B2 (en) * 2003-11-26 2008-11-11 Yahoo! Inc. Associating multiple visibility profiles with a user of a real-time communication system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2004030384A2 *

Also Published As

Publication number Publication date
HK1080312A1 (en) 2006-04-21
CN100452776C (en) 2009-01-14
JP2006500660A (en) 2006-01-05
CA2500037A1 (en) 2004-04-08
US20120030298A1 (en) 2012-02-02
US8050695B2 (en) 2011-11-01
BR0314480A (en) 2005-08-09
US20040116137A1 (en) 2004-06-17
KR100715966B1 (en) 2007-05-09
US7835759B2 (en) 2010-11-16
AU2003269650A1 (en) 2004-04-19
DE60318078D1 (en) 2008-01-24
DE60318078T2 (en) 2008-12-11
WO2004030384A3 (en) 2004-08-12
CN1685677A (en) 2005-10-19
JP4062544B2 (en) 2008-03-19
US7379732B2 (en) 2008-05-27
US20080201430A1 (en) 2008-08-21
MXPA05003144A (en) 2005-06-22
EP1547331B1 (en) 2007-12-12
AU2003269650B2 (en) 2008-03-13
KR20050054960A (en) 2005-06-10
CA2500037C (en) 2009-09-01
US20100205270A1 (en) 2010-08-12
WO2004030384A2 (en) 2004-04-08
ATE381184T1 (en) 2007-12-15

Similar Documents

Publication Publication Date Title
EP1547331B1 (en) System and method of wireless instant messaging
US9020544B2 (en) Method and apparatus for deriving presence information using message traffic analysis
US8731528B2 (en) System and method of exchanging identification information for mobile stations
US8095603B2 (en) Efficient transmission of presence update information to presence service clients
EP1962473B1 (en) Efficient transmission of presence update information to presence service clients
EP1931109B1 (en) Method and apparatus for deriving presence information using message traffic analysis
US8655319B2 (en) Email SMS notification system providing selective server message retrieval features and related methods
US20060294190A1 (en) Email SMS notification system providing enhanced charge accounting features and related methods

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20050425

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1080312

Country of ref document: HK

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 60318078

Country of ref document: DE

Date of ref document: 20080124

Kind code of ref document: P

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: CH

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080312

LTIE Lt: invalidation of european patent or patent extension

Effective date: 20071212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080323

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1080312

Country of ref document: HK

ET Fr: translation filed
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080512

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

26N No opposition filed

Effective date: 20080915

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080313

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20080930

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080312

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20080924

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20080613

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20080924

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20071212

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20080930

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 60318078

Country of ref document: DE

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE

REG Reference to a national code

Ref country code: DE

Ref legal event code: R082

Ref document number: 60318078

Country of ref document: DE

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN, DE

Effective date: 20140925

Ref country code: DE

Ref legal event code: R081

Ref document number: 60318078

Country of ref document: DE

Owner name: BLACKBERRY LIMITED, WATERLOO, CA

Free format text: FORMER OWNER: RESEARCH IN MOTION LTD., WATERLOO, ONTARIO, CA

Effective date: 20140925

Ref country code: DE

Ref legal event code: R082

Ref document number: 60318078

Country of ref document: DE

Representative=s name: MERH-IP MATIAS ERNY REICHL HOFFMANN PATENTANWA, DE

Effective date: 20140925

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 14

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 15

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 16

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 60318078

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: H04L0012580000

Ipc: H04L0051000000

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20220927

Year of fee payment: 20

Ref country code: DE

Payment date: 20220928

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20220926

Year of fee payment: 20

REG Reference to a national code

Ref country code: DE

Ref legal event code: R071

Ref document number: 60318078

Country of ref document: DE

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Expiry date: 20230923

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20230923