I'm facing a problem which I believe may be a bug in the registrar module's lookup. When a registration comes with multiple Path headers, these are recorded in the location table as comma separated. When the lookup is performed and these are used to construct the Route header(s) on an INVITE, this comma-separated list is not split into multiple Route headers, but instead included verbatim in a single header.

Here comes my theory for how this breaks my scenario:

When the INVITE then reaches the first hop (first Path header, also Kamailio), relay() sees that the Route header is itself and/or sees that there is only one Route header.

The observed result is that the first hop then sends the INVITE directly to the Contact, instead of via the second hop.

An example of the situation I'm facing is shown inĀ https://gist.github.com/benlangfeld/b374a0ce0bdb6bdc35e7.

Is there a particular reason the combined path is not split on lookup? Is this a bug / oversight? Am I crazy?

Thanks!
Ben