On 04/21/2017 04:46 AM, Denys Pozniak wrote:
Hello!

I have next topology: ISP->Kamailio + Rtpengine->WebRTC
Sometimes I receive from Browser side SDP like below with private IPs in ICE candidates.
  • Please explain why it happens?
  • How ICE finds a pair? I think Rtpengine obtains packet from Browser and somehow matches with peer (as it can't reach Browser via private IP)
ICE candidate collection is done entirely on the client side, i.e. in the browser. If your browser fails to obtain public address ICE candidates, it's a problem with the browser script.

ICE should still be able to find a working candidate pair though, because once the opposite direction SDP is seen by the browser (which should contain public address ICE candidates from the other client or rtpengine), the browser will start sending checks to these candidates and the other side will then see the NAT'd address and use this to run checks. ICE completion would be delayed until after the answer/200 is seen, but it should still complete.

Cheers