On 17/08/16 20:26, Noah Mehl wrote:
I discussed this with Alex Balashov off-line, and he answered my questions:

  1. A flag of 3, I don’t understand.  I read the documentation, and there is a 1,2,4,8,etc…  So, I’m guessing that a flag of 3, means 1+2?

Yes, apparently this is a bit array: https://en.wikipedia.org/wiki/Bit_array and a value of 3 = 1+2.

  1. If #1 is true, then "the "received" test is used: address in the “Via” header is compared against source IP address of signaling”
    1. I don’t understand this test, as I’m pretty sure that the 200OK that’s getting re-written is properly constructed.  I guess I’m trying to understand when one would want to use this test?

Although we weren’t able to come up with an example for this test, it does not seem to apply to my environment.  Updating the flag to 1 solves my issue.
This is when the sip message was sent from a.b.c.d and the Via header has x.y.z.w. if you get a pcap with the request, we can check and see if the test is true for it.

On the other hand, you should use set_contact_alias()/handle_ruri_alias() instead of fix_nated_contact() (see how default kamailio.cfg does it) -- it is safer for such cases and avoids getting in troubles with devices that are strict in checking if the r-uri is the contact they set previously.

Daniel-Constantin Mierla
http://www.asipto.com - http://www.kamailio.org
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda