From cbb95d2197c3c13cb5bc775560c60a90f126ef47 Mon Sep 17 00:00:00 2001 From: Dw9 Date: Fri, 25 Aug 2023 18:16:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81datachannel=E4=B8=8B=20=20=E4=BA=9A?= =?UTF-8?q?=E9=A9=AC=E9=80=8Asdk=20rtc=E6=8E=A8=E6=B5=81=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webrtc/Sdp.cpp | 8 +++----- webrtc/WebRtcTransport.cpp | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/webrtc/Sdp.cpp b/webrtc/Sdp.cpp index 7b2e06e9..ca33af88 100644 --- a/webrtc/Sdp.cpp +++ b/webrtc/Sdp.cpp @@ -1613,15 +1613,13 @@ RETRY: if (offer_media.type == TrackApplication) { RtcMedia answer_media = offer_media; answer_media.role = mathDtlsRole(offer_media.role); -#ifdef ENABLE_SCTP - answer_media.direction = matchDirection(offer_media.direction, configure.direction); - answer_media.candidate = configure.candidate; answer_media.ice_ufrag = configure.ice_ufrag; answer_media.ice_pwd = configure.ice_pwd; answer_media.fingerprint = configure.fingerprint; answer_media.ice_lite = configure.ice_lite; -#else - answer_media.direction = RtpDirection::inactive; +#ifndef ENABLE_SCTP + answer_media.port = 0; + WarnL << "answer sdp忽略application, 请安装usrsctp后再测试datachannel功能"; #endif ret->media.emplace_back(answer_media); return; diff --git a/webrtc/WebRtcTransport.cpp b/webrtc/WebRtcTransport.cpp index 127a1987..030d5a3a 100644 --- a/webrtc/WebRtcTransport.cpp +++ b/webrtc/WebRtcTransport.cpp @@ -564,7 +564,7 @@ void WebRtcTransportImp::onCheckAnswer(RtcSession &sdp) { GET_CONFIG(uint16_t, udp_port, Rtc::kPort); GET_CONFIG(uint16_t, tcp_port, Rtc::kTcpPort); - m.rtcp_addr.port = udp_port ? udp_port : tcp_port; + m.rtcp_addr.port = m.port ? (udp_port ? udp_port : tcp_port) : 0; m.port = m.rtcp_addr.port; sdp.origin.address = m.addr.address; } From f9381a6fef810cfb94bec2cc27c45dd9cc63f3f0 Mon Sep 17 00:00:00 2001 From: Dw9 Date: Fri, 25 Aug 2023 18:22:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?rtc=E4=B8=8D=E6=94=AF=E6=8C=81=E7=9A=84trac?= =?UTF-8?q?k,=E4=B8=8D=E8=AE=BE=E7=BD=AEgroup=20attribute?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webrtc/Sdp.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webrtc/Sdp.cpp b/webrtc/Sdp.cpp index ca33af88..bbb8d980 100644 --- a/webrtc/Sdp.cpp +++ b/webrtc/Sdp.cpp @@ -1555,7 +1555,10 @@ shared_ptr RtcConfigure::createAnswer(const RtcSession &offer) const //设置音视频端口复用 if (!offer.group.mids.empty()) { for (auto &m : ret->media) { - ret->group.mids.emplace_back(m.mid); + //The remote end has rejected (port 0) the m-section, so it should not be putting its mid in the group attribute. + if(m.port) { + ret->group.mids.emplace_back(m.mid); + } } } return ret;