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