2.2.5 Contact Header Field Extensions

This protocol defines a new Contact header field parameter and its value. The original ABNF, as defined in [RFC5234], for the Contact header field in [RFC3261] section 25 is extended as follows:

contact-params = c-p-q / c-p-expires 
                 / c-p-proxy
                 / contact-extension
c-p-proxy = "proxy=" "replace"

In addition to the extension defined in this protocol, this protocol uses the sip.instance media feature tag introduced in [IETFDRAFT-MCICSIP-11] section 12.5, with syntax defined in [IETFDRAFT-MCICSIP-11] section 10, for use as the Contact header field parameter. The syntax for the +sip.instance parameter in the Contact header field from [IETFDRAFT-MCICSIP-11] section 10 is as follows:

c-p-instance   =  "+sip.instance" EQUAL
                  LDQUOT "<" instance-val ">" RDQUOT
instance-val   = *uric ; defined in [RFC3986]

Because this protocol requires that only a universally unique identifier (UUID) Uniform Resource Name (URN) be used as the +sip.instance parameter value, the instance-val definition is restricted to the UUID URN syntax (UUID-URN), as defined in [RFC4122] and [RFC2141].

The URN definition from [RFC2141], as applicable to the UUID URN defined in [RFC4122] is as follows:

UUID-URN = "urn:" UUID-NID ":" UUID-NSS

The UUID namespace identifier syntax from [RFC4122] is as follows:

UUID-NID = "uuid" 

The UUID namespace specific string syntax from [RFC4122] is as follows:

UUID-NSS               = time-low "-" time-mid "-"
                         time-high-and-version "-"
                         clock-seq-and-reserved
                         clock-seq-low "-" node
time-low               = 4hexOctet
time-mid               = 2hexOctet
time-high-and-version  = 2hexOctet
clock-seq-and-reserved = hexOctet
clock-seq-low          = hexOctet
node                   = 6hexOctet
hexOctet               = hexDigit hexDigit
hexDigit =
            "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
            "a" / "b" / "c" / "d" / "e" / "f" /
            "A" / "B" / "C" / "D" / "E" / "F"
 

Also, the SIP user agent uses the sip.rendering media feature tag defined in [RFC4235] section 5.2. This, in conjunction with procedures described for music-on-hold specified in [MS-SDPEXT] section 3.1.5.27, can be used by SIP user agents to signal that the music-on-hold feature is being invoked by including it in the SIP request that initiates music-on-hold.<2>