diff --git a/src/dialog/dialog.rs b/src/dialog/dialog.rs index 508e54f..864f60e 100644 --- a/src/dialog/dialog.rs +++ b/src/dialog/dialog.rs @@ -873,7 +873,19 @@ impl DialogInner { if let Some(headers) = headers { for header in headers { - resp_headers.unique_push(header); + match &header { + rsip::Header::Other(name, _) => { + let lname = name.to_ascii_lowercase(); + resp_headers.retain(|h| { + !matches!( + h, + rsip::Header::Other(n, _) if n.to_ascii_lowercase() == lname + ) + }); + resp_headers.push(header); + } + _ => resp_headers.unique_push(header), + } } }