# US 2014/0156868 A1 · Proximity Detection for Media Proxies

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156868 A1
- Document ID: US20140156868A1
- Status: Published application
- Kind: A1
- Application number: 14/174,254
- Filed: 2014-02-06
- Published: 2014-06-05
- Earliest claimed: 2002-09-17
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Sanjoy Sen; Sean March; Cedric Aoun
- Web page: https://patentgrep.com/patent/US20140156868A1

## CPC

- H04L 65/1104: Session initiation protocol [SIP]
- H04L 65/1026: {at the edge}
- H04L 65/103: {in the network}
- H04L 65/1036: {at the edge}
- H04L 65/104: {in the network}
- H04L 65/1096: Supplementary features, e.g. call forwarding or call holding (systems providing special services or facilities to telephony subscribers H04M3/42)
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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.

## Claims

### Claim at position 1

1-10. (canceled)

### Claim 11

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 a plurality of media proxies in the list of media proxies;
the first server receiving a plurality of messages from the plurality of media proxies in the list of media proxies in response to requests sent from the client to the plurality of media proxies in the list of media proxies;
the first server determining proximity between the client and each of the plurality of messages based on the plurality of messages received from the plurality of media proxies; and
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.

### Claim 12 (depends on 11)

The method of claim 11, wherein said determining the proximity between the client and each of the plurality of messages is performed based on times of receipt of responses received from the plurality of media proxies.

### Claim 13 (depends on 11)

The method of claim 11, wherein said determining the proximity between the client and each of the plurality of messages is performed based on round trip times to and from the one or more media proxies.

### Claim 14 (depends on 11)

The method of claim 11, wherein said determining the proximity between the client and each of the plurality of messages is performed based on:
times of receipt of responses received from the plurality of media proxies; and
round trip times to and from the one or more media proxies;
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.

### Claim 15 (depends on 11)

The method of claim 11, wherein the first server comprises an application server.

### Claim 16 (depends on 11)

The method of claim 11, wherein the request from the client comprises a session initiation protocol (SIP) request.

### Claim 17

A first server, comprising:
communication circuitry configured to communicate with a client; and
processing hardware coupled to the communication circuitry, wherein the processing hardware is configured 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 a plurality of media proxies in the list of media proxies;
receive a plurality of messages from the plurality of media proxies in the list of media proxies in response to requests sent from the client to the plurality of media proxies in the list of media proxies;
determine proximity between the client and each of the plurality of messages based on the plurality of messages received from the plurality of media proxies; and
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.

### Claim 18 (depends on 17)

The first server of claim 17, wherein determining the proximity between the client and each of the plurality of messages is performed based on times of receipt of responses received from the plurality of media proxies.

### Claim 19 (depends on 17)

The first server of claim 17, wherein said determining the proximity between the client and each of the plurality of messages is performed based on round trip times to and from the one or more media proxies.

### Claim 20 (depends on 17)

The first server of claim 17, wherein said determining the proximity between the client and each of the plurality of messages is performed based on:
times of receipt of responses received from the plurality of media proxies; and
round trip times to and from the one or more media proxies;
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.

### Claim 21 (depends on 17)

The first server of claim 17, wherein the first server comprises an application server.

### Claim 22 (depends on 17)

The first server of claim 17, wherein the request from the client comprises a session initiation protocol (SIP) request.

### Claim 23

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 a plurality of media proxies in the list of media proxies;
receive a plurality of messages from the plurality of media proxies in the list of media proxies in response to requests sent from the client to the plurality of media proxies in the list of media proxies;
determine proximity between the client and each of the plurality of messages based on the plurality of messages received from the plurality of media proxies; and
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.

### Claim 24 (depends on 23)

The non-transitory, computer accessible memory medium of claim 23, wherein determining the proximity between the client and each of the plurality of messages is performed based on times of receipt of responses received from the plurality of media proxies.

### Claim 25 (depends on 23)

The non-transitory, computer accessible memory medium of claim 23, wherein said determining the proximity between the client and each of the plurality of messages is performed based on round trip times to and from the one or more media proxies.

### Claim 26 (depends on 23)

The non-transitory, computer accessible memory medium of claim 23, wherein said determining the proximity between the client and each of the plurality of messages is performed based on:
times of receipt of responses received from the plurality of media proxies; and
round trip times to and from the one or more media proxies;
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.

### Claim 27 (depends on 23)

The non-transitory, computer accessible memory medium of claim 23, wherein the program instructions are executable by an application server.

### Claim 28 (depends on 23)

The non-transitory, computer accessible memory medium of claim 23, wherein the request from the client comprises a session initiation protocol (SIP) request.
