3.2.4.1 User Agent Operation

To use the EPID endpoint identification mechanism defined in this section, a user agent MUST add the epid parameter with a value obtained as described in section 3.2.3 to the From header field of every request that it generates, whether or not the request is part of a SIP transaction.

The SIP dialog state created by the user agent that is compliant with this protocol MUST include the remote epid parameter in addition to other elements defined in [RFC3261] section 12. For a user agent client (UAC), a remote epid is set to the value of the epid parameter in the To header field, if it is present, and is set to empty if it is not present. For a user agent server (UAS), the remote epid parameter is set to the epid parameter value in the From header field, if it is present, and is set to empty if it is not present.

When forming a request within an existing SIP transaction that contains a non-empty remote epid in its state, the user agent that is compliant with this protocol MUST add the epid parameter with the value of remote epid to the To header field.

If the user agent that is compliant with this protocol initiates a call to a specific SIP endpoint, it SHOULD obtain the address-of-record and the value of the epid parameter for such an endpoint. The user agent can obtain the address-of-record and the epid parameter from the previous dialog with the same endpoint or from the presence document described in [MS-PRES], or it can use any other mechanism. The user agent SHOULD then create a request with the desired address-of-record placed in the Request-URI field, place the same address-of-record in the URI of the To header field, and add an epid parameter to the To header field.