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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
An example of a networked environment in which the invention may be used will now be described with reference to
Referring to
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.
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.
Referring now to
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).
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.
The availability level 208 (
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”).
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.
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.
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.
The various elements, attributes, and properties that comprise the presence document of Table 3 are as follows:
Presentity:<presentity uri=“SIP:nate@snake.net”>
The containing element for the presence document of Table 3 is <presentity>, which identifies the user with a uniform resource indicator (URI). All sub-elements in <presentity> are regarded to be individual properties.
Availability:<availability aggregate=“200” description=“online”/>
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.”
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.”
Activity:
<activity aggregate=“800” description=“do not disturb” override=“true”/>
The <activity> property indicates the activity of a computing device. It uses a numerical value in a manner similar to the availability property.
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.
Contact: <contact contact=“2314@192.1.1.5:5060; q=0.3”/>
The <contact> property indicates how the user can be contacted. There can be any number of <contact> entries in a presence document.
Communications Modes:
<modes modes=“TEXT AUDIO VIDEO WHITEBOARD APPSHARE FILETRANSFER”/>
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.
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.
Display Name: <displayName displayName=“Nate the evil genius.”/>
The <displayName> property is the watched user's screen name.
Note:
<note note=“I am busy plotting. Don't bother me unless there's a good reason”/>
The <note> property includes whatever additional notes the watched user wishes to add.
Phone Number:
<phoneNumber label=“Phone in secret lair” number=“+1-787-312-8321”/>
The <phone number> property represents the watched user's phone number or numbers. Possible labels include “Cell” or “Office.”
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.
Custom properties are properties that applications can define for themselves.
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.
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:
(a) The document having the highest activity level is identified;
(b) overrides are applied;
(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;
(d) all other properties (other than activity and availability) are copied into the new aggregate presence document.
(e) The “contacts” properties are removed.
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:
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:
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.
He's used his wristwatch to override the “do not disturb” with “active,” and the wristwatch generates the presence document shown in Table 6.
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.
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.
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.
This application is a continuation of U.S. patent application Ser. No. 10/145,673 entitled “METHOD AND SYSTEM FOR SUPPORTING THE COMMUNICATION OF PRESENCE INFORMATION REGARDING ONE OR MORE TELEPHONY DEVICES, filed May 15, 2002, which application is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4570227 | Tachi et al. | Feb 1986 | A |
5179519 | Adachi et al. | Jan 1993 | A |
5220507 | Kirson | Jun 1993 | A |
5493692 | Theimer et al. | Feb 1996 | A |
5544321 | Theimer et al. | Aug 1996 | A |
5555376 | Theimer et al. | Sep 1996 | A |
5603054 | Theimer et al. | Feb 1997 | A |
5608635 | Tamai | Mar 1997 | A |
5611050 | Theimer et al. | Mar 1997 | A |
5737886 | Kruckemeyer | Apr 1998 | A |
5802518 | Karaev et al. | Sep 1998 | A |
5812865 | Theimer et al. | Sep 1998 | A |
5835881 | Trovato et al. | Nov 1998 | A |
5911773 | Mutsuga et al. | Jun 1999 | A |
6078865 | Koyanagi | Jun 2000 | A |
6119065 | Shimada et al. | Sep 2000 | A |
6260148 | Aggarwal et al. | Jul 2001 | B1 |
6269099 | Borella et al. | Jul 2001 | B1 |
6298304 | Theimer | Oct 2001 | B1 |
6339746 | Sugiyama et al. | Jan 2002 | B1 |
6415318 | Aggarwal et al. | Jul 2002 | B1 |
6463145 | O'Neal et al. | Oct 2002 | B1 |
6466232 | Newell et al. | Oct 2002 | B1 |
6477240 | Lim et al. | Nov 2002 | B1 |
6477460 | Kepler | Nov 2002 | B2 |
6510461 | Nielsen | Jan 2003 | B1 |
6513046 | Abbott, III et al. | Jan 2003 | B1 |
6519639 | Glasser et al. | Feb 2003 | B1 |
6526350 | Sekiyama | Feb 2003 | B2 |
6549915 | Abbott, III et al. | Apr 2003 | B2 |
6622089 | Hasegawa et al. | Sep 2003 | B2 |
6694252 | Ukita | Feb 2004 | B2 |
6728635 | Hamada et al. | Apr 2004 | B2 |
6747675 | Abbott et al. | Jun 2004 | B1 |
6748225 | Kepler | Jun 2004 | B1 |
6791580 | Abbott et al. | Sep 2004 | B1 |
6801223 | Abbott et al. | Oct 2004 | B1 |
6807423 | Armstrong et al. | Oct 2004 | B1 |
6812937 | Abbott et al. | Nov 2004 | B1 |
6839735 | Wong et al. | Jan 2005 | B2 |
6842877 | Robarts et al. | Jan 2005 | B2 |
6850968 | Pfeffer et al. | Feb 2005 | B1 |
6853634 | Davies et al. | Feb 2005 | B1 |
6870830 | Schuster et al. | Mar 2005 | B1 |
6898518 | Padmanabhan | May 2005 | B2 |
6952647 | Hasegawa et al. | Oct 2005 | B2 |
7007085 | Malik | Feb 2006 | B1 |
7027432 | Carolan et al. | Apr 2006 | B2 |
7035923 | Yoakum et al. | Apr 2006 | B1 |
7103167 | Brahm et al. | Sep 2006 | B2 |
7103473 | Ranjan | Sep 2006 | B2 |
7215760 | Lenard | May 2007 | B2 |
7218722 | Turner et al. | May 2007 | B1 |
7227937 | Yoakum et al. | Jun 2007 | B1 |
7269162 | Turner | Sep 2007 | B1 |
7310532 | Knauerhase et al. | Dec 2007 | B2 |
7359938 | Davies et al. | Apr 2008 | B1 |
20010007968 | Shimazu | Jul 2001 | A1 |
20010025223 | Geiger et al. | Sep 2001 | A1 |
20010028660 | Carolan et al. | Oct 2001 | A1 |
20010040590 | Abbott et al. | Nov 2001 | A1 |
20010040591 | Abbott et al. | Nov 2001 | A1 |
20010043231 | Abbott et al. | Nov 2001 | A1 |
20010043232 | Abbott et al. | Nov 2001 | A1 |
20020024947 | Luzzatti et al. | Feb 2002 | A1 |
20020032689 | Abbott, III et al. | Mar 2002 | A1 |
20020044152 | Abbott, III et al. | Apr 2002 | A1 |
20020052930 | Abbott et al. | May 2002 | A1 |
20020052963 | Abbott et al. | May 2002 | A1 |
20020054130 | Abbott, III et al. | May 2002 | A1 |
20020054174 | Abbott et al. | May 2002 | A1 |
20020065894 | Dalal et al. | May 2002 | A1 |
20020075303 | Thompson et al. | Jun 2002 | A1 |
20020078204 | Newell et al. | Jun 2002 | A1 |
20020080155 | Abbott et al. | Jun 2002 | A1 |
20020080156 | Abbott et al. | Jun 2002 | A1 |
20020083025 | Robarts et al. | Jun 2002 | A1 |
20020083158 | Abbott et al. | Jun 2002 | A1 |
20020087525 | Abbott et al. | Jul 2002 | A1 |
20020087704 | Chesnais et al. | Jul 2002 | A1 |
20020099817 | Abbott et al. | Jul 2002 | A1 |
20020143928 | Maltz et al. | Oct 2002 | A1 |
20020164998 | Younis | Nov 2002 | A1 |
20020165000 | Fok | Nov 2002 | A1 |
20020173905 | Jin et al. | Nov 2002 | A1 |
20030041101 | Hansche et al. | Feb 2003 | A1 |
20030046401 | Abbott et al. | Mar 2003 | A1 |
20030048195 | Trossen | Mar 2003 | A1 |
20030055897 | Brown et al. | Mar 2003 | A1 |
20030104819 | Knauerhase et al. | Jun 2003 | A1 |
20030110228 | Xu et al. | Jun 2003 | A1 |
20030154476 | Abbott, III et al. | Aug 2003 | A1 |
20030182052 | DeLorme et al. | Sep 2003 | A1 |
20030215078 | Brahm et al. | Nov 2003 | A1 |
20030217098 | Bobde et al. | Nov 2003 | A1 |
20030217099 | Bobde et al. | Nov 2003 | A1 |
20030217142 | Bobde et al. | Nov 2003 | A1 |
20040172481 | Engstrom | Sep 2004 | A1 |
20050034078 | Abbott et al. | Feb 2005 | A1 |
20050041580 | Petrovykh | Feb 2005 | A1 |
20050197155 | Baker et al. | Sep 2005 | A1 |
20050216848 | Thompson et al. | Sep 2005 | A1 |
20060031062 | Bakis et al. | Feb 2006 | A1 |
20060098619 | Nix et al. | May 2006 | A1 |
20060190525 | Bobde et al. | Aug 2006 | A1 |
20060190591 | Bobde et al. | Aug 2006 | A1 |
20060212220 | Bou-Ghannam et al. | Sep 2006 | A1 |
20060271277 | Hu et al. | Nov 2006 | A1 |
20080034033 | Agrawal | Feb 2008 | A1 |
20080040443 | Agrawal | Feb 2008 | A1 |
Number | Date | Country |
---|---|---|
2000115373 | Apr 2000 | JP |
2001500712 | Jan 2001 | JP |
9800787 | Jan 1998 | WO |
WO 0163862 | Aug 2001 | WO |
WO 03061236 | Jan 2002 | WO |
WO 02093408 | Nov 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20060190525 A1 | Aug 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10145673 | May 2002 | US |
Child | 11343644 | US |