diff --git a/src/SIPSorcery/net/RTP/RTPSession.cs b/src/SIPSorcery/net/RTP/RTPSession.cs index 8caedd6e1..6f8328521 100644 --- a/src/SIPSorcery/net/RTP/RTPSession.cs +++ b/src/SIPSorcery/net/RTP/RTPSession.cs @@ -976,10 +976,20 @@ public virtual SDP CreateAnswer(IPAddress connectionAddress) } } - var sdpConnectionAddress = GetSdpConnectionAddress( - connectionAddress, - offer.Connection?.ConnectionAddress != null ? IPAddress.Parse(offer.Connection.ConnectionAddress) : null); + // If connectionAddress is specified, we should always use this + IPAddress sdpConnectionAddress; + if(connectionAddress != null) + { + sdpConnectionAddress = connectionAddress; + } + else + { + sdpConnectionAddress = GetSdpConnectionAddress( + connectionAddress, + offer.Connection?.ConnectionAddress != null ? IPAddress.Parse(offer.Connection.ConnectionAddress) : null); + } + return GetSessionDescription(mediaStreams, sdpConnectionAddress); } }