Deprecation of the replace-session-connection flag

492 views
Skip to first unread message

Gianluca Merlo

unread,
Aug 28, 2024, 10:37:07 AM8/28/24
to Sipwise rtpengine
Hi,

while testing a recent version of rtpengine (Debian package 12.5.1.2-1~bpo12+1) with a working Kamailio configuration I happened upon the warning

> [core] replace-session-connection flag encountered, but not supported anymore.

I see that in a trivial scenario removing the flag from the rtpproxy_manage call in Kamailio makes the warning go away, while still performing the relevant replacement in the SDP c= line.

I tried to get a better understanding but stopped a little short of digging the exact code (saw a couple of commits on the topic). May I ask, just to be safe, if I am understanding correctly that since 12.5 the replacement in the SDP c= line is always automatically performed, and the only change users are required to implement is to drop replace-session-connection from used flags, without any significant catches?

Thanks in an advance

Richard Fuchs

unread,
Aug 28, 2024, 10:56:11 AM8/28/24
to rtpe...@googlegroups.com
This flag actually used to address just one particular corner case,
where a c= line is present both at the session level and in the media
(m=) section. Without the flag, the only the media-level c= line would
be replaced, and the session-level one would be left alone (a quirky
legacy inherited from the rtpproxy foundation). We're moving towards
more streamlined output SDP formatting and in the future will have only
media-level c= lines and no session-level c= lines, obsoleting this
flag, while hoping that there aren't any silly user agents out there
that insist on having the c= line in a particular place. This conversion
isn't complete yet, but the flag has already been deprecated in
preparation, which in practice (finger crossed) shouldn't have any impact.

Cheers

Gianluca Merlo

unread,
Aug 28, 2024, 1:11:35 PM8/28/24
to Sipwise rtpengine
Thank you, all clear! I guess the bad habit of always including the flag from old code, and never having read with the due attention into it, made me completely miss the relevance of "session-level" in the documentation. I greatly appreciate the effort in explaining it for dummies like myself!

Best regards

Christian Pauli

unread,
Oct 9, 2024, 10:59:38 AM10/9/24
to Sipwise rtpengine
Hi,
We updated our RTPEngine servers to version 12.5.1.5.
We use the flag from the kamailio:  replace-session-connection
Now we have an issue that could from to this feature.
In the SDP, we have at the session level the "c=" that seems not replaced by the RTPEngine IP address.
The media level is ok.
If I read the RFC 8866, it is written that we can have both c= in the Session Level and in the media level.
Is it a bug or a change in this version? 

The "c=" line (connection-field) contains information necessary to establish a network connection.

A session description MUST contain either at least one "c=" line in each media description or a single "c=" line at the session level. It MAY contain a single session-level "c=" line and additional media-level "c=" line(s) per-media-description, in which case the media-level values override the session-level settings for the respective media.

Thanks in advance for your help.

Pete Kelly

unread,
Jan 22, 2025, 10:18:10 AM1/22/25
to Sipwise rtpengine
Hi all

Hope you don't mind me resurrecting this thread. Did the work to add an alternative to replace-session-connection get completed? 

I have trawled through the latest NG documentation and can't see anything that jumps out that would allow me to manipulate (or remove) the c= line that is present at session level.

Pete

Reply all
Reply to author
Forward
0 new messages