Proximity detection for media proxies

Information

  • Patent Grant
  • 8694676
  • Patent Number
    8,694,676
  • Date Filed
    Thursday, January 31, 2013
    11 years ago
  • Date Issued
    Tuesday, April 8, 2014
    10 years ago
Abstract
A method of detecting proximity between a media proxy and a client uses a proximity probe to query a plurality of media proxies, forcing the media proxies to respond to a proximity server. The proximity server uses an algorithm to determine which media proxy is closest to the client based on the responses. In an alternate embodiment, the same sorts of proximity probes may be used to determine if two media endpoints have a direct connection such that they may bypass a media proxy.
Description
FIELD OF THE INVENTION

The present invention relates to a technique to determine a best path over which a multimedia communication session may be held.


BACKGROUND OF THE INVENTION

Consumers of telecommunications services are faced with many options when it comes to services. One of the more dynamic fields currently is the provision of multimedia services. Typically, a consumer will request multimedia services by accessing an application server. The application server will direct the consumer to one of a plurality of media proxies in a round robin fashion. The media proxy may then set up and tear down the call as is well understood and provide other multimedia related services.


The round robin approach suffers from some drawbacks. First, the round robin approach ignores the loads that are currently being experienced on the media proxies; for instance, there is no provision to evaluate loading on the media proxies before making the assignment. As such, a heavily loaded media proxy may still be assigned to provide services to a consumer just because it is next in the round robin cycle.


Second, the round robin approach ignores distances between the media proxy and the consumer. The distance may be a function of communication links, physical distance, and similar physical attributes. Distance introduces delay into the provision of services, which for multimedia applications can be extremely undesirable. The round robin approach assigns a media proxy to a consumer irrespective of whether another media proxy might be closer.


Thus, there is a need for a better technique to allocate media proxies to incoming requests.


SUMMARY OF THE INVENTION

The present invention addresses the shortcomings of the round robin approach by determining which media proxy is “closest” to the client and assigning that media proxy to the client. Initially, a proximity server, which in a preferred embodiment is a database server, associated with an application determines a round trip time required for a message to go from the database server to each media proxy and back. Subsequently, the application server may receive a request for multimedia services from a client. The application server returns a list of available media proxies to the client for which the database server has the round trip times. The client then sends out a probe query to each media proxy on the list. The media proxies, upon receipt of the probe, send a time-stamped message to the database server. The database server determines which media proxy is closest to the client based on the round trip times and the time required for the media proxy to receive the probe query from the client. After the determination, the application server assigns the client to a media proxy and the media services are provided as requested.


Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.





BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.



FIG. 1 illustrates a network according to one embodiment of the present invention;



FIG. 2 illustrates, as a flow chart, the methodology of the present invention; and



FIG. 3 illustrates a call flow diagram associated with the exemplary embodiment of FIG. 2.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.


Before discussing how the present invention works, an explanation of the network environment is presented so as to help understand the context of the present invention. A network 10 may be the public internet (shown), a private intranet, or other network through which various elements may interact, such as through any appropriate packet based protocol. A client 12 may be communicatively coupled to the network 10. The client 12 may be a personal computer, a multimedia enabled phone, or other multimedia enabled customer premises equipment. One or more points of presence (POPs) 14, 16 may be associated with one or more service providers. The POPs 14, 16 may have one or more media proxies (MPs) 18A, 18B, and 18C (hereinafter, generically a media proxy 18) associated therewith, as well as a proximity server 20, which in a preferred embodiment is a database server. In most installations, it is expected that a single application server 22 may control more than one media proxy 18, and further the application server 22 may control media proxies 18 distributed amongst multiple POPs 14, 16. The application server 22 may, in an exemplary embodiment, use Session Initiation Protocol (SIP) for communicating.


For the sake of providing a more complete explanation, a brief digression into the specifics of SIP is herein provided. A SIP endpoint is generally capable of running an application, which is generally referred to as a user agent (UA), and is capable of facilitating media sessions using SIP. User agents register their ability to establish sessions with a SIP proxy (the application server 22 in the present invention) by sending “REGISTER” messages to the SIP proxy. The REGISTER message informs the SIP proxy of one or more SIP universal resource locators (URL) that identify the user agent to the SIP network. The REGISTER message also contains information about how to reach specific user agents over the SIP network by providing the Internet Protocol (IP) address and port that the user agent will use for SIP sessions.


A “SUBSCRIBE” message may be used to subscribe to an application or service provided by a SIP endpoint. Further, “NOTIFY” messages may be used to provide information between SIP endpoints in response to various actions or messages, including REGISTER and SUBSCRIBE messages.


When a user agent wants to establish a session with another user agent, the user agent initiating the session will send an INVITE message to the SIP proxy and specify the targeted user agent in the “TO:” header of the INVITE message. Identification of the user agent takes the form of a SIP URL. In its simplest form, the URL is represented by a number or “<username>@<domain>,” such as “janedoe@nortelnetworks.com.” Generally, the user name is unique within the name space of the specified domain.


If the targeted user agent has registered with the SIP proxy, the SIP proxy will forward any received INVITE message directly to the targeted user agent. The targeted user agent will respond with a 200 OK message, and a session between the respective user agents will be established as per the message exchange required in the SIP specification. Media capabilities are passed between the two user agents of the respective endpoints as parameters embedded within the session setup messages, such as the INVITE, 200 OK, and acknowledgement (ACK) messages. The media capabilities are typically described using the Session Description Protocol (SDP). Once respective endpoints are in an active session with each other and have determined each other's capabilities, the specified media content may be exchanged during an appropriate media session.


