aboutsummaryrefslogtreecommitdiff
path: root/talk/session
diff options
context:
space:
mode:
authordeadbeef <deadbeef@webrtc.org>2015-07-15 12:20:53 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-15 19:20:56 +0000
commitf39382943449b7e44ac563e05a14203534591acf (patch)
tree4de47259c6d04ff9b6257143b7a343b46ea61ae8 /talk/session
parentfb19f49c149018c02bd929cbb962aad4b3118000 (diff)
downloadwebrtc-f39382943449b7e44ac563e05a14203534591acf.tar.gz
Use "UDP/TLS/RTP/SAVPF" profile in offer when DTLS-SRTP is used.
Tested that this doesn't break compatibility with Firefox or older versions of Chrome, no matter which side generates the initial offer. BUG=webrtc:2796 Review URL: https://codereview.webrtc.org/1219333002 Cr-Commit-Position: refs/heads/master@{#9589}
Diffstat (limited to 'talk/session')
-rw-r--r--talk/session/media/mediasession.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/talk/session/media/mediasession.cc b/talk/session/media/mediasession.cc
index b299944519..dc4f4080af 100644
--- a/talk/session/media/mediasession.cc
+++ b/talk/session/media/mediasession.cc
@@ -63,8 +63,8 @@ const char kMediaProtocolAvpf[] = "RTP/AVPF";
// RFC5124
const char kMediaProtocolDtlsSavpf[] = "UDP/TLS/RTP/SAVPF";
-// This should be replaced by "UDP/TLS/RTP/SAVPF", but we need to support it for
-// now to be compatible with previous Chrome versions.
+// We always generate offers with "UDP/TLS/RTP/SAVPF" when using DTLS-SRTP,
+// but we tolerate "RTP/SAVPF" in offers we receive, for compatibility.
const char kMediaProtocolSavpf[] = "RTP/SAVPF";
const char kMediaProtocolRtpPrefix[] = "RTP/";
@@ -614,8 +614,8 @@ static bool IsRtpContent(SessionDescription* sdesc,
return false;
}
is_rtp = media_desc->protocol().empty() ||
- rtc::starts_with(media_desc->protocol().data(),
- kMediaProtocolRtpPrefix);
+ (media_desc->protocol().find(cricket::kMediaProtocolRtpPrefix) !=
+ std::string::npos);
}
return is_rtp;
}
@@ -1047,8 +1047,10 @@ static bool IsMediaProtocolSupported(MediaType type,
static void SetMediaProtocol(bool secure_transport,
MediaContentDescription* desc) {
- if (!desc->cryptos().empty() || secure_transport)
+ if (!desc->cryptos().empty())
desc->set_protocol(kMediaProtocolSavpf);
+ else if (secure_transport)
+ desc->set_protocol(kMediaProtocolDtlsSavpf);
else
desc->set_protocol(kMediaProtocolAvpf);
}