diff --git a/engine.go b/engine.go index 8bad49f3..af5ab564 100644 --- a/engine.go +++ b/engine.go @@ -321,19 +321,19 @@ func (e *RTCEngine) configure( } if e.publisher != nil { - setConfiguration(e.publisher, configuration) - } else { - if err := e.createPublisherPCLocked(configuration); err != nil { - return err - } + e.publisher.Close() + e.publisher = nil + } + if err := e.createPublisherPCLocked(configuration); err != nil { + return err } if e.subscriber != nil { - setConfiguration(e.subscriber, configuration) - } else { - if err := e.createSubscriberPCLocked(configuration); err != nil { - return err - } + e.subscriber.Close() + e.subscriber = nil + } + if err := e.createSubscriberPCLocked(configuration); err != nil { + return err } return nil diff --git a/transport.go b/transport.go index 95fd9a72..daf095de 100644 --- a/transport.go +++ b/transport.go @@ -213,6 +213,7 @@ func NewPCTransport(params PCTransportParams) (*PCTransport, error) { if len(params.DTLSEllipticCurves) > 0 { se.SetDTLSEllipticCurves(params.DTLSEllipticCurves...) } + se.DisableCloseByDTLS(true) se.SetDTLSRetransmissionInterval(dtlsRetransmissionInterval) se.SetICETimeouts(iceDisconnectedTimeout, iceFailedTimeout, iceKeepaliveInterval) lf := pionlogger.NewLoggerFactory(logger)