The Contact header field provides a SIP or SIPS URI that can be used to contact that specific instance of the User Agent for subsequent requests. The Contact header field MUST be present and contain exactly one SIP or SIPS URI in any request that can result in the establishment of a dialog. For the methods defined in this specification, that includes only the INVITE request. For these requests, the scope of the Contact is global. That is, the Contact header field value contains the URI at which the User Agent would like to receive requests, and this URI MUST be valid even if used in subsequent requests outside of any dialogs.
If the Request-URI or top Route header field value contains a SIPS URI, the Contact header field MUST contain a SIPS URI as well.
Messages and Contact Headers
q-valuevalue is used to prioritize addresses in a list of contact addresses. The
expiresvalue suggests an expiration interval that indicates how long the client would like a registration to be valid for a specific address. These parameters are only used when the Contact is present in a:
Contact: "Mr. Watson" sip:firstname.lastname@example.org; q=0.7; expires=3600, "Mr. Watson" mailto:email@example.com; q=0.1
expiresparameter as delta-seconds. When a client sends a REGISTER request, it MAY suggest an expiration interval that indicates how long the client would like the registration to be valid for a specific address. There are two ways in which a client can suggest an expiration interval for a binding:
A User Agent requests the immediate removal of a binding by specifying an expiration interval of "0" for that contact address in a REGISTER request. User Agents SHOULD support this mechanism so that bindings can be removed before their expiration interval has passed. The REGISTER-specific Contact header field value of "*" applies to all registrations, but it MUST NOT be used unless the Expires header field is present with a value of "0". The "*" value can be determined if "this.getNameAddress().isWildcard() = = true".
expiresnew relative value of the expires parameter. 0 implies removal of Registration specified in Contact Header.
javax.sip.InvalidArgumentExceptionif supplied value is less than zero.
qValuevalue of the Name Address. If more than one Contact is sent in a REGISTER request, the registering UA intends to associate all of the URIs in these Contact header field values with the address-of-record present in the To field. This list can be prioritized with the "q" parameter in the Contact header field. The "q" parameter indicates a relative preference for the particular Contact header field value compared to other bindings for this address-of-record. A value of
qValueparamater is not set.
qValue- the new float value of the q-value parameter.
javax.sip.InvalidArgumentExceptionif the q-value parameter value is not
0 and 1.
q-valueparameter of this ContactHeader. The
q-valueparameter indicates the relative preference amongst a set of locations.
q-valuesare decimal numbers from 0 to 1, with higher values indicating higher preference.
q-valueparameter of this ContactHeader, -1 if the q-value is not set.