Browse Source

TT#27200 add option to omit a=rtcp attribute

closes #428

Change-Id: Ie186291b7b0107d67488facbfea42cd4915556b4
pull/432/merge
Richard Fuchs 8 years ago
parent
commit
018e35cba8
5 changed files with 28 additions and 10 deletions
  1. +4
    -0
      README.md
  2. +2
    -0
      daemon/call_interfaces.c
  3. +1
    -0
      daemon/call_interfaces.h
  4. +19
    -9
      daemon/sdp.c
  5. +2
    -1
      utils/rtpengine-ng-client

+ 4
- 0
README.md View File

@ -977,6 +977,10 @@ Optionally included keys are:
Identical to setting `record call` to `on` (see below).
- `no rtcp attribute`
Omit the `a=rtcp` line from the outgoing SDP.
* `replace`


+ 2
- 0
daemon/call_interfaces.c View File

@ -562,6 +562,8 @@ static void call_ng_process_flags(struct sdp_ng_flags *out, bencode_item_t *inpu
out->port_latching = 1;
else if (!bencode_strcmp(it, "record-call"))
out->record_call = 1;
else if (!bencode_strcmp(it, "no-rtcp-attribute"))
out->no_rtcp_attr = 1;
else
ilog(LOG_WARN, "Unknown flag encountered: '"BENCODE_FORMAT"'",
BENCODE_FMT(it));


+ 1
- 0
daemon/call_interfaces.h View File

@ -47,6 +47,7 @@ struct sdp_ng_flags {
rtcp_mux_demux:1,
rtcp_mux_accept:1,
rtcp_mux_reject:1,
no_rtcp_attr:1,
strict_source:1,
media_handover:1,
dtls_passive:1,


+ 19
- 9
daemon/sdp.c View File

@ -1991,18 +1991,28 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu
|| (flags->opmode == OP_OFFER
&& flags->rtcp_mux_require)))
{
chopper_append_c(chop, "a=rtcp:");
chopper_append_printf(chop, "%u", ps->selected_sfd->socket.local.port);
chopper_append_c(chop, "\r\na=rtcp-mux\r\n");
if (!flags->no_rtcp_attr) {
chopper_append_c(chop, "a=rtcp:");
chopper_append_printf(chop, "%u", ps->selected_sfd->socket.local.port);
chopper_append_c(chop, "\r\na=rtcp-mux\r\n");
}
else
chopper_append_c(chop, "a=rtcp-mux\r\n");
ps_rtcp = NULL;
}
else if (ps_rtcp && !flags->ice_force_relay) {
chopper_append_c(chop, "a=rtcp:");
chopper_append_printf(chop, "%u", ps_rtcp->selected_sfd->socket.local.port);
if (!MEDIA_ISSET(call_media, RTCP_MUX))
chopper_append_c(chop, "\r\n");
else
chopper_append_c(chop, "\r\na=rtcp-mux\r\n");
if (!flags->no_rtcp_attr) {
chopper_append_c(chop, "a=rtcp:");
chopper_append_printf(chop, "%u", ps_rtcp->selected_sfd->socket.local.port);
if (!MEDIA_ISSET(call_media, RTCP_MUX))
chopper_append_c(chop, "\r\n");
else
chopper_append_c(chop, "\r\na=rtcp-mux\r\n");
}
else {
if (MEDIA_ISSET(call_media, RTCP_MUX))
chopper_append_c(chop, "a=rtcp-mux\r\n");
}
}
}
else


+ 2
- 1
utils/rtpengine-ng-client View File

@ -21,6 +21,7 @@ GetOptions(
'protocol=s' => \$options{'transport protocol'},
'trust-address' => \$options{'trust address'},
'sip-source-address' => \$options{'sip source address'},
'no-rtcp-attribute' => \$options{'no rtcp attribute'},
'symmetric' => \$options{'symmetric'},
'asymmetric' => \$options{'asymmetric'},
'replace-origin' => \$options{'replace-origin'},
@ -55,7 +56,7 @@ for my $x (split(/,/, 'from-tag,to-tag,call-id,transport protocol,media address,
for my $x (split(/,/, 'TOS,delete-delay')) {
defined($options{$x}) and $packet{$x} = $options{$x};
}
for my $x (split(/,/, 'trust address,symmetric,asymmetric,force,strict source,media handover,sip source address,reset,port latching')) {
for my $x (split(/,/, 'trust address,symmetric,asymmetric,force,strict source,media handover,sip source address,reset,port latching,no rtcp attribute')) {
defined($options{$x}) and push(@{$packet{flags}}, $x);
}
for my $x (split(/,/, 'origin,session connection')) {


Loading…
Cancel
Save