3.1.5.26 Extensions for diagnostic info in SDP messages

This protocol defines a new media level attribute a=x-ms-SDP-diagnostics<52>. An SDP endpoint SHOULD add this attribute if it requires the receiving endpoint to display a notification regarding the status of the SDP session.

The format for the a=x-ms-SDP-diagnostics in ABNF, as described in [RFC5234], is as follows. It is similar to that of the ms-diagnostics-public header defined in [MS-OCER].

The parameters EQUAL, HCOLON, SEMI, generic-param, and quoted-string are as defined in [RFC3261] section 25.1.

 a EQUAL x-ms-SDP-diagnostics HCOLON  ErrorId  *(.SubErrorId) SEMI reason-param * (SEMI generic-param)
ErrorId = unsigned-integer
 
SubErrorId = unsigned-integer
 
reason-param = "reason=" reason-value
 
reason-value = quoted-string

ErrorId (unsigned-integer): Required. Value MUST be within unsigned 32-bit integer range. Represents a specific error condition, and SHOULD be used by the SIP protocol client to determine error handling behavior.

SubErrorId (unsigned-integer): Optional. If present, its value MUST be within the unsigned 32-bit integer range. SubErrorId can be used to differentiate related scenarios that result in the same ErrorId, and can be used by the SIP client to determine error handling behavior.

reason-value: Optional. The reason SHOULD indicate an explanation of the error. A SIP client SHOULD NOT use this parameter value to determine error handling behavior. This parameter value can be used for SIP server troubleshooting purposes.

*(SEMI generic-param): Optional. Can be used to define custom attribute-value pairs, to convey additional troubleshooting information to the SIP client.

The following table lists the allowed values. More values might be added in the future. If an ErrorId not listed here is received by an SDP endpoint, it SHOULD be ignored.

ErrorId

Reason string

Explanation

53000

Insufficient Bandwidth Available

Bandwidth policy checks on server failed for this particular m= line.

53001

Candidates Restricted

Bandwidth policy checks required some of the original a=candidate lines to be removed for bandwidth limitation reasons.

Following example SDP answer contains an a=x-ms-sdp-diagnostics attribute in the media description for m=video:

  
 v=0
 o=- 168 0 IN IP4 172.18.0.106
 s=session
 c=IN IP4 172.18.0.106
 b=CT:1000
 t=0 0
 m=audio 51038 RTP/SAVP 9 111 0 8 97 101 13 118
 c=IN IP4 172.18.0.106
 a=rtcp:51039
 a=ice-ufrag:VUa7
 a=ice-pwd:uSvOqE8rrlf2065N/AymKLpL
 a=candidate:1 1 UDP 2130706431 172.18.0.106 51038 typ host
 a=candidate:1 2 UDP 2130705918 172.18.0.106 51039 typ host
 a=candidate:3 1 tcp-act 1684798719 172.18.0.106 50112 typ srflx raddr 172.18.0.106 rport 50112
 a=candidate:3 2 tcp-act 1684798206 172.18.0.106 50112 typ srflx raddr 172.18.0.106 rport 50112
 a=label:main-audio
 a=cryptoscale:1 server AES_CM_128_HMAC_SHA1_80 inline:8q4vdHtbV3uIGM7z+jgLTxltWIhd9vedIMXiO4MB|2^31|1:1
 a=rtpmap:9 g722/8000
 a=fmtp:9 bitrate=64000
 a=rtpmap:111 SIREN/16000
 a=fmtp:111 bitrate=16000
 a=rtpmap:0 PCMU/8000
 a=rtpmap:8 PCMA/8000
 a=rtpmap:97 RED/8000
 a=fmtp:97 red/8000
 a=rtpmap:101 telephone-event/8000
 a=rtpmap:13 CN/8000
 a=rtpmap:118 CN/16000
 a=ptime:20
 m=video 0 RTP/AVP 121
 a=x-ms-sdp-diagnostics:53000; reason="Insufficient Bandwidth Available"
 a=label:main-video
 a=rtpmap:121 x-rtvc1/90000
 a=fmtp:121 CIF=15;VGA=15;PANO=15