<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    <div class="moz-cite-prefix">On 3/25/13 9:23 AM, Miguel Baptista
      wrote:<br>
    </div>
    <blockquote cite="mid:51500967.60900@uninett.no" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <link href="chrome://translator/skin/floatingPanel.css"
        type="text/css" rel="stylesheet">
      <link href="chrome://translator/skin/floatingPanel.css"
        type="text/css" rel="stylesheet">
      Hello,<br>
      <br>
      I have been doing some tests with kamailio and IPv6. <br>
      <br>
      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.<br>
      <br>
      So, the first step in the dual-stack environment was to install
      RTP Proxy and configured kamailio to use it.&nbsp; 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.<br>
      <br>
      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. <br>
      <br>
      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) <br>
      <br>
      Should I use some other approach? For example, failure route
      instead? <br>
      Does anyone have a similiar setup? How are you solving this issue?<br>
    </blockquote>
    I see few options here:<br>
    <br>
    - use two outbound proxies, one for IPv4 and one for IPv6 -- from
    your main proxy you can do parallel forking to the two edge proxies,
    one of the branches will fail if no device/server is listening on
    that protocol (or it will be dropped in onsend_route if after dns is
    not the expected IP version)<br>
    - use lua or other embedded language to do dns lookup from config
    and decide in branch route what to do. Alternative is to execute
    external script or some web service<br>
    - export to the config the internal dns lookup function so it will
    be done on demand and detect outgoing IP layer version (this
    requires c coding, perhaps not much -- preferable solution, because
    will remove it from my to-do)<br>
    <blockquote cite="mid:51500967.60900@uninett.no" type="cite">
    </blockquote>
    Cheers,<br>
    Daniel<br>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
Kamailio World Conference, April 16-17, 2013, Berlin
 - <a class="moz-txt-link-freetext" href="http://conference.kamailio.com">http://conference.kamailio.com</a> -</pre>
  </body>
</html>