Setting the mux flag when rtcp-mux is given is fine, but we must still
provide an RTCP endpoint in case rtcp-mux ends up not being used, either
through an implicit RTCP endpoint or through a=rtcp.
relevant to #1443
Change-Id: I0710a50c31974f5e06bd94b47076a272bcca7a43
(cherry picked from commit e3951449ed)
The macro PDA_DATA() has been replaced by the inline function pda_data()
closes#1448
Change-Id: I0d611011879a470a58a4339f05f05981428793bb
(cherry picked from commit d172f20bf1)
Special handling for codec lists that were received as part of an
answer: If the list includes a codec that was not offered, ignore that
codec. This prevents transcoders from being set up that were not
requested.
This brought to light some tests that were actually broken.
Change-Id: Iac71056ec5e10b5de5567917974f2c4e0261eb0c
(cherry picked from commit 22d8db9e72)
... when SSRC substitution is in use
Change-Id: If383aa9aeb46a2331855a5b34d52c0a427192c0c
(cherry picked from commit 408015141c)
(cherry picked from commit 2e2d3a1ba2)
If DTLS is rejected in an answer via `DTLS=off` we must forget that DTLS
was previously offered, as otherwise a re-invite would detect the
fingerprint as changed if the re-invite doesn't offer DTLS again. We
also make sure DTLS is shut down if during stream init DTLS is not
given, when it was present before.
Change-Id: I48ee6f0ec5ec02f558a6799951552ea2272d0e96
(cherry picked from commit 2994c3400f)
All crypto suites except AEAD have an explicit packet authentication
stage. If authentication fails for a packet, we take some guesses about
a ROC mismatch and see if authentication can succeed with a different
ROC. If a working ROC is found, our tracked ROC is updated and
decryption proceeds.
AEAD doesn't have an explicit authentication stage and authentication is
performed implicitly by the decryption engine, which simply returns a
decryption error if the authentication fails. We must therefore add the
same ROC guessing logic at this step for AEAD.
Change-Id: Ic1a70daa667e23976b74d2303c823b8d8c7bcb2b
(cherry picked from commit 550bc06e85)
This is useful for functions which are used both from a timer and from
other callers. These functions would reset the logging context at their
end to free the reference held by the logging context, which would
wrongly reset the logging context when the same function was called from
a different code path. Using a stack with push/pop semantics makes it
safe to use these functions from any code path.
Additionally introduce an explicit reset function that clears the entire
stack regardless of context. This reset function is called at the end of
every work iteration in every worker thread, just in case not everything
was popped from the stack.
Change-Id: I0e2c142b95806b26473c65a882737e39d161d24d
(cherry picked from commit bb26e4b522)
Implements RFC 5245 9.2.1.1
Also reset ICE role after a restart
closes#786
Change-Id: Idc7ec9f409b70598e2840fb7d0a31a12f9db3c21
(cherry picked from commit 6114eb0180)
* produces the non-NGCP debian dir
* It will be called by a jenkins job
Change-Id: I7e5eaabfc39a2ef3985a8a908998299c79d864a8
(cherry picked from commit bc09e94d61)
(cherry picked from commit 9d1e28dfd4)
If there's no config file present then retrieval of the table number
yields an empty string. Allow this as an expected case to silence a
warning from bash (using -lt against an empty string)
Change-Id: I0420d2e1c555f6b56a56fc5f47d3bc183a929e50
(cherry picked from commit 52c91f9ceb)
* pkg/deb/debian should be the only source
* pkg/deb/debian/backports: scripts to generate differences
This way is quite easy to maintain different versions, the
differences are managed via scripts
Change-Id: I0ac3a35fe3facf005564141563e2fb11b73cbefc
(cherry picked from commit dc9b381a0e)
With multiple media subscriptions, codec handlers are called
consecutively, once for each forwarding chain, leading to DTMF events
reported multiple times. The DTMF trigger must therefore keep track of
the state in the upper media object, not in the codec handlers.
Change-Id: I9ceaf406e093f25b7c037a325a0f2a7a91954922
Some functions (packet_dtmf in particular) called from the sequencer
depend on upper-level locking, so make sure this happens even if we're
bypassing the sequencer and do passthrough.
Change-Id: I6c729c3ba8075736fd614b8c06e3415b9c9e5ca7
For this initial version, these are mostly copies of the existing
/debian tree, with `ngcp-rtpengine` renamed to `rtpengine`, added
"conflicts" with the `ngcp-rtpengine` packages, and NGCP-specific
"suggests" removed.
Change-Id: I64289f9907ec09d003a96b8ac81f83c79d413747
(cherry picked from commit bbfe168b72)
The aliases created by systemd under Install/Alias are created and
removed as the service is enabled and disabled, and don't serve as
generic alias names. Furthermore they seem to linger behind when the
package is removed or replaced, which leads to collisions and
installation failures when the NGCP-specific package is replaced by the
non-NGCP version.
Change-Id: I2313ffffb1fa4fb1d570b23113b0618744c58e26
(cherry picked from commit 30c124ff05)
This package name is not used anywhere as a dependency, therefore it
makes no sense to list as a "provides"
Change-Id: I20db5308328b1c911495bf31417e4996a9824c3c
(cherry picked from commit 5ed13a130e)
SSRC entries might be present for the same SSRC in multiple contexts,
but only one of them will hold the actual stats. Don't create output
SSRC entries unless we know they won't be empty, as otherwise we won't
be able to create the actual SSRC entries (with stats) later on as they
dict key will already exist.
Change-Id: I54e263a17e14869ebb98456963f8ca75d11e9a89
(cherry picked from commit 9c2b53b3ed)