Hello,
I have been doing some tests with kamailio and IPv6.
My initial setup was IPv6 only and now am I extending it to
a dual-stack environment. Well, and now I am starting to
face some (interesting) challenges.
So, the first step in the dual-stack environment was to
install RTP Proxy and configured kamailio to use it. With
this setup, the UAs locally registered were able to
communicate with each-other no matter with address family
(IPv4/IPv6) they were using. So far so good.
But now I want to extend my tests a bit more ... I want to
communicate with the "outside world" (using ENUM and domain
based SIP URIs). Do I have a way to know if the
"destination" is IPv4 or IPv6? Because I need that
information in order to properly bridge the calls on
rtpproxy.
I tried to use the onsend_route but it didn't work. I mean,
I am able to know if the "next-hop" is IPv6 or IPv4 but it
seems that it is "too late" to use rtpproxy. BTW ... I am
assuming that if the "next-hop" is IPv6 then the final user
agent will also be IPv6 (the same for IPv4)
Should I use some other approach? For example, failure route
instead?
Does anyone have a similiar setup? How are you solving this
issue?
The only way you can get an indication of the other end is to
check their SRV records, but that doesn't say anything about the
devices and their media capability. The best way moving forward
is to support ICE for exactly this case.
The RFC for SIP IPv6 migration says that it's the IPv6
supporting device's responsibility to send an offer with dual
stack support, so your callers need to make sure you have both
IPv4 and IPv6 addresses in the ICE candidates in the SDP offer.
As I'm currently hacking SNMP, can you please check if there
are any issues with IPv6 in the SNMPstats module?
/O
Thanks for your feedback Olle.