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".