diff --git a/pkg/webrtc/conn.go b/pkg/webrtc/conn.go index 5bc16ede..0845bdda 100644 --- a/pkg/webrtc/conn.go +++ b/pkg/webrtc/conn.go @@ -51,6 +51,10 @@ func NewConn(pc *webrtc.PeerConnection) *Conn { } pc.SCTP().Transport().ICETransport().OnSelectedCandidatePairChange( func(pair *webrtc.ICECandidatePair) { + // fix situation when candidate pair changes multiple times + if i := strings.IndexByte(c.Protocol, '+'); i > 0 { + c.Protocol = c.Protocol[:i] + } c.Protocol += "+" + pair.Remote.Protocol.String() c.RemoteAddr = fmt.Sprintf( "%s:%d %s", sanitizeIP6(pair.Remote.Address), pair.Remote.Port, pair.Remote.Typ,