When we disable transcoding we should completely disable building the
rtpengine-recording daemon packages too. We accomplish that by using a
build-profile.
This also removes the Debianism from the upstream build system and moves
the setting to the Debian packaging.
Change-Id: Idf7783823d36b49ce03610fb1f4386afe5887029
iptables-dev is only available until Debian/buster and no longer exists in
Debian/bullseye (current testing) nor unstable/sid:
| builddeps:. : Depends: iptables-dev (>= 1.4) but it is not installable
Even in Debian/buster iptables-dev is already a transitional/dummy package.
Support iptables-dev as alternative Build-Dependency, just in case
someone is building the package against a system where libxtables-dev
doesn't exist yet.
Change-Id: I28c4c81ac474c646d80a0146baa2446dde7073c3
shellcheck v0.7.1 complains about a bunch of issues:
SC2154: status is referenced but not assigned.
SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.
SC2207: Prefer mapfile or read -a to split command output (or quote to avoid splitting).
SC2235: Use { ..; } instead of (..) to avoid subshell overhead.
SC2236: Use -n instead of ! -z.
The "$status" variable disappeared in d4763aba14.
The init scripts of ngcp-rtpengine-daemon and
ngcp-rtpengine-recording-daemon had a logic bug, where a failing stop
action didn't properly return, but continued execution of the following
firewalling code (ngcp-rtpengine-iptables-setup). Thanks to Guillem
Gover for spotting this one. While at it, no longer execute under
'set -e'.
Change-Id: Ia50e76f615564a288627e6e42ec8f7eb082de74c
rtpengine-ctl uses Config::Tiny for reading the config file.
This commit adds the dependency to the utils package.
Change-Id: Iae0892fe9c8d30435eecc513cf538122b2fbe2c7
This was forgotten to be taken care of in commit 2868fc6f55.
Otherwise `module-assistant auto-install ngcp-rtpengine-kernel-source` fails with:
| dh_installdocs: Please specify the compatibility level in debian/compat
| make[1]: *** [debian/rules:64: binary-modules] Error 2
| make[1]: Leaving directory '/usr/src/modules/ngcp-rtpengine'
Fixes#853
Change-Id: I0a433daaaebdab09f8247a391624d8f1a6d045bc
- Stop copying debian/compat into the kernel source packages.
- Use dh_installsystemd instead of deprecated dh_systemd_*.
- Disable dwz as it cannot cope with some of the plugins generated.
Change-Id: Ibdc92e94955ef3c5d89b24fc341474236c49b986
We now use systemd presets, and always install a policy-rc.d script, so
there's no reason to disable these at package build time. Let's switch
to the Debian defaults, so that third-party users get these to work out
of the box, in case the want to build and install the packages.
Change-Id: I0b0af3ffa1fe4daa72562f07fd95b606f96c0f88
The rtpengine kernel module only cares about UDP packets, so narrow down
our iptables rule accordingly.
Change-Id: I33856efa6b39372104b05ec0dc6f34ad0b5e0cbd
There might be a firewall script that installs and manages the
xt_RTPENGINE rules even if rtpengine isn't running at the point. Leave
the module loaded if possible and unload it only for a package removal
or upgrade.
Change-Id: I5a35e965379aebd757a45883f82bbcb5fa2412e8
Log lines written to stderr that are consumed by journald will already
have timestamps added to them. Drop the redundant unixtime output for
this use case.
Change-Id: I34886a69a0ef90de2eb84ee8f446cbad624302c1
This service should be stopped when we disable the ngcp-recording-daemon,
but ngcp-service has logic to skip services of Type oneshot.
In this case turning it into a Type=simple is fine because even though
there are no daemons/programs remaining after execution, we do set
RemainAfterExit=yes explicitly.
Change-Id: I3bde666ae1ed19ac56d38b3e011714e66615a378
These are names used in the ngcp-service nsservices.yml file, adding
them here makes using the system more consistent.
Change-Id: I66b0149cbfe70d2260a6c50617a52e53604256da
Move the Debian specific cleaning into a debian/clean file to avoid
having to add an override. And rely on the upstream Makefile which
should always be doing the correct job.
Change-Id: I6eb554428eafdcad13ea0490fca745ae72390f9c
The dh_clean -k is an obsolete way to specify dh_prep, the last one
should not be executed so remove it.
Change-Id: I9d244fbe410acac8751b6d09e11cd032a32dc5a3
This makes it difficult to interpose local scripts to override local
behavior, for testing purposes for example.
Warned-by: lintian
Change-Id: I5e1feda02a26f482728f5404496c5870ec93d8aa
To avoid repeated strcmp()s and make use of switch()'s optimised binary
lookup, we employ a second build step that preprocesses certain .c files
and uses gperf to substitute pseudomacros with their respective constant
hash value.
Change-Id: Id89c4728a0fc7aa911691d4dd1ba8e7b3916a983
We do not use a proper mount unit because that requires the mount point
to be encoded in the filename which is variable and depends on the value
coming from config.yml.
Change-Id: Ibb637c533c94bc3db119111460ca647a50a205af
Debian relies on the output of lsb-release in dkms, while
it doesn't strictly depend on it (it's just a Recommends).
We reported the bug towards dkms in Debian as
https://bugs.debian.org/896814
The best we can do until the underlying bug in dkms is fixed
is to depend on the lsb-release package in our ngcp-rtpengine-kernel-dkms
itself.
Change-Id: I2946b971ff463cec8f6e198b4a618ed0e056534c
Thanks: Richard Fuchs for debugging the issue
While still not the ideal implementation, this is certainly better than
the sysvinit script wrapper. We then will "only" need to move the setup
scripts into proper service files later on.
Change-Id: I990d6847117a4b91a8365a5e307fd96cf5b1899f
Properly switching to native systemd service files is too intrusive for
these services at this point of the release cycle. Let's use this hack
for now, and then convert these to the serveral .service, and .mount
units required.
Change-Id: I8f66bfd8be5924232bf2c34d42b18d2a332db3ee
These daemons require these facilities to be setup. Previously this
was implied and shadowed by the sshd dependency, but once removed
the implicit dependencies disappeared, make them explicit now.
Change-Id: I13b9b797da0d69636c0f87d92d80a9af46c0726c
The package was only being installed as module for the kernel version running at
the time it was installed.
Change-Id: I217367664ad40d50c92b49fae89569fe43edf684
If we are creating the kernel forwarding table, we have to make sure it
has been deleted already, otherwise we can get into collisions with the
already setup forwardings, and the subsequent add will fail anyway.
Change-Id: I2601c602543ff3e3493bae296d263dde545ff352
- Add missing quotes.
- Switch some problematic usages to use bash arrays.
- Override shellcheck errors (these might need fixing in the future).
Change-Id: Id451ff9f4c5d5ef9b3826544908d64e9c08c5797
Even though this is a false-positive, it confuses checkbashisms. So
let's rename the variables to something else, even more descriptive,
to avoid the check error.
Change-Id: Ife79bf76121bb4e3c120525ffe5a0eca871936f6
We want to have the same behavior as within
ngcp-rtpengine-recording-daemon's init script. Let's avoid code
duplication between start/stop vs restart and instead invoke
plain stop + start actions via restart.
While at it fix missing 'set -e' that was caught by Richard
during creation of ngcp-rtpengine-recording-daemon's init
script.
Change-Id: I4ef894d17e5e716f6f75eb59a153ba026e1df685
The redis onekey concepts is introduced to reduce traffic to redis
and redis notification traffic.
It modifies the current structure for one call in redis, which are
multiple keys with pre- and postfixes and the callid in between to
one key with the structure "json-<callid>". The value is a json
formatted string with the previous multi-key identifiers in it.
Otherwise we have the following error:
> root@spce:~# /etc/init.d/ngcp-rtpengine-daemon status
> /etc/init.d/ngcp-rtpengine-daemon: 98: /etc/init.d/ngcp-rtpengine-daemon: Syntax error: "(" unexpected
Change-Id: I85a5f8466733f42c78cdc125ba6d30d3f31e44a2
RTP Engine creates PCAP files for recorded calls on offer answer instead
of initial offer.
We make up bogus values for the nonessential parts of the PCAP, UDP, and
IP headers. We might be able to pull these from other parts of the RTP
Engine, but that information was unnecessary for recording calls so they
can be recorded to audio files.
If you change the packet headers, be really careful about byte order and
datatype size!
Noticed during lintian reviews + test builds
of ngcp-rtpengine-kernel, STR:
* Install ngcp-rtpengine-kernel-source + module-assistant
* m-a build ngcp-rtpengine-kernel fails with:
| tail: cannot open ‘/usr/src/modules/ngcp-rtpengine/../debian/changelog’ for reading: No such file or directory
| dpkg-parsechangelog: error: tail of /usr/src/modules/ngcp-rtpengine/../debian/changelog gave error exit status 1
| Building modules, stage 2.
| MODPOST 1 modules
| tail: cannot open ‘/usr/src/modules/ngcp-rtpengine/../debian/changelog’ for reading: No such file or directory
Fix conflicts:
| dh_gencontrol -- -v4.3.0.0+0~mr4.3.0.0+0~20160223155548.661+jessie~1.gbp6d1932+3.16.7-ckt20-1+deb8u3
| dpkg-gencontrol: error: source package has two conflicting values - ngcp-rtpengine-kernel and ngcp-rtpengine
| dh_gencontrol: dpkg-gencontrol -pngcp-rtpengine-kernel-modules-3.16.0-4-amd64 -ldebian/changelog -Tdebian/ngcp-rtpengine-kernel-modules-3.16.0-4-amd64.substvars -Pdebian/ngcp-rtpengine-kernel-modules-3.16.0-4-amd64 -v4.3.0.0+0~mr4.3.0.0+0~20160223155548.661+jessie~1.gbp6d1932+3.16.7-ckt20-1+deb8u3 returned exit code 255
| debian/rules:58: recipe for target 'binary-modules' failed
While at it Bump Standards-Version for ngcp-rtpengine-kernel
to 3.9.7 (no further changes) and fix package description.
Change-Id: Iaf7326f55cd3919afdb140d8e7acb5d3ff87b7d9
- add --subscribe_keyspace list config parameter.
- don't delete foreign calls by timers
- fix synchronization of foreign calls (use a separate redis_notify database)
- fix statistics for control channel calls.
- fix deletion of foreign calls upon del notifications
- update rtpengine-ctl tool
Noticed during lintian reviews + test builds
of ngcp-rtpengine-kernel, STR:
* Install ngcp-rtpengine-kernel-source + module-assistant
* m-a build ngcp-rtpengine-kernel fails with:
| tail: cannot open ‘/usr/src/modules/ngcp-rtpengine/../debian/changelog’ for reading: No such file or directory
| dpkg-parsechangelog: error: tail of /usr/src/modules/ngcp-rtpengine/../debian/changelog gave error exit status 1
| Building modules, stage 2.
| MODPOST 1 modules
| tail: cannot open ‘/usr/src/modules/ngcp-rtpengine/../debian/changelog’ for reading: No such file or directory
Fix conflicts:
| dh_gencontrol -- -v4.3.0.0+0~mr4.3.0.0+0~20160223155548.661+jessie~1.gbp6d1932+3.16.7-ckt20-1+deb8u3
| dpkg-gencontrol: error: source package has two conflicting values - ngcp-rtpengine-kernel and ngcp-rtpengine
| dh_gencontrol: dpkg-gencontrol -pngcp-rtpengine-kernel-modules-3.16.0-4-amd64 -ldebian/changelog -Tdebian/ngcp-rtpengine-kernel-modules-3.16.0-4-amd64.substvars -Pdebian/ngcp-rtpengine-kernel-modules-3.16.0-4-amd64 -v4.3.0.0+0~mr4.3.0.0+0~20160223155548.661+jessie~1.gbp6d1932+3.16.7-ckt20-1+deb8u3 returned exit code 255
| debian/rules:58: recipe for target 'binary-modules' failed
While at it Bump Standards-Version for ngcp-rtpengine-kernel
to 3.9.7 (no further changes) and fix package description.
Change-Id: Iaf7326f55cd3919afdb140d8e7acb5d3ff87b7d9