SDP:Example:ChromeToAiortc
lastmod 2024-11-06created 2021-11-0912 edits
Analysis of the SDP exchanged during communication between Chrome and aiortc.
offer SDP
The offer information: the Local Description generated by Chrome and sent to aiortc.
Session description
| Protocol version. Fixed at 0 | |
| Indicates the Owner/Creator that generated the SDP message. In order:
| |
| Session name: required, with one or more UTF-8 encoded characters. Here it is "-". | |
| Timing, in order:
Note that "0 0" means a fixed session. This means the session is permanent and does not expire. | |
| Media bundle group user-defined in the SDP. The list after respectively. | |
| See RTCConfiguration.offerExtmapAllowMixed 1. Allows backward interoperability with systems that do not support mixing one-byte and two-byte header extensions. <- what does this even mean... | |
| The abbreviations are as follows:
A session-level attribute is defined to signal the semantics associated with msid grouping. This allows msid groups with different semantics to coexist. 2 3 |
Media descriptions (video)
| Defines attributes and information about the media stream, in order:
During negotiation between peers, the preferred profile numbers are tried in order. For example, it checks whether the codec for 96 is mutually supported, and if not, negotiates again with 97. Multiple media lines can be declared, and each defines only the negotiation details for that media beneath it. That is, order matters. Detailed information about the formats is specified further below after | |
| Exposes a reachable address for the peer connection. Usually reachable addresses are tested separately from the ICE candidates, so the address on the c line is not used. <- needs verification. | |
| Specifies the address and port for the RTCP connection. When rtcp-mux is used, it is the same port as RTP. | |
| ICE candidate list. After
| |
| Defines ICE attribute values. Once ICE candidates are exchanged, a process of verifying each other begins; these are used then, and protect against potential attacks unrelated to the session. | |
| Defines the DTLS attribute value. Contains the cryptographic hash of the certificate used for DTLS-SRTP negotiation. | |
| Defines that this is a peer that can start DTLS negotiation. Defined by RFC4145 and updated by RFC4572. | |
| Media identifier used in the BUNDLE group. | |
| |
| Indicates the direction of media exchange. It can be changed to sendonly, recvonly, or inactive through the options of the createOffer and createAnswer functions used to generate the SDP. | |
| Definition of the payload format (RTP payload formats) declared in the | |
| | |
|
Media descriptions (application)
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=candidate:1211725180 1 udp 2113937151 c030213c-b605-4f44-b8fe-32cfc6f4976c.local 52603 typ host generation 0 network-cost 999
a=ice-ufrag:yHMA
a=ice-pwd:un22hWsJE+nP3Pu6HrAFBwIb
a=ice-options:trickle
a=fingerprint:sha-256 86:9F:86:FB:D3:D0:B2:A4:B1:57:B5:F9:2D:8E:4A:91:B4:DD:71:0D:71:F6:7A:F9:C2:2C:FB:4F:01:85:B3:CA
a=setup:actpass
a=mid:1
a=sctp-port:5000
a=max-message-size:262144
answer SDP
The answer: the Local Description of aiortc returned to Chrome
v=0
o=- 3845429721 3845429721 IN IP4 0.0.0.0
s=-
t=0 0
a=group:BUNDLE 0 1
a=msid-semantic:WMS *
m=video 9 UDP/TLS/RTP/SAVPF 96 97 102 121 125 107
c=IN IP4 0.0.0.0
a=sendonly
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=mid:0
a=msid:ec29882c-357a-4dce-a797-9b20f68ed1d5 2d6f27ca-0dd7-47f4-b089-0ad430485d55
a=rtcp:9 IN IP4 0.0.0.0
a=rtcp-mux
a=ssrc-group:FID 3689124642 1310541881
a=ssrc:3689124642 cname:1c972f97-f02f-4a45-a95d-df25119fd62a
a=ssrc:1310541881 cname:1c972f97-f02f-4a45-a95d-df25119fd62a
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 goog-remb
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:102 H264/90000
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=rtcp-fb:102 goog-remb
a=fmtp:102 packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42001f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=102
a=rtpmap:125 H264/90000
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=rtcp-fb:125 goog-remb
a=fmtp:125 packetization-mode=1;level-asymmetry-allowed=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=ice-ufrag:5wOb
a=ice-pwd:qBARVN71ab8u3leGyyvupb
a=fingerprint:sha-256 6E:B5:F0:49:CD:CF:4E:3B:C2:FA:BB:47:4A:8B:4F:6A:C2:8F:07:C9:0F:38:D5:83:C1:C7:7C:E3:E3:65:6B:B0
a=setup:active
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=mid:1
a=sctp-port:5000
a=max-message-size:65536
a=ice-ufrag:5wOb
a=ice-pwd:qBARVN71ab8u3leGyyvupb
a=fingerprint:sha-256 6E:B5:F0:49:CD:CF:4E:3B:C2:FA:BB:47:4A:8B:4F:6A:C2:8F:07:C9:0F:38:D5:83:C1:C7:7C:E3:E3:65:6B:B0
a=setup:active