diff --git a/pkg/rtcconfig/config.go b/pkg/rtcconfig/config.go index 2aaf22b..a0d03d2 100644 --- a/pkg/rtcconfig/config.go +++ b/pkg/rtcconfig/config.go @@ -67,6 +67,12 @@ type RTCConfig struct { SCTPFastRtxWnd int `yaml:"sctp_fast_rtx_wnd,omitempty"` SCTPCwndCAStep int `yaml:"sctp_cwnd_ca_step,omitempty"` + // ICE candidate-pair acceptance min-waits; 0 keeps pion's default + HostAcceptanceMinWait time.Duration `yaml:"host_acceptance_min_wait,omitempty"` + SrflxAcceptanceMinWait time.Duration `yaml:"srflx_acceptance_min_wait,omitempty"` + PrflxAcceptanceMinWait time.Duration `yaml:"prflx_acceptance_min_wait,omitempty"` + RelayAcceptanceMinWait time.Duration `yaml:"relay_acceptance_min_wait,omitempty"` + // for testing, disable UDP ForceTCP bool `yaml:"force_tcp,omitempty"` } diff --git a/pkg/rtcconfig/webrtc_config.go b/pkg/rtcconfig/webrtc_config.go index 55b1663..3c9d489 100644 --- a/pkg/rtcconfig/webrtc_config.go +++ b/pkg/rtcconfig/webrtc_config.go @@ -202,6 +202,19 @@ func NewWebRTCConfig(rtcConf *RTCConfig, development bool) (*WebRTCConfig, error } s.SetNetworkTypes(networkTypes) + if rtcConf.HostAcceptanceMinWait > 0 { + s.SetHostAcceptanceMinWait(rtcConf.HostAcceptanceMinWait) + } + if rtcConf.SrflxAcceptanceMinWait > 0 { + s.SetSrflxAcceptanceMinWait(rtcConf.SrflxAcceptanceMinWait) + } + if rtcConf.PrflxAcceptanceMinWait > 0 { + s.SetPrflxAcceptanceMinWait(rtcConf.PrflxAcceptanceMinWait) + } + if rtcConf.RelayAcceptanceMinWait > 0 { + s.SetRelayAcceptanceMinWait(rtcConf.RelayAcceptanceMinWait) + } + if rtcConf.EnableLoopbackCandidate { s.SetIncludeLoopbackCandidate(true) }