diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc
index 9190441..c0ee0ed 100644
--- a/audio/audio_send_stream.cc
+++ b/audio/audio_send_stream.cc
@@ -113,7 +113,8 @@
                                              config.frame_encryptor,
                                              config.crypto_options,
                                              config.rtp.extmap_allow_mixed,
-                                             config.rtcp_report_interval_ms)) {}
+                                             config.rtcp_report_interval_ms,
+                                             config.rtp.ssrc)) {}
 
 AudioSendStream::AudioSendStream(
     Clock* clock,
@@ -239,11 +240,12 @@
   RTC_DCHECK(first_time ||
              old_config.send_transport == new_config.send_transport);
 
-  if (first_time || old_config.rtp.ssrc != new_config.rtp.ssrc) {
+  if (old_config.rtp.ssrc != new_config.rtp.ssrc) {
     channel_send->SetLocalSSRC(new_config.rtp.ssrc);
-    if (stream->suspended_rtp_state_) {
-      stream->rtp_rtcp_module_->SetRtpState(*stream->suspended_rtp_state_);
-    }
+  }
+  if (stream->suspended_rtp_state_ &&
+      (first_time || old_config.rtp.ssrc != new_config.rtp.ssrc)) {
+    stream->rtp_rtcp_module_->SetRtpState(*stream->suspended_rtp_state_);
   }
   if (first_time || old_config.rtp.c_name != new_config.rtp.c_name) {
     channel_send->SetRTCP_CNAME(new_config.rtp.c_name);
diff --git a/audio/channel_send.cc b/audio/channel_send.cc
index e7cee58..447dabe 100644
--- a/audio/channel_send.cc
+++ b/audio/channel_send.cc
@@ -97,7 +97,8 @@
               FrameEncryptorInterface* frame_encryptor,
               const webrtc::CryptoOptions& crypto_options,
               bool extmap_allow_mixed,
-              int rtcp_report_interval_ms);
+              int rtcp_report_interval_ms,
+              uint32_t ssrc);
 
   ~ChannelSend() override;
 
@@ -640,7 +641,8 @@
                          FrameEncryptorInterface* frame_encryptor,
                          const webrtc::CryptoOptions& crypto_options,
                          bool extmap_allow_mixed,
-                         int rtcp_report_interval_ms)
+                         int rtcp_report_interval_ms,
+                         uint32_t ssrc)
     : event_log_(rtc_event_log),
       _timeStamp(0),  // This is just an offset, RTP module will add it's own
                       // random offset
@@ -695,6 +697,8 @@
   configuration.extmap_allow_mixed = extmap_allow_mixed;
   configuration.rtcp_report_interval_ms = rtcp_report_interval_ms;
 
+  configuration.media_send_ssrc = ssrc;
+
   _rtpRtcpModule = RtpRtcp::Create(configuration);
   _rtpRtcpModule->SetSendingMediaStatus(false);
 
@@ -1256,12 +1260,13 @@
     FrameEncryptorInterface* frame_encryptor,
     const webrtc::CryptoOptions& crypto_options,
     bool extmap_allow_mixed,
-    int rtcp_report_interval_ms) {
+    int rtcp_report_interval_ms,
+    uint32_t ssrc) {
   return absl::make_unique<ChannelSend>(
       clock, task_queue_factory, module_process_thread, media_transport_config,
       overhead_observer, rtp_transport, rtcp_rtt_stats, rtc_event_log,
       frame_encryptor, crypto_options, extmap_allow_mixed,
-      rtcp_report_interval_ms);
+      rtcp_report_interval_ms, ssrc);
 }
 
 }  // namespace voe
diff --git a/audio/channel_send.h b/audio/channel_send.h
index 2762f53..a9df5e7 100644
--- a/audio/channel_send.h
+++ b/audio/channel_send.h
@@ -140,7 +140,8 @@
     FrameEncryptorInterface* frame_encryptor,
     const webrtc::CryptoOptions& crypto_options,
     bool extmap_allow_mixed,
-    int rtcp_report_interval_ms);
+    int rtcp_report_interval_ms,
+    uint32_t ssrc);
 
 }  // namespace voe
 }  // namespace webrtc
