Intro To WebRTC
I'm Jean-Luc

I work at

Full Disclosure: We sell WebRTC stuff.

Which is part of
WebRTC
WebRTC is the standard, implemented by browsers, that allows us to stream voice, video and data from one browser to another.

The first step to a voice or video call is to get access to the user's camera and/or microphone.

To establish a connection, we have to send an offer to connect from one browser and receive an answer from the other.


{Offer}
{Answer}
SDP
The Session Description Protocol (SDP) is a format for describing streaming media communications parameters.
v=0
o=- 3708093697125349017 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE video
a=msid-semantic: WMS wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
m=video 61977 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114
c=IN IP4 192.168.1.202
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2671309437 1 udp 2113937151 192.168.1.202 61977 typ host generation 0 network-cost 999
a=ice-ufrag:fAjt
a=ice-pwd:jTaxIZ52dExKPTJkZUxJHnXU
a=ice-options:trickle
a=fingerprint:sha-256 91:88:5B:6A:D9:91:EF:03:36:BF:D5:40:4A:46:93:F5:C2:B1:14:BA:EA:A3:A5:F0:6F:98:89:EE:7A:0F:C2:DC
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 x-google-profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 H264/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 red/90000
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=123
a=rtpmap:114 ulpfec/90000
a=ssrc-group:FID 615667700 410578371
a=ssrc:615667700 cname:KqJd3IkHjJS30cBM
a=ssrc:615667700 msid:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP 01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:615667700 mslabel:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
a=ssrc:615667700 label:01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:410578371 cname:KqJd3IkHjJS30cBM
a=ssrc:410578371 msid:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP 01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:410578371 mslabel:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
a=ssrc:410578371 label:01223a73-80ea-4139-8801-888bd98149b7
SDP
This SDP message describes how to connect to the peer that generated it and which codecs it understands.
v=0
o=- 3708093697125349017 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE video
a=msid-semantic: WMS wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
m=video 61977 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114
c=IN IP4 192.168.1.202
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2671309437 1 udp 2113937151 192.168.1.202 61977 typ host generation 0 network-cost 999
a=ice-ufrag:fAjt
a=ice-pwd:jTaxIZ52dExKPTJkZUxJHnXU
a=ice-options:trickle
a=fingerprint:sha-256 91:88:5B:6A:D9:91:EF:03:36:BF:D5:40:4A:46:93:F5:C2:B1:14:BA:EA:A3:A5:F0:6F:98:89:EE:7A:0F:C2:DC
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 x-google-profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 H264/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 red/90000
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=123
a=rtpmap:114 ulpfec/90000
a=ssrc-group:FID 615667700 410578371
a=ssrc:615667700 cname:KqJd3IkHjJS30cBM
a=ssrc:615667700 msid:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP 01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:615667700 mslabel:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
a=ssrc:615667700 label:01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:410578371 cname:KqJd3IkHjJS30cBM
a=ssrc:410578371 msid:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP 01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:410578371 mslabel:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
a=ssrc:410578371 label:01223a73-80ea-4139-8801-888bd98149b7
SDP
There are two types of SDP messages: Offers and Answers.
v=0
o=- 3708093697125349017 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE video
a=msid-semantic: WMS wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
m=video 61977 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114
c=IN IP4 192.168.1.202
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2671309437 1 udp 2113937151 192.168.1.202 61977 typ host generation 0 network-cost 999
a=ice-ufrag:fAjt
a=ice-pwd:jTaxIZ52dExKPTJkZUxJHnXU
a=ice-options:trickle
a=fingerprint:sha-256 91:88:5B:6A:D9:91:EF:03:36:BF:D5:40:4A:46:93:F5:C2:B1:14:BA:EA:A3:A5:F0:6F:98:89:EE:7A:0F:C2:DC
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 x-google-profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 H264/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 red/90000
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=123
a=rtpmap:114 ulpfec/90000
a=ssrc-group:FID 615667700 410578371
a=ssrc:615667700 cname:KqJd3IkHjJS30cBM
a=ssrc:615667700 msid:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP 01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:615667700 mslabel:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
a=ssrc:615667700 label:01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:410578371 cname:KqJd3IkHjJS30cBM
a=ssrc:410578371 msid:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP 01223a73-80ea-4139-8801-888bd98149b7
a=ssrc:410578371 mslabel:wGyohL8IPPmu3gngtUgvJBnkX5NUgPOQ8aSP
a=ssrc:410578371 label:01223a73-80ea-4139-8801-888bd98149b7
Demo Time