Returning now to the present invention, the proximity server 20 has a pre-configured list of media proxies 18, and more specifically, a list of addresses and ports on the media proxies 18 that serve the domains served by the application server 22. Further, at least one port on each media proxy 18 is reserved for running the proximity detection method of the present invention.


Note that, in general, the client 12, the media proxy 18, the proximity server 20, and the application server 22 all may contain data processing devices, such as a microprocessor. Further, the microprocessor may be controlled by software or hardware that performs the functions of the present invention. The software may be stored on any appropriate computer readable medium such as a hard drive, a disc, or other memory device. Note further that it is possible that the proximity server 20 and the application server 22 be collocated or integrated into a single entity, but such is not required. The proximity server is one possible host for the proximity detection algorithm. The algorithm is independent of any platform.


The methodology of the present invention will now be presented with reference to FIGS. 2 and 3. FIG. 2 is a flowchart of the methodology and FIG. 3 shows the call flows. Steps in the flow chart begin with the numeral one, such as block 100, while steps in the call flow begin with the numeral two, such as message 200. While particular protocols and messaging examples are provided, they are intended to be exemplary and assist in comprehension of the steps of the present invention. Other messaging protocols could be used as needed or desired.


In an exemplary embodiment, the proximity server 20 periodically estimates a round trip time (RTT) between the proximity server 20 and each of the media proxies 18 under its jurisdiction (block 100). This RTT estimation may be done using an Internet Control Message Protocol (ICMP) ping as is well understood. At some time subsequent to the estimation of the RTT, a client 12, which may be a SIP client, sends a SIP REGISTER message (200) requesting registration with the application server 22 (block 102) as part of a request for multimedia services. The application server 22 sends the pre-configured list of addresses (including port addresses, if appropriate) to the client 12 for media proxies 18 that are available to serve the domain from which the client's request originates (block 104). This list of media proxies 18 can be sent in the body of the 200 OK response to the REGISTER message (202).


The client 12 sends a Simple Traversal of UDP Through Network Address Translators (STUN), ICMP ping, or an application layer probe message (204A, 204B, 204C) to all of the media proxies 18 in the list received from the application server 22 (block 106). This message may include the user identification (USER ID) of the client 12. The probe may be sent out essentially simultaneously.


Each media proxy 18, upon receiving the probe message, sends a notification message (206A, 206B, 206C) reporting the probe event to the proximity server 20 (block 108). This notification message may contain the user identification of the client 12 that triggered the event, as well as a timestamp (TIME). The media proxy 18 also sends back an acknowledgement (208A, 208B, 208C) to the client 12 (block 110) probe. The acknowledgement informs the client 12 which media proxies 18 are reachable. Optionally, the media proxy 18 may include in the notification message (206A, 206B, 206C) a timestamp delta representing the time between the receipt of the client probe and the time of sending the notification message to the proximity server 20. In an exemplary embodiment, the timestamp delta value has a granularity of milliseconds, although finer gradations could be used.


The proximity server 20 notes the time of receipt of the notification messages (block 112). The proximity server 20 then uses these values and the round trip time (RTT) previously gathered for each of the media proxies 18 to estimate the relative proximities of the client 12 to each of the media proxies 18 (block 114). While there may be several ways to estimate the proximity, an exemplary method to estimate the proximity is as follows.


RTT_A, RTT_B, and RTT_C are the RTTs for the media proxies 18A, 18B, and 18C, respectively. TA, TB, and TC are the recorded times at the proximity server 20 representing the receipt of the notification messages. The relative proximity values may thus be computed as:

Prox(A,B)=(TA−TB)−(RTTA−RTTB)  i.
Prox(A,C)=(TA−TC)−(RTTA−RTTC)  ii.
Prox(B,C)=(TB−TC)−(RTTB−RTTC)  iii.


Note that if the timestamp deltas are present, they may be subtracted out of the calculation for greater accuracy. For example, if A and B are present, then Prox (A, B)=(TA−TB)−(RTT_A−RTT_B)−(AB). Following the rule that if Prox (A, B)<0 (or negative), then media proxy 18A is relatively closer to the client 12 than media proxy 18B, the following table may be constructed.


















Relative Proximities


Prox (A, B)
Prox (A, C)
Prox (B, C)
from client










A < B < C




+
A < C < B



+

ERROR



+
+
C < A < B


+


B < A < C


+

+
ERROR


+
+

B < C < A


+
+
+
C < B < A









In the event of the two error cases, the relative proximities cannot be properly determined, and the RTTs of the media proxies 18 may be used to represent client 12 proximity. Using the RTTs is a good approximation so long as the proximity server 20 is located close to the client 12. Note that this proximity detection may, in an exemplary embodiment, only be performed once per registration.


Armed with the relative proximities, the proximity server 20 may then evaluate other factors (block 116), which include such relatively static factors as: 1) the number of hops between the media proxy 18 and the client 12 and 2) media proxy 18 capacity. Additional dynamic parameters may include the number of User Data Protocol (UDP) ports available, the processing power available, the bandwidth available, and statistics relating to jitter, delay, and packet loss at each port. These additional factors may be normalized and weighted as needed or desired to effectuate an appropriate analysis of the suitability of assigning a client 12 to a given media proxy 18.


The proximity server 20 then sends a best fit message (210) to the application server 22 (block 118). The best fit message (210) indicates which media proxy 18 is most appropriate for the client 12 to use and is based on the proximity and the additional factors outlined above.


The application server 22 then instructs with message 212 the client 12 to use the selected media proxy 18 (block 120). Note that the proximity server 20 could provide the instruction to the client 12. Likewise, the processing of the proximity calculations could be performed in the application server 22, although such is not preferred.


