<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi libnice devs,<br>
    <br>
    The libnice agent already provides "nice_agent_add_local_address()"
    as a way to indicate which local IP address should be used for local
    candidates, which precludes the need to do the whole gathering of
    local addresses.<br>
    <br>
    This however is of very limited use in nowadays cloud provider's
    networks such as AWS, where our process will live behind a NAT, even
    though all ports in the NAT can be "opened" so the NAT is
    effectively disabled.<br>
    <br>
    Would it be possible to indicate both an internal *and external*
    pair of addresses to libnice, in a similar way of how
    nice_agent_add_local_address() works? Something like
    "nice_agent_add_external_address (local_addr, external_addr)" would
    be helpful to make libnice generate the equivalent of a
    server-reflexive set of candidates, without need for STUN.<br>
    <br>
    Rationale:<br>
    <br>
    We are exploring the possibility to deploy a media server such as
    Kurento (that uses libnice for WebRTC) and not having to deploy a
    STUN/TURN server alongside. In principle STUN should not be needed
    given that A) all ports of the cloud NAT are "open" (all inbound
    connections are allowed), and B) the external, public IP of the
    machine is always known beforehand.<br>
    <br>
    Using nice_agent_add_local_address() to limit libnice to one of the
    (possibly many) virtual interfaces, then mangling the resulting
    candidates to replace the local IP address with the public IP
    address, is a technique that works perfectly fine albeit it seems
    very unorthodox. Proper support for this use case would be
    preferred.<br>
    <br>
    What do you think?<br>
    <br>
    <br>
    <br>
    <div class="moz-signature">--<br>
      Juan Navarro<br>
      Kurento maintainer & developer<br>
      j1elo @ <a href="https://twitter.com/j1elo">Twitter</a> / <a
        href="https://github.com/j1elo">GitHub</a><br>
      <br>
    </div>
  </body>
</html>