2.2.1.2 ms-diagnostics-public Header
The ms-diagnostics (section 2.2.1.1) header can contain sensitive enterprise information that is not to be passed to users across an enterprise boundary, such as to federated partners. The ms-diagnostics-public header can be used to pass error and troubleshooting information to federated users and to unauthenticated users.
The rules for adding this header are as follows:
§ The SIP server MAY<4> add one ms-diagnostics-public header to a SIP BYE or CANCEL request or a SIP response sent to the SIP protocol client when communicating outside the enterprise boundary.
§ The SIP server MUST NOT add more than one ms-diagnostics-public header to the same SIP request or SIP response sent to the SIP protocol client.
§ The SIP protocol client MUST NOT add the ms-diagnostics-public header to SIP requests or SIP responses sent to the SIP server.
Header Format
The format of the ms-diagnostics-public header is similar to the ms-diagnostics header, as defined in section 2.2.1.1, with the exception that the ms-diagnostics-public header MUST NOT contain the source parameter.
Format for the ms-diagnostics-public header in ABNF is specified as follows.
The parameters HCOLON, SEMI, generic-param, and quoted-string are as defined in [RFC3261] Section 25.1.
-
ms-diagnostics-public HCOLON ErrorId SEMI reason-param * (SEMI generic-param)
ErrorId (unsigned-integer): Required. Value MUST be within unsigned integer range. ErrorId represents a specific error condition, and SHOULD be used by the SIP protocol client to determine appropriate error handling behavior.
reason-param: Required. Equals "reason=" reason-value.
reason-value: A quoted-string. Optional. Reason indicates a specific reason for an explanation of the error. A SIP protocol client SHOULD NOT use this parameter value to determine error handling behavior. This parameter value can be used for SIP server for troubleshooting purposes, although this is implementation-specific.
*(SEMI generic-param): Optional. Generic-param can be used to define custom attribute-value pairs to convey additional troubleshooting information to the SIP protocol client.
The following example is an ms-diagnostics-public header. For a list of all error IDs and their corresponding reasons, see section 7 and section 8.
-
ms-diagnostics-public: 3027;reason=" User not allowed in closed conference"
The preceding error indicates that the user attempted to join a "Closed Conference", but was not authorized to do so.
In the preceding example:
ErrorId = 3027.
reason = "User not allowed in closed conference".