<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hi,<br>
    <br>
    I'd like to allow setting a static external IP address to my WebRTC
    SFU server config, and have libnice generate a "fake"
    server-reflexive candidate without needing STUN or TURN. Is this
    possible to do with libnice?<br>
    <br>
    This is useful for cloud deployments where the server has a well
    known address, to skip the need for STUN on the server and also
    minimize the time needed for ICE. At the same time, any WebRTC peer
    would transparently work by receiving the fake srflx candidate, thus
    knowing where to connect with the server. This is an important one
    for me: not needing to touch anything else about the signaling or
    the implementation at the client.<br>
    <br>
    To be honest I already have this feature working (see <a
      moz-do-not-send="true"
href="https://doc-kurento.readthedocs.io/en/latest/_static/client-javadoc/org/kurento/client/WebRtcEndpoint.html#setExternalAddress-java.lang.String-">WebRtcEndpoint.setExternalAddress</a>)
    but it is a VERY ugly hack, which modifies _all_ candidates to
    replace their IP address with the external one specified in this
    setting. This works, because remote peers receive then all those
    host candidates with the correct IP, and they are able to connect
    with the server. But I'd like to have a "cleaner" solution, if there
    is one for this scenario. So I thought that a better thing to do
    would be to tell libnice to forge a srflx candidate.<br>
    <br>
    BTW, what are people doing for this? I think letting a server know
    of its own external address is a pretty common thing (e.g.
    "external-ip" setting in Coturn).<br>
    <br>
    Thanks and regards,<br>
    Juan<br>
    <br>
  </body>
</html>