|Publication number||US7698307 B2|
|Application number||US 10/837,099|
|Publication date||Apr 13, 2010|
|Filing date||May 1, 2004|
|Priority date||May 1, 2004|
|Also published as||US20050246396|
|Publication number||10837099, 837099, US 7698307 B2, US 7698307B2, US-B2-7698307, US7698307 B2, US7698307B2|
|Inventors||Peyman Oreizy, Kevin R. Moore, Sean O. Blagsvedt, Melissa W. Dunn|
|Original Assignee||Microsoft Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (97), Non-Patent Citations (5), Referenced by (3), Classifications (7), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present invention is related to patent applications entitled: “System and Method for a User Interface Directed to Discovering and Publishing Presence Information on a Nerwork”, U.S. application Ser. No. 10/837,349; “System and Method for Discovering and Publishing of Presence Information on a Network”. U.S. application Ser. No. 10/836,566; and “System and Method for Identity Confirmation of a Contact Published on a Network”. U.S. application Ser. No. 10/837,131, filed concurrently with this application. The related applications are assigned to the assignee of the present patent application and are hereby incorporated by reference.
The concept of presence has increasingly come to the foreground of networking applications and real-time communications. Presence often refers to the ability to detect whether a user is online and available. One example of an application that takes advantage of presence information is an Instant Messenger (IM) program. An IM program provides a method for a user to send instant messages to other IM users on the Internet or on a network. IM is a type of communications service that enables a user to create a kind of private chat room with another individual in order to communicate in real time over the Internet. IM is analogous to a telephone conversation, but uses text-based, not voice-based, communication. Typically, the instant messaging system alerts a user whenever somebody on the user's private list is online. The user may then initiate a chat session with that particular individual.
However, presence for IM and other similar applications has been limited to presence information that is directly associated with a contact already established by the user. Presence of other users outside of the user's listed contacts has be unobtainable. Other applications have allowed for discovery of what devices are on a network, but not of the users. Furthermore, each IM application has its own list of contacts associated with its application. Accordingly, the contacts list for which presence information is provided is different from other contacts lists that the user may be accessing through other applications.
The present invention is generally directed towards providing a system and method for synchronizing a files system with presence of contacts on a network. The presence information is provided on the network when data associated with various users is broadcast across the network using a people near me (PNM) service. The data may include each user's display name and their sharing address. Each user is uniquely identified on the network to those receiving the data as a person nearby on the network. A local user's computing device discovers these published nearby users and synchronizes their associated data with a file system located on the local user's computing device. The data may be stored in a contacts folder that is associated with the PNM service or in the local user's general contacts folder. With the presence information synchronized with the file system, the local user may view the people nearby as contact entries that are enhanced by the presence information. As users become nearby users, enter, and leave the network, the contacts folder used is updated by adding, removing, or updating the entries corresponding to nearby users.
Including the sharing address of each user in the synchronized data provides other applications with the ability to connect people using the contacts within the file system. Furthermore, other applications may enhance their output to the local user by including the presence information now stored in a file system accessible to these applications.
In accordance with one aspect of the present invention, a computer-implemented method is provided for synchronizing between a file system and presence of nearby contacts on a network. The network is monitored for the presence of nearby contacts. A notification is provided to the file system when nearby contacts are present on the network. As changes occur to the presence of nearby contacts, entries in the file system corresponding to the nearby contacts are updated.
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific exemplary embodiments for practicing the invention. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, the present invention may be embodied as methods or devices. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
Illustrative Operating Environment
With reference to
Computing device 100 may have additional features or functionality. For example, computing device 100 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Computing device 100 also contains communication connections 116 that allow the device to communicate with other computing devices 118, such as over a network. Communication connection 116 is one example of communication media. Communication media may typically be embodied by 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. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. 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.
In this embodiment, mobile device 200 has a processor 260, a memory 262, a display 228, and a keypad 232. Memory 262 generally includes both volatile memory (e.g., RAM) and non-volatile memory (e.g., ROM, Flash Memory, or the like). Mobile device 200 includes an operating system 264, which is resident in memory 262 and executes on processor 260. Keypad 232 may be a push button numeric dialing pad (such as on a typical telephone), a multi-key keyboard (such as a conventional keyboard), or may not be included in the mobile device in deference to a touch screen or stylus. Display 228 may be a liquid crystal display, or any other type of display commonly used in mobile computing devices. Display 228 may be touch-sensitive, and would then also act as an input device.
One or more application programs 266 are loaded into memory 262 and run on operating system 264. Examples of application programs include phone dialer programs, e-mail programs, scheduling programs, PIM (personal information management) programs, word processing programs, spreadsheet programs, Internet browser programs, and so forth. In one embodiment, application programs 266 include a people near me (PNM) application 280. Mobile device 200 also includes non-volatile storage 268 within the memory 262. Non-volatile storage 268 may be used to store persistent information which should not be lost if mobile device 200 is powered down. The applications 266 may use and store information in storage 268, such as e-mail or other messages used by an e-mail application, contact information used by a PIM, appointment information used by a scheduling program, documents used by a word processing application, and the like. A synchronization application also resides on the mobile device and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the storage 268 synchronized with corresponding information stored at the host computer.
Mobile device 200 has a power supply 270, which may be implemented as one or more batteries. Power supply 270 might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
Mobile device 200 is also shown with two types of external notification mechanisms: an LED 240 and an audio interface 274. These devices may be directly coupled to power supply 270 so that when activated, they remain on for a duration dictated by the notification mechanism even though processor 260 and other components might shut down to conserve battery power. LED 240 may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. Audio interface 274 is used to provide audible signals to and receive audible signals from the user. For example, audio interface 274 may be coupled to a speaker for providing audible output and to a microphone for receiving audible input, such as to facilitate a telephone conversation.
Mobile device 200 also includes a radio 272 that performs the function of transmitting and receiving radio frequency communications. Radio 272 facilitates wireless connectivity between the mobile device 200 and the outside world, via a communications carrier or service provider. Transmissions to and from the radio 272 are conducted under control of the operating system 264. In other words, communications received by the radio 272 may be disseminated to application programs 266 via the operating system 264, and vice versa.
The radio 272 allows the mobile device 200 to communicate with other computing devices, such as over a network. The radio 272 is one example of communication media. Communication media may typically be embodied by 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. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. 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.
Illustrative Presence Discovery and Publication System
The present invention generally provides a system for synchronizing presence of nearby contacts on a network with a file system, such that discovered presence information may be shared across multiple applications. As used herein, the term “nearby” means people connected within either network or physical proximity to the user. For example, people who's devices are connected within the same local area network may be considered “nearby” to one another. Also, people who's devices are connected to the same network may be considered “nearby”. Additionally, the users present on a link-local network may be considered “nearby”. Alternatively, designation of physical location may also be included in the presence information such that people in the same room are those that are considered “nearby”. The use of “nearby” in the present application is not limited to a single level of proximity, or require immediate closeness between the user and those people designated as “nearby”. “Nearby” may be designated for any relationship between users based upon either physical or network location of the person or their associated device (e.g., computing device, mobile device, etc.).
The exemplary PNM sidebar tile 330 includes an indicator of presence published by the user 332, notification of presence of other users 334, and selection to view more detailed presence information 336. In this example, indicator 332 provides the alias selected by the user that is published to other users on the network. Notification 334 provides a dynamically updated number of the users that are currently considered nearby to the user (e.g., 23 users are nearby). Selection 336 provides a link to more detailed information regarding the presence of other users on the network. For example, when a user selects selection 336, window 340 is opened to provide the user with the detailed information.
Window 340 provides the user with more detailed information of users nearby on the network. In one embodiment, the information within window 340 includes presence information along with contact information provided by a contacts application associated with the computing device. For example, detailed information in window 340 may include a differentiation of those contacts that are offline and those that are online. Other details of the users and contacts present on the network may also be provided through window 340. In one embodiment, window 340 is a “flyout” or window that is a component of the sidebar tile. In another embodiment, window 340 is produced by a contacts application and the PNM information is provided to the contacts application for inclusion within the contacts UI.
PNM sidebar tile 410 is a user interface that provides peripheral and unobtrusive notification to a user of those people considered nearby to the user. PNM sidebar tile 410 is described in greater detail with relation to the discussions of
SSDP layer 430 provides the protocol for discovering and publishing the presence information on the network. SSDP layer 430 is considered a subset protocol of a UPnP (universal plug and play) protocol for connectivity of devices on a network. UPnP is built on existing protocols and technologies. For example, UPnP uses TCP/IP, UDP/IP, and HTTP protocols as a base. In addition to these base protocols, several other protocols build on top of these to implement the various steps or phases of UPnP networking, such as SSDP. The form of the PNM messages transmitted and received according to SSDP layer 430 are described in greater detail with relation to
File system 440 provides an extensible storage location for the information regarding the presence of people nearby to the user. In one embodiment, file system 440 is the WinFS file system created by Microsoft Corporation of Redmond, Wash. File system 440 is arranged to allow the PNM (people near me) information to be presented through more than one UI (user interface) and link the PNM information to other databases for their use. For example, file system 440 may include a contacts folder, where the user's contacts are stored. The PNM information may be used to indicate to the user which of the contacts listed is considered nearby to the user. Other relationships between the PNM information and other data may also be formed to provide distribution and use of the PNM information across multiple applications.
Networking layer 450 includes the drivers and access to the network for communication of the PNM information. The network may be the Internet or a private network. The user's presence is published via networking layer 450 while presence information of other is received through networking layer 450. The structure of networking layer 450 may be any structure that allows discovery and publication of presence information in accordance with the present invention.
PNM component 422 in rover 420 provides for coordination and communication between PNM sidebar tile 410, SSDP layer 430, and file system 440. PNM component 422 receives events through SSDP layer 430 indicating updates to the presence information on the network. PNM component 422 also receives changes selected by the user regarding publication of the user's presence and changes to the display of the presence information by PNM sidebar tile 410. PNM component 422 provides changes to the presence data within file system 440 in response to the changes from the PNM side bar tile 410 and SSDP layer 430.
PNM sidebar tile 502 is similar to PNM sidebar tile 410 shown in
PNM publishing function 504 publishes the data about the local user on the network. SSDP layer 510 publishes the data as an alive packet that indicates that the local user is online, and the data includes information such as the user's display name. The alive packet indicates that the local user is present on the network and available. Additional information published in the alive packet includes a sharing address that resolves to the local user's machine address. In an additional embodiment, the alive packet may include identity verification data, such as a public key and/or private key, that allows a user to verify the identity of the user that is present on the network. A process for identity verification of people nearby is discussed in greater detail below with relation to the discussion of
A “bye-bye” message is also published by SSDP layer 510 in response to the local user selecting to disable the PNM service. The bye-bye message refers to a notification provided to the network that the local user's presence on the network is discontinuing.
Additionally, other information related to the SSDP protocol is also published, such as a maximum lifetime property. The maximum lifetime property is included in the cache control header of the SSDP message and refers to the number of seconds that the PNM service of the local user is valid. In one instance, the maximum lifetime property is provided in case the PNM service ends suddenly, without a bye-bye message being published. The expiration of the maximum lifetime property notifies other users that a particular user's presence on the network has timed out, and the user is no longer present. A long as the local user maintains the PNM service as enabled, alive packets are continually published on the network that renew the maximum lifetime property such that indications of the local user's presence on the network is maintained.
Also published in the cache control header of the SSDP alive packet and bye-bye message is a service ID. The service ID uniquely identifies each of the users that are present on the network.
In an alternative embodiment, PNM publishing function 504 publishes only a portion of the data that is to be provided to nearby user's on the network in message or packet form. The remaining data is instead provided to a nearby user using a dedicated port established by the local user in response to a request by nearby user. Using these methods of communication in combination to provide data to nearby users reduces the size of the packets and increases their throughput speed on the network to update presence notifications more quickly.
Various events may also require that an alive packet be republished. For example, the user may select to change their display name. The alive packet is republished with the changed display name but the same service ID. Accordingly, users on the network know that the change is not a new PNM presence on the network, but the same presence with a new display name.
PNM discovery function 506 queries for the presence information related to other users nearby on the network for display to the local user. SSDP layer 510 receives the alive and bye-bye messages from the network and maintains a database of the users currently nearby. In response to events on the network (e.g., receipt of alive packet), SSDP layer 510 forwards the message corresponding to the event to PNM discovery function 506. In one embodiment, SSDP layer 510 also tracks the maximum lifetime property of each alive packet received and sends a notification to PNM discovery function 506 when the property expires. PNM discovery 506 forwards changes due to the events on the network to PNM persist function 508.
PNM persist function 508 provides instructions for changes to the data stored in file system 516 and PNM folder 518. In one embodiment, PNM folder 518 includes a list of the users that are nearby to the local user. PNM folder 518 may be linked with other folders in file system 516. Exemplary folder relationships between PNM folder 518 and other folders in file system 516 are described in
The discussion throughout the specification and claims refers to “publishing presence information” and “publishing contacts”. These phrases and their variances refer to providing retrievable information on the network about a user on the network. The published information may include the alive packet referred to above, the bye-bye message, identity information, general contacts information (e.g., phone numbers, address, etc.), and any other information related to an entity or device connected to the network.
When the SSDP layer forwards an alive message to the PNM component of the rover (see
In one embodiment, person object 612 is associated with PNM folder 610 as a contact entry. A local user may therefore open PNM folder 610 to view all the contact entries corresponding to other users nearby. Furthermore, a process may then count the number of entries within PNM folder 610 to provide a display of the number of people nearby to the local user.
In another embodiment, a relationship may be generated between the contact entries in personal contacts folder 620 and the contact entries in PNM folder 610. The relationship is generated when the alive message received has an associated identity verification. For example, public key encryption may have been used in conjunction with the alive message to verify the identity of the source of the alive message. The use of public key encryption with the PNM system is described in greater detail with respect to
In yet another embodiment, a relationship is created between the person object 612 and personal contacts folder 620. With the relationship, the PNM contact entries are reflected within personal contacts folder 620, but remain identified as PNM contacts according to a PNM GUID (PNM global unique identifier). In one instance, the PNM GUID is identified according to a PNM designator that identifies all PNM entries combined with the service ID (see discussion of
Storing the PNM contacts as part of the local user's general (i.e., personal) contacts list also allows other applications to take advantage of the presence information for people nearby. For example, a general contacts user interface may be used to generally view the local user's list of contacts. By populating personal contacts folder 620 with the PNM contacts, the PNM contacts are reflected in the general contacts user interface. Other applications (e.g., contact picker dialogue) that access personal contacts folder 620 are also able to take advantage of the presence information and display people that are nearby on the network.
Scenario 710 illustrates exemplary UI for when the PNM (people near me) service has yet to be enabled by the user. Reduced PNM sidebar tile 712 provides a selection to enable the service. Expanded PNM sidebar tile 714 provides further options regarding the display name the local user wants published and other options for configuring the PNM service.
Scenario 720 illustrates exemplary UI for when the PNM (people near me) service has been enabled by the user. Reduced PNM sidebar tile 722 provides an indication of the number of people nearby and also provides a selection to view more detailed information regarding the people nearby. Expanded PNM sidebar tile 724 provides further options regarding the display name the local user wants published and other options for configuring the PNM service and viewing more detailed presence information.
Scenario 730 illustrates exemplary UI for when the network is unavailable. Reduced PNM sidebar tile 732 provides a selection to view details of the network unavailability. Expanded PNM sidebar tile 734 provides the options for configuring the PNM service while also providing an option to troubleshoot the network failure.
Initially, the monitoring application of a mobile device is at a state 801, indicating that neither the PNM service nor the PNM sidebar tile are enabled and the bar tile is not visible. When the PNM sidebar tile is enabled, state machine 800 moves to a state 802.
At state 802, the PNM sidebar tile is in a standby mode awaiting further input from the local user. The input of the local user may be to disable the PNM sidebar tile. If the local user disables the PNM sidebar tile, state machine 800 moves back to state 801. In one embodiment, when the PNM sidebar tile is enabled for the first time (i.e., state 802 is reached from state 801), state machine 800 moves to state 803.
At state 803, a flyout or other external window is provided to the local user automatically, so that the local user may select initial options related to the PNM service (e.g., a display name). If the user chooses to cancel without selecting further options, state machine 800 reverts to state 802. However, if the user chooses to select options for the PNM service, state machine 800 advances to state 804.
In an alternative embodiment, state 803 is not included and the options are not provided. The local user may then select to enable the PNM service and the state moves directly from state 802 to state 804.
State 804 is included among the states (804, 805, 806, 807) that are within state region 820. State region 820 represents when the PNM service is being enabled or has been enabled. At state 804, the PNM service is being enabled. If the enabling process is successful, state machine 800 moves to state 805 where the PNM service is enabled and the people nearby are displayed to the user. However, if no network is found during the enabling process, state machine 800 moves to state 806.
At state 806, a waiting cycle is entered where the PNM system waits for the network to return. State 806 may also be reached from state 805 when a network failure occurs while the PNM service is enabled. When the network is again available, state machine 800 moves to state 805 where the PNM is enabled and displaying the people nearby.
While the PNM service is being enabled at state 804, a connection to the rover (see
In certain circumstances, an error may occur during the enabling process that is critical enough to prevent the PNM service from operating correctly. When a critical error occurs, the state moves from state 804 to state 808. At state 808, the local is notified of the critical error and that the PNM service cannot proceed. The local user may then select to disable the PNM sidebar tile and state machine 800 moves back to state 801.
At any one of the states within state region 820, the user may select to cancel a current operation. Canceling the current operation, discontinues the enablement or disables the PNM service. With the PNM service disabled, state machine 800 moves to state 810 and back to state 802 where the PNM sidebar tile is in a standby mode awaiting further input from the local user.
Additionally, at any one of the states within state region 820, the user may select to close the PNM sidebar tile or the sidebar itself. If the user makes a selection to disable the PNM sidebar tile or the sidebar, state machine 800 moves to state 809. At state 809, the effected systems and folders (e.g., contacts folder) are cleaned up and the PNM sidebar tile is disabled, moving state machine 800 back to state 801. In one embodiment, when the system is cleaned up, the instances of PNM contacts and other PNM data are removed from the file system. Also, the SSDP layer (see
Display Name 913 and sharing address 914 are optionally included in the presence notification to allow a local user to publish a name to nearby users that do not know the local user and to notify nearby user that the local user has shared information. Timestamp 915 is included to provide a interval of time that the signature S1(D) is valid. Hash(Pu1+salt) 916 is also optionally included. Hash(Pu1+salt) 916 is a hashed version of public key (Pu1) 911 along with an amount of random data referred to as “salt”. The salt is also published in data (D) when salt is included in the hash. Hashing public key (Pu1) 911 ensures that a third party is not able to monitor the public keys as they are transferred between users. A third party viewing a hashed public key sees only random data that is not coherent as a public key. The addition of salt to hashed public key allows the public key to be further obfuscated and assists in preventing tracking of the public key. Hashing public key (Pu1) 911 also provides for narrowing down the identity of the user publishing data (D). Without the hashed public key, it may be necessary to try the public key of each contact to determine who signed data (D). With the published hashed public key, the contacts may first be queried for the contacts with a public key that hashes to match Hash(Pu1+salt) 916. Publishing Hash(Pu1+salt) 916 therefore allows the results to be narrowed, increasing the speed of the verification process. In other embodiments, public key (Pu1) 910 is not hashed or instead hashed without the salt (e.g., a random reordering of the public key bits).
When user 1 generates private key (Pr1) 912, public key (Pu1) 911 is also generated and associated with private key (Pr1) 912. User 1 is then able to send public key (Pu1) 911 to user 2. With the disseminated public key, user 1 is able to sign a set of data (e.g., D) with private key (Pr1) 912, such data includes signature S1(D) 917. Accordingly, only users that have public key (Pu1) 911 associated with user 1 (e.g., user 2) are able to view the data signed with private key (Pr1) 912 if the data was encrypted. Regardless of the encryption used, signature S1(D) still proves that data (D) was not tampered with and that data (D) originated from user 1, thereby proving the identity of user 1. For example, with public key (Pu1) 911, user 2 is able generate an equivalent hash of the public key (e.g., Hash(Pu1+salt) 921) to compare with the original hash of the public key (e.g., Hash(Pu1+salt) 916). When the hashes match (and the data was encrypted), user 2 knows that display name 913, sharing address 914, and timestamp 915 indeed originated from user 1 rather than a malicious user.
Signature S1(D) 917 prevents a malicious user from attempting to republish the data published by user 1 on another network by changing sharing address 914. An attempted change to sharing address 914 breaks signature S1(D) 917 so that a user receiving the malicious rebroadcast is notified that data is not verified. Furthermore, the malicious user is prevented from resigning the data since they do not have private key (Pr1) 912.
Additionally, the inclusion of timestamp 915 causes signature S1(D) 917 to be valid for specified period of time. When the period of time expires, so does the identity verification. Timestamp 915 prevents malicious users from rebroadcasting the data without changes once a particular period of time has passed. Other users receiving this data once the period of time has expired simply ignore the data since timestamp 915 has expired.
In one embodiment of the present invention, the data transferred corresponding to the presence of user 1 nearby on the network is not encrypted even though public key infrastructure (PKI) is used. Instead, the use of public and private keys is limited to verification of the identity of a user as the source of the data. The data sent is written in plain text and therefore viewable, but the public key encryption verifies the identity of the user for which that data is published.
As stated previously with relation to
The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5497186||Jul 14, 1992||Mar 5, 1996||Pioneer Electronic Corporation||CATV system in which message reception can be confirmed by a viewer|
|US5555376||Dec 3, 1993||Sep 10, 1996||Xerox Corporation||Method for granting a user request having locational and contextual attributes consistent with user policies for devices having locational attributes consistent with the user request|
|US5956644||Jul 28, 1997||Sep 21, 1999||Motorola, Inc.||Multiple-user communication unit and method for operating in a satellite communication system|
|US6148328||Jan 29, 1998||Nov 14, 2000||International Business Machines Corp.||Method and system for signaling presence of users in a networked environment|
|US6301609||Sep 8, 1999||Oct 9, 2001||Lucent Technologies Inc.||Assignable associate priorities for user-definable instant messaging buddy groups|
|US6433735||Dec 26, 2000||Aug 13, 2002||Telefonaktiebolaget (Lme)||Mobile terminal and system and method for determining the geographic location of a mobile terminal|
|US6463471||Dec 28, 1998||Oct 8, 2002||Intel Corporation||Method and system for validating and distributing network presence information for peers of interest|
|US6484033||Dec 4, 2000||Nov 19, 2002||Motorola, Inc.||Wireless communication system for location based schedule management and method therefor|
|US6539232||Jun 8, 2001||Mar 25, 2003||Telcontar||Method and system for connecting mobile users based on degree of separation|
|US6542750||Jun 8, 2001||Apr 1, 2003||Telcontar||Method and system for selectively connecting mobile users based on physical proximity|
|US6564261||May 9, 2000||May 13, 2003||Telefonaktiebolaget Lm Ericsson (Publ)||Distributed system to intelligently establish sessions between anonymous users over various networks|
|US6658095||Mar 19, 2002||Dec 2, 2003||Nortel Networks Limited||Customized presence information delivery|
|US6677968 *||Apr 17, 2001||Jan 13, 2004||America Online, Inc.||User definable on-line co-user lists|
|US6677976||Feb 28, 2002||Jan 13, 2004||Sprint Communications Company, LP||Integration of video telephony with chat and instant messaging environments|
|US6697840||Feb 29, 2000||Feb 24, 2004||Lucent Technologies Inc.||Presence awareness in collaborative systems|
|US6700967||May 15, 2001||Mar 2, 2004||International Business Machines Corporation||Presence information method and system|
|US6757365||Oct 16, 2000||Jun 29, 2004||Tellme Networks, Inc.||Instant messaging via telephone interfaces|
|US6760580||Apr 1, 2002||Jul 6, 2004||America Online, Incorporated||Facilitating instant messaging outside of user-defined buddy group in a wireless and non-wireless environment|
|US6763232||Jul 2, 1999||Jul 13, 2004||Viag Interkom Gmbh & Co.||Communication system and suitable process for running a communication system|
|US6771991||Mar 28, 2002||Aug 3, 2004||Motorola, Inc.||Graphics and variable presence architectures in wireless communication networks, mobile handsets and methods therefor|
|US6778498||Dec 17, 2001||Aug 17, 2004||Mci, Inc.||Virtual private network (VPN)-aware customer premises equipment (CPE) edge router|
|US6791583||Nov 13, 2001||Sep 14, 2004||Sun Microsystems, Inc.||System and method for providing spatially distributed device interaction|
|US6920478||May 2, 2001||Jul 19, 2005||Chikka Pte Ltd.||Method and system for tracking the online status of active users of an internet-based instant messaging system|
|US6968185||Dec 18, 2003||Nov 22, 2005||Interdigital Technology Corporation||Mobile wireless presence and situation management system and method|
|US6970547||May 12, 2003||Nov 29, 2005||Onstate Communications Corporation||Universal state-aware communications|
|US6976092||Oct 18, 2002||Dec 13, 2005||Bellsouth Intellectual Property Corp.||System that using transport protocol objects located at agent location to generate session ID and to provide translation between different instant messaging protocols|
|US6978136||Jul 15, 2002||Dec 20, 2005||Motorola, Inc.||Method and wireless device for establishing a communication interface for a communication session|
|US6990180||Jul 23, 2001||Jan 24, 2006||Nokia Mobile Phones Limited||Short voice message (SVM) service method, apparatus and system|
|US6990353 *||Feb 19, 2003||Jan 24, 2006||Lucent Technologies Inc.||Communication to one mobile station of update of call participation availability status of another mobile station|
|US7028074||Jul 3, 2001||Apr 11, 2006||International Business Machines Corporation||Automatically determining the awareness settings among people in distributed working environment|
|US7035618||Oct 30, 2003||Apr 25, 2006||Research In Motion Limited||System and method of wireless proximity awareness|
|US7035923||Apr 10, 2002||Apr 25, 2006||Nortel Networks Limited||Presence information specifying communication preferences|
|US7065184||Mar 23, 2004||Jun 20, 2006||Sbc Technology Resources, Inc.||Method and system for multimodal presence detection|
|US7096255 *||Aug 13, 2002||Aug 22, 2006||Bellsouth Intellectual Property Corp.||System and method for providing a roster list of temporary contacts having expiration periods designated by a user in an instant messaging environment|
|US7107312||Jun 21, 2001||Sep 12, 2006||Lucent Technologies Inc.||Apparatus and method for use in a data/conference call system for automatically collecting participant information and providing all participants with that information for use in collaboration services|
|US7299257||Jun 21, 2001||Nov 20, 2007||Lucent Technologies Inc.||Apparatus and method for use in collaboration services|
|US20010044299||Dec 30, 1997||Nov 22, 2001||Per-Arne Sandegren||On-line notification in a mobile communications system|
|US20010048449 *||Feb 26, 2001||Dec 6, 2001||Baker Benjamin D.||Intelligence driven paging process for a chat room|
|US20010053214||May 15, 2001||Dec 20, 2001||International Business Machines Corporation||Presence information method and system|
|US20020019829||Mar 21, 2001||Feb 14, 2002||Ehud Shapiro||Community co-presence system and method having virtual groups|
|US20020024947||Jul 26, 2001||Feb 28, 2002||Omer Luzzatti||Communications availability|
|US20020035605||Mar 16, 2001||Mar 21, 2002||Mcdowell Mark||Use of presence and location information concerning wireless subscribers for instant messaging and mobile commerce|
|US20020065894||Nov 30, 2000||May 30, 2002||Dalal Siddhartha R.||Local presence state and user-controlled presence and message forwarding in unified instant messaging|
|US20020086732||Jul 2, 2001||Jul 4, 2002||Yahoo! Inc.||Game server for use in connection with a messenger server|
|US20020101446||Nov 13, 2001||Aug 1, 2002||Sun Microsystems, Inc.||System and mehtod for providing spatially distributed device interaction|
|US20020116336||Feb 5, 2002||Aug 22, 2002||Athanassios Diacakis||Method and device for displaying contact information in a presence and availability management system|
|US20020116461||Feb 5, 2002||Aug 22, 2002||Athanassios Diacakis||Presence and availability management system|
|US20020130904||Jan 17, 2002||Sep 19, 2002||Michael Becker||Method, apparatus and computer readable medium for multiple messaging session management with a graphical user interfacse|
|US20020143876||Jun 21, 2001||Oct 3, 2002||Boyer David Gray||Apparatus and method for use in collaboration services|
|US20020147777||Jun 21, 2001||Oct 10, 2002||Hackbarth Randy L.||Apparatus and method for use in portal service for a team utilizing collaboration services|
|US20020186257||Jun 8, 2001||Dec 12, 2002||Cadiz Jonathan J.||System and process for providing dynamic communication access and information awareness in an interactive peripheral display|
|US20030018704||Mar 8, 2001||Jan 23, 2003||Vasilis Polychronidis||Network presence and location agent|
|US20030037103||Mar 13, 2002||Feb 20, 2003||Nokia Corporation||Realization of presence management|
|US20030041101||Aug 24, 2001||Feb 27, 2003||Hansche Brian A.||Presence watcher proxy|
|US20030052915||Sep 20, 2001||Mar 20, 2003||International Business Machines Corporation||Tracking user availability for participation in messaging sessions|
|US20030060215||Sep 27, 2002||Mar 27, 2003||Graham Tyrol R.||System and method for displaying subscriber locations on mobile stations|
|US20030060240||Sep 25, 2002||Mar 27, 2003||Graham Tyrol R.||Wireless mobile image messaging|
|US20030065788||May 10, 2002||Apr 3, 2003||Nokia Corporation||Mobile instant messaging and presence service|
|US20030073440||Jun 25, 2002||Apr 17, 2003||Versada Networks, A Washington Corporation||Detecting and transporting dynamic pressence information over a wireless and wireline communications network|
|US20030079024||Oct 19, 2001||Apr 24, 2003||Hough Paul James||Querying applications using online messenger service|
|US20030126245 *||Nov 21, 2001||Jul 3, 2003||Eric Feltin||Computer network architecture and associated method and system|
|US20030135624||Dec 27, 2001||Jul 17, 2003||Mckinnon Steve J.||Dynamic presence management|
|US20030154293||Feb 14, 2003||Aug 14, 2003||Zmolek Andrew Charles||Presence tracking and name space interconnection techniques|
|US20030217142||May 15, 2002||Nov 20, 2003||Microsoft Corporation||Method and system for supporting the communication of presence information regarding one or more telephony devices|
|US20030225843||Mar 18, 2003||Dec 4, 2003||Nec Corporation||Message server, message system, and method of management of presence information as well as program for implementing presence information management|
|US20030229900||May 8, 2003||Dec 11, 2003||Richard Reisman||Method and apparatus for browsing using multiple coordinated device sets|
|US20030233424||Feb 4, 2003||Dec 18, 2003||Samsung Electronics Co., Ltd.||Instant messenger based interface apparatus in information apparatuses|
|US20040041836 *||Aug 28, 2002||Mar 4, 2004||Microsoft Corporation||System and method for shared integrated online social interaction|
|US20040056893||Oct 31, 2002||Mar 25, 2004||Canfield James Andrew||Instant messaging interface having a tear-off element|
|US20040061720||May 15, 2003||Apr 1, 2004||Matt Weber||Multi-function browser toolbar with method for online institutional administrative browser control|
|US20040098491||Nov 14, 2002||May 20, 2004||Jose Costa-Requena||Accessing presence information|
|US20040107250 *||Oct 21, 2003||Jun 3, 2004||Guillermo Marciano||Methods and systems for integrating communication resources using the internet|
|US20040122810||Jul 18, 2003||Jun 24, 2004||Yaron Mayer||System and method for searching, finding and contacting dates on the Internet in instant messaging networks and/or in other methods that enable immediate finding and creating immediate contact|
|US20040122901||Dec 20, 2002||Jun 24, 2004||Nortel Networks Limited||Providing computer presence information to an integrated presence system|
|US20040153506||Jan 22, 2004||Aug 5, 2004||Nec Corporation||Presence system and information processing equipment, dynamic buddy list generation method in presence system, and presence notification destination controlling method and its program for use with presence system|
|US20040172455||Nov 18, 2003||Sep 2, 2004||Green Mitchell Chapin||Enhanced buddy list interface|
|US20040196315||Apr 1, 2003||Oct 7, 2004||International Business Machines Corporation||Method and apparatus for management of a primary buddy list in an instant messaging system|
|US20040203896 *||Dec 17, 2002||Oct 14, 2004||Yuri Deigin||Proximity-based matching method and system|
|US20050021645||May 27, 2004||Jan 27, 2005||Kiran Kulkarni||Universal presence indicator and instant messaging system|
|US20050021854||Apr 9, 2004||Jan 27, 2005||Jorgen Bjorkner||Method and system for providing a user with a presence service|
|US20050050301||Aug 29, 2003||Mar 3, 2005||Yahoo!, Inc.||Extensible user interface|
|US20050071435||Sep 30, 2003||Mar 31, 2005||International Business Machines Corporation||Instant message user management|
|US20050130680||Dec 16, 2003||Jun 16, 2005||Sony Ericsson Mobile Communications Ab||Location status indicator for mobile phones|
|US20050157689||Oct 30, 2003||Jul 21, 2005||Research In Motion Limited||System and method of wireless proximity awareness|
|US20050184875||Aug 11, 2004||Aug 25, 2005||Massachusetts Institute Of Technology||Methods and apparatus for connecting an intimate group by exchanging awareness cues and text, voice instant messages, and two-way voice communications|
|US20050188174||Apr 19, 2005||Aug 25, 2005||Microsoft Corporation||Extensible creation and editing of collections of objects|
|US20050221807||Feb 3, 2003||Oct 6, 2005||Petter Karlsson||Method of accessing the presence imformation on several entities|
|US20050223287||Mar 25, 2004||Oct 6, 2005||International Business Machines Corporation||Presence-based system management information routing system|
|US20050227216||Nov 19, 2004||Oct 13, 2005||Gupta Puneet K||Method and system for providing access to electronic learning and social interaction within a single application|
|US20050249169||Aug 6, 2001||Nov 10, 2005||Avery Fong||System, computer program product and method for managing and controlling a local network of electronic devices|
|US20060031293||Aug 4, 2004||Feb 9, 2006||Thommes Christoph A||Business presence system and method|
|US20060031367||Jun 4, 2004||Feb 9, 2006||John Buford||Instant messaging and presence using virtual devices|
|US20060047761||Aug 30, 2004||Mar 2, 2006||Matsushita Electric Industrial Co., Ltd.||Mechanism to support transparent roaming between IMP service providers in wireless networks|
|US20060072721||Sep 21, 2005||Apr 6, 2006||Netomat, Inc.||Mobile messaging system and method|
|US20060209740||Jul 2, 2004||Sep 21, 2006||Diego Anza Hormigo||Method and system for detecting the presence of a moblie terminal|
|US20070087731||Nov 6, 2006||Apr 19, 2007||Symbian Limited||Method of Enabling a Wireless Information Device to Access the Presence Information of Several Entities|
|US20070142029||Jan 28, 2004||Jun 21, 2007||Stefan Willehadson||Message management|
|1||D. Greenfield, "All Present and Accounted For?", Network Magazine, vol. 18, No. 6, pp. 26-29, Jun. 2003.|
|2||J. Wullert II et al., "Presence Management in Next Generation Networks", Proceedings of SPIE, vol. 4522, pp. 69-75, Aug. 21, 2001.|
|3||M. Debbabi et al., "Standard SIP-Based Instant Messaging and Presence APIs for Networked Devices", 5th IEEE International Workshop on Networked Appliances, pp. 59-64, Oct. 30-31, 2002.|
|4||R. Younglove, "Public Key Infrastructure, How It Works", Computing and Control Engineering Journal, vol. 12, No. 2, pp. 99-102, Apr. 2001.|
|5||S. Vaughan-Nichols, "Presence Technology More than Just Instant Messaging", IEEE Computer Society, vol. 36, No. 10, pp. 11-13, Oct. 2003.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8239452 *||May 1, 2004||Aug 7, 2012||Microsoft Corporation||System and method for discovering and publishing of presence information on a network|
|US20050246421 *||May 1, 2004||Nov 3, 2005||Microsoft Corporation||System and method for discovering and publishing of presence information on a network|
|US20110107228 *||May 5, 2011||Chun-Min Huang||Method of simultaneously displaying status of a plurality of contacts in an address book and related communication device|
|U.S. Classification||1/1, 707/999.201|
|International Classification||G06F7/00, G06F17/30|
|Cooperative Classification||G06F17/30067, Y10S707/99952|
|May 1, 2004||AS||Assignment|
Owner name: MICROSOFT CORPORATION,WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OREIZY, PEYMAN;MOORE, KEVIN R.;BLAGSVEDT, SEAN O.;AND OTHERS;REEL/FRAME:015289/0852
Effective date: 20040430
|Feb 1, 2011||CC||Certificate of correction|
|Sep 25, 2013||FPAY||Fee payment|
Year of fee payment: 4
|Dec 9, 2014||AS||Assignment|
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477
Effective date: 20141014