Skip to content

tasks: add reusable rtpengine task#56

Open
NormB wants to merge 2 commits into
OpenSIPS:mainfrom
NormB:feat/rtpengine-task
Open

tasks: add reusable rtpengine task#56
NormB wants to merge 2 commits into
OpenSIPS:mainfrom
NormB:feat/rtpengine-task

Conversation

@NormB

@NormB NormB commented Jun 26, 2026

Copy link
Copy Markdown
Member

Add a first-class rtpengine task type so scenarios can run an rtpengine media proxy without an inline generic shell block. On a stock debian:trixie-slim base it apt-installs the Debian rtpengine-daemon package (sipwise upstream; userspace-only, no kernel dkms) and runs it in the foreground, and is healthy once the ng socket is bound so dependents gate on readiness rather than a fixed sleep.

ng_port selects the ng control port; ip/interface/table/options and the install package list are configurable, and install: false skips the apt step for images that already ship rtpengine. Note port/ports are deliberately NOT aliased to the ng port: the base Task reserves them for container port publishing and a string value there would crash get_ports().

Includes unit tests for command assembly, the ng_port knob, the install/packages/options handling and adversarial (quoted) inputs, plus a regression test pinning that the opensips-mi task can run an arbitrary python script with forwarded args.

NormB added 2 commits June 26, 2026 14:26
Add a first-class `rtpengine` task type so scenarios can run an rtpengine
media proxy without an inline generic shell block. On a stock
debian:trixie-slim base it apt-installs the Debian rtpengine-daemon
package (sipwise upstream; userspace-only, no kernel dkms) and runs it in
the foreground, and is healthy once the ng socket is bound so dependents
gate on readiness rather than a fixed sleep.

`ng_port` selects the ng control port; `ip`/`interface`/`table`/`options`
and the install package list are configurable, and `install: false` skips
the apt step for images that already ship rtpengine. Note `port`/`ports`
are deliberately NOT aliased to the ng port: the base Task reserves them
for container port publishing and a string value there would crash
get_ports().

Includes unit tests for command assembly, the ng_port knob, the
install/packages/options handling and adversarial (quoted) inputs, plus a
regression test pinning that the opensips-mi task can run an arbitrary
python script with forwarded args.
The `Run OpenSIPS Conformance Tests` workflow delegated to the tests repo's
reusable workflow, which checks out `${{ github.repository }}` as the tests
directory. Called from this framework repo that resolves to SIPssert itself,
so the matrix step ran `read_matrix.py tests/run.yml` against a repo with no
`run.yml` and exited 2 -- the job has been red on every push/PR since Feb 2026.

Run the suite inline instead: install the framework from THIS checkout (so a
PR's framework code is actually exercised) and pull the scenarios from
OpenSIPS/sipssert-opensips-tests explicitly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants