[asterisk-dev] Configured IPv6 transport in endpoint being overwritten by IPv4

Roger James roger at beardandsandals.co.uk
Wed May 13 06:13:18 CDT 2020


Hi Joshua,

Thanks for your prompt response. I will comment inline.



On 13 May 2020 11:10:52 "Joshua C. Colp" <jcolp at sangoma.com> wrote:
> Does "pjsip show endpoint" continue to show the correct transport?

No. By the time asterisk gets to a point where you can interact with the 
cli the endpoint shows the name of an ipv4 transport. In this case 
"0.0.0.0-udp".

> If so, then it's not in sorcery but outside of it somewhere. You're going 
> to need to clarify what this "persistent ipv4 only mode" actually means.

The AOR contact for the endpoint uses a hostname.

[AAPJSIP]
type=aor
qualify_frequency=60
contact=sip:xxxxxxxxxxxx at voiceless.aa.net.uk:5060

The hostname resolves to both ipv4 and ipv6 addresses. Because the 
transport has been set to ipv4 the resolver ignores any AAAA records and 
tries an A record first, this works and is used to register with the provider.

> For example: I place a call to the endpoint with the transport set to IPv6 
> and it results in IPv4 being used. If that's the case then you'd need to 
> specify what the URI is - if it is a hostname then you'd need to look at 
> the log messages from the resolver. If it's registered then the URI would 
> also need to be examined just in case. That will tell you, for example, if 
> the resolver was explicitly told to limit to IPv4 or not. If it wasn't and 
> it resulted in AAAA records then it would be further up the stack 
> somewhere. You'd also need to clarify what being successful means in the 
> context of an active IPv4 connection. Does that mean placing a call to it? 
> Finally you haven't specified UDP, TCP, or TLS.

It is all UDP.

>
> As an aside. It is educational to put a break point on the code in config.c
> that reads the config files. I have isolated the transport=my-ipv6 line
> into its own file, and made the break point conditional on that file name.
> It is triggered an unbelievable number of times. I cannot see the wood for
> the trees. It also seems very wasteful as somewhere way back up the stack
> it is going to be thrown away as "file unchanged". Isn't that what last
> modification times are for?
>
>
> Without further context as to your specific deployment and usage, can't 
> really answer. I can say though that file modification times and such are 
> taken into account when reloading. If it's unchanged then it isn't reloaded.

I did not look at this very closely. My breakpoint was on entry to the 
function that reads the file. It looked to me like the file was always 
being read. This is only a note that I probably should not have piggy 
backed on the end of the message. Don't waste time on it.

Returning to the main problem. I did a test removing all the extensions 
from the config files. This only left transports, endpoints and associated 
aors etc. The problem still remained. This suggests that it is coming from 
persistent config that is not in the .conf files.

I am probably being totally dumb on this. It is years since I last did any 
serious hacking on asterisk. This is a big learning curve for me. At my 
age, senility means, that learning curves can be sawtooth.

Roger


>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20200513/fac899af/attachment-0001.html>


More information about the asterisk-dev mailing list