| Index: webrtc/api/ortc/rtptransportinterface.h
 | 
| diff --git a/webrtc/api/ortc/rtptransportinterface.h b/webrtc/api/ortc/rtptransportinterface.h
 | 
| index 119d662edde283815170dbab234103ea8c763f7b..165daada6bc59bab1daccce89235e7207dc78f91 100644
 | 
| --- a/webrtc/api/ortc/rtptransportinterface.h
 | 
| +++ b/webrtc/api/ortc/rtptransportinterface.h
 | 
| @@ -15,13 +15,14 @@
 | 
|  
 | 
|  #include "webrtc/api/ortc/packettransportinterface.h"
 | 
|  #include "webrtc/api/rtcerror.h"
 | 
| +#include "webrtc/common_types.h"
 | 
|  #include "webrtc/rtc_base/optional.h"
 | 
|  
 | 
|  namespace webrtc {
 | 
|  
 | 
|  class RtpTransportAdapter;
 | 
|  
 | 
| -struct RtcpParameters {
 | 
| +struct RtcpParameters final {
 | 
|    // The SSRC to be used in the "SSRC of packet sender" field. If not set, one
 | 
|    // will be chosen by the implementation.
 | 
|    // TODO(deadbeef): Not implemented.
 | 
| @@ -34,7 +35,7 @@ struct RtcpParameters {
 | 
|    // RtpTransports created by the same OrtcFactory will use the same generated
 | 
|    // CNAME.
 | 
|    //
 | 
| -  // If empty when passed into SetRtcpParameters, the CNAME simply won't be
 | 
| +  // If empty when passed into SetParameters, the CNAME simply won't be
 | 
|    // modified.
 | 
|    std::string cname;
 | 
|  
 | 
| @@ -51,6 +52,21 @@ struct RtcpParameters {
 | 
|    bool operator!=(const RtcpParameters& o) const { return !(*this == o); }
 | 
|  };
 | 
|  
 | 
| +struct RtpTransportParameters final {
 | 
| +  RtcpParameters rtcp;
 | 
| +
 | 
| +  // Enabled periodic sending of keep-alive packets, that help prevent timeouts
 | 
| +  // on the network level, such as NAT bindings. See RFC6263 section 4.6.
 | 
| +  RtpKeepAliveConfig keepalive;
 | 
| +
 | 
| +  bool operator==(const RtpTransportParameters& o) const {
 | 
| +    return rtcp == o.rtcp && keepalive == o.keepalive;
 | 
| +  }
 | 
| +  bool operator!=(const RtpTransportParameters& o) const {
 | 
| +    return !(*this == o);
 | 
| +  }
 | 
| +};
 | 
| +
 | 
|  // Base class for different types of RTP transports that can be created by an
 | 
|  // OrtcFactory. Used by RtpSenders/RtpReceivers.
 | 
|  //
 | 
| @@ -74,16 +90,20 @@ class RtpTransportInterface {
 | 
|    // RTCP multiplexing is being used, returns null.
 | 
|    virtual PacketTransportInterface* GetRtcpPacketTransport() const = 0;
 | 
|  
 | 
| -  // Set/get RTCP params. Can be used to enable RTCP muxing or reduced-size
 | 
| -  // RTCP if initially not enabled.
 | 
| +  // Set/get RTP/RTCP transport params. Can be used to enable RTCP muxing or
 | 
| +  // reduced-size RTCP if initially not enabled.
 | 
|    //
 | 
|    // Changing |mux| from "true" to "false" is not allowed, and changing the
 | 
|    // CNAME is currently unsupported.
 | 
| -  virtual RTCError SetRtcpParameters(const RtcpParameters& parameters) = 0;
 | 
| +  // RTP keep-alive settings need to be set before before an RtpSender has
 | 
| +  // started sending, altering the payload type or timeout interval after this
 | 
| +  // point is not supported. The parameters must also match across all RTP
 | 
| +  // transports for a given RTP transport controller.
 | 
| +  virtual RTCError SetParameters(const RtpTransportParameters& parameters) = 0;
 | 
|    // Returns last set or constructed-with parameters. If |cname| was empty in
 | 
|    // construction, the generated CNAME will be present in the returned
 | 
|    // parameters (see above).
 | 
| -  virtual RtcpParameters GetRtcpParameters() const = 0;
 | 
| +  virtual RtpTransportParameters GetParameters() const = 0;
 | 
|  
 | 
|   protected:
 | 
|    // Only for internal use. Returns a pointer to an internal interface, for use
 | 
| 
 |