Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20030217098 A1
Publication typeApplication
Application numberUS 10/145,673
Publication date20 Nov 2003
Filing date15 May 2002
Priority date15 May 2002
Also published asUS7653715, US20060190525
Publication number10145673, 145673, US 2003/0217098 A1, US 2003/217098 A1, US 20030217098 A1, US 20030217098A1, US 2003217098 A1, US 2003217098A1, US-A1-20030217098, US-A1-2003217098, US2003/0217098A1, US2003/217098A1, US20030217098 A1, US20030217098A1, US2003217098 A1, US2003217098A1
InventorsNikhil Bobde, Robert Brown, Jeremy Buch, Ajay Chitturi, Ann Demirtjis, Vishwajith Kumbalimutt, David Simons, Zachary Taylor
Original AssigneeMicrosoft Corporation
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Method and system for supporting the communication of presence information regarding one or more telephony devices
US 20030217098 A1
Abstract
A system for detecting and communicating the presence of one or more computing devices is presented. The invention also presents a method and system for aggregating presence information generated by multiple devices associated with a single user. A server acting as a presence agent on behalf of a first user receives and responds to a subscription request generated by a computing device operated by a second wishing to be permitted as a watcher of the first user. When the second user corresponds to access preferences of the first user, a notify message is sent to the second user's device that includes presence information indicative of an activity level and availability level associated with the first user. When the first user employs multiple computing devices, the server generates an aggregate presence document that is representative of the overall presence of the first user.
Images(4)
Previous page
Next page
Claims(40)
We claim:
1. A method for communicating presence information related to a first computing device to a second computing device over a network by a presence agent, the presence agent communicating the presence information in response to a request message submitted by the second computing device, the request message requesting access by the second computing device to the presence information, the method comprising:
receiving from the first computing device a message for initiating the transfer of presence information to the presence agent;
receiving from the first computing device a message for initiating the transfer of access preferences associated with the first computing device to the presence agent;
submitting an acceptance message to the second computing device indicating that the second computing device can access the presence information, the acceptance message being submitted regardless of whether the first computing device is present upon the network, and the acceptance message being submitted regardless of the access preferences specified by the first computing device; and
submitting a notification message to the second computing device, the notification message including data representative of an activity level and availability level associated with the first computing device, the notification message being submitted regardless of whether the first computing device is present upon the network.
2. The method of claim 1 further comprising:
storing information obtained from the request message submitted by the second computing device; and
submitting the stored information to the first computing device in response to a request message from the first computing device to obtain the stored information.
3. The method of claim 2 wherein the first computing device determines whether to grant the second computing device access to the presence information.
4. The method of claim 1 wherein the step of receiving includes processing one or more procedure calls contained in the message to initiate the transfer of presence information to the presence agent by the presence agent.
5. The method of claim 4 wherein the one or more procedure calls correspond to one or more presence documents having data representative of an activity level and availability level associated with the first computing device.
6. The method of claim 5 wherein the step of processing includes determining which one of the one or more presence documents indicates a highest presence priority setting, the presence priority setting being indicative of the at least one presence document that best reflects the presence of the first computing device.
7. The method of claim 1 wherein the step of receiving includes processing one or more procedure calls contained in the message to initiate the exchange of access preferences by the presence agent.
8. The method of claim 1 further comprising the step of aggregating one or more presence documents received from the first computing device into a single presence document, the single presence document having data representative of an activity level and availability level associated with at least one presence document that indicates a highest presence priority setting, the single presence document also including presence data associated with the one or more presence documents.
9. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 1.
10. A system for conveying presence information about a first user to a second user, the first user having a plurality of computing devices that are capable of generating presence information, the second user having a computing device in communication with a computer network, the system comprising:
one or more servers in communication with the computer network and executing programs comprising:
a presence agent; and
an aggregator component;
computer-readable media accessible by the one or more servers and having stored thereon information regarding the second user's desire to monitor the presence of the first user,
wherein the presence agent detects which of the plurality of computing devices indicates the highest degree of presence upon the network,
wherein the aggregator component generates an aggregate document representing the degree to which the plurality of computing devices is present upon the network, and
wherein the one or more servers transmit the aggregate presence document to the second user's computing device based on information stored in the computer readable media.
11. The system of claim 10 wherein the one or more servers execute a registration service for maintaining registration entries associated with the plurality of computing devices.
12. The system of claim 10 wherein the computer readable media has stored thereon an access control list that is accessible by the presence agent to maintain access preferences of the first user regarding the plurality of computing devices.
13. The system of claim 12 wherein the access control list maintains access preferences set by a network administrator, the access preferences of the network administrator having a higher priority than the access preferences of the first user.
14. The system of claim 10 wherein the presence agent processes one or more subscription messages received from the second user's computing device, the messages indicating the second user's desire to monitor the presence of the first user over the computer network.
15. The system of claim 10 wherein the presence agent processes one or more service messages, the service messages specifying one or more procedure calls for updating the presence information maintained by the presence agent regarding the plurality of computing devices.
16. The system of claim 10 wherein the presence agent processes one or more service messages comprising one or more procedure calls for updating the access control list.
17. The system of claim 10 wherein the presence agent transmits an acceptance message and a notify message to the second device in response to the one or more subscription requests submitted by the second device.
18. The system of claim 10 wherein the computer-readable media is accessed by the presence agent in response to a request submitted to the presence agent for the information regarding the second user's desire to monitor the presence of the first user, the request being submitted by at least one of the plurality of computing devices.
19. The system of claim 10 wherein the aggregator component submits the aggregate document to the presence agent in response to one or more service messages received by the presence agent from the plurality of computing devices.
20. A method for generating an aggregate presence document representing the overall presence of a user, the method comprising:
receiving a plurality of presence documents generated by a plurality of computing devices of the user, the presence documents including data representative of an activity level and availability level associated with each of the plurality of computing devices;
analyzing the plurality of presence documents to identify at least one presence document that has a high presence priority setting; and
generating the aggregate presence document based on the activity level and availability level associated with presence document having the high presence priority setting.
21. The method of claim 20 wherein the step of receiving includes processing one or more service messages associated with the plurality of presence documents.
22. The method of claim 21 wherein the service messages specify one or more procedure calls for updating the presence information regarding the plurality of computing devices.
23. The method of claim 20 wherein the step of receiving includes processing one or more messages for initiating or terminating the registration of one or more of the plurality of computing devices.
24. The method of claim 20 wherein the step of analyzing includes summing an availability level and an activity level specified by the at least one presence document, the resulting sum indicating the degree to which the user is present upon the network.
25. The method of claim 20 wherein the step of generating includes creating a plain-language description associated with the availability level and including the plain-language description in the aggregate document.
26. The method of claim 20 wherein the step of generating includes creating a plain-language description in associated with the availability level and including the plain-language description in the aggregate document.
27. The method of claim 20 wherein the user is a first user, the method comprising: transmitting the aggregate presence document to a computing device of a second user in response to changes in the presence information.
28. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 11.
29. A method for generating aggregate presence information regarding one or more computing devices, the aggregate presence information indicating the overall presence of the one or more computing devices on a computer network, the method comprising:
receiving a service message generated by at least one of the computing devices, the service message including one or more presence documents that contain presence information, the presence information including data representative of an activity level and availability level associated with each of the one or more computing devices;
analyzing the plurality of presence documents to identify at least one of the presence documents that has a highest presence priority; and
generating an aggregate presence document by including data representative of an activity level and availability level associated with the presence document identified as having the highest presence priority, the aggregate presence document also including other presence data obtained from the plurality of presence documents.
30. The method of claim 29 wherein the step of generating includes specifying a description attribute in association with the availability level, the description attribute providing a functional description of the availability level.
31. The method of claim 29 wherein the step of generating includes specifying a description attribute in association with the activity level, the description attribute providing a functional description of the activity level.
32. The method of claim 29 further including the step of submitting the aggregate presence document to one or more computing devices having access to the presence information associated with the plurality of computing devices in response to changes in the presence information.
33. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 29.
34. A system for communicating presence information related to a first computing device to a second computing device over a network by a presence agent, the presence agent communicating the presence information in response to a request message submitted by the second computing device, the request message requesting access by the second computing device to the presence information, the system comprising:
means for receiving from the first computing device a message having one or more procedure calls for initiating the transfer of presence information to the presence agent;
means for receiving from the first computing device a message having one or more procedure calls for initiating the transfer of access preferences associated with the first computing device to the presence agent;
means for submitting an acceptance message to the second computing device indicating that the second computing device can access the presence information, the acceptance message being submitted regardless of whether the first computing device is present upon the network, and the acceptance message being submitted regardless of the access preferences specified by the first computing device; and
means for submitting a notification message to the second computing device, the notification message including a presence document having data representative of an activity level and availability level associated with the first computing device, the notification message being submitted regardless of whether the first computing device is present upon the network.36. The system of claim 35 further comprising:
means for storing information obtained from the request message submitted by the second computing device regarding the second user's desire to monitor the presence of the first user; and
means for submitting the stored information to the first computing device in response to a request message from the first computing device to obtain the stored information.
35. The system of claim 34 further comprising means for aggregating one or more presence documents received from the first computing device into a single presence document, the single presence document having data representative of an activity level and availability level associated with at least one presence document that indicates a high presence priority, the single presence document also including presence data associated with the one or more presence documents.
36. A method for relaying presence information to a subscriber in the absence of a presentity, the presentity operating a presence user agent that generates information indicative of the ability of the presentity to receive calls and indicative of the operating state or tasks in which the presentity is engaged, the method comprising:
storing information obtained from a subscriber request message into an accessible memory location, the stored information including one or more values that uniquely identify the subscriber from amongst a plurality of other devices capable of communicating over the network;
submitting the subscriber information to the presentity when the presentity is no longer absent, wherein the presentity makes a determination whether to grant the subscriber access to the information generated by the presence user agent.
37. The method of claim 36 further comprising submitting the information generated by the presence user agent to the subscriber when a determination is made to grant the subscriber access to the information.
38. The method of claim 37 wherein the step of determining is made according to access preferences assigned by the presentity.
39. The method of claim 36 wherein the step of submitting includes transmitting a presence document to the subscriber having data indicative of the ability of the presentity to receive calls and indicative of the operating state or tasks in which the presentity is engaged.
40. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 36.
Description
    TECHNICAL FIELD
  • [0001]
    The invention relates generally to communication between computers over a network, and more particularly, to methods and systems for conveying the presence information of one or more devices over the network.
  • BACKGROUND OF THE INVENTION
  • [0002]
    With today's widespread use of the Internet as a primary communication medium, standard communication tools are now capable of communicating over a computer network. For instance, telephones, pagers, cell phones, handheld computers, and even fax machines now offer features to allow them to be accessed and controlled from over the Internet via an IP address designation or other network addressing scheme. This ability, whereby various communication devices that traditionally use a circuit-switched telephone network, is known as network telephony, or IP telephony when an IP network is involved.
  • [0003]
    As a result of network telephony, today's devices have the ability to communicate with one another over networks such as the Internet to share information, or receive data. Furthermore, a user having several communication devices (e.g., a cell phone, laptop and handheld PC) can configure each of these devices to a network using a single alias or identifier, such as a username (e.g., username@b.com). In this way, the user is not limited to communicating with others via a single device, but instead has the ability to communicate via several different devices. Nonetheless, the ability for a user to have several devices “present” on a computer network creates a need for other users to be able to determine the status or state of the users many devices.
  • [0004]
    Presence refers to the availability, proximity, activity level or operating state of a user on a network. Commonly, the ability for users to monitor each other's presence and generate presence information is a feature offered in connection with computer-executable modules or applications that support network telephony. Such modules or applications are known commonly as presence user agents (PUAs). Examples of typical software applications that operate as PUAs or support PUA-like features include instant messaging applications such as MSN Messenger or AOL Instant Messenger. Both of these applications provide an “available buddy” feature, in which a user of the application can determine whether select users are available for engaging in a communication. The generated by the PUA to create the buddy list, i.e. “John OFFLINE” or “Susan ACTIVE,” is known as presence information, and is generally retrieved and maintained by a presence agent.
  • [0005]
    According to most conventional network configurations, the presence agent is a dedicated server or computer-executable module that maintains presence information on behalf of a user having one or more computing devices. Typically, the presence agent supports network telephony protocols such as the session initiation protocol (SIP). Users can register their computing devices with the presence agent (e.g., via a registrar module) in order to have their presence maintained and network telephony services facilitated. As such, a user of a first computing device wishing to detect the presence of a user of a second computing device does so by “subscribing” with the presence agent, such as via a SIP SUBSCRIBE message. The presence agent intermediates between the first user, also known as the watcher, and the second user to facilitate the communication of the second user's presence information to the first user.
  • [0006]
    The ability of a presence agent to accurately determine and maintain presence information for one or more users significantly enhances communication and task completion over the network. Accurate generation of presence information by the PUA operating upon a user's device is also critical for effectively conveying presence. For example, a very mobile user may only be on the network at limited times throughout the day, and from varying network locations. By subscribing as a watcher of this mobile user, it becomes possible for another user to assume the role of a watcher and detect the presence of the mobile user during the limited times at which the mobile user's computing device is actually connected to the network. So, when the mobile user is present, the watcher can correspond instantly with the mobile user via a chat session or videoconferencing call, as opposed to resorting to non-real-time communication such as e-mail messaging. Hence, presence is an especially important factor for facilitating communication between users. Unfortunately, however, conventional PUAs are unable to provide presence information with respect to varying network or operating conditions, and particularly, information sufficient enough to indicate the ability of the device being watched to actually engage in a communication session as a result of a change.
  • [0007]
    As an example of this phenomenon, consider a scenario where a second user has subscribed with a presence agent as a watcher of a first user. If the first user is in the second users' available buddy list, and the first user's computing device suddenly goes into sleep mode, the second user's buddy list should still indicate that the first user's device is available for communication rather than indicate that the first user's device is “offline.” An indication of offline does not accurately reflect that the first user's device may still be connected to the network and may be available to receive messages. Yet, many PUAs only provide generalized presence information such as “offline” or “unavailable,” and do not account for more intricate presence conditions. Invariably, this phenomenon results in the present agent's inability to convey the presence of the user more accurately to the watcher.
  • [0008]
    Still further, many PUAs are unable to generate useful presence information for those users that have several devices registered and present upon the network. Current measures for conveying the presence of users having multiple devices simply call for the presence information of each individual device to be presented to the watcher as a compound document, such as an HTML file. As a result, the watcher that receives the compound document indicating the presence information for each device must inherently “guess” which device's presence information most accurately reflects the presence of the user. However, just because a user's mobile phone, pager, laptop, PDA, and desktop computer are all present on the network does not mean the user is using all of them. Indeed, the presence information of the individual devices says very little about the actual presence (e.g., activity or availability) of the user.
  • SUMMARY OF THE INVENTION
  • [0009]
    The invention presents a method for conveying the extent to which a user of a computing device is present upon the network given varying network and device operating conditions. The invention may be used on a variety of devices, including computing devices that communicate over a network via the SIP protocol, as well as those using other protocols. Also, the invention relates to a the use of a document for conveying the presence of a user of a plurality of computing devices.
  • [0010]
    In accordance with an embodiment of the invention, a computing device operable by a user over a computer network (e.g., PDA, cell phone, laptop, and pager) generates presence information indicative of the user's degree of presence upon the network. More specifically, the device operates a PUA, or the like, that generates a presence document that specifies an activity level and availability level pertaining to the user. The activity level is an attribute of the presence document that indicates what action the user or corresponding device may be engaged in (e.g., idle, away), thus providing an indication of the likelihood of calls or messages actually being accepted from over the network. In relation to the activity level is the availability level, which is an attribute of the presence document that indicates whether the user's computing device may actually receive calls based on various network or device operating conditions (e.g., offline, online). The activity level and availability level are assigned as a range of values (e.g., numerical, alphabetical), with the higher value representing a higher degree of activity or availability, and the lower value representing a lower degree of activity or availability.
  • [0011]
    In accordance with a further embodiment of the invention, the presence document may also specify a description attribute, which is an attribute associated with the activity or availability level that provides a functional or plain-language description of the assigned level. Also, in addition to the activity and availability level, other attributes may be included within the presence document for conveying user presence, including custom properties that are defined by the user or user's device. By including the user's level of availability and activity within the presence document, a watcher or presence agent that receives the document is able to determine more accurately the extent to which the user is present upon the network.
  • [0012]
    In accordance with yet another embodiment of the invention, a network device acting on behalf of a user of a plurality of computing devices generates a single presence document that conveys the overall presence of the user. The network device can be a server operating as a presence agent, or any other device capable of processing presence information. The user's computing devices generate presence documents to indicate their respective level of activity and availability upon the network, as described above. The network device then processes the presence documents, and generates a single presence document that includes the presence information for each of the plurality of devices, but only the activity level and availability level of the computing device that indicates the highest degree of presence. As such, a watcher is able to determine the user's presence with respect to all of the user's devices.
  • [0013]
    Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying figures.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0014]
    While the appended claims set forth the features of the present invention with particularity, the invention, together with its objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:
  • [0015]
    [0015]FIG. 1 is an example of a computer network;
  • [0016]
    [0016]FIG. 2 is an example of a computer; and
  • [0017]
    [0017]FIG. 3 is a diagram illustrating a server facilitating a call between a first computing device and a second computing device over the network in accordance with various embodiments of the invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • [0018]
    The invention presents a method for conveying the extent to which a user of a computing device is present upon the network given varying network and device operating conditions. Also, the invention relates to a method for indicating the presence of a user of a plurality of computing devices using a single presence document. In the context of the invention, presence information describes any data that specifies the availability, proximity, activity level or operating state of a computing device or corresponding user of the device from over the network. For example, presence information can be analyzed by a user of a first computing device (a watcher) to determine if a user of a second computing device (a registered device user) is online or offline, busy or idle. This determination is dependent on various factors, including the current activity of the second user, the present operating state of the second user's computing device, etc. In an effort to stay consistent with common terminology used in the computing industry, this detailed description will use the term “presence” synonymously with the term “presence information” at various times. Moreover, the terms “presence” or “presence information” should be interpreted as relating to the user or one or more devices employed by the user. Those skilled in the art will easily recognize that these terms presence and presents relate to the same phenomenon with respect to network telephony.
  • [0019]
    Also, the invention will be described throughout the course of the description with respect to SIP as a messaging protocol for supporting communication between devices in accordance with the teachings of the invention. Once again, those of skill in the art will recognize that SIP is only one protocol suitable for supporting network telephony and presence, and that other protocols may just as easily be utilized. Other such protocols include the H.323 standard and the Single Computer Telephony Protocol (SCTP). The invention is not limited to any one protocol or messaging implementation, as any means or medium by which two or more devices may communicate to support network telephony applications is suitable. Furthermore, the invention is not limited to any particular network telephony configuration, as any means for exchanging messages between one or more computers via SIP or the like is suitable for use in connection with the invention. This includes network configurations where computing devices such as proxies, redirect servers, registration terminals, presence servers and agents, and one or more clients (presentities) are involved in the communication.
  • [0020]
    As used herein, the term “network telephony” relates to any process wherein a network, such as the Internet, is used as a transmission medium for placing telephone calls or facilitating multimedia sessions between two or more computing devices. This can include multimedia sessions where streaming media (e.g., audio and video data) is exchanged over the network, conference calls, virtual meetings, and other telephony sessions. The term “network telephony” is generic, and can therefore describe or pertain to several other communication processes involving the exchange of packetized data. These include, but are not limited to, IP telephony, Voice over the Internet (VOI) and Voice over IP (VOIP). Also, as used herein, the term “call” (e.g., telephone call) relates to a session in which an exchange of information is commenced or initiated between two or more computing devices over a network, such as with the aide of a telephony application (e.g., MICROSOFT NetMeeting ™). In the context of the present invention, a “call” is synonymous to a “message” being sent between devices, and will be used interchangeably at times to describe the interaction between two or more devices over the network.
  • [0021]
    An example of a networked environment in which the invention may be used will now be described with reference to FIG. 1. The example network includes several computers 20 communicating with one another over a network 30, such as the Internet, as represented by a cloud. Network 30 may include many well-known components, such as routers, gateways, hubs, etc. and may allow the computers 20 to communicate via wired and/or wireless media.
  • [0022]
    Referring to FIG. 2, an example of a basic configuration for a computer on which the system described herein may be implemented is shown. In its most basic configuration, the computer 20 typically includes at least one processing unit 42 and memory 44. Depending on the exact configuration and type of the computer 20, the memory 44 may be volatile (such as RAM), non-volatile (such as ROM or flash memory) or some combination of the two. This most basic configuration is illustrated in FIG. 2 by dashed line 46. Additionally, the computer may also have other features/functionality. For example, computer 20 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to stored the desired information and which can be accessed by the computer 20. Any such computer storage media may be part of computer 20.
  • [0023]
    Computer 20 may also contain communications connections that allow the device to communicate with other devices. A communication connection is an example of a communication medium. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
  • [0024]
    Computer 20 may also have input devices such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output devices such as a display 48, speakers, a printer, etc. may also be included. All these devices are well known in the art and need not be discussed at length here.
  • [0025]
    Referring now to FIG. 3, a general environment for facilitating the communication of presence between one or more computers is illustrated. A server 102 operates as a presence agent, and facilitates the maintenance and transfer of presence information pertaining to the first user 103 with other devices over the network, referred to as watchers. In this example, the server 102 facilitates the transfer of presence information pertaining to a first user 103 with a second user 107. The server 102 is a computing device that processes messages conforming to a protocol for supporting network telephony (e.g., SIP, H.323). A second device 106, which in this case is a watcher, executes a presence user agent (PUA) that allows it to receive and interpret the presence information of the user 103 of the first device 104. The first user 103 operates a first device 104 that executes a PUA for generating presence information. When the second user 107 is allowed to receive the presence information pertaining to the first user 103, the server 102 transfers the presence document to the second device 106.
  • [0026]
    The various methods of orchestrating a communication session between the first and second devices, and for transferring presence information by the server 102, are not discussed in herein. Also, the various access and control procedures commonly employed by a presence agent 102 for ensuring proper access to presence information will not be discussed. Indeed, it is well known in the art that various schemes exist for controlling and adapting the interaction between the first 103 and second user 107 to ensure proper access to and communication of presence information (e.g., usage of an access control list).
  • [0027]
    In accordance with an embodiment of the invention, the first device 104 generates a presence document 200 to convey the extent of its presence upon a network. The presence document 200 is comprised of one or more attributes that relate to the presence of the first computing device 104 or corresponding user 103 of the first computing device 104. Such attributes include an availability level 208 and activity level 209. Also, in association with the availability level 208 and activity level 209 is the description attribute 210. The description attribute provides a functional, or plain-language description of the assigned activity or availability level, and is specified at the discretion of the first computing device 200. For each presence document generated by a computing device related to the first user 103, one activity level and availability level is specified. By specifying these attributes within the presence document 200, the server 102, acting as a presence agent on behalf of the first user 103 receives presence information that indicates the presence of the first user 103 and corresponding first device 104. Similarly, the second user 107, acting as a watcher of the first user 103, is better able to understand the extent of presence of the first user 103.
  • [0028]
    The availability level 208 (FIG. 3) is an attribute that indicates whether the first computing device 104 or first user 103 may actually receive calls. The first computing device 104 specifies various availability levels, including those shown in TABLE 1 below. Yet, only one availability level need be specified for a single device at a time.
    TABLE 1
    Availability level settings
    Associated
    Availability Description of
    Level Availability Level Explanation
    000 Offline The user cannot receive calls.
    100 Undetermined The user may be online, but there is no
    way to know until a call is attempted.
    200 Connected The user has a device currently
    connected that can receive calls.
    300 Online The user is in proximity to a device that
    can receive calls.
  • [0029]
    The availability levels are spread into classes, where each class is a multiple of 100. This is analogous to the response code numbering system used in communication protocols such as the hypertext transfer protocol (HTTP) and SIP. Those skilled in the art will recognize, however, that different values or classes may be used to specify the availability level of the first computing device 104, and that the invention is not limited to any specific implementation. For example, the first computing device 104 may want to indicate a greater level of availability than “online,” but may not want to show an availability of “always,” and create a new availability value 250: “likely to take call.” If the second computing device 211 is not familiar with this particular attribute, and receives such presence information, it can abstract it to a class in which is it familiar (e.g., it can generalized to 200: “connected”).
  • [0030]
    The activity level 209, provides an indication of the action in which the first computing device 104 or corresponding first user 103 is engaged. The activity level 209 indicates to the second computing device 106 or other devices that are in the role of watchers the likelihood of calls or messages being accepted by the first computing device 104 or first user 103. Various activity levels may be specified within the presence document 200, as shown in Table 2 below.
    TABLE 2
    Activity level settings
    Associated
    Activity Description of
    Level Activity Level Explanation
    000 No explicit There is no information about the
    activity activity of the user.
    100 Away The user is away from the device
    150 At lunch The user is away at lunch
    200 Idle No specific activity is currently being
    engaged
    300 Temporarily The user is not available at the present
    unavailable time
    400 Active The user is active
    500 In call The user is already participating in a
    communications session.
    600 Busy The user is busy
    700 Do not disturb The user does not want to participate in
    a communication session
    800 Always User will stop whatever they're doing to
    interruptible receive a call.
  • [0031]
    Again, those skilled in the art will recognize that the invention is not limited to the set of values or activity classes shown in TABLE 2. Also, it will be recognized by those skilled in the art that specifying the activity level 209 of the 208 first computing device 104 or user 103 in connection with the availability level ensures for more accurate presence. This is in contrast with many existing systems for conveying presence information, in which less useful presence attributes are provided. For example, if a presence document only indicates that the user is “busy,” this is not sufficient information for the watcher to determine if calls can actually be placed with the first computing device 104. Just because the first user 103 is busy does not mean that calls are not to be received from the second computing device 106. Various embodiments of the invention account for such intricate distinctions in presence by indicating both the activity level 208 (e.g., busy or active) and availability level 209 (e.g., connected) of a computing device and/or its corresponding user.
  • [0032]
    To further describe the various inventive concepts disclosed herein, examples of the kind information contained in a presence document will now be presented. Possible formats of the various attributes and data included within a presence document to more accurately confer the extent of a user's presence will also be discussed. Appropriate references will be made to Table 3, which shows an example of a presence document structured according to an embodiment of the invention. For the sake of discussion, those skilled in the art will recognize that the example presence document illustrated in Table 3 is not to be taken as representative of the format for every user situation. Indeed, the formatting and attributes included within the presence document of Table 3 may vary from user to user. Also, it will be recognized by those skilled in the art that numerous standards exist for formatting a presence document, such as XML or SGML, and that the invention is not limited to any one implementation.
    TABLE 3
    <presently uri = “SIP:nate@snake.net”>
    <availability aggregate = “200” description=“online”/>
    <activity aggregate = “800” description = “do not disturb” override=“true”/>
    <contact contact=“2314@192.1.1.5:5060; q=0.3” />
    <modes modes=“TEXT” AUDIO VIDEO WHITEBOARD APPSHARE
    FILETRANSFER” />
    <displayName displayName=“Nate the evil genius.”/>
    <note note=“I am busy plotting. Don't bother me unless there's a good reason” />
    <phoneNumber label=“Phone in secret lair” number=“+1-787-312-8321” />
    <preferred Device
    deviceType=“E164”
    label=“Phone in secret lair”
    number=“+1-787-312-8321”
    affinity=“0” />
    <!-- some custom properties -->
    <archEnemy
    aggregate-“append”
    name=“Doctor Nobody”
    comment = “This guy is pretty tricky! Be careful if you meet him!” />
    <archEnemy
    aggregate-“append”
    name=“K9 the robot dog”
    comment = “IMHO best to wait for his batteries to run flat.”>
    <!-- custom props can pretty much do what
    they like as long as they don't break the
    <instructions>
    Here are the schematics <schematics encoding=“CAD”>
    ASOIDCIOPUASKDCOILUOIUOIPUASDKLCUASDLKFJALSKCKM
    ASOIDCIOPUASKDCOILUOIUOIPUASDKLCUASDLKFJALSKCKM
    SCHEMATICS> for this pesky robot.
    </instructions>
    </archEnemy>
    </presentity>
  • [0033]
    The various elements, attributes, and properties that comprise the presence document of Table 3 are as follows:
  • [0034]
    Presentity: <presentity uri=“SIP:nate@snake.net”>
  • [0035]
    The containing element for the presence document of Table 3 is <presentity>, which identifies the user with a uniform resource indicator (UIM). All sub-elements in <presentity> are regarded to be individual properties.
  • [0036]
    Availability: <availability aggregate=“200” description=“online” />
  • [0037]
    The <availability> property indicates whether the user can receive a call. Possible values include “offline,” “undetermined” (e.g. cell phone carriers obscure availability default), and “online.”
  • [0038]
    Rather than using a hard-coded enumeration, a numeric value is used in this example. This makes it easy to compare the activity sent by two different PUAs. For example: given 200 “online,” and 100 “undetermined,” a watcher can conclude that the overall state is 200, since the number is higher. The “description” attribute provides a label for the availability state. In the example of Table 3, the pre-defined values are split into classes defined by multiples of 100. Hence, an implementer can add an additional state and software that doesn't recognize that particular state still knows how to aggregate states, and still knows a state that is approximately the same as the proprietary state. For example, a value of 250 could mean “likely to take call.” This is in the 2xx class; hence a variant of “online,” but it is more informative. Hence if one PUA sets 200, and another sets 250, the aggregate is 250—“likely to take a call.”
  • [0039]
    Activity:
  • [0040]
    <activity aggregate=“800” description=“do not disturb” override=“true”/>
  • [0041]
    The <activity> property indicates the activity of a computing device. It uses a numerical value in a manner similar to the availability property.
  • [0042]
    An attribute called “override” is shown as being used in conjunction with the <activity> property, but it may also be used in conjunction with other properties. The override attribute is used to indicate that a particular property is exempt from the aggregation rules. A possible scenario is that a user may actively set a property at a particular PUA, and may want this property to be used in their aggregate presence regardless of what other values were sent by other PUAs.
  • [0043]
    Contact: <contact contact=“2314@192.1.1.5:5060; q=0.3” />
  • [0044]
    The <contact> property indicates how the user can be contacted. There can be any number of <contact> entries in a presence document.
  • [0045]
    Communications Modes:
  • [0046]
    <modes modes=“TEXT AUDIO VIDEO WHITEBOARD APPSHARE FILETRANSFER” />
  • [0047]
    The modes supported by the devices the PUA represents are listed in a <modes> property. If a mode isn't listed, it isn't supported. For example, assume there is a new collaborative technology called Super Foo. When a user runs Super Foo, the user's computing device advertises its capabilities as <modes modes=“SUPERFOO AUDIO VIDEO”/>. If a watcher of the user just wants to talk to the user using audio, it may. But if the watcher's computing device also has Super Foo capability, it can use the new collaboration technology.
  • [0048]
    If the presence document represents devices that support different sets of modes (e.g. an instant messaging client and a phone), it can include multiple <modes> elements. If a watcher wants to know whether the user supports a specific combination of modes, the watcher looks for a <modes> element that contains the specific combination. If a watcher doesn't care that these modes are on different devices, the watcher just looks to see if the modes are listed in any of the <modes> elements.
  • [0049]
    Display Name: <displayName displayName=“Nate the evil genius.” />
  • [0050]
    The <displayName> property is the watched user's screen name.
  • [0051]
    Note:
  • [0052]
    <note note=“I am busy plotting. Don't bother me unless there's a good reason” />
  • [0053]
    The <note> property includes whatever additional notes the watched user wishes to add.
  • [0054]
    Phone Number:
  • [0055]
    <phoneNumber label=“Phone in secret lair” number=“+1-787-312-8321” />
  • [0056]
    The <phone number> property represents the watched user's phone number or numbers. Possible labels include “Cell” or “Office.”
  • [0057]
    Preferred Device:
    <preferredDevice
    deviceType=“E164”
    label=“Phone in secret lair”
    number=“+1-787-312-8321”
    affinity=“0” />
  • [0058]
    The <preferredDevice> property indicates the device on which the watched user prefers to communicate. If the deviceType is “DNS,” the requests are to be routed through the SIP proxy network using DNS URI addressing. If the deviceType is “E164,” for example, a phone number is also included. Affinity may also be used to establish relative preference when multiple preferred devices are listed. A label is included so the user can describe his/her preferences, if desired.
  • [0059]
    Custom Properties:
    <archEnemy
    aggregate=“append”
    name=“Doctor Nobody”
    comment=“This guy is pretty tricky! Be careful if you meet
    him!” />
  • [0060]
    Custom properties are properties that applications can define for themselves.
  • [0061]
    Up to this point, the invention has been described with respect to the interaction between one or more users that act as watchers, a computing device, and a corresponding user being watched. However, in many instances the user being watched may have more than one device (registered) with the network device at a time. In such cases, presence information is generated by each of the devices, resulting in several presence documents being generated and exchanged with the server that handles presence administration.
  • [0062]
    According to various embodiments of the invention, presences documents generated by multiple devices of a user are aggregated into a single document. There are a variety of ways in which this can be done, but one implementation involves the following:
  • [0063]
    (a) The document having the highest activity level is identified;
  • [0064]
    (b) overrides are applied;
  • [0065]
    (c) the activity and availability properties for the document having the highest activity level are copied into the new aggregate presence document, except as otherwise dictated by overrides;
  • [0066]
    (d) all other properties (other than activity and availability) are copied into the new aggregate presence document.
  • [0067]
    (e) The “contacts” properties are removed.
  • [0068]
    The following example illustrates this implementation. In this example, it is assumed that a fictional character, Nate, is an evil mastermind with his own SIP address (SIP:nate@snake.net). Nate has the following devices:
  • [0069]
    An IP desk phone;
  • [0070]
    A PC running the RTC client UI; and
  • [0071]
    A fancy wristwatch that does audio as well as text.
  • [0072]
    Nate communicates with a number of other evil geniuses. As well as using his presence service for basic presence information, this circle of collaborators like to know who each other's enemies are. So Nate maintains another property in his presentity that indicates who his arch enemy is. This enables the villains to gang up and/or backstab each other with greater efficiency.
  • [0073]
    Nate's desk phone doesn't have a PUA. However it is registered to the network. The presence agent server (PAS) notes that the phone is registered, but doesn't have a presence document posted. It assumes the default document shown in Table 4:
    TABLE 4
    <presentity uri=“SIP:nate@snake.net”>
    <availability aggregate=“300” description=“online” />
    <activity aggregate=“000” description=“no explicit
    activity” />
    <contact contact=“1324123@192.1.1.3:5060; user=phone;
    q=0.3” />
    <modes modes=“AUDIO” />
    </presentity>
  • [0074]
    Nate is logged on at his desk PC where he set “do not disturb,” but he hasn't used it for hours because he isn't there. He also uses his PC to maintain his ever expanding list of arch enemies. His PC generates the presence document shown in Table 5.
    TABLE 5
    <presentity uri=“SIP:nate@snake.net”>
    <availability aggregate=“200” description=“connected” />
    <activity aggregate=“800” description=“do not disturb”
    override=“true”/>
    <contact contact=“e2314@192.1.1.5:5060; q=0.3” />
    <modes modes=“TEXT AUDIO VIDEO WHITEBOARD
    APPSHARE FILETRANSFER” />
    <displayName displayName=“Nate the evil genius. Bwa ha
    ha ha!” />
    <note note=“I am busy plotting. Don't bother me.” />
    <phoneNumber label=“Phone in secret lair” number=“+1-
    787-312-8321” />
    <preferredDeviceType
    deviceType=“E164”
    label=“Phone in secret lair”
    number=“+1-787-312-8321”
    affinity=“0” />
    <!-- some custom properties -->
    <archEnemy
    aggregate=“append”
    name=“Doctor Nobody”
    comment=“This guy is pretty tricky! Be careful if
    you meet him!” />
    <archEnemy
    aggregate=“append”
    name=“K9 the robot dog”
    <instructions>
    Here are the schematics <schematics
    encoding=“UTF-8”>
    ASOIDCIOPUASKDACOILUOIUOIPUAS
    </schematics> for this pesky robot.
    </instructions>
    </archEnemy>
    </presentity>
  • [0075]
    He's used his wristwatch to override the “do not disturb” with “active,” and the wristwatch generates the presence document shown in Table 6.
    TABLE 6
    <presentity uri=“SIP:nate@snake.net”>
    <availability aggregate=“200” description=“connected” />
    <activity
    aggregate=“400”
    description=“active”
    scope=“user:Mon, 01 Jan 2002 16:10:44 GMT”/>
    <contact contact=“1234123@192.1.1.231:443; q=0.9” />
    <!-- This device supports a mode not native to the V.1 or
    V.1.1 client -->
    <modes modes=“TEXT AUDIO TELEPATHY” />
    <displayName displayName=“Nate” />
    <note note=“Now is a good time to call me” />
    <phoneNumber label=“Phone in secret lair” number=“+1-
    787-312-8321” />
    <phoneNumber label=“Fancy watch phone” number=“+1-
    787-312-3121” />
    <preferredDeviceType
    deviceType=“IP”
    affinity=“900” />
    </presentity>
  • [0076]
    The document with the highest activity level is the document shown in Table 5, which represents the document generated by Nate's PC. Therefore, an availability level of 200 and an activity level of 800 would ordinarily be copied into the aggregate document. However, Nate has chosen to override the “Do not disturb” level (800) with the “connected” level (200). Thus, watchers see the following aggregate document.
    TABLE 7
    <presentity uri=“SIP:nate@snake.net”>
    <availability aggregate=“200” description=“connected” />
    <activity aggregate=“400” description=“active”/>
    <modes modes=“AUDIO” />
    <modes modes=“TEXT AUDIO VIDEO WHITEBOARD
    APPSHARE FILETRANSFER” />
    <modes modes=“TEXT AUDIO TELEPATHY” />
    <displayName displayName=“Nate Jones” />
    <note note=“I am busy plotting. Don't bother me.” />
    <note note=“Now is a good time to call me” />
    <!-- phone numbers have been concatenated -->
    <phoneNumber label=“Phone in secret lair” number=“+1-
    787-312-8321” />
    <phoneNumber label=“Fancy watch phone” number=“+1-
    787-312-3121” />
    <preferredDeviceType
    deviceType=“IP”
    affinity=“900” />
    <preferredDeviceType
    deviceType=“E164”
    label=“Phone in secret lair”
    number=“+1-787-312-8321”
    affinity=“0” />
    <archEnemy
    aggregate=“append”
    name=“Doctor Nobody”
    comment=“This guy is pretty tricky! Be careful if
    you meet him!” />
    <archEnemy
    aggregate=“append”
    name=“K9 the robot dog”
    <instructions>
    Here are the schematics <schematics
    encoding=“UTF-8”>
    ASOIDCIOPUASKDACOILUOIUOIPUAS
    <schematics> for this pesky robot.
    </instructions>
    </archEnemy>
    </presentity>
  • [0077]
    In view of the many possible embodiments to which the principles of this invention may be applied, it should be recognized that the embodiment described herein with respect to the drawing figures is meant to be illustrative only and should not be taken as limiting the scope of invention. For example, those of skill in the art will recognize that the elements of the illustrated embodiment shown in software may be implemented in hardware and vice versa or that the illustrated embodiment can be modified in arrangement and detail without departing from the spirit of the invention. Therefore, the invention as described herein contemplates all such embodiments as may come within the scope of the following claims and equivalents thereof.
  • [0078]
    Software applications suitable for generating presence documents include, but are not limited to, e-mail utilities, instant messaging programs, network monitoring programs, video/audio conferencing programs and other such applications. The invention is not limited to any particular PUA implementation, as any mechanism usable by a computing device for generating presence information pertaining to a user is within the scope of the invention.
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US6269099 *1 Jul 199831 Jul 20013Com CorporationProtocol and method for peer network device discovery
US6807423 *14 Dec 199919 Oct 2004Nortel Networks LimitedCommunication and presence spanning multiple access networks
US6839735 *4 Dec 20004 Jan 2005Microsoft CorporationMethods and systems for controlling access to presence information according to a variety of different access permission types
US6853634 *14 Dec 19998 Feb 2005Nortel Networks LimitedAnonymity in a presence management system
US20020143928 *26 Jan 20013 Oct 2002Maltz David A.Method and system for collection and storage of traffic data in a computer network
US20040172481 *10 May 20022 Sep 2004Engstrom G. EricMethod and system for collecting and displaying aggregate presence information for mobile media players
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US751288023 Dec 200531 Mar 2009Swift Creek Systems, LlcMethod and system for presenting published information in a browser
US756755310 Jun 200528 Jul 2009Swift Creek Systems, LlcMethod, system, and data structure for providing a general request/response messaging protocol using a presence protocol
US759398430 Jul 200422 Sep 2009Swift Creek Systems, LlcSystem and method for harmonizing changes in user activities, device capabilities and presence information
US7653191 *26 Jun 200326 Jan 2010Microsoft CorporationVoice call routing by dynamic personal profile
US765371530 Jan 200626 Jan 2010Microsoft CorporationMethod and system for supporting the communication of presence information regarding one or more telephony devices
US785356331 Aug 200514 Dec 2010Seven Networks, Inc.Universal data aggregation
US7899168 *31 Aug 20051 Mar 2011Microsoft CorporationControlling or monitoring PBX phone from multiple PC endpoints
US791746816 Sep 200529 Mar 2011Seven Networks, Inc.Linking of personal information management data
US791750528 Oct 200729 Mar 2011Seven Networks, Inc.Methods for publishing content
US794561228 Mar 200617 May 2011Microsoft CorporationAggregating user presence across multiple endpoints
US795673912 Jun 20097 Jun 2011At&T Intellectual Property I, L.P.Monitoring and entry system presence service
US801008219 Oct 200530 Aug 2011Seven Networks, Inc.Flexible billing architecture
US806458321 Sep 200622 Nov 2011Seven Networks, Inc.Multiple data store authentication
US806916627 Feb 200629 Nov 2011Seven Networks, Inc.Managing user-to-user contact with inferred presence information
US807815826 Jun 200813 Dec 2011Seven Networks, Inc.Provisioning applications for a mobile device
US80908215 Jun 20083 Jan 2012At&T Intellectual Property I, L.P.Real-time notification of presence changes
US809459410 Sep 201010 Jan 2012Research In Motion LimitedMethod for creating a peer-to-peer immediate messaging solution without using an instant messenging server
US810792111 Jan 200831 Jan 2012Seven Networks, Inc.Mobile virtual network operator
US811621430 Nov 200514 Feb 2012Seven Networks, Inc.Provisioning of e-mail settings for a mobile terminal
US812734223 Sep 201028 Feb 2012Seven Networks, Inc.Secure end-to-end transport through intermediary nodes
US816616414 Oct 201124 Apr 2012Seven Networks, Inc.Application and network-based long poll request detection and cacheability assessment therefor
US8176086 *30 Nov 20048 May 2012Avaya Inc.Methods and apparatus for determining a presence of a user
US81907011 Nov 201129 May 2012Seven Networks, Inc.Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US82049531 Nov 201119 Jun 2012Seven Networks, Inc.Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US82097095 Jul 201026 Jun 2012Seven Networks, Inc.Cross-platform event engine
US82857798 Feb 20109 Oct 2012International Business Machines CorporationProgrammable presence virtualization
US82910765 Mar 201216 Oct 2012Seven Networks, Inc.Application and network-based long poll request detection and cacheability assessment therefor
US8300630 *14 Mar 200830 Oct 2012International Business Machines CorporationUPD-based soft phone state monitoring for CTI applications
US831152512 Dec 201113 Nov 2012Ektimisi Semiotics Holdings, LlcMethod, system, and computer program product for creating smart services
US831609819 Apr 201220 Nov 2012Seven Networks Inc.Social caching for device resource sharing and management
US831611721 Sep 200620 Nov 2012At&T Intellectual Property I, L.P.Personal presentity presence subsystem
US83269851 Nov 20114 Dec 2012Seven Networks, Inc.Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US834560119 May 20101 Jan 2013Research In Motion LimitedMethod for creating a peer-to-peer immediate messaging solution without using an instant messaging server
US835608020 Jul 201215 Jan 2013Seven Networks, Inc.System and method for a mobile device to use physical storage of another device for caching
US836418110 Dec 200729 Jan 2013Seven Networks, Inc.Electronic-mail filtering for mobile devices
US83707565 May 20085 Feb 2013At&T Intellectual Property I, L.P.Redirection of a message to an alternate address
US841267524 Feb 20062 Apr 2013Seven Networks, Inc.Context aware data presentation
US8417786 *23 Sep 20089 Apr 2013Research In Motion LimitedMethods and systems for aggregating presence information to provide a simplified unified presence
US841782318 Nov 20119 Apr 2013Seven Network, Inc.Aligning data transfer to optimize connections established for transmission over a wireless network
US843863318 Dec 20067 May 2013Seven Networks, Inc.Flexible real-time inbox access
US844780819 Sep 200821 May 2013International Business Machines CorporationVirtual presence server
US846812614 Dec 200518 Jun 2013Seven Networks, Inc.Publishing data in an information community
US8472929 *21 Apr 200625 Jun 2013Telecom Italia S.P.A.Method and system for providing presence information
US848431414 Oct 20119 Jul 2013Seven Networks, Inc.Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US84945106 Dec 201123 Jul 2013Seven Networks, Inc.Provisioning applications for a mobile device
US85333067 Sep 201210 Sep 2013At&T Intellectual Property I, L.P.Personal presentity presence subsystem
US853904028 Feb 201217 Sep 2013Seven Networks, Inc.Mobile network background traffic data management with optimized polling intervals
US854958714 Feb 20121 Oct 2013Seven Networks, Inc.Secure end-to-end transport through intermediary nodes
US856108617 May 201215 Oct 2013Seven Networks, Inc.System and method for executing commands that are non-native to the native environment of a mobile device
US860690929 Nov 201110 Dec 2013At&T Intellectual Property I, L.P.Real-time notification of presence availability
US861187015 Oct 201217 Dec 2013Ektimisi Semiotics Holdings, LlcMethod, system, and computer program product for delivering smart services
US862107527 Apr 201231 Dec 2013Seven Metworks, Inc.Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US863533922 Aug 201221 Jan 2014Seven Networks, Inc.Cache state management on a mobile device to preserve user experience
US863975519 Jan 200628 Jan 2014International Business Machines CorporationSystem and method of managing real-time communications using context-based awareness states
US86772704 May 200718 Mar 2014Microsoft CorporationLive companion user interface
US868815218 Dec 20121 Apr 2014Blackberry LimitedMethod for creating a peer-to-peer immediate messaging solution without using an instant messaging server
US869349431 Mar 20088 Apr 2014Seven Networks, Inc.Polling
US87006907 Apr 201115 Apr 2014Microsoft CorporationAggregating user presence across multiple endpoints
US870072817 May 201215 Apr 2014Seven Networks, Inc.Cache defeat detection and caching of content addressed by identifiers intended to defeat cache
US870718831 Mar 200822 Apr 2014At&T Intellectual Property I, L.P.Caller initiated distinctive presence alerting and auto-response messaging
US87380507 Jan 201327 May 2014Seven Networks, Inc.Electronic-mail filtering for mobile devices
US875012331 Jul 201310 Jun 2014Seven Networks, Inc.Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network
US8750914 *16 Sep 200410 Jun 2014Blackberry LimitedHandheld electronic device and associated method providing availability data in a messaging environment
US876175613 Sep 201224 Jun 2014Seven Networks International OyMaintaining an IP connection in a mobile network
US87748448 Apr 20118 Jul 2014Seven Networks, Inc.Integrated messaging
US8775509 *30 Jul 20128 Jul 2014Digi International Inc.Enhanced HTTP messaging for devices
US877563125 Feb 20138 Jul 2014Seven Networks, Inc.Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US87822225 Sep 201215 Jul 2014Seven NetworksTiming of keep-alive messages used in a system for mobile network resource conservation and optimization
US878794718 Jun 200822 Jul 2014Seven Networks, Inc.Application discovery on mobile devices
US879330513 Dec 200729 Jul 2014Seven Networks, Inc.Content delivery to a mobile device from a content service
US879941013 Apr 20115 Aug 2014Seven Networks, Inc.System and method of a relay server for managing communications and notification between a mobile device and a web access server
US88053345 Sep 200812 Aug 2014Seven Networks, Inc.Maintaining mobile terminal information for secure communications
US880542528 Jan 200912 Aug 2014Seven Networks, Inc.Integrated messaging
US88119525 May 201119 Aug 2014Seven Networks, Inc.Mobile device power management in data synchronization over a mobile network with or without a trigger notification
US88126953 Apr 201319 Aug 2014Seven Networks, Inc.Method and system for management of a virtual network connection without heartbeat messages
US883156128 Apr 20119 Sep 2014Seven Networks, IncSystem and method for tracking billing events in a mobile wireless network for a network operator
US883222826 Apr 20129 Sep 2014Seven Networks, Inc.System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
US883874428 Jan 200916 Sep 2014Seven Networks, Inc.Web-based access to data objects
US88387835 Jul 201116 Sep 2014Seven Networks, Inc.Distributed caching for resource and mobile network traffic management
US883941213 Sep 201216 Sep 2014Seven Networks, Inc.Flexible real-time inbox access
US88431531 Nov 201123 Sep 2014Seven Networks, Inc.Mobile traffic categorization and policy for network use optimization while preserving user experience
US884990224 Jun 201130 Sep 2014Seven Networks, Inc.System for providing policy based content service in a mobile network
US884991225 May 201230 Sep 2014Sony CorporationInformation processing device, server, and information processing system
US886135414 Dec 201214 Oct 2014Seven Networks, Inc.Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US886265725 Jan 200814 Oct 2014Seven Networks, Inc.Policy based content service
US88687536 Dec 201221 Oct 2014Seven Networks, Inc.System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation
US887341112 Jan 201228 Oct 2014Seven Networks, Inc.Provisioning of e-mail settings for a mobile terminal
US887476115 Mar 201328 Oct 2014Seven Networks, Inc.Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US888617622 Jul 201111 Nov 2014Seven Networks, Inc.Mobile application traffic optimization
US890395422 Nov 20112 Dec 2014Seven Networks, Inc.Optimization of resource polling intervals to satisfy mobile device requests
US890404428 Sep 20072 Dec 2014International Business Machines CorporationAdapting compression techniques over data based on context
US890919211 Aug 20119 Dec 2014Seven Networks, Inc.Mobile virtual network operator
US89092027 Jan 20139 Dec 2014Seven Networks, Inc.Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US890975912 Oct 20099 Dec 2014Seven Networks, Inc.Bandwidth measurement
US891400211 Aug 201116 Dec 2014Seven Networks, Inc.System and method for providing a network service in a distributed fashion to a mobile device
US891850328 Aug 201223 Dec 2014Seven Networks, Inc.Optimization of mobile traffic directed to private networks and operator configurability thereof
US8954507 *22 Jun 200710 Feb 2015Microsoft CorporationGathering and using awareness information
US896606612 Oct 201224 Feb 2015Seven Networks, Inc.Application and network-based long poll request detection and cacheability assessment therefor
US89777556 Dec 201210 Mar 2015Seven Networks, Inc.Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation
US898458111 Jul 201217 Mar 2015Seven Networks, Inc.Monitoring mobile application activities for malicious traffic on a mobile device
US89897287 Sep 200624 Mar 2015Seven Networks, Inc.Connection architecture for a mobile network
US90028282 Jan 20097 Apr 2015Seven Networks, Inc.Predictive content delivery
US90092507 Dec 201214 Apr 2015Seven Networks, Inc.Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
US902102110 Dec 201228 Apr 2015Seven Networks, Inc.Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
US904343325 May 201126 May 2015Seven Networks, Inc.Mobile network traffic coordination across multiple applications
US904373130 Mar 201126 May 2015Seven Networks, Inc.3D mobile user interface with configurable workspace management
US904714216 Dec 20102 Jun 2015Seven Networks, Inc.Intelligent rendering of information in a limited display environment
US904917920 Jan 20122 Jun 2015Seven Networks, Inc.Mobile network traffic coordination across multiple applications
US90551022 Aug 20109 Jun 2015Seven Networks, Inc.Location-based operations and messaging
US90600329 May 201216 Jun 2015Seven Networks, Inc.Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US90657658 Oct 201323 Jun 2015Seven Networks, Inc.Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US90776308 Jul 20117 Jul 2015Seven Networks, Inc.Distributed implementation of dynamic wireless traffic policy
US908410519 Apr 201214 Jul 2015Seven Networks, Inc.Device resources sharing for network resource conservation
US909450830 Nov 200428 Jul 2015Avaya Inc.Methods and apparatus for determining a proxy presence of a user
US909816921 Dec 20074 Aug 2015Blackberry LimitedHandheld electronic device and associated method providing availability data in a messaging environment
US910087314 Sep 20124 Aug 2015Seven Networks, Inc.Mobile network background traffic data management
US91313976 Jun 20138 Sep 2015Seven Networks, Inc.Managing cache to prevent overloading of a wireless network due to user activity
US916125815 Mar 201313 Oct 2015Seven Networks, LlcOptimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US91731286 Mar 201327 Oct 2015Seven Networks, LlcRadio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US92038644 Feb 20131 Dec 2015Seven Networks, LlcDynamic categorization of applications for network access in a mobile network
US92081237 Dec 20128 Dec 2015Seven Networks, LlcMobile device having content caching mechanisms integrated with a network operator for traffic alleviation in a wireless network and methods therefor
US923980011 Jul 201219 Jan 2016Seven Networks, LlcAutomatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network
US9241038 *23 May 200619 Jan 2016Microsoft Technology Licensing, LlcUser presence aggregation at a server
US924131415 Mar 201319 Jan 2016Seven Networks, LlcMobile device with application or context aware fast dormancy
US925119328 Oct 20072 Feb 2016Seven Networks, LlcExtending user relationships
US92583764 Aug 20099 Feb 2016At&T Intellectual Property I, L.P.Aggregated presence over user federated devices
US927123815 Mar 201323 Feb 2016Seven Networks, LlcApplication or context aware fast dormancy
US92746748 Feb 20141 Mar 2016Microsoft Technology Licensing, LlcLive companion user interface
US927516317 Oct 20111 Mar 2016Seven Networks, LlcRequest and response characteristics based adaptation of distributed caching in a mobile network
US92774437 Dec 20121 Mar 2016Seven Networks, LlcRadio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US930071914 Jan 201329 Mar 2016Seven Networks, Inc.System and method for a mobile device to use physical storage of another device for caching
US930749315 Mar 20135 Apr 2016Seven Networks, LlcSystems and methods for application management of mobile device radio state promotion and demotion
US93256629 Jan 201226 Apr 2016Seven Networks, LlcSystem and method for reduction of mobile network traffic used for domain name system (DNS) queries
US93261894 Feb 201326 Apr 2016Seven Networks, LlcUser as an end point for profiling and optimizing the delivery of content and data in a wireless network
US933019011 Dec 20063 May 2016Swift Creek Systems, LlcMethod and system for providing data handling information for use by a publish/subscribe client
US933019614 Jun 20123 May 2016Seven Networks, LlcWireless traffic management system cache optimization using http headers
US93547776 Mar 201431 May 2016Blackberry LimitedMethod for creating a peer-to-peer immediate messaging solution without using an instant messaging server
US93632985 Mar 20137 Jun 2016Blackberry LimitedMethods and systems for aggregating presence information to provide a simplified unified presence
US940771316 Jan 20122 Aug 2016Seven Networks, LlcMobile application traffic optimization
US943386926 Aug 20146 Sep 2016Sony CorporationInformation processing device, server, and information processing system
US971298622 Mar 201218 Jul 2017Seven Networks, LlcMobile device configured for communicating with another mobile device associated with an associated user
US20040071150 *3 Jul 200315 Apr 2004Anu HonkalaUpdating presence information
US20040215723 *22 Apr 200328 Oct 2004Siemens InformationMethods and apparatus for facilitating online presence based actions
US20050124363 *16 Sep 20049 Jun 2005Klassen Gerhard D.Handheld electronic device and associated method providing availability data in a messaging environment
US20050138129 *23 Dec 200323 Jun 2005Maria AdamczykMethods and systems of responsive messaging
US20050226162 *30 Mar 200413 Oct 2005Shrum Edgar V JrMethods, systems, and products for maintaining communications service reachability
US20060030264 *30 Jul 20049 Feb 2006Morris Robert PSystem and method for harmonizing changes in user activities, device capabilities and presence information
US20060036712 *28 Jul 200416 Feb 2006Morris Robert PSystem and method for providing and utilizing presence information
US20060117050 *30 Nov 20041 Jun 2006Ajita JohnMethods and apparatus for determining a presence of a user
US20060155733 *30 Nov 200413 Jul 2006Ajita JohnMethods and apparatus for determining a proxy presence of a user
US20060168073 *19 Jan 200627 Jul 2006International Business Machines CorporationSystem and method of managing real-time communications using context-based awareness states
US20060190525 *30 Jan 200624 Aug 2006Microsoft CorporationMethod and system for supporting the communication of presence information regarding one or more telephony devices
US20060248185 *29 Apr 20052 Nov 2006Morris Robert PSystem and method for utilizing a presence service to advertise activity availability
US20070027917 *16 Sep 20051 Feb 2007Ido ArielLinking of personal information management data
US20070042791 *16 Aug 200522 Feb 2007Sbc Knowledge Ventures, L.P.Presence and availability management over a public communication network
US20070064672 *31 Aug 200522 Mar 2007Microsoft CorporationControlling or monitoring PBX phone from multiple PC endpoints
US20070143415 *15 Dec 200521 Jun 2007Daigle Brian KCustomizable presence icons for instant messaging
US20070198696 *6 Oct 200423 Aug 2007Morris Robert PSystem and method for utilizing contact information, presence information and device activity
US20070198725 *6 Oct 200423 Aug 2007Morris Robert PSystem and method for utilizing contact information, presence information and device activity
US20070233875 *28 Mar 20064 Oct 2007Microsoft CorporationAggregating user presence across multiple endpoints
US20070239869 *28 Mar 200611 Oct 2007Microsoft CorporationUser interface for user presence aggregated across multiple endpoints
US20070268469 *17 May 200622 Nov 2007Taiwan Semiconductor Manufacturing Company, Ltd.Apparatus and Method for Particle Monitoring in Immersion Lithography
US20070276909 *5 Oct 200629 Nov 2007Microsoft CorporationPublication of customized presence information
US20070276937 *23 May 200629 Nov 2007Microsoft CorporationUser presence aggregation at a server
US20080065755 *18 Aug 200613 Mar 2008Siemens Communications, Inc.Apparatus and method for automated presence status inquiries
US20080077685 *21 Sep 200627 Mar 2008Bellsouth Intellectual Property CorporationDynamically configurable presence service
US20080077696 *21 Sep 200627 Mar 2008Bellsouth Intellectual Property CorporationPersonal presentity presence subsystem
US20080096595 *21 Dec 200724 Apr 2008Research In Motion LimitedHandheld Electronic Device and Associated Method Providing Availability Data in a Messaging Environment
US20080147793 *31 Oct 200619 Jun 2008Singh Munindar PMethod And System For Coordinating A Synchronous Activity
US20080184136 *31 Mar 200831 Jul 2008At&T Delaware Intellectual Property Inc.Caller Initiated Distinctive Presence Alerting and Auto-Response Messaging
US20080209347 *5 May 200828 Aug 2008At&T Delaware Intellectual Property, Inc., Formerly Known As Bellsouth Intellectual PropertyRedirection of a Message to an Alternate Address
US20080244026 *5 Jun 20082 Oct 2008At&T Delaware Intellectual Property, Inc., Formerly Known As Bellsouth Intellectual PropertyReal-Time Notification of Presence Changes
US20080276195 *4 May 20076 Nov 2008Microsoft CorporationLive companion window
US20080320025 *22 Jun 200725 Dec 2008Microsoft CorporationGathering and using awareness information
US20090037588 *31 Jul 20075 Feb 2009Morris Robert PMethod And System For Providing Status Information Of At Least Two Related Principals
US20090112870 *31 Oct 200730 Apr 2009Microsoft CorporationManagement of distributed storage
US20090138609 *27 Nov 200728 May 2009General Instrument CorporationMethod and Apparatus for Maintaining User Sessions Across User Devices and Portals
US20090232127 *14 Mar 200817 Sep 2009Peeyush JaiswalUPD-Based Soft Phone State Monitoring for CTI Applications
US20090267754 *12 Jun 200929 Oct 2009At&T Intellectual Property I, L.P.Monitoring and Entry System Presence Service
US20090275314 *21 Apr 20065 Nov 2009Telecom Italia S.P.A.Method and System for Providing Presence Information
US20100075673 *23 Sep 200825 Mar 2010Michael ColbertMethods and Systems for Aggregating Presence Information to Provide a Simplified Unified Presence
US20100077018 *19 Sep 200825 Mar 2010Arup AcharyaVirtual Presence Server
US20110009134 *10 Sep 201013 Jan 2011Research In Motion Limitedmethod for creating a peer-to-peer immediate messaging solution without using an instant messenging server
US20110022580 *21 Jul 200927 Jan 2011Telefonaktiebolaget Lm Ericsson (Publ)Exchange of service capabilities in communication networks
US20110035443 *4 Aug 200910 Feb 2011At&T Intellectual Property I, L.P.Aggregated Presence Over User Federated Devices
US20110061005 *15 Nov 201010 Mar 2011Huawei Technologies Co., Ltd.Method, device, and system for implementing electronic whiteboard in audio/video conference
US20110185006 *7 Apr 201128 Jul 2011Microsoft CorporationAggregating user presence across multiple endpoints
US20110196913 *8 Feb 201011 Aug 2011International Business Machines CorporationProgrammable Presence Virtualization
US20140032643 *30 Jul 201230 Jan 2014Adam D. DirstineEnhanced http messaging for devices
US20160156727 *11 Dec 20152 Jun 2016Microsoft Technology Licensing, LlcUser presence aggregation at a server
USRE4534816 Mar 201220 Jan 2015Seven Networks, Inc.Method and apparatus for intercepting events in a communication system
CN102890746A *1 Jun 201223 Jan 2013索尼计算机娱乐公司Information processing device, server and information processing system
EP2166733A123 Sep 200824 Mar 2010Ascendent Telecommunications, Inc.Methods and systems for aggregating presence information to provide a simplified unified presence
EP2530904A1 *24 May 20125 Dec 2012Sony Computer Entertainment Inc.Information processing device and information procesing system
EP3042483A4 *6 Sep 201312 Apr 2017Nokia Technologies OyMethod, apparatus and system for enhancing user's engagement with service
WO2007015726A1 *15 Jun 20068 Feb 2007Seven Networks, Inc.Context based action through data aggregation
WO2011010276A1 *19 Jul 201027 Jan 2011Telefonaktiebolaget Lm Ericsson (Publ)Exchange of service capabilities in communication networks
WO2015032065A16 Sep 201312 Mar 2015Nokia CorporationMethod, apparatus and system for enhancing user's engagement with service
Classifications
U.S. Classification709/202, 709/207, 709/224
International ClassificationH04L29/08, H04L12/58, H04L29/06, H04M3/42
Cooperative ClassificationH04L67/2852, H04L69/329, H04L67/303, H04L67/306, H04L67/2819, H04L67/24, H04L29/06, H04M3/42229, H04M3/42365, H04M2242/30, H04M7/006, H04M3/42093, H04L51/04
European ClassificationH04L51/04, H04L29/06, H04L29/08N23, H04M3/42M, H04L12/58B, H04L29/08N29U, H04L29/08N29T, H04L29/08N27S4, H04L29/08N27E
Legal Events
DateCodeEventDescription
15 May 2002ASAssignment
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BOBDE, NIKHIL P.;BROWN, ROBERT;BUCH, JEREMY;AND OTHERS;REEL/FRAME:012907/0059
Effective date: 20020515
5 Aug 2002ASAssignment
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: RE-RECORD TO CORRECT THE NAME OF SIXTH ASSIGNOR, PREVIOUSLY RECORDED ON REEL 012907 FRAME 0059, ASSIGNOR CONFIRMS THE ASSIGNMENT OF THE ENTIRE INTEREST.;ASSIGNORS:BOBDE, NIKHIL P.;BROWN, ROBERT;BUCH, JEREMY;AND OTHERS;REEL/FRAME:013262/0354
Effective date: 20020515
15 Jan 2015ASAssignment
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001
Effective date: 20141014