Add `call_ng_process_flags()` based parsing
as for other opmodes, like offer and answer.
This keeps the backwards compatibility with
the older "flags" parsing approach on the
module side, as well as adds the possibility
to parse rtpp-flags on the daemon side.
As an advantage, there is no need to use
specific local parsing for things like
to/from tags, call-id, delete-delay etc.
Additionally:
- this commit introduces flags-flags parsing
for the "fatal" flag.
However, as before is only taken into account
by the `call_delete_ng()` processing,
so no functional change.
- this commit introduces main-flags parsing
for the "delete-delay" flag, which is also
only taken into account by the `call_delete_ng()`
processing, so no functional change.
- this commit adds To-tag options flag prasing
into the `call_ng_flags_flags()` function,
and is used by `call_delete_ng()` specificially,
for cases when more specific identification of
monologues to be deleted is used.
Change-Id: Ia992e5375a2f86318d9ad193a7857dd589038eed
Use a small stack buffer instead of obtaining a thread-local one when
writing directly to a GString.
Change-Id: Ia15b8eee365ddb14e35eddc72358c4793ccba7d9
If both source and destination medias are non-RTP/non-SRTP,
then just consider it as pass through by default.
Change-Id: Id97a916ab236561e2ae776b54d89deae4da6f3ec
Add a function `sdp_out_original_media_attributes()`
which prints original attributes into the media, for
cases like MT_MESSAGE or ice force relay.
Change-Id: Ic5a3c1e4ed4a9ff3235fdf55252eba1e75c8381f
It's been noticed that trying to print a zero
conneciton address, on the media stream, which
actually offered non-zeroed IP source, but a
zero port, leads to a segmentation fault,
because it relies in this case on presented
`sockaddr_t` information, which is actually absent.
This happens only with sdp_create on offer/answer.
Test fixed is "a=mid on zero streams".
Change-Id: Ic2f7f671c9ded9b361d6467ca013698fdff28538
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