RTPProxy 3.2.0
- Extended the control protocol with new capability revisions for
Cpreply ports (20250523),S/Srsession parameter updates (20251015), labeled bind-address selection inUl/Ll(20260306), bundledU ... && L ...setup (20260308), andCas aU/Lsub-command for dual-stream session forking (20260309). - Added labeled bind-address selection and advertised-address mapping.
-l/-6now accept[label@]address[=advertised_address], support more than two bind addresses, and let controllers target them explicitly withUl{label}andLl{label}. - Added single-shot dual-leg setup via
U ... && L .... TheLleg reuses the parent session identifiers, reducing control-plane latency for SRS/SIPREC-style topologies and opening the door for richer chained commands. - Added recorder attachment as a
Csub-command onU/L, allowing one session to be attached to another as a recorder in the same transaction. This forks both RTP and RTCP, and tag order controls channel mapping. - Added mutable per-session transport parameters through
SandSr, allowing controllers to change session TTL and IPv4 TOS after setup, with TOS propagation extended to the associated RTCP sockets. - Reworked remote copy/recording so listener ports are allocated from the normal RTP port pool and can be returned to the controller with the
Pmodifier onC. This makes SIPREC UAC integrations more predictable and easier to automate. - Hardened recording for asymmetric and null-target scenarios. Recording/copy now continues even when the far end has no address, using zeroed destinations so downstream decoders can still interpret captured media.
- Reworked
librtpproxyfor true multi-instance embedding. Core instance state is heap-backed,getoptstate is saved/restored across invocations, SRTP initialization is process-safe, and the module interface no longer depends on writable global module state. - Added tighter embedding hooks for library users, including
fd:Xcontrol sockets and-n fd:Xnotification sockets, enabling in-process integrations without forcing socket-path or port-based control plumbing. - Refactored the core ownership and forwarding path: refcount/destructor chaining was redesigned and made thread-safe, delete/purge teardown was moved out of hash locks to avoid deadlocks, lock pressure in packet forwarding was reduced with atomics, and copy-on-write packet handling was added to support DTLS-protected copy/fork flows.
- Debian packaging is now part of both CI and release delivery. 3.2.0 adds native Debian packages for
rtpproxy,rtpproxy-dev, andrtpproxy-debug; introduces a dedicated CI packaging stage that builds those packages and validates them with a systemd-based install/start/restart/stop flow; and wires the resulting.debartifacts into the release-draft pipeline, alongside refreshed systemd service/socket packaging for more robust packaged deployments.
New Contributors
Full Changelog: v3.1.1...v3.2.0