Appropriate authentication or encryption steps may be taken to prevent duplication of the user identification that may be sent in some of the various messages. Likewise, denial of service attacks may be prevented in standard ways, such as monitoring traffic levels.


Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.

Claims
  • 1. A method of assigning a media proxy to a client based on proximity of the media proxy, comprising: a first server receiving a request from the client for a media session;the first server transmitting a list of media proxies to the client, wherein the client is configured to transmit a request to each of one or more media proxies in the list of media proxies;the first server assigning a first media proxy of the list of media proxies based on determined proximity between the client and each of the one or more media proxies, wherein the determined proximity between the client and each of the one or more media proxies is based on: times of receipt of responses received from the one of the one or more media proxies, wherein each response is in response to the respective request from the client; andround trip times to and from the one or more media proxies.
  • 2. The method of claim 1, wherein the proximity between the client and each of the one or more media proxies is determined by a proximity server, wherein the times of receipt of the responses are detected by the proximity server receiving the responses, and wherein the round trip times to and from the one or more media proxies is relative to the proximity server.
  • 3. The method of claim 1, wherein the first server comprises an application server.
  • 4. The method of claim 1, wherein the request from the client comprises a session initiation protocol (SIP) request.
  • 5. An application server for assigning a media proxy to a client based on proximity of the media proxy, the application server comprising: communication circuitry configured to communicate with the client; andprocessing hardware coupled to the communication circuitry, wherein the processing hardware is configured to: receive a request from the client for a media session using the communication circuitry;transmit a list of media proxies to the client using the communication circuitry, wherein the client is configured to transmit a request to each of one or more media proxies in the list of media proxies;assign a first media proxy of the list of media proxies based on determined proximity between the client and each of the one or more media proxies, wherein the determined proximity between the client and each of the one or more media proxies is based on: times of receipt of responses received from the one of the one or more media proxies, wherein each response is in response to the respective request from the client; andround trip times to and from the one or more media proxies.
  • 6. The application server of claim 5, wherein the proximity between the client and each of the one or more media proxies is determined by a proximity server, wherein the times of receipt of the responses are detected by the proximity server receiving the responses, and wherein the round trip times to and from the one or more media proxies is relative to the proximity server.
  • 7. The application server of claim 5, wherein the request from the client comprises a session initiation protocol (SIP) request.
  • 8. A non-transitory, computer accessible memory medium storing program instructions for assigning a media proxy to a client based on proximity of the media proxy, wherein the program instructions are executable by a processor to: receive a request from the client for a media session;transmit a list of media proxies to the client, wherein the client is configured to transmit a request to each of one or more media proxies in the list of media proxies;assign a first media proxy of the list of media proxies based on determined proximity between the client and each of the one or more media proxies, wherein the determined proximity between the client and each of the one or more media proxies is based on: times of receipt of responses received from the one of the one or more media proxies, wherein each response is in response to the respective request from the client; andround trip times to and from the one or more media proxies.
  • 9. The non-transitory, computer accessible memory medium of claim 8, wherein the proximity between the client and each of the one or more media proxies is determined by a proximity server, wherein the times of receipt of the responses are detected by the proximity server receiving the responses, and wherein the round trip times to and from the one or more media proxies is relative to the proximity server.
  • 10. The non-transitory, computer accessible memory medium of claim 8, wherein the request from the client comprises a session initiation protocol (SIP) request.
  • 11. A method of determining proximity between a media proxy and a client comprising: a first media proxy receiving a request from the client, wherein the request is for determining proximity to the client;in response to the request, the first media proxy creating a timestamp and transmitting a response to the request including the timestamp corresponding to when the request was received, wherein the first media proxy transmits the response including the timestamp to a proximity server; andthe first media proxy being assigned to the client based on at least the timestamp in the response.
  • 12. The method of claim 11, wherein the response further comprises a timestamp delta corresponding to time elapsed from receipt of the request and generation of the response.
  • 13. The method of claim 11, wherein the request comprises a ping probe.
  • 14. The method of claim 11, wherein the request from the client comprises a user identification of the client.
  • 15. The method of claim 11, further comprising: the first media proxy responding to a round trip time inquiry from the proximity server such that the proximity server may determine a round trip time elapsed for messages sent between the proximity server and the first media proxy.
  • 16. A media proxy for providing media services to a client, the media proxy comprising: communication circuitry for communicating with the client and a proximity server; andprocessing hardware coupled to the communication circuitry, wherein the processing hardware is configured to: receive a request from the client using the communication circuitry, wherein the request is for determining proximity to the client;in response to the request, create a timestamp and transmit a response to the request using the communication circuitry, wherein the response comprises the timestamp corresponding to when the request was received, wherein the response comprising the timestamp is transmitted to a proximity server; andwherein the media proxy is assigned to the client based on at least the timestamp in the response.
  • 17. The media proxy of claim 16, wherein the response further comprises a timestamp delta corresponding to time elapsed from receipt of the request and generation of the response.
  • 18. The media proxy of claim 16, wherein the request comprises a ping probe.
  • 19. The media proxy of claim 16, wherein the request from the client comprises a user identification of the client.
  • 20. The media proxy of claim 16, wherein the processing hardware is further configured to: respond to a round trip time inquiry from the proximity server such that the proximity server may determine a round trip time elapsed for messages sent between the proximity server and the media proxy.
  • 21. A non-transitory, computer accessible memory medium storing program instructions for providing media services to a client, wherein the program instructions are executable by a processor to: receive a request from the client, wherein the request is for determining proximity to the client;in response to the request, create a timestamp and transmit a response to the request, wherein the response comprises the timestamp corresponding to when the request was received, wherein the response comprising the timestamp is transmitted to a proximity server; andbe assigned to the client based on at least the timestamp in the response.
  • 22. The non-transitory, computer accessible memory medium of claim 21, wherein the response further comprises a timestamp delta corresponding to time elapsed from receipt of the request and generation of the response.
  • 23. The non-transitory, computer accessible memory medium of claim 21, wherein the request comprises a ping probe.
  • 24. The non-transitory, computer accessible memory medium of claim 21, wherein the request from the client comprises a user identification of the client.
  • 25. The non-transitory, computer accessible memory medium of claim 21, wherein the program instructions are further executable to: respond to a round trip time inquiry from the proximity server such that the proximity server may determine a round trip time elapsed for messages sent between the proximity server and the media proxy.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 10/245,476, entitled “Proximity Detection for Media Proxies”, filed Sep. 17, 2002, which is hereby incorporated by reference in its entirety as though fully and completely set forth herein.

