New NG protocol commands that mix audio from a source participant
into a destination participant's stream without a full offer/answer
exchange.
- inject start: creates one-way subscription with audio_player mixing
- inject stop: removes injection and restores original codec routing
- Supports cross-call injection via source-call-id (merges calls internally)
- inject attribute persisted through Redis for HA failover
- Audio-only; matches media by media-id, index, then type fallback
Closes#2082
Change-Id: Ib88113b021a4b76bf98892eb1af60c0b36c0d6d3
Run the included backports script for distro-specific packaging.
Add distro suffix to the version so that all build artefacts can be
included in the release without collisions.
Include G.729. This is available in both Sid and Trixie.
Change-Id: I7efcf6a115158c5154936494c5c85628e37b21ab
1) Add a release job
Automatically create a GitHub release with attached Debian packages,
whenever a tag starting with 'mr' is pushed.
Generate release notes grouped by author from git commits between the
previous mr* tag and the current tag, similar to the format used in
debian/changelog.
2) Automatically generate Debian packages for PRs
This is useful for contributors as well as developers, to test and
verify proposed changes.
3) Consolidate Debian package workflows
Merge debpkg.yml into package-build.yml using a matrix strategy for
building on multiple Debian distributions (trixie, sid), using
jtdor/build-deb-action instead of custom Docker actions.
Now our release job merges artifacts from all distros.
4) Update from bookworm to trixie
Bump Debian package builds from bookworm to trixie, while at it, given
that Debian trixie/v13 is the current stable Debian release.
5) Bump workflow actions from in package build workflow
Update from v4 to current version v6, see
https://github.com/actions/checkoutCloses#2063
Change-Id: Ic1bfb3a7f9fa7e263f8e8d3b115baa01633db1a1
Provide an extra codec-store for the lookup of the answer codec. This is
needed for codec switches during an extra answer, as the original codecs
are kept in a different codec-store.
Closes#2073
Change-Id: I7e2efc434789ecc8d3b5fcf97240e5c3f7c84652
Use a pointer to the arena plus a comparison test to determine whether
to ref or to dup the string, instead of a function pointer. The function
pointer alone wasn't enough as there can be multiple arenas.
Change-Id: Icd317e524fc2e5842f90d172ef7089d2cb0a5a28
The Kamailio control module unconditionally adds the current to-tag to
the control message if rtpp-flags parsing is active. This is generally
not desirable in the case of an initial subscribe-request, as we want a
generated to-tag when the existing to-tag belongs to another dialogue.
Special-case this to ignore the included to-tag if none has been given
explicitly.
Change-Id: I1dc28bfdfd086766e0b6a117c74edd0ebb75d526
Previously, rtpengine would refuse to resolve any hostnames longer than
64 characters.
Closes#2061
Change-Id: I5fe6c05f59a449f6e3b6b0f403d438626905101b