Summary:ASTERISK-16741: Bad assumption in ast_ouraddrfor in chan_sip regarding extern IP and IPv6
Reporter:Olle Johansson (oej)Labels:
Date Opened:2010-09-28 00:48:15Date Closed:2011-06-07 14:01:01
Versions:Frequency of
Description:The code says:

if (ast_sockaddr_is_ipv6(&theirs)) {
               if (localaddr && !ast_sockaddr_isnull(externaddr)) {
                       ast_log(LOG_WARNING, "Address remapping activated in sip.conf "
                               "but we're using IPv6, which doesn't need it. Please "
                               "remove \"localnet\" and/or \"externaddr\" settings.\n");

Which is definitely wrong. If you have "::" as a bind address, the IPv6 socket *WILL* listen to IPv4 and the externip/localnet settings might be needed on the IPv4 side of life.
Comments:By: Mark Michelson (mmichelson) 2010-11-01 11:09:45

I may be misinterpreting the problem but I think you might be mistaken. The if statement is checking whether "theirs" is IPv6, not "us." If theirs is an IPv6 address, doesn't that guarantee that we'll be using IPv6 as well and so no such remapping is necessary?

Or does the bug apply to a situation where the localnet uses IPv4 but the externip is IPv6?

By: Jeff Peeler (jpeeler) 2010-11-12 12:22:37.000-0600

Closing this as it appears to not actually be a bug.