[asterisk-dev] pjsip_resolve not querying for ipv6 addresses

Roger James roger at beardandsandals.co.uk
Wed Apr 22 14:24:30 CDT 2020


Hi,

A very long time since I Iast posted on here. I have recently moved to 
Asterisk 16 and have encountered a problem trying to connect via ipv6-udp 
transports. Looking at the traffic it seems that Asterisk only ever queries 
for DNS A records. Stepping through sip_resolve in pjsip_resolve.c I get to 
line 592. The code looks like this. I apologise for the formatting. I 
cannot work out how to get this mail client to do preformatted text.

if ((type == PJSIP_TRANSPORT_UNSPECIFIED && 
sip_transport_is_available(PJSIP_TRANSPORT_UDP6)) ||
sip_transport_is_available(type + PJSIP_TRANSPORT_IPV6)) {
res |= sip_resolve_add(resolve, host, T_AAAA, C_IN, (type == 
PJSIP_TRANSPORT_UNSPECIFIED ? PJSIP_TRANSPORT_UDP6 : type + 
PJSIP_TRANSPORT_IPV6), target->addr.port);
}


At this point only a A type record query has been added. The transport type 
is already set to PJSIP_TRANSPORT_UDP6. So adding PJSIP_TRANSPORT_IPV6 to 
it results in a nonsense transport type. As PJSIP_TRANSPORT_IPV6 is 128 
surely it would be better if this was a bitwise OR instead of an ADD.

What am I missing here?

Roger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20200422/b6f955e9/attachment.html>


More information about the asterisk-dev mailing list