In versions of Office Communications Server prior to Office Communications Server 2007, the server used a proprietary extension called End-point Identifier (EPID) to address a specific User Agent. Starting with Office Communications Server 2007, Globally Routable User Agent URI (GRUU) replaces EPID where possible. Office Communications Server 2007 R2 supports backwards compatibility with EPID, but to the degree possible, all new applications and clients use GRUU instead.
SIP Processing and GRUU
GRUU is an extension of Session Initiation Protocol
(SIP) that is currently defined in an Internet draft at
GRUU can be used within multiple separate SIP dialogs to reach the same device. This works not just for client applications but also server applications (for example, the Mediation Server). The Office Communicator client running on each computer has its own GRUU that allows other applications to route messages specifically to that device.
GRUU is widely applied across the server to solve a variety of problems, including, but not limited to, Enterprise Voice call transfer or conference escalation scenarios, which require the ability to establish a new dialog with a specific endpoint in an existing dialog. GRUU is also used to address scenarios where one endpoint in a dialog is server based and, therefore, the To/From header in the dialog cannot be resolved to a specific endpoint. In the original SIP standard, it was not possible to construct an URI which could be routed to from anywhere (including the Internet) and reach a specific device or User Agent.
GRUU is a SIP URI that generally follows the form:
sip:<user>@<domain or FQDN>;opaque=<private>;grid=<optional cookie>;gruu
The opaqueparameter, in combination with the address of record (AOR), makes this URI unique even though the prefix of the URI is still the standard user address. The gruuparameter specifies that this URI has all the properties of a GRUU and can be used within multiple separate SIP dialogs to reach the same user agent (device). The gridparameter is optional and is inserted by a user agent instance when the user agent uses the GRUU to route to itself. If the grid is included in a request, it helps the user agent instance determine the context of the request.
The server is responsible for creating a GRUU and returning it to the client through the SIP registration mechanism, if the client requests one at registration time. The GRUU returned to the client during the registration process is not managed or exposed to the administrator in any way. This process is handled entirely by the User Services module and can be inspected only by examining the registration database itself. The GRUU can be used anywhere you would typically use a URI.
How GRUU Is Used by Office Communications Server
GRUU is used by Office Communications Server in the following ways:
- Office Communicator 2007 R2 clients request and receive a GRUU
at registration time, which they will use in their Contact header
for all subsequent SIP dialogs, such as Enterprise Voice calls,
conferencing, and so on.
- The Microsoft Office Live Meeting client uses one aspect of
GRUU known as the "sip.instance" to create a unique identifier for
each meeting client in a conference. This is necessary since the
meeting client does not actually register with the server and
therefore cannot obtain a genuine GRUU from the server for use in
its SIP Contact header.
- The client uses the GRUU of the Media Relay Authentication
Server (MRAS) application (collocated with the A/V Conferencing
Server) to send requests to the MRAS server, without necessarily
having to know the FQDN of the server or be able to directly
connect to the MRAS server. The client learns the MRAS applications
GRUU through in-band provisioning. (The A/V Conferencing Server
will use the MRAS application GRUU that is configured in WMI.)
- Enterprise Voice endpoints send their Quality of Service (QoS)
metric reports to a GRUU, which identifies the metrics collection
point. (The Mediation Server and A/V Conferencing Server will use
the collection point GRUU configured in WMI.)
- The voicemail server (generally Exchange Unified Messaging) for
a given user will be identified by a GRUU. The client will learn
this GRUU through in-band provisioning (for itself) and through
presence (for someone else). An application running on the server,
ExUM Routing, resolves the GRUU to a specific Exchange Unified
Messaging server that handles user voice mailboxes. An application
can be written that will resolve the GRUU for non-Exchange voice
- Pools use GRUU to address other pools for batched
- The Mediation Server uses GRUU to identify different outbound
gateways that are connected to the Mediation Server. This allows
Office Communications Server to send messages to a single FQDN/port
on the Mediation Server and have the messages routed correctly to
the proper outbound IP-PSTN gateway. (This GRUU is not exposed in
any way to the client; it is used only for server-to-server
During conference creation, the client addresses the Focus Factory by using a GRUU that is composed in part by the meeting organizers SIP URI. This Focus Factory GRUU is sent to the client through in-band provisioning.