[sr-dev] git:master:236fada4: core: add support of ICE media options to SDP parser

Victor Seva linuxmaniac at torreviejawireless.org
Mon Feb 28 09:13:27 CET 2022


Module: kamailio
Branch: master
Commit: 236fada43f610b910490f7e0c216ac9aa3d9480c
URL: https://github.com/kamailio/kamailio/commit/236fada43f610b910490f7e0c216ac9aa3d9480c

Author: Donat Zenichev <dzenichev at sipwise.com>
Committer: Victor Seva <linuxmaniac at torreviejawireless.org>
Date: 2022-02-28T09:13:21+01:00

core: add support of ICE media options to SDP parser

In the current implementation only parsing of ICE candidate
attributes is supported, which makes it Possible to work
with ICE candidates and parameters specifically related per
candidate, but makes it Impossible to work
with ICE options of the media stream level (ICE options which
have an impact on the whole specific media stream).

ICE candidate attributes and ICE media options have different
dedication.

In order to target this matter, a new linked list is introduced
to store ICE media stream options.

Additionally, now when parsing media stream's attributes,
a couple of new helper functions have been introduced to
properly extract and store ICE media options:
- extract_ice_option()
- add_sdp_ice_opt()

The following extraction approaches are supported:
- multi-valued ICE options attribute (more than one value per a= header)
- one value per attribute (multiple a= headers with ICE options present)

Also now the way how a "zeroed" on-hold is detected is improved,
in case of the ICE (re)negotiation (when the connection address is equal
to '0.0.0.0', the media port is equal to '9' and ice-option 'trickle' is
present) the SDP is Not considered as an on-hold case, and it clearly
detects it's the ICE (re)negotiation (RFC 8840), which for e.g.
leads to a proper work of other side modules' functions (which use SDP
parser's data structures),
such as 'is_audio_on_hold()' from the textops.so module.

---

Modified: src/core/parser/sdp/sdp.c
Modified: src/core/parser/sdp/sdp.h
Modified: src/core/parser/sdp/sdp_helpr_funcs.c
Modified: src/core/parser/sdp/sdp_helpr_funcs.h

---

Diff:  https://github.com/kamailio/kamailio/commit/236fada43f610b910490f7e0c216ac9aa3d9480c.diff
Patch: https://github.com/kamailio/kamailio/commit/236fada43f610b910490f7e0c216ac9aa3d9480c.patch




More information about the sr-dev mailing list