[OpenSIPS-Devel] [OpenSIPS/opensips] 7ff11a: topology_hiding: do not splice a bare URI in place...

Bogdan Andrei IANCU noreply at github.com
Mon Sep 28 12:12:15 UTC 2026


  Branch: refs/heads/master
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 7ff11a58badc1651f10555b0605d6e725df68b15
      https://github.com/OpenSIPS/opensips/commit/7ff11a58badc1651f10555b0605d6e725df68b15
  Author: Yury Kirsanov <yury at kfi.net.au>
  Date:   2026-09-25 (Fri, 25 Sep 2026)

  Changed paths:
    M modules/topology_hiding/topo_hiding_logic.c

  Log Message:
  -----------
  topology_hiding: do not splice a bare URI in place of a Contact header

With the "a" or "A" flag set, topo_dlg_replace_contact() replaces the whole
Contact header of an in-dialog message with dlg->legs[leg].adv_contact, which
the dialog module stores as a full header - name, angle brackets and
terminating CRLF included. Where that has not been recorded yet, the code fell
back to dlg->legs[leg].contact, a bare URI, and handed it to the same
delete_existing_contact(msg, 1) that had just removed the entire header. The
URI was then emitted with no header name and no CRLF, so it ran into the
following header and absorbed it:

  sip:user at 192.0.2.10:5060;transport=TCPCall-ID: 1-2345 at 192.0.2.20

A UA receiving this cannot match the message to a dialog and drops it, so the
transaction retransmits until it times out.

The window is reachable whenever an in-dialog message overtakes the 200 OK -
a connected-line UPDATE sent at answer, for instance - because the caller
leg's adv_contact is only recorded on TMCB_RESPONSE_FWDED.

Take the preserved-contact path only when there is an advertised contact to
preserve; otherwise build a fresh topology hiding contact, the same one the
message would have carried without the flag.


  Commit: 691811761952c7ab5657553d132e04e791d01fc6
      https://github.com/OpenSIPS/opensips/commit/691811761952c7ab5657553d132e04e791d01fc6
  Author: Bogdan Andrei IANCU <bogdan at opensips.org>
  Date:   2026-09-28 (Mon, 28 Sep 2026)

  Changed paths:
    M modules/topology_hiding/topo_hiding_logic.c

  Log Message:
  -----------
  Merge pull request #4271 from Lt-Flash/fix/th-adv-contact-bare-uri

topology_hiding: do not splice a bare URI in place of a Contact header


Compare: https://github.com/OpenSIPS/opensips/compare/27b7b6475064...691811761952

To unsubscribe from these emails, change your notification settings at https://github.com/OpenSIPS/opensips/settings/notifications



More information about the Devel mailing list