<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>