@ -887,6 +887,20 @@ static void call_ng_process_flags(struct sdp_ng_flags *out, bencode_item_t *inpu
bencode_get_str ( it - > sibling , & out - > received_from_address ) ;
}
if ( bencode_dictionary_get_str ( input , " drop-traffic " , & s ) ) {
switch ( __csh_lookup ( & s ) ) {
case CSH_LOOKUP ( " start " ) :
out - > drop_traffic_start = 1 ;
break ;
case CSH_LOOKUP ( " stop " ) :
out - > drop_traffic_stop = 1 ;
break ;
default :
ilog ( LOG_WARN , " Unknown 'drop-traffic' flag encountered: ' " STR_FORMAT " ' " ,
STR_FMT ( & s ) ) ;
}
}
if ( bencode_dictionary_get_str ( input , " ICE " , & s ) ) {
switch ( __csh_lookup ( & s ) ) {
case CSH_LOOKUP ( " remove " ) :
@ -1146,6 +1160,14 @@ static const char *call_offer_answer_ng(bencode_item_t *input,
recording_start ( call , NULL , & flags . metadata ) ;
}
if ( flags . drop_traffic_start ) {
call - > drop_traffic = 1 ;
}
if ( flags . drop_traffic_stop ) {
call - > drop_traffic = 0 ;
}
ret = monologue_offer_answer ( monologue , & streams , & flags ) ;
if ( ! ret ) {
// SDP fragments for trickle ICE are consumed with no replacement returned