[sr-dev] adding ice attributes to sdp parser

Juha Heinanen jh at tutpro.com
Sat Dec 29 08:51:41 CET 2012


Ovidiu Sas writes:

> The right place to add them would be sdp_stream_cell (those attributes
> are stream attributes)

ovidiu,

my goal is to be able to figure out in rtpproxy/force_rtp_proxy function
if a=candidate relay attribute(s) should be added when the function
alters ip address and port of a media stream.

the terms are a bit confusing here.  ice rfc 5245 uses terms session
(stuff that follows s= line) and media stream (stuff that follows m=
line).

anyway, if media stream contains a a=candidate line with component-id 1
(= rtp) or 2 (= rtcp), i would like to add a corresponding a=candidate
relay line.

for example, if media stream contains line

a=candidate:c0626422 1 UDP 2113932031 192.98.102.1 18380 typ host

i would like to add (for example) a line:

a=candidate:r6ba1155 1 UDP 16777215 192.98.102.10 51345 typ relay

where 192.98.102.10 and 50345 are ip and port of the media relay.

> The only thing is how to organize them:
>  - a list of all attributes
>  - several lists based on candidate-type or component-id or something else.
> It all depends on what do we want to access.

the only thing i care about a a=candidate line is if a line with given
type (1 or 2) exists.  i don't care how many such lines exists.  the
other thing is that i need to know a place in sdp where the new
a=candidate line can be added (it can be anywhere among the a= lines of
the media stream).

so i thought to add these two fields to typedef struct sdp_stream_cell:

        char *first_rtp_candidate;
             /**< RFC5245: pointer to first rtp candidate (if any) */
        char *first_rtpc_candidate;
             /**< RFC5245: pointer to first rtpc candidate (if any) */

does this sound reasonable to you?

-- juha



More information about the sr-dev mailing list