Intro To WebRTC

I'm Jean-Luc

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 Kandy
  • Checkout WebRTC Samples

Thanks for coming!

Copy of Intro To WebRTC

By mustack

Copy of Intro To WebRTC

  • 546