github sippy/rtpproxy v3.2.0

6 hours ago

RTPProxy 3.2.0

  • Extended the control protocol with new capability revisions for Cp reply ports (20250523), S/Sr session parameter updates (20251015), labeled bind-address selection in Ul/Ll (20260306), bundled U ... && L ... setup (20260308), and C as a U/L sub-command for dual-stream session forking (20260309).
  • Added labeled bind-address selection and advertised-address mapping. -l / -6 now accept [label@]address[=advertised_address], support more than two bind addresses, and let controllers target them explicitly with Ul{label} and Ll{label}.
  • Added single-shot dual-leg setup via U ... && L .... The L leg 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 C sub-command on U/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 S and Sr, 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 P modifier on C. 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 librtpproxy for true multi-instance embedding. Core instance state is heap-backed, getopt state 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:X control sockets and -n fd:X notification 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, and rtpproxy-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 .deb artifacts 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

Don't miss a new rtpproxy release

NewReleases is sending notifications on new releases.