Ignore `a=` during sdp attribute level manipulations
during lookups with the `sdp_manipulate_remove()` and
`sdp_manipulations_subst()`. This is only in:
- `append_attr_int_to_gstring()`
- `append_attr_to_gstring()`
This is required for a proper `str` matching in ht.
Then explicitely add `a=` to the resulting `GString *s`.
Change-Id: I569a356e9a01cffb0068a87a9c6d5a568fe85ecc
(cherry picked from commit fff475cc45)
(cherry picked from commit 01070e2f5b)
In order to be able to remove or substitute `fmtp` parameters,
we have to take care of that in `insert_codec_parameters()`,
since `fmtp` are additionally being printed already after
execution of `process_media_attributes()`.
Change-Id: I78547be13939e161b193beecd8693e22c534fd18
(cherry picked from commit 1bf894cc9e)
(cherry picked from commit 87b7cad17a)
With the "foreign" flag now stored in call_flags, restoring a call from
Redis restores this flag as well, overwriting the desired flag as we had
set it through call_get_or_create().
Reverse the flag setting by taking it out of call_get_or_create() (where
it's always false anyway, except when coming from Redis) and setting it
explicitly with call_make_own_foreign() after restorting call and its
flags.
Change-Id: Ib68be2aeedfa988b7555e426fa337657e1062245
(cherry picked from commit dbae76c3b6)
UDP packets sent in response to a UDP request should have the same
source address as the request's destination address.
This can be achieved with sockets bound to a specific address, but in
the case of ANY-bound sockets, we can use the PKTINFO mechanism to do
this.
Extend control_ng_process() to accept an extra socket address
corresponding to the local address to use. Extend the signature of the
callback function (to do the actual sending) accordingly.
Extend socket_sendiov() to be able to set the PKTINFO cmsg when sending
a packet.
Add socket_sendto_from() as a convenience wrapper.
Extend control_udp_incoming() to pass the address from
udp_buf->local_addr back to socket_sendiov().
Change-Id: Idd019fdcfd796098e7807427e6686d4b05de35d1
(cherry picked from commit 8684a1933a)
Convert each listener entity into a list.
Support a list of values for each option so that multiple
ports/addresses can be listed.
Keep previous behaviour unchanged: If ANY address is given, open
listeners for IPv4 and IPv6.
Change-Id: Ic54f28d1262f60d5e5c9d824a95e7c33ebc2aba9
(cherry picked from commit ddc3565bfe)
as per RFC 8839
We're liberal and also accept it as a media-level attribute.
closes#1721
Change-Id: If0cd853f3661ff9e183fbd9dab3f4ca634823c87
(cherry picked from commit f05a8e4b4d)
previously, dtmf_inject wouldn't add the events as the dtmf_payload_type
was set to -1 as part of the delay buffer handling. However, as we
know we want this DTMF, this change updates the function to check for
and use the real_dtmf_payload_type value
Then, in codec_add_dtmf_event, we can check the injected bool and
if set, use the real_dtmf_payload_type again to decide whether to
push the event onto the queue
closes#1722
Change-Id: I34e35f92e014f4aed9e045737df7400155b86602
(cherry picked from commit e40e6c5cd0)
We always need to (re)set the ssrc_map_out SSRC, even for the input
context, as this SSRC is used to look up the receiving SSRC context,
where the appropriate RX stats are stored, including the payload type in
use.
Change-Id: I434c6df4761bf56e36c7267dd3a44b0bb9c9b852
All functions that create listener objects take a read-only endpoint, so
make them as const.
Remove the extra TOS argument to make all signatures the same.
Change-Id: I722c7665b192476d90dbf0ece200d0bfd34cb9eb
Forking to background kills already created threads, so forking must
happen first and thread creation after.
closes#1695
Change-Id: I743b890b83903d9e0b3248b032844e7e357d2307