US Referenced Citations (240)
Number Name Date Kind
4932050 Davidson et al. Jun 1990 A
5315636 Patel May 1994 A
5327521 Savic et al. Jul 1994 A
5347306 Nitta Sep 1994 A
5353335 D'Urso et al. Oct 1994 A
5414759 Ishikuri et al. May 1995 A
5450613 Takahara et al. Sep 1995 A
5541981 Lynn Jul 1996 A
5550907 Carlsen Aug 1996 A
5555376 Theimer et al. Sep 1996 A
5586171 McAllister et al. Dec 1996 A
5596633 Meier et al. Jan 1997 A
5633921 Soderberg May 1997 A
5633924 Kaish et al. May 1997 A
5652789 Miner et al. Jul 1997 A
5742905 Pepe et al. Apr 1998 A
5749073 Slaney May 1998 A
5757901 Hiroshige May 1998 A
5771280 Johnson Jun 1998 A
5790649 Hiroshige Aug 1998 A
5812126 Richardson et al. Sep 1998 A
5812865 Theimer et al. Sep 1998 A
5812972 Juang et al. Sep 1998 A
5815554 Burgess et al. Sep 1998 A
5818836 DuVal Oct 1998 A
5825864 McGraw et al. Oct 1998 A
5835568 Bass et al. Nov 1998 A
5848134 Sekiguchi et al. Dec 1998 A
5860064 Henton Jan 1999 A
5864848 Horvitz et al. Jan 1999 A
5870709 Bernstein Feb 1999 A
5875427 Yamazaki Feb 1999 A
5880731 Liles et al. Mar 1999 A
5884029 Brush, II et al. Mar 1999 A
5884262 Wise et al. Mar 1999 A
5890115 Cole Mar 1999 A
5901359 Malmstrom May 1999 A
5911129 Towell Jun 1999 A
5930702 Goldman et al. Jul 1999 A
5933805 Boss et al. Aug 1999 A
5960173 Tang et al. Sep 1999 A
6031904 An et al. Feb 2000 A
6038443 Luneau Mar 2000 A
6052597 Ekstrom Apr 2000 A
6058415 Polcyn May 2000 A
6067357 Kishinsky et al. May 2000 A
6085232 Kikinis Jul 2000 A
6104913 McAllister Aug 2000 A
6111937 Kuroiwa et al. Aug 2000 A
6125176 Foladare et al. Sep 2000 A
6134314 Dougherty et al. Oct 2000 A
6141356 Gorman Oct 2000 A
6144644 Bajzath et al. Nov 2000 A
6148328 Cuomo et al. Nov 2000 A
6173250 Jong Jan 2001 B1
6173262 Hirschberg Jan 2001 B1
6175616 Light et al. Jan 2001 B1
6185292 Miloslavsky Feb 2001 B1
6185565 Meubus et al. Feb 2001 B1
6185619 Joffe et al. Feb 2001 B1
6215858 Bartholomew et al. Apr 2001 B1
6223165 Lauffer Apr 2001 B1
6226361 Koyama May 2001 B1
6233465 Smith et al. May 2001 B1
6243398 Kahane et al. Jun 2001 B1
6253230 Couland et al. Jun 2001 B1
6260070 Shah Jul 2001 B1
6260148 Aggarwal et al. Jul 2001 B1
6282511 Mayer Aug 2001 B1
6295348 Bleile et al. Sep 2001 B1
6301609 Aravamudan et al. Oct 2001 B1
6314094 Boys Nov 2001 B1
6317486 Hollins et al. Nov 2001 B1
6324265 Christie, IV et al. Nov 2001 B1
6330322 Foladare et al. Dec 2001 B1
6356937 Montville et al. Mar 2002 B1
6366651 Griffith et al. Apr 2002 B1
6366886 Dragosh et al. Apr 2002 B1
6377944 Busey et al. Apr 2002 B1
6385461 Raith May 2002 B1
6389114 Dowens et al. May 2002 B1
6389127 Vardi et al. May 2002 B1
6418198 Brablec et al. Jul 2002 B2
6424935 Taylor Jul 2002 B1
6430289 Liffick Aug 2002 B1
6430395 Arazi et al. Aug 2002 B2
6430604 Ogle et al. Aug 2002 B1
6434599 Porter Aug 2002 B1
6446076 Burkey et al. Sep 2002 B1
6446121 Shah et al. Sep 2002 B1
6449344 Goldfinger et al. Sep 2002 B1
6449365 Hodges et al. Sep 2002 B1
6453294 Dutta et al. Sep 2002 B1
6463142 Kilp Oct 2002 B1
6463471 Dreke et al. Oct 2002 B1
6480593 Munday et al. Nov 2002 B1
6483900 Light et al. Nov 2002 B1
6484196 Maurille Nov 2002 B1
6507643 Groner Jan 2003 B1
6519639 Glasser et al. Feb 2003 B1
6546096 Meiden et al. Apr 2003 B1
6549937 Auerbach et al. Apr 2003 B1
6560648 Dunn et al. May 2003 B1
6564261 Gudjonsson et al. May 2003 B1
6584494 Manabe et al. Jun 2003 B1
6617969 Tu et al. Sep 2003 B2
6618704 Kanevsky et al. Sep 2003 B2
6618710 Zondervan et al. Sep 2003 B1
6633636 McConnell et al. Oct 2003 B1
6640241 Ozzie et al. Oct 2003 B1
6654790 Ogle et al. Nov 2003 B2
6658095 Yoakum et al. Dec 2003 B1
6665395 Busey et al. Dec 2003 B1
6678719 Stimmel Jan 2004 B1
6700966 Takagi et al. Mar 2004 B2
6711137 Klassen et al. Mar 2004 B1
6728754 Lipton Apr 2004 B1
6741853 Jiang et al. May 2004 B1
6799209 Hayton Sep 2004 B1
6807423 Armstrong et al. Oct 2004 B1
6810411 Coughlin et al. Oct 2004 B1
6885641 Chan et al. Apr 2005 B1
6920498 Gourlay et al. Jul 2005 B1
6985961 Ramsayer et al. Jan 2006 B1
7020480 Coskun et al. Mar 2006 B2
7035923 Yoakum et al. Apr 2006 B1
7103651 Bohannon et al. Sep 2006 B2
7136631 Jiang et al. Nov 2006 B1
7212617 Owens et al. May 2007 B2
7269162 Turner Sep 2007 B1
7356137 Burg et al. Apr 2008 B1
8180875 Dave′ et al. May 2012 B1
8279759 Jones Oct 2012 B1
20010005412 Light et al. Jun 2001 A1
20010039585 Primak et al. Nov 2001 A1
20010044299 Sandegren Nov 2001 A1
20010053213 Truong et al. Dec 2001 A1
20010053214 Kleinoder et al. Dec 2001 A1
20020006803 Mendiola et al. Jan 2002 A1
20020024947 Luzzatti et al. Feb 2002 A1
20020032035 Teshima Mar 2002 A1
20020035605 McDowell et al. Mar 2002 A1
20020038360 Andrews et al. Mar 2002 A1
20020049842 Huetsch et al. Apr 2002 A1
20020055975 Petrovykh May 2002 A1
20020059622 Grove et al. May 2002 A1
20020060988 Shtivelman May 2002 A1
20020065894 Dalal et al. May 2002 A1
20020076010 Sahai Jun 2002 A1
20020078188 Anand et al. Jun 2002 A1
20020085516 Bridgelall Jul 2002 A1
20020101993 Eskin Aug 2002 A1
20020102993 Hendrey et al. Aug 2002 A1
20020111173 Hendrey et al. Aug 2002 A1
20020114432 Shaffer et al. Aug 2002 A1
20020116336 Diacakis et al. Aug 2002 A1
20020116461 Diacakis et al. Aug 2002 A1
20020120687 Diacakis et al. Aug 2002 A1
20020126701 Requena Sep 2002 A1
20020131395 Wang Sep 2002 A1
20020133597 Jhingan et al. Sep 2002 A1
20020143876 Boyer et al. Oct 2002 A1
20020143877 Hackbarth et al. Oct 2002 A1
20020147008 Kallio Oct 2002 A1
20020147777 Hackbarth et al. Oct 2002 A1
20020147814 Kimchi et al. Oct 2002 A1
20020161755 Moriarty Oct 2002 A1
20020163572 Center et al. Nov 2002 A1
20020165000 Fok Nov 2002 A1
20020181693 Ribera Dec 2002 A1
20020186685 O'Brien et al. Dec 2002 A1
20020194335 Maynard Dec 2002 A1
20020196770 Lin Dec 2002 A1
20030004762 Banerjee et al. Jan 2003 A1
20030018704 Polychronidis et al. Jan 2003 A1
20030023623 Horvitz et al. Jan 2003 A1
20030023681 Brown et al. Jan 2003 A1
20030026289 Mukherjee et al. Feb 2003 A1
20030028621 Furlong et al. Feb 2003 A1
20030035529 Baker Feb 2003 A1
20030037103 Salmi et al. Feb 2003 A1
20030037113 Petrovykh Feb 2003 A1
20030041101 Hansche et al. Feb 2003 A1
20030048195 Trossen Mar 2003 A1
20030052915 Brown et al. Mar 2003 A1
20030055897 Brown et al. Mar 2003 A1
20030059029 Mengshoel et al. Mar 2003 A1
20030065721 Roskind Apr 2003 A1
20030065788 Salomaki Apr 2003 A1
20030069934 Garcia-Martin et al. Apr 2003 A1
20030073440 Mukherjee et al. Apr 2003 A1
20030078979 Sagi Apr 2003 A1
20030093482 Watanabe et al. May 2003 A1
20030101278 Garcia-Luna-Aceves et al. May 2003 A1
20030104819 Knauerhase et al. Jun 2003 A1
20030105820 Haims et al. Jun 2003 A1
20030129972 Tosaki et al. Jul 2003 A1
20030134638 Sundar et al. Jul 2003 A1
20030135624 McKinnon et al. Jul 2003 A1
20030145081 Lau et al. Jul 2003 A1
20030154293 Zmolek Aug 2003 A1
20030174814 Diacakis Sep 2003 A1
20030181693 Cook et al. Sep 2003 A1
20030206619 Curbow et al. Nov 2003 A1
20030217099 Bobde et al. Nov 2003 A1
20030217142 Bobde et al. Nov 2003 A1
20030225848 Heikes et al. Dec 2003 A1
20030229722 Beyda Dec 2003 A1
20030233537 Wohlgemuth et al. Dec 2003 A1
20030235287 Margolis Dec 2003 A1
20040037271 Liscano et al. Feb 2004 A1
20040044647 Samenkaita Mar 2004 A1
20040054805 Sen et al. Mar 2004 A1
20040059781 Yoakum et al. Mar 2004 A1
20040072593 Robbins et al. Apr 2004 A1
20040073614 Blohm Apr 2004 A1
20040122810 Mayer Jun 2004 A1
20040122901 Sylvain Jun 2004 A1
20040125941 Yoakum Jul 2004 A1
20040153506 Ito et al. Aug 2004 A1
20040172528 Tenereillo Sep 2004 A1
20040174966 Koch Sep 2004 A1
20040177278 Lipton Sep 2004 A1
20040203746 Knauerhase et al. Oct 2004 A1
20040203927 Kraft Oct 2004 A1
20040210670 Anerousis et al. Oct 2004 A1
20040249776 Horvitz et al. Dec 2004 A1
20040266398 Adamczyk et al. Dec 2004 A1
20050041580 Petrovykh Feb 2005 A1
20050044144 Malik et al. Feb 2005 A1
20050044234 Coughlin et al. Feb 2005 A1
20050074101 Moore et al. Apr 2005 A1
20050086211 Mayer Apr 2005 A1
20050117570 Cetusic et al. Jun 2005 A1
20050159153 Mousseau et al. Jul 2005 A1
20050172011 Gourlay et al. Aug 2005 A1
20060003766 Parameswar et al. Jan 2006 A1
20060078101 Light et al. Apr 2006 A1
20070189489 Carnazza et al. Aug 2007 A1
20100149998 Schryer et al. Jun 2010 A1
Foreign Referenced Citations (14)
Number Date Country
1071295 Jan 2001 EP
1 148 688 Oct 2001 EP
1 225 752 Jul 2002 EP
1 329 810 Jul 2003 EP
1459508 Sep 2004 EP
20043067 Sep 2004 NO
9917194 Apr 1999 WO
9934628 Jul 1999 WO
0135615 May 2001 WO
03056799 Jul 2003 WO
03058921 Jul 2003 WO
2004057816 Mar 2004 WO
2004028114 Apr 2004 WO
2007045947 Apr 2007 WO
Non-Patent Literature Citations (119)
Entry
Examiner's Answer to Appeal Brief for U.S. Appl. No. 10/079,237 mailed Feb. 23, 2010, 9 pages.
Final Office Action for U.S. Appl. No. 10/079,237 mailed May 12, 2009, 9 pages.
Non-final Office Action for U.S. Appl. No. 10/079,237 mailed Nov. 26, 2008, 8 pages.
Day, M.; Rosenberg, J.; “Request for Comments (RFC) 2778: A Model for Presence and Instant Messaging;” IETF—Network Working Group, Information Memo, Feb. 2000, XP002201444.
Rosenberg, J.; Schulzrinne, H.; “draft-rosenberg-sip-pip.00.txt: SIP for Presence;” IETF Internet Draft, Nov. 13, 1998, pp. 1-22, XP002325320.
European Search Report for 03257957.5 mailed Aug. 24, 2005.
Brodsky et al.; “Resource Management in Agent-based Distributed Environments;” Proceedings of the 1999 International Symposium on Kyoto, Japan, Nov. 28-30, 1999, pp. 95-108, XP010379697.
Chapin et al.; “Resource Management in Legion;” Future Generations Computer Systems, Elsevier Science Publishers, Amsterdam, Netherlands, vol. 15, No. 5-6, Oct. 1999, pp. 583-594, XP004176748.
Krauter et al.; “A Taxonomy and Survey of Grid Resource Management Systems for Distributed Computing;” Software Practice & Experience, John Wiley & Sons Ltd., Chichester, Great Britain, vol. 32, No. 2, Feb. 2, 2002, pp. 135-164, XP001091827.
International Search Report for PCT/IB03/05780 mailed Jan. 27, 2005.
Day et al.; “A Model for Presence and Instant Messaging;” IETF Request for Comments, No. 2778, Feb. 2000, pp. 1-17.
Rosenberg et al.; “SIP for Presence;” IEFT Internet Draft, Nov. 13, 1998, XP002173451.
Shim et al.; “An Example of Using Presence and Availability in an Enterprise for Spontaneous, Multiparty, Multimedia Communications;” IPTEL 2001, Apr. 3, 2001, XP002252324.
International Search Report for PCT/IB03/06073, mailed May 4, 2004.
Eschenburg, Axel; “Wo Laufen Sie Denn? ICQ Haelt Verbindung Zu Bekannten;” CT Magazin Fuer Computer Technik, Verlag Heinz Heise GmbH, Hannover, Germany, No. 22, Oct. 26, 1998; pp. 92-95, Translation Provided.
Kohda et al.; “IMPP: A New Instant Messaging Standard and Its Impact on Internet Business;” Fujitsu—Scientific and Technical Journal, Fujitsu Limited, Kawasaki, Japan, vol. 36, No. 2, Dec. 2000, pp. 147-153.
International Search Report for related application PCT/US02/40882, mailed Oct. 8, 2003.
PCT International Search Report for PCT/IB03/04250, mailed Jan. 19, 2004.
PCT International Search Report for PCT/IB03/03962, mailed Jan. 28, 2004.
Final Office Action for U.S. Appl. No. 10/247,591 mailed Oct. 21, 2008, 14 pages.
International Search Report for PCT/IB03/03994 mailed Mar. 30, 2004, 9 pages.
International Search Report for PCT/IB02/05523 mailed Apr. 15, 2003, 6 pages.
European Search Report for patent application 03797454.0 mailed Nov. 11, 2011, 6 pages.
Final Office Action for U.S. Appl. No. 10/079,237 mailed Jul. 16, 2008, 11 pages.
Non-final Office Action for U.S. Appl. No. 10/079,237 mailed Dec. 26, 2007, 7 pages.
Non-final Office Action for U.S. Appl. No. 10/079,237 mailed Jul. 6, 2007, 7 pages.
Non-final Office Action for U.S. Appl. No. 10/079,237 mailed Jan. 11, 2007, 7 pages.
Non-final Office Action for U.S. Appl. No. 10/079,237 mailed Jul. 28, 2006, 4 pages.
Advisory Action for U.S. Appl. No. 10/079,237 mailed Feb. 9, 2006, 3 pages.
Final Office Action for U.S. Appl. No. 10/079,237 mailed Nov. 17, 2005, 9 pages.
Non-final Office Action for U.S. Appl. No. 10/079,237 mailed Jun. 16, 2005, 8 pages.
Non-final Office Action for U.S. Appl. No. 10/079,237 mailed Dec. 27, 2004, 9 pages.
Notice of Allowance for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Apr. 12, 2007, 2 pages.
Supplementary Notice of Allowance for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Feb. 28, 2007, 2 pages.
Notice of Allowance for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Jan. 17, 2007, 4 pages.
Non-final Office Action for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Jun. 29, 2006, 5 pages.
Advisory Action for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Jan. 19, 2006, 3 pages.
Final Office Action for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Oct. 19, 2005, 5 pages.
Non-final Office Action for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed May 6, 2005, 5 pages.
Advisory Action for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Apr. 1, 2005, 3 pages.
Final Office Action for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed Jan. 14, 2005, 4 pages.
Non-final Office Action for U.S. Appl. No. 10/100,703 (now US patent 7,227,937) mailed May 20, 2004, 4 pages.
Final Office Action for U.S. Appl. No. 10/034,429 mailed Jun. 29, 2009, 13 pages.
Non-final Office Action for U.S. Appl. 10/034,429 Nov. 13, 2008, 11 pages.
Advisory Action for U.S. Appl. No. 10/034,429 mailed Oct. 8, 2008, 3 pages.
Final Office Action for U.S. Appl. No. 10/034,429 mailed Jul. 25, 2008, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/034,429 Sep. 7, 2007, 10 pages.
Advisory Action for U.S. Appl. No. 10/034,429 mailed Aug. 6, 2007, 3 pages.
Final Office Action for U.S. Appl. No. 10/034,429 mailed May 15, 2007, 13 pages.
Non-final Office Action for U.S. Appl. No. 10/034,429, Nov. 16, 2006, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/034,429, Apr. 24, 2006, 12 pages.
Advisory Action for U.S. Appl. No. 10/034,429 mailed Jan. 3, 2006, 3 pages.
Final Office Action for U.S. Appl. No. 10/034,429 mailed Oct. 20, 2005, 13 pages.
Non-final Office Action for U.S. Appl. No. 10/034,429, Apr. 27, 2005, 11 pages.
Examiner's Answer to Appeal Brief for U.S. Appl. No. 10/723,808 mailed Dec. 22, 2010, 18 pages.
Final Office Action for U.S. Appl. No. 10/723,808 mailed Mar. 29, 2010, 13 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed Aug. 3, 2008, 12 pages.
Final Office Action for U.S. Appl. No. 10/723,808 mailed May 6, 2009, 15 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed Nov. 12, 2008, 14 pages.
Final Office Action for U.S. Appl. No. 10/723,808 mailed Aug. 14, 2008, 15 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed Feb. 22, 2008, 13 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed Sep. 26, 2007, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed Apr. 16, 2007, 13 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed Oct. 10, 2006, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed May 9, 2006, 12 pages.
Final Office Action for U.S. Appl. No. 10/723,808 mailed Feb. 8, 2006, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/723,808 mailed Sep. 9, 2005, 14 pages.
Examiner's Answer to Appeal Brief for U.S. Appl. No. 10/034,431 mailed Mar. 17, 2010, 13 pages.
Examiner's Answer to Appeal Brief for U.S. Appl. No. 10/034,431 mailed Aug. 23, 2007, 19 pages.
Examiner's Answer to Appeal Brief for U.S. Appl. No. 10/034,431 mailed Jun. 16, 2006, 11 pages.
Advisory Action for U.S. Appl. No. 10/034,431 mailed Nov. 22, 2005, 3 pages.
Final Office Action for U.S. Appl. No. 10/034,431 mailed Sep. 6, 2005, 9 pages.
Non-final Office Action for U.S. Appl. No. 10/034,431 mailed Mar. 1, 2005, 9 pages.
Rivera et al.; “The Effect of Emotional Icons on Remote Communications;” CHI 96 Interactive Posters, New Mexico State University Department of Psychology, Las Cruces, NM, Apr. 13-18, 1996, pp. 99-100.
Notice of Allowance for U.S. Appl. No. 10/101,286 mailed Aug. 11, 2003, 10 pages.
Day et al.; “Instant Messaging/ Presence Protocol Requirements;” Request for Comment (RFC) 2779, Feb. 2000, 53 pages.
Crocker et al.; “A Common Profile for Instant Messaging (CPIM);” (work in progress), Feb. 2001, 75 pages.
Notice of Allowance for U.S. Appl. No. 10/119,923 mailed Jun. 16, 2006, 2 pages.
Notice of Allowance for U.S. Appl. No. 10/119,923 mailed Mar. 8, 2006, 2 pages.
Notice of Allowance for U.S. Appl. No. 10/119,923 mailed Jan. 12, 2006, 4 pages.
Notice of Allowance for U.S. Appl. No. 10/119,923 mailed Aug. 5, 2005, 7 pages.
Non-final Office Action for U.S. Appl. No. 10/119,923 mailed Feb. 23, 2005, 7 pages.
Advisory Action for U.S. Appl. No. 10/119,923 mailed Nov. 29, 2004, 3 pages.
Final Office Action for U.S. Appl. No. 10/119,923 mailed Sep. 13, 2004, 10 pages.
Non-final Office Action for U.S. Appl. No. 10/119,923 mailed Feb. 6, 2004, 7 pages.
Notice of Allowance for U.S. Appl. No. 10/262,393 mailed May 15, 2009, 3 pages.
Notice of Allowance for U.S. Appl. No. 10/262,393 mailed Feb. 23, 2009, 7 pages.
Final Office Action for U.S. Appl. No. 10/262,393 mailed Jan. 25, 2008, 5 pages.
Non-final Office Action for U.S. Appl. No. 10/262,393 mailed Jul. 9, 2007, 7 pages.
Final Office Action for U.S. Appl. No. 10/262,393 mailed Jul. 24, 2006, 6 pages.
Non-final Office Action for U.S. Appl. No. 10/262,393 mailed Jan. 24, 2006, 6 pages.
Non-final Office Action for U.S. Appl. No. 10/262,393 mailed Aug. 23, 2005, 5 pages.
Advisory Action for U.S. Appl. No. 10/262,393 mailed May 4, 2005, 3 pages.
Final Office Action for U.S. Appl. No. 10/262,393 mailed Feb. 23, 2005, 6 pages.
Non-final Office Action for U.S. Appl. No. 10/262,393 mailed Jul. 7, 2004, 4 pages.
Notice of Allowance for U.S. Appl. No. 10/336,523 mailed Dec. 15, 2009, 6 pages.
Board of Patent Appeals and Interferences Decision for U.S. Appl. No. 10/336,523 mailed Sep. 9, 2009, 14 pages.
Examiner's Answer to Appeal Brief for U.S. Appl. No. 10/336,523 mailed Oct. 30, 2007, 11 pages.
Advisory Action for U.S. Appl. No. 10/336,523 mailed Mar. 26, 2007, 4 pages.
Final Office Action for U.S. Appl. No. 10/336,523 mailed Jan. 4, 2007, 10 pages.
Non-final Office Action for U.S. Appl. No. 10/336,523 mailed Jun. 2, 2006, 7 pages.
Handley et al.; “SIP: Session Initiated Protocol, RFC 2543;” Mar. 1999, 119 pages.
Advisory Action for U.S. Appl. No. 10/079,237 mailed Oct. 6, 2008, 7 pages.
Notice of Allowance for U.S. Appl. No. 10/036,247 (now US patent 7,299,286) mailed Jul. 12, 2007, 4 pages.
Non-final Office action for U.S. Appl. No. 10/036,247 (now US patent 7,299,286) mailed Nov. 1, 2006, 5 pages.
Advisory Action for U.S. Appl. No. 10/036,247 (now US patent 7,299,286) mailed Dec. 27, 2005, 3 pages.
Final Office Action for U.S. Appl. No. 10/036,247 (now US patent 7,299,286) mailed Aug. 25, 2005, 15 pages.
Non-final Office action for U.S. Appl. No. 10/036,247 (now US patent 7,299,286) mailed Apr. 28, 2005, 13 pages.
Advisory Notice for U.S. Appl. No. 10/247,591 mailed Jan. 9, 2009, 6 pages.
Non-final Office Action for U.S. Appl. No. 10/247,591 mailed Apr. ?, 2008, 13 pages.
Non-final Office Action for U.S. Appl. No. 10/247,591 mailed Apr. 19, 2007, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/247,591 mailed Oct. 9, 2007, 11 pages.
Non-final Office Action for U.S. Appl. No. 10/247,591 mailed Nov. 2, 2006, 2 pages.
Final Office Action for U.S. Appl. No. 10/247,591 mailed Jul. 14, 2006, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/247,591 mailed Jan. 6, 2006, 11 pages.
Advisory Action for U.S. Appl. No. 10/325,144 mailed Mar. 5, 2007, 15 pages.
Final Office Action for U.S. Appl. No. 10/325,144 mailed Dec. 18, 2006, 12 pages.
Non-final Office Action for U.S. Appl. No. 10/325,144 mailed Jul. 3, 2006, 8 pages.
Examiner's Answer to Appeal Brief for U.S. Appl. No. 10/079,237 mailed Feb. 25, 2010, 10 pages.
Related Publications (1)
Number Date Country
20130145042 A1 Jun 2013 US
Continuations (1)
Number Date Country
Parent 10245476 Sep 2002 US
Child 13756075 US