From 2a4d70cc93ddd3074e51c0a2c2de507ac6babc2a Mon Sep 17 00:00:00 2001 From: Zhi Huang Date: Wed, 29 Nov 2017 15:41:59 -0800 Subject: [PATCH] Make the DtlsSrtpTransport cache the RtpAbsSendTimeHeaderExtension. Add a method to DtlsSrtpTransport to cache the RTP Absolute Send Time extension id. The method would be called when using DTLS-SRTP with external authentication. TBR=pthatcher@webrtc.org Bug: webrtc:7013 Change-Id: Ie9edb9382cbb4cf43eea5da3030991a0d20293a5 Reviewed-on: https://webrtc-review.googlesource.com/27260 Commit-Queue: Zhi Huang Reviewed-by: Steve Anton Cr-Commit-Position: refs/heads/master@{#20947} --- pc/channel.cc | 3 +++ pc/dtlssrtptransport.h | 7 +++++++ pc/srtptransport.h | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pc/channel.cc b/pc/channel.cc index ea4684f4f5..9156f21f66 100644 --- a/pc/channel.cc +++ b/pc/channel.cc @@ -1077,6 +1077,9 @@ void BaseChannel::CacheRtpAbsSendTimeHeaderExtension_n( if (sdes_transport_) { sdes_transport_->CacheRtpAbsSendTimeHeaderExtension( rtp_abs_sendtime_extn_id); + } else if (dtls_srtp_transport_) { + dtls_srtp_transport_->CacheRtpAbsSendTimeHeaderExtension( + rtp_abs_sendtime_extn_id); } else { RTC_LOG(LS_WARNING) << "Trying to cache the Absolute Send Time extension id " diff --git a/pc/dtlssrtptransport.h b/pc/dtlssrtptransport.h index e03342597e..55b96c1645 100644 --- a/pc/dtlssrtptransport.h +++ b/pc/dtlssrtptransport.h @@ -46,6 +46,13 @@ class DtlsSrtpTransport : public RtpTransportInternalAdapter { bool IsActive() { return srtp_transport_->IsActive(); } + // Cache RTP Absoulute SendTime extension header ID. This is only used when + // external authentication is enabled. + void CacheRtpAbsSendTimeHeaderExtension(int rtp_abs_sendtime_extn_id) { + srtp_transport_->CacheRtpAbsSendTimeHeaderExtension( + rtp_abs_sendtime_extn_id); + } + // TODO(zhihuang): Remove this when we remove RtpTransportAdapter. RtpTransportAdapter* GetInternal() override { return nullptr; } diff --git a/pc/srtptransport.h b/pc/srtptransport.h index 23e2a3c544..d098cd8317 100644 --- a/pc/srtptransport.h +++ b/pc/srtptransport.h @@ -93,8 +93,8 @@ class SrtpTransport : public RtpTransportInternalAdapter { // Returns rtp auth params from srtp context. bool GetRtpAuthParams(uint8_t** key, int* key_len, int* tag_len); - // Helper method to get RTP Absoulute SendTime extension header id if - // present in remote supported extensions list. + // Cache RTP Absoulute SendTime extension header ID. This is only used when + // external authentication is enabled. void CacheRtpAbsSendTimeHeaderExtension(int rtp_abs_sendtime_extn_id) { rtp_abs_sendtime_extn_id_ = rtp_abs_sendtime_extn_id; }