https://github.com/Mustack/webrtc-demo
ICE
Interactive Connectivity Establishment (ICE) is a technique used in computer networking to find ways for two computers to talk to each other as directly as possible in peer-to-peer networking.
v=0
o=- 3784790222909916394 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS bdda2745-91bc-446d-8d5c-e3d7acab4112
m=audio 53760 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 198.17.84.157
a=rtcp:52876 IN IP4 198.17.84.157
a=candidate:2671309437 1 udp 2122260223 192.168.1.202 50875 typ host generation 0 network-id 1 network-cost 10
a=candidate:2671309437 2 udp 2122260222 192.168.1.202 51227 typ host generation 0 network-id 1 network-cost 10
a=candidate:510719177 1 udp 1686052607 104.193.53.217 50875 typ srflx raddr 192.168.1.202 rport 50875 generation 0 network-id 1 network-cost 10
a=candidate:510719177 2 udp 1686052606 104.193.53.217 51227 typ srflx raddr 192.168.1.202 rport 51227 generation 0 network-id 1 network-cost 10
a=candidate:3518697101 1 tcp 1518280447 192.168.1.202 9 typ host tcptype active generation 0 network-id 1 network-cost 10
a=candidate:3518697101 2 tcp 1518280446 192.168.1.202 9 typ host tcptype active generation 0 network-id 1 network-cost 10
a=candidate:320373144 2 udp 8331006 198.17.84.157 52876 typ relay raddr 104.193.53.217 rport 50983 generation 0 network-id 1 network-cost 10
a=candidate:320373144 1 udp 8331007 198.17.84.157 53760 typ relay raddr 104.193.53.217 rport 50979 generation 0 network-id 1 network-cost 10
a=candidate:3847287153 1 udp 8331263 198.17.84.158 34344 typ relay raddr 104.193.53.217 rport 50982 generation 0 network-id 1 network-cost 10
a=candidate:3847287153 2 udp 8331262 198.17.84.158 35925 typ relay raddr 104.193.53.217 rport 50978 generation 0 network-id 1 network-cost 10
a=ice-ufrag:EloR
a=ice-pwd:nzJK5HAqAX4MlFdgsIH4y7pC
a=fingerprint:sha-256 CC:3F:37:E4:A3:FF:30:61:23:BA:C9:AB:00:D0:C1:F3:98:98:BC:E5:87:B5:5A:E8:57:07:37:40:E1:18:34:37
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:690758389 cname:3CvCKopgh+qexoqc
a=ssrc:690758389 msid:bdda2745-91bc-446d-8d5c-e3d7acab4112 aabdd7c1-2a97-44ad-87ee-b45e9f0ee1d4
a=ssrc:690758389 mslabel:bdda2745-91bc-446d-8d5c-e3d7acab4112
a=ssrc:690758389 label:aabdd7c1-2a97-44ad-87ee-b45e9f0ee1d4
m=video 47709 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114
c=IN IP4 198.17.84.157
a=rtcp:36605 IN IP4 198.17.84.157
a=candidate:2671309437 1 udp 2122260223 192.168.1.202 57603 typ host generation 0 network-id 1 network-cost 10
a=candidate:2671309437 2 udp 2122260222 192.168.1.202 50029 typ host generation 0 network-id 1 network-cost 10
a=candidate:510719177 1 udp 1686052607 104.193.53.217 57603 typ srflx raddr 192.168.1.202 rport 57603 generation 0 network-id 1 network-cost 10
a=candidate:510719177 2 udp 1686052606 104.193.53.217 50029 typ srflx raddr 192.168.1.202 rport 50029 generation 0 network-id 1 network-cost 10
a=candidate:3518697101 1 tcp 1518280447 192.168.1.202 9 typ host tcptype active generation 0 network-id 1 network-cost 10
a=candidate:3518697101 2 tcp 1518280446 192.168.1.202 9 typ host tcptype active generation 0 network-id 1 network-cost 10
a=candidate:320373144 2 udp 8331006 198.17.84.157 36605 typ relay raddr 104.193.53.217 rport 50981 generation 0 network-id 1 network-cost 10
a=candidate:3847287153 2 udp 8331262 198.17.84.158 54269 typ relay raddr 104.193.53.217 rport 50976 generation 0 network-id 1 network-cost 10
a=candidate:320373144 1 udp 8331007 198.17.84.157 47709 typ relay raddr 104.193.53.217 rport 50977 generation 0 network-id 1 network-cost 10
a=candidate:3847287153 1 udp 8331263 198.17.84.158 53750 typ relay raddr 104.193.53.217 rport 50980 generation 0 network-id 1 network-cost 10
a=ice-ufrag:EloR
a=ice-pwd:nzJK5HAqAX4MlFdgsIH4y7pC
a=fingerprint:sha-256 CC:3F:37:E4:A3:FF:30:61:23:BA:C9:AB:00:D0:C1:F3:98:98:BC:E5:87:B5:5A:E8:57:07:37:40:E1:18:34:37
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 x-google-profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 H264/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:122 rtx/90000
a=fmtp:122 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 red/90000
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=123
a=rtpmap:114 ulpfec/90000
a=ssrc-group:FID 2531609439 563126280
a=ssrc:2531609439 cname:3CvCKopgh+qexoqc
a=ssrc:2531609439 msid:bdda2745-91bc-446d-8d5c-e3d7acab4112 bc870b42-b8e4-41f9-9133-4b64d5184c08
a=ssrc:2531609439 mslabel:bdda2745-91bc-446d-8d5c-e3d7acab4112
a=ssrc:2531609439 label:bc870b42-b8e4-41f9-9133-4b64d5184c08
a=ssrc:563126280 cname:3CvCKopgh+qexoqc
a=ssrc:563126280 msid:bdda2745-91bc-446d-8d5c-e3d7acab4112 bc870b42-b8e4-41f9-9133-4b64d5184c08
a=ssrc:563126280 mslabel:bdda2745-91bc-446d-8d5c-e3d7acab4112
a=ssrc:563126280 label:bc870b42-b8e4-41f9-9133-4b64d5184c08
STUN
Session Traversal Utilities for NAT (STUN) is a standardized set of methods, including a network protocol, for traversal of network address translator (NAT) gateways in applications of real-time voice, video, messaging, and other interactive communications.
TURN
Traversal Using Relays around NAT (TURN) is a protocol that assists in traversal of network address translators (NAT) or firewalls for multimedia applications.
Tips
- Use webrtc-adapter
- Use a provider
- Checkout WebRTC Samples
Do you know C++?
Intro To WebRTC
By mustack
Intro To WebRTC
- 652