Teach rtpengine to distinguish between G.729 with and without annex B,
which are incompatible to each other.
Change-Id: I09b66a097007ba3283546880f06f81b4f89e126d
(cherry picked from commit 7ab4009a0b)
HTTP/WS init creates worker threads, which would be terminated by a fork
to background. Reverse the order.
Closes#1896
Possibly also relevant to #1895
Change-Id: I30b61e07ad3bed41b6b241e8943ed479277c1474
(cherry picked from commit dd04af1163)
Some compilers seem to think that there is some uninitialised usage
here. Work around this.
Closes#1891
Change-Id: Ic97a4b589fd2a0c33418a209557b7ce29009c7bf
(cherry picked from commit 4b614d8ce0)
If recording-method is pcap, then proc is zero-initialized, so
meta_filepath is empty. This shows many logs such as:
[core] Failed to open recording metadata file '(null)' for writing: Bad address
Prevent them by returning earlier.
Closes#1889
Change-Id: Ifeb3038f9a5c0bd6a9b7dd92842dd61783b40263
(cherry picked from commit 759fd72dc6)
- LTS mr11.5.1 doesn't build with system GCC 8.5 on EL8
- add a workaround for using GCC 13
Closes#1887Closes#1886
Change-Id: Ib93942fae8f754c7673509ccb45e0d08569f23f0
Addresses: #1886
(cherry picked from commit 0e2033bbc7)
These macros were used for development only and are not needed any more.
Their names collide with an upstream patch, making compilation fail on
kernels >= 6.12. Just remove these wrapper macros altogether.
Change-Id: I6e154be76bfcfb650581095b169ddd58e5f464a0
(cherry picked from commit 6b3f3b9698)
* Added libatomic to the el/ build dependencies. This was required since
commit 741f6ac when -latomic was added to lib/common.Makefile
* Changed link to the copr repo with spandsp3. There is seperate repo
for EL9 now.
Closes#1880
Change-Id: I9ba2246bd0f2fa6f2d6196d6c66a527f5f1dd3f0
(cherry picked from commit f07dd416e0)
ffmpeg 7.1+ has deprecated direct usage of ->sample_fmts in favour of a
call to avcodec_get_supported_config(). Update accordingly.
Change-Id: I0fbecbbcf52c38976f3387e34d816d11e1d09480
(cherry picked from commit 65477ac5d5)
These strings are not null terminated. Use the correct string length.
Change-Id: I15d7541af0d9cc09401180a7d45edbec9b915aa2
(cherry picked from commit 0a1d658766)
under normal circumstances, the rtp sink enters this function first
and updates the reti->local.family var to AF_INET so that when the
function is called for an rtcp sink, it exits the function early.
However, if media is being blocked the rtcp sink is the first to
enter the function and does so with a NULL payload type. this NULL
check is therefore required to prevent a sefgault on the call to `assert`.
closes#1876
Change-Id: Id95cbbc9ae388f50dd51417c351f4a9ba09eb5f0
(cherry picked from commit 8e04c44b86)
Re-move misleading log line to another place.
In the `sdp_manipulate_remove()` function:
- true - means remove
- false - means don't remove
Correct logging accordingly.
Change-Id: I3e0c08552a0192f3985da990b5f0c96cc31ece94
(cherry picked from commit ac488e3e10)
Explicitly set log context to the outgoing socket when sending packets
Change-Id: Iae17951654b09b3c48de724aeded70cdb6ce7a40
(cherry picked from commit b8468ec042)
Make sure stats are always added to the `delete` message.
Fixes stats being missing in case of `delete` without from-tag.
Change-Id: I635cc87b91d3e488696f33380b12dc68a24e51ad
(cherry picked from commit 7b28ec4402)
The pcre2 API was changed from
pcre2_substring_list_free(PCRE2_SPTR *)
to
pcre2_substring_list_free(PCRE2_UCHAR **)
in 10.43. The difference is a `const` qualifier. Work around this.
Closes#1869
Change-Id: Ib3dd3003352f6c3155bb47d69ecb7a1b02f4647a
(cherry picked from commit 4ebebe08d8)
Fix the math in the sequencer code to determine ROC and extended
sequence number. This has become significant as the sequence numbers are
written into shared memory space.
Change-Id: I9e519a29a3822d02f7c389920ee0909b48828525
(cherry picked from commit 84b2d2c30e)
We use int or unsigned int everywhere, except in a few leftover places.
Unify to (unsigned) int.
Change-Id: I0896b2f177957c17b30a3d0cb6b3fb2beb4bd684
(cherry picked from commit f60ee917c9)
Allow usage of `key=[ something ]` in rtpp_flags
One test is affected
Change-Id: Ib3d68f298d2e0cd02c74bf2c7d3d02b055223bc4
(cherry picked from commit f3aa776b93)
These functions expect a `rtpp_pos` argument, and while `str` is
compatible through the union, it lacks the second member of the struct,
which ends up uninitialised. Use the correct type through temporary
objects instead.
Change-Id: I0c553bdbb31c351346746b6072f2d424113bac5a
(cherry picked from commit 09ec2abf6e)
If we remove a session that is not the session we're looking for
(re-used session ID after a removal race), we must return the incorrect
session to the hash table.
Change-Id: Iab73e1994251e5be766406b4e537a954b0e81f07
(cherry picked from commit 164f688fc1)
Release object reference when key is removed. Only relevant at shutdown.
Change-Id: Idc18890bb34d7e584dc5b4816553c759c3c663e2
(cherry picked from commit 7b9fcae055)
Print the `c=` attribute before all other attributes.
Additionally: fix tests accordingly.
Change-Id: I338a84d79ed9d7045bcfd0f07a40a16b986d2fcc
(cherry picked from commit 1969ac61c8)
Use a BIO WRITE callback instead of BIO_read'ing from the BIO after each
operation. This is a more direct way to intercept data that needs to be
sent out.
Implement MTU-related BIO callbacks.
Deduct the assumed IP MTU overhead from the configured MTU during
startup.
Unlike the previous code, this does not necessarily send DTLS from the
same socket that received a message, nor to the same address that sent
one, and instead always uses the selected_sfd and ->endpoint. This may
or may not be a regression.
Closes#1806
Change-Id: I4d4456df3f378d00782cbfa64afdb2a038217e6c
(cherry picked from commit 08332161cf)
For the sdp_create approach, currently given monologue
is actually the holder of `session_last_sdp_orig` for
currently processed direction of SDP preparation.
So this -> other, whereas other keeps the required last orig.
Change-Id: Id1bdb80ecc0401be5fd430cd4369b8588de4379b
Move the `sdp_manipulations_add()` func to work with
Gstring directly, instead of using the chopper object.
This will be needed later, when working with it
from behalf of sdp_create.
Change-Id: I2843aa0c97cb968adb450ca985efa6d7d9b2275e
When processing bandwidth attributes per session
level, always update them, independently if the
currently parsed value has been set => 0.
The problem is, that if we only set them,
when initialized to != -1, then every new offer
within existing dialog, will keep bandwidth set
for the monologue, even if the newer offer
doesn't set this anymore.
Change-Id: Ifef964798a8ce9b38a4fd5f26b5bb4d0678b8829
Because not specificially used in rtpengine,
just deprecate it. Not to be mixed with
the `label=xxx` usage via NG protocol.
This will be also required when switching to
the sdp create approach, because needs to be
delivered via generics to print out SDP.
No functional change. Tests had to be fixed accordingly,
because of the appeared offset in the list of attributes.
Additionally, tests containing coming SDP with a label,
but which are within inactive media, don't pass it further.
One single example of it is an answer case of "a=mid mixup" test.
This is because of `print_sdp_media_section()` specifics,
and only printing generics for active media sessions.
Change-Id: Iabb44adf17adb5d8e0c5bcad20f527b591b2222c
Add rtcp-fb attributes applied to all payload types
via generic attributes instead of using the chopper.
This will be required when switching to the sdp create
approach.
No functional change. Tests containing `*` payload type
had to be fixed accordingly, because of the appeared
offset in the list of attributes.
Change-Id: I9fc1d2faf578a3c533cd85e5e52afd4af2062149
The `med` is assigned to NULL, which however
doesn't serve any purpose. To fix this defect report,
just remove the redundant assignment.
Fixes the:
*** CID 1600020: Code maintainability issues (UNUSED_VALUE)
/daemon/call.c: 690 in __get_media()
684 med = g_hash_table_lookup(ml->media_ids, &sp->media_id);
685 if (med) {
686 if (med->type_id == sp->type_id)
687 return med;
688 ilogs(ice, LOG_WARN, "Ignoring media ID '" STR_FORMAT "' as media type doesn't match. "
689 "Was media ID changed?", STR_FMT(&sp->media_id));
>>> CID 1600020: Code maintainability issues (UNUSED_VALUE)
>>> Assigning value "NULL" to "med" here, but that stored value is overwritten before it can be used.
690 med = NULL;
691 }
692 if (flags->trickle_ice)
693 ilogs(ice, LOG_ERR, "Received trickle ICE SDP fragment with unknown media ID '"
694 STR_FORMAT "'",
695 STR_FMT(&sp->media_id));
Change-Id: I9871be9cab8928a8e5b6ad2a5e403b9ee3d44295
Add `break` statement. Fixes:
*** CID 1600019: Control flow issues (MISSING_BREAK)
/daemon/call_interfaces.c: 1162 in call_ng_flags_flags()
1156 out->strip_extmap = 1;
1157 break;
1158 case CSH_LOOKUP("symmetric-codecs"):
1159 ilog(LOG_INFO, "Ignoring obsolete flag `symmetric-codecs`");
1160 break;
1161 case CSH_LOOKUP("to-tag"):
>>> CID 1600019: Control flow issues (MISSING_BREAK)
>>> The case for value "155" is not terminated by a "break" statement.
1162 case CSH_LOOKUP("to_tag"):
1163 /* including the To tag in the delete message allows to be more selective
1164 * about monologues within a dialog to be torn down. */
1165 out->to_tag_flag = 1;
1166 case CSH_LOOKUP("trickle-ICE"):
1167 case CSH_LOOKUP("trickle-ice"):
Change-Id: I0195341ec70ea623ea7fece3782cfdc030ee4eaf