Look for the first usable (non-rejected, non-empty)
media and ps, thereby to determine session-level attributes,
if any. For that to work, it has to have `->selected_sfd`
of the packet stream.
Change-Id: Id4324864571bc78936aa16e235e3866e40860420
Remove print_sdp_media_section's dependency on sdp_media and instead use
a call_media object as source.
Change-Id: I0486b10590ae996da22822f57ec48110f4b88da1
For trickle ICE updates that need to be queued up, this requires storing
the unparsed SDP in the fragment object, and then doing the parsing when
actually processing the fragment.
This allows the call's memory arena to be used for parsing.
Change-Id: I28ed192c4443cedfa3095007cc8a555e3aa7a17a
Instead of having to explicitly pass the call object to each invocation,
keep one thread-local reference to a call, implicitly set by setting the
logging context.
Add helper functions to set and release the respective reference.
Change-Id: Ic0d82eeaa403467d50dae867e33fdf9b9dd7cec5
Refactor the `sdp_out_add_other()` function to be compatible
with the sdp attribute manipulations.
Change-Id: I134b58c5126ff34804ebf9458faf8509250e097a
Because used only within daemon/sdp.c
makes no sense to keep it visible for other
files (even though there is no even
a declaration in the header).
Change-Id: Ifb4798aa713fec9f787f1422a15ea41ae6c5b190
For the `print_sdp_media_section()` change
parameter naming `message_setup` -> `sdp_create`,
so that other differentiations can also take place
in this function.
E.g. slightly different rtcp handling for the
sdp_create in comparison to the sdp_replace (because
no chopper based approach can be applied here).
Change-Id: I555e0ace04b384d6907f831c2a3de9a0b09777e4
Support session level group attribute
for the sdp_create approach.
Additionally: fix the `testVideoroomWebRTCVideo` test,
because as it turned out it used to lose the `a=group:`
attribute before.
Change-Id: I799dfe0dcc5e0708864150cd0e0262a61dd4cc05
This is needed on armel due to
/usr/bin/ld: ./../lib/auxlib.h:513: undefined reference to `__atomic_compare_exchange_8'
/usr/bin/ld: ./../lib/auxlib.h:507: undefined reference to `__atomic_load_8'
etc
Change-Id: I37793cb4d166a9cd8004a7a6b45ce67cb98d3798
Don't just set always to true (if media is active),
but check if it's a MESSAGE type, which is by default
inactive.
Change-Id: I492e6fb62acb6fb6a112353535171a22e93baf3f
For the `sdp_create` based approach, introduce
`a=setup:` handling in cases with the message media
type processing.
Currently this has to be divided for sdp_replace
and sdp_create users. This is because sdp_replace one
uses chopper based approach, which in combination with
changes in this commit dupplicates the setup attribute.
In order to separate the logic both approaches,
introduce a temporary bool, until the time when
sdp_replace gets fully deprecated.
A move of the check out of the `is_active` condition
is required, because the message media type isn't active
and hence has to be checked out of the active context.
Change-Id: I32b8f3f3928ba22e030ab5a6414b93fcd7c47201
When initializing a media for the other side (while
processing an offer), keep not only the `->protocol`
updated, but also the `->protocol_str`, so that this
can be usable while preparing an SDP for it.
Change-Id: I209b9048fae836903c9165c6b87682a06e77a744
Remove all codecs that cannot be transcoded to when the audio player is in
use.
Add safety to make_transcoder to return failure in case an unsupported
codec is requested for transcoding.
Convert leftover passthrough handlers to SSRC passthrough if there are
any (shouldn't be).
closes#1858
Change-Id: I1822e48723622d550624c7355a1acfbf8ca38eb8
Just keep the `s=` attribute empty, if it is
coming like that in the message being processed.
Current behavior of the sdp_create approach just
inserts the `rtpe_config.software_id`, which is wrong.
Change-Id: I1235081b90786f5d9480fd1cad9f2751c60e7720
Instead of setting it in two lines via temporary variable,
just negate it in one line for laconicity reasons.
Change-Id: Ie65d68ef5b8082f5de544ab2a9833a59d5e01d9a
Added support of the CT (conference total) bandwidth
attribute for the SDP session level. See RFC8866.
Will be required later for the SDP formatting in `sdp_create()`.
Change-Id: Ifc64f68d7acee8ce253882f4fa480bbf7ad7c0bd
This patch forces rtpengine to use the IPv4 TTL and IPv6 hop limits set
on the host for proxied packets in kernel mode.
Beforehand, the TTL was always set to a hardcoded value of 64. While
this is the default almost everywhere, it may be desirable to be able to
set a higher value. Especially when interfacing with complex carrier
backbone networks.
Closes#1860
Change-Id: I2ddf5752db541205d92f042db22eb738481e84a3
Even if the media isn't accepted, still check for the mid
presence and add it, if required. This is the only attribute
to printed, for the media which wasn't previously accepted
(so 0 port added for it).
See: #1361 and #1362.
Change-Id: Ib92930d6e1ec4dfe526fa18869c5f7a8e17f6a4f
Move handling of the usual `m=` line, so printing
of: media type, port, protocol (e.g. RTP/SAVP),
to a separate function to make the `sdp_create()`
implementation be more laconic for reading.
This function is a default alternative for the
`sdp_out_add_osrtp_media()`.
No functional changes.
Change-Id: I469abbbf6e203d2cc655a26bbf44ff3c7a66b1df
Move a check that port isn't 0 to the function itself,
instead of checking each time before calling the func.
Change-Id: Iec43770fc0f5846c63f6e11d8c2dfb2be135aec6
Make the `sdp_create()` implementation be more laconic,
and move the OSRTP related handling into separate funcs:
- `sdp_out_handle_osrtp1()`
- `sdp_out_handle_osrtp2()`
Just refactoring, no functional changes.
Change-Id: Ib3c5f58d215ea3e0622d328656d82919dfa391c5
Move printing of other session level attributes (so taken
from the coming SDP and to be carried out to the outgoing one)
to a dedicated function `sdp_out_add_other()`.
No functional change.
Change-Id: I94713545e7610d74d36a6a5f3027c64407c6750c