<div dir="ltr"><div dir="ltr">On Wed, May 13, 2020 at 6:55 AM Roger James <<a href="mailto:roger@beardandsandals.co.uk">roger@beardandsandals.co.uk</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I have an endpoint defined in the conf that has the 'transport' field set <br>
to a named ipv6 transport. I had this working on a test system. This <br>
required the application of the gerrit patch 14404 (currently in code <br>
review). I have moved this on to a more realistic test setup. This setup <br>
also has active ipv4 connections. As soon as one of these was successful it <br>
seems to have 'locked' the system into a persistent ipv4 only mode. I am <br>
afraid that is the best way I can describe it. I apologise in advance for <br>
the lack of precision. Even if the system is fully rebooted, very early on <br>
in the config process the transport field in the endpoint is changed to <br>
point at an ipv4 transport. I have spent a number of hours in gdb trying to <br>
pinpoint where this is happening, to no avail. The depths of sorcery have <br>
addled my ancient brain. Any assistance or pointers would be extremely <br>
gratefully received! In particular about where to put a breakpoint to trap <br>
this.<br></blockquote><div><br></div><div>Does "pjsip show endpoint" continue to show the correct transport? 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. 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.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
As an aside. It is educational to put a break point on the code in config.c <br>
that reads the config files. I have isolated the transport=my-ipv6 line <br>
into its own file, and made the break point conditional on that file name. <br>
It is triggered an unbelievable number of times. I cannot see the wood for <br>
the trees. It also seems very wasteful as somewhere way back up the stack <br>
it is going to be thrown away as "file unchanged". Isn't that what last <br>
modification times are for?<br></blockquote><div><br></div><div>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.</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="font-family:tahoma,sans-serif"><font color="#073763">Joshua C. Colp</font></div><div style="font-family:tahoma,sans-serif"><font color="#073763">Asterisk Technical Lead</font></div><div style="font-family:tahoma,sans-serif"><font color="#073763">Sangoma Technologies</font></div><div style="font-family:tahoma,sans-serif"><font color="#073763">Check us out at <a href="http://www.sangoma.com" target="_blank">www.sangoma.com</a> and <a href="http://www.asterisk.org" target="_blank">www.asterisk.org</a></font><br></div></div></div></div></div></div></div></div></div></div></div>