Donat Zenichev
bebe291656
MT#59086 Unify header files inclusions.
In the file implementations follow the rules:
1. Firstly goes the correlated header file, then one empty row.
2. Secondly go system headers, so in angle-brackets, then one empty row.
3. Thirdly, go custom header files, so in double quotes,
then one empty row.
4. If there is "xt_RTPENGINE.h", it's mentioned next, but separately,
then one empty row.
5. If there are pre-processor definitions, they are added.
6. And eventually at least one empty row before the code.
In some situations it's allowed to step aside from the rules,
when inclusions are dependent on each other, so on the sequence,
and also possibly on some inline objects definitions, but if possible
to follow the rules, it's being done.
Change-Id: Ie512a970e230fe202398656d1942e8874bb14cd9
2 years ago
Donat Zenichev
3348f2a0ae
MT#59086 Remove superfluous inclusion of `call_interfaces.h`
Just a superfluous inclusion of this header.
Change-Id: I809c73f9f22a24cf4efe5a0cc505e222fbc11de1
2 years ago
Richard Fuchs
e5963dfbc8
MT#55283 add extra opus fmtp test
Change-Id: I62ed7d5066c66e2323cf198ec13ccb8ec0188462
2 years ago
Richard Fuchs
a968afcd1d
MT#55283 fix possible mem leak
Warned-by: Coverity
Change-Id: I6a1f398272be2929f1157ed0ecdb667e26d3797a
2 years ago
Richard Fuchs
3df5fb9f7d
MT#55283 fix typo
Warned-bu: Coverity
Change-Id: I39325f49f77478134188361544676293151c70db
2 years ago
Richard Fuchs
e439a27def
MT#55283 protect read with mutex
Reading learned_endpoint must also be protected by the mutex.
Warned-by: Coverity
Change-Id: I9909d58e7f06806f7398c16c750a6063e923d766
2 years ago
Richard Fuchs
ea59f28e53
MT#55283 convert to auto LOCK
Change-Id: I70398d5fd3d96f9e477bb2cb75cccdb46ab4cbc6
2 years ago
Donat Zenichev
acd303cd56
MT#58636 Fix a defect detected by Coverity Scan
** CID 1574844: Null pointer dereferences (FORWARD_NULL)
/daemon/call.c: 2416 in codecs_offer()
*** CID 1574844: Null pointer dereferences (FORWARD_NULL)
/daemon/call.c: 2416 in codecs_offer()
2410
2411 if (update_answerer) {
2412 // update/create answer/receiver side
2413 ilogs(codec, LOG_DEBUG, "Updating offer codecs for answerer " STR_FORMAT " #%u",
2414 STR_FMT(&media->monologue->tag),
2415 media->index);
>>> CID 1574844: Null pointer dereferences (FORWARD_NULL)
>>> Dereferencing null pointer "flags".
2416 if (flags->static_codecs && media->codecs.codec_prefs.length)
2417 ilogs(codec, LOG_DEBUG, "Leaving answerer codecs alone");
2418 else if (flags && flags->reuse_codec)
2419 codec_store_populate_reuse(&media->codecs, &sp->codecs,
2420 .merge_cs = &sp->codecs);
2421 else
** CID 1574843: Null pointer dereferences (REVERSE_INULL)
/daemon/call.c: 2418 in codecs_offer()
*** CID 1574843: Null pointer dereferences (REVERSE_INULL)
/daemon/call.c: 2418 in codecs_offer()
2412 // update/create answer/receiver side
2413 ilogs(codec, LOG_DEBUG, "Updating offer codecs for answerer " STR_FORMAT " #%u",
2414 STR_FMT(&media->monologue->tag),
2415 media->index);
2416 if (flags->static_codecs && media->codecs.codec_prefs.length)
2417 ilogs(codec, LOG_DEBUG, "Leaving answerer codecs alone");
>>> CID 1574843: Null pointer dereferences (REVERSE_INULL)
>>> Null-checking "flags" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
2418 else if (flags && flags->reuse_codec)
2419 codec_store_populate_reuse(&media->codecs, &sp->codecs,
2420 .merge_cs = &sp->codecs);
2421 else
2422 codec_store_populate(&media->codecs, &sp->codecs,
2423 .allow_asymmetric = !!(flags && flags->allow_asymmetric_codecs),
Change-Id: Ife9ad5fdf9481fb74bbc4e7c5ac5a784bb564d4b
2 years ago
Donat Zenichev
2924e892e9
MT#58717 Refactor the `call_block_silence_media()`
Just code refactoring, no functional changes.
Change-Id: I8b04c4fcb3353d981123a70206f7851d9e4a7275
2 years ago
Richard Fuchs
76203fdce9
MT#58636 add new option 'static codecs'
Change-Id: Ife8ef86ff0c6dd8733fd063d8ce19f6baaa30e58
2 years ago
Michael Prokop
6d2b26fa6d
MT#58934 GitHub issue templates: list architectures as reported via `uname -m`
Architectures like amd64, i386,... are reported by
`dpkg --print-architecture`, though we can't rely on those
since we don't have only Debian based systems.
So switch to the actual output, as provided by `uname -m`.
Don't list options alphabetically though, as x86_64 AKA amd64
should be the most common option, and "other" makes sense to
present as last option.
Change-Id: I2d8a39d9807f0134665d25de6d89c22a4141a4f9
2 years ago
Donat Zenichev
5de30a855b
MT#58716 Move transcoding flag to media
Instead of using transcoding flag `_TRANSCODING`
on the monologue level, we have to use that on the media
level in order to properly reflect the level on which
transocding is being used, and also to be able to selectively
set this for specific media sessions.
Change-Id: I9a25dc7be24f80b2b6ada816448a67933c762d86
2 years ago
Donat Zenichev
f4c5f8f210
MT#58717 Media sinks: `call_block_silence_media()`
Sinks must be a list of medias, not monologues.
Refactor `call_block_silence_media()`.
Additionally: deprecate the `call_media_subscribed_to_monologue()`
because of no use.
Change-Id: Iafa4fc87d613948b84373985711e8cebfa48fad8
2 years ago
Richard Fuchs
949c5a9d8e
MT#55283 work around gcc <12 being stupid
gcc <12 propagates the const-ness of the given value to the newly
declared variable with __auto_type, leading to silly "can't assign to
const variable" errors. Work around this with an ugly macro.
Change-Id: Ic952c094c24bd802379fc10ad19d559613b2c1d0
2 years ago
Richard Fuchs
c9c6117c66
MT#55283 update all flags to 64 bit
Change-Id: I8635c29cab5843b5bf8092f30a093871eeb37f29
2 years ago
Richard Fuchs
f4a546a915
MT#55283 add atomic64_or/and
Change-Id: Ib6dc615d339d7cdd104297c6b0c46a00e1d680e4
2 years ago
Richard Fuchs
a951651464
MT#55283 move bit flag helpers
No change other than re-ordering, so that they can use the atomic64
primitives.
Change-Id: I4d6c38177392a6115745f77de39d63e42aa34161
2 years ago
Richard Fuchs
a50d553cdd
MT#55283 obsolete bitfield helpers
Change-Id: I04b5bf7c4fc284c0fce1697d2988d571a0d4f377
2 years ago
Richard Fuchs
e969a79428
MT#55283 check DTLS src/dst addressses
Check addresses of received DTLS packets against known ICE pairs if ICE
is in use. Ignore packets that don't correspond to known ICE pairs.
Credit to the the team at EnableSecurity.com for disclosure.
Ref: https://github.com/EnableSecurity/advisories/tree/master/ES2023-03-rtpengine-dtls-hello-race
Change-Id: I45197c50aedeb078763f2f444225ddbda78d9349
2 years ago
Michal Hajek
afd85a4f94
MT#55283 leave SRTP keys in place after DTLS shut
closes #1772
Change-Id: Iaf80e7314730537ca56112cd5f9e1f9c85ca6e3c
2 years ago
Richard Fuchs
ce22afab57
MT#55283 use typed GQueue for calls iterator
Change-Id: I67b2b9322ac0267932846d06e3f703cee2538e31
2 years ago
Richard Fuchs
a40557eb03
MT#55283 remove obsolete macro
Change-Id: I3f05d02fe9475e0689a70725dc659b599a1ac904
2 years ago
Richard Fuchs
8f98f69e98
MT#55283 use typed G* for subscriptions
Change-Id: Iea5b93568817a73a37c10af3fc296520b2133eda
2 years ago
Richard Fuchs
7b2ba5339a
MT#55283 use typed G* for call members
Change-Id: Idcd7d703952d5559d3e13bf681cf7342e6768f12
2 years ago
Richard Fuchs
46a5998fa6
MT#55283 use typed GQueue for endpoint_maps
Change-Id: Ia8dca8396dfb36bfed318fa7957cbb0f46fdcfd9
2 years ago
Richard Fuchs
0dc3768225
MT#55283 use g_auto for auto locks
Change-Id: I103e0d9a2e24286b242ccd3ac4d2d6b734cdfe35
2 years ago
Richard Fuchs
635214be97
MT#55283 use g_auto for GOptionEntry
Change-Id: I1eee92ebacaf3d3037a593b8603e9272f32c881d
2 years ago
Richard Fuchs
99ae7738af
MT#55283 use g_auto for mix_buffer_ssrc_source
Change-Id: I7dde1b36e7d9aeb4c82f1fdb5c83ec9fe3c2d3da
2 years ago
Richard Fuchs
f41989ede6
MT#55283 convert struct mix_buffer_ssrc_source to typedef
Change-Id: I0743b2f5304d6a661e64ce2cd57488e16310b3b9
2 years ago
Richard Fuchs
656de5ba42
MT#55283 use g_auto for rtp_payload_type
Change-Id: I0875325932bb7978b46aef53dd57e8df610bbfbe
2 years ago
Richard Fuchs
c9ac6ecc73
MT#55283 convert struct rtp_payload_time to typedef
Change-Id: Idb415f448a920b73582f9d5f64cca9b53b81a8ac
2 years ago
Richard Fuchs
afbd7d4f0d
MT#55283 remove unused function
Change-Id: I909585611e44d48128ea837fd641cc7de75ac2a0
2 years ago
Richard Fuchs
38d064eab6
MT#55283 use typed GHashTable for tcp streams
Change-Id: Ia52c5895b1174a920c0ebf5c33bd9c86df7e449f
2 years ago
Richard Fuchs
d23d9f8b42
MT#55283 use typed GQueue for ports release
Change-Id: I9cdaa88386c30f00ad4d18406b041ddb5c045e68
2 years ago
Richard Fuchs
f0eba3ca13
MT#55283 use typed GQueue for kernel list
... and switch to singly linked list as that's all we need.
Change-Id: Iaf3d364ed29fc01d192548967535517c33b48972
2 years ago
Richard Fuchs
5bd94a1cc2
MT#55283 use obj_release macro
Change-Id: Ib81eec1bdd615ccdbea819634629c27a4bf45195
2 years ago
Richard Fuchs
2b41188286
MT#55283 use typed GHashTable for local sockets
Change-Id: I88cb27e350c7b2c878764108a3a913f325f4fcb9
2 years ago
Richard Fuchs
a8f9e7b722
MT#55283 use g_auto for stream_fd
Change-Id: Id534ea6f6e0e7f60950d589aabba95d42c59be7a
2 years ago
Richard Fuchs
cd4f6608cd
MT#55283 convert struct stream_fd to typedef
Change-Id: I1435a5f755cb99833535d995871f1e9050f0ec73
2 years ago
Richard Fuchs
d8a17a269b
MT#55283 use typed GQueue for perf stats
Change-Id: I8a678bed2894a2934962f740136382808f9707f1
2 years ago
Richard Fuchs
c6b907017d
MT#55283 use g_auto for call_t
Change-Id: I8fc7e26a48346dae264e38e30b944f0d889b666e
2 years ago
Richard Fuchs
2975b2131d
MT#55283 convert struct call to typedef
Change-Id: I1f01fdf74d6d3952413ebc02dfdb9770b324481c
2 years ago
Richard Fuchs
71c7b8c3eb
MT#55283 use typed GPtrArray for cache packets
Change-Id: I2b4dc4a993d9f88dfabbb454d88d4eef0aa955ce
2 years ago
Richard Fuchs
5fec35e819
MT#55283 use typed GPtrArray for medias
Change-Id: Iadde52af7505b38691d41b9229cb85b252a51ee0
2 years ago
Richard Fuchs
9c1f66b05c
MT#55283 add typed GPtrArray primitives
Change-Id: I8552e75ec8f1b8c3a96163944891631268383cb7
2 years ago
Richard Fuchs
610238d5e3
MT#55283 use typed GHashTable for labels
Change-Id: Id5f514045d5b5c68394f7ab39430b700570ff3b4
2 years ago
Richard Fuchs
8e0276d7ce
MT#55283 use typed GHashTable for codec_stats
Change-Id: I447ff59f947bb88d1731472b16e7ac588a21cae6
2 years ago
Richard Fuchs
260fc20cc7
MT#55283 use typed GQueue for silence_events
Change-Id: Ib2c8e4537f429f2108fddd7752630667dc72766a
2 years ago
Richard Fuchs
9510b01a29
MT#55283 use typed GQueue for dtmf_events
Change-Id: I241190eb84420e8d84b5267d2ba47906ddbd5e6c
2 years ago
Richard Fuchs
895e67d7cf
MT#55283 use typed GQueue for delay_buffer
Change-Id: Ic0f47e7d304f95fa109f1e192d4f9510f5b45788
2 years ago