Browse Source

MT#60476 sdp_create: func to print original attributes

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
rfuchs/test
Donat Zenichev 1 year ago
parent
commit
90f76f0706
1 changed files with 21 additions and 11 deletions
  1. +21
    -11
      daemon/sdp.c

+ 21
- 11
daemon/sdp.c View File

@ -3792,6 +3792,25 @@ static void sdp_out_handle_osrtp2(GString *out, struct call_media *media,
sdp_out_add_osrtp_media(out, media, prtp, 0);
}
/**
* Adds original attributes into the media.
*/
static void sdp_out_original_media_attributes(GString *out, struct call_media *media,
const endpoint_t *address, struct call_media *source_media,
struct packet_stream *rtp_ps, sdp_ng_flags *flags)
{
sdp_out_add_media_connection(out, media, rtp_ps, &address->address, flags);
sdp_out_add_bandwidth(out, source_media->monologue, media);
sdp_insert_all_attributes(out, source_media, flags);
if (MEDIA_ISSET(source_media, ICE)) {
struct packet_stream *rtcp_ps = rtp_ps->rtcp_sibling;
/* TODO: is this a better or worse test than used in print_rtcp() ? */
if (rtcp_ps && (!rtcp_ps->selected_sfd || rtcp_ps->selected_sfd->socket.local.port == 0))
rtcp_ps = NULL;
insert_candidates(out, rtp_ps, rtcp_ps, flags, source_media);
}
}
/**
* TODO: after sdp_replace() is deprecated, move the content of this func
* to `print_sdp_media_section()`.
@ -3802,17 +3821,8 @@ void handle_sdp_media_attributes(GString *s, struct call_media *media,
packet_stream_list *rtp_ps_link, sdp_ng_flags *flags)
{
if (source_media) {
// just print out all original values and attributes
sdp_out_add_media_connection(s, media, rtp_ps, &address->address, flags);
sdp_out_add_bandwidth(s, source_media->monologue, media);
sdp_insert_all_attributes(s, source_media, flags);
if (MEDIA_ISSET(source_media, ICE)) {
struct packet_stream *rtcp_ps = rtp_ps->rtcp_sibling;
// XXX is this a better or worse test than used in print_rtcp()?
if (rtcp_ps && (!rtcp_ps->selected_sfd || rtcp_ps->selected_sfd->socket.local.port == 0))
rtcp_ps = NULL;
insert_candidates(s, rtp_ps, rtcp_ps, flags, source_media);
}
/* just print out all original values and attributes */
sdp_out_original_media_attributes(s, media, address, source_media, rtp_ps, flags);
return;
}


Loading…
Cancel
Save