Add SCTP transport to the public API.

This involves inserting an extra layer between jsep_transport_controller
and the cricket::SctpTransportInternal layer. The objects at this layer
are reference counted.

Bug: chromium:818643
Change-Id: Ibed57c4a538de981cee63e0f7f1f319f029cab39
Reviewed-on: https://webrtc-review.googlesource.com/c/123884
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26889}
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index 541a6b4..be4dcb9 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -122,6 +122,7 @@
 class AudioMixer;
 class AudioProcessing;
 class DtlsTransportInterface;
+class SctpTransportInterface;
 class VideoDecoderFactory;
 class VideoEncoderFactory;
 
@@ -1038,6 +1039,10 @@
   virtual rtc::scoped_refptr<DtlsTransportInterface> LookupDtlsTransportByMid(
       const std::string& mid);
 
+  // Returns the SCTP transport, if any.
+  // TODO(hta): Remove default implementation after updating Chrome.
+  virtual rtc::scoped_refptr<SctpTransportInterface> GetSctpTransport() const;
+
   // Returns the current SignalingState.
   virtual SignalingState signaling_state() = 0;