sipsorcery-org / sipsorcery

A WebRTC, SIP and VoIP library for C# and .NET. Designed for real-time communications apps.
https://sipsorcery-org.github.io/sipsorcery
Other
1.42k stars 431 forks source link

Doesn't prflx type exist for local ICE candidates? #1057

Closed Hu-Said closed 7 months ago

Hu-Said commented 7 months ago

After the WebRTC connection was successfully established, I found that there were only three local ICE candidates, and the prflx type candidate was missing. The following is the source code: image image I found that the local ICE candidate in the source code itself only adds these three types. Is one missing? Or is there some logic that I don't know? The problem I have now is that as an Answerer, the local ICE candidate can never be prflx. I don't know if this is a problem. I have tried all network environments and I can catch that prflx exists in the remote ICE candidate.

sipsorcery commented 7 months ago

The answer is as close as a quick search or ChatGPT...

Peer Reflexive (prflx) Candidates: These are a type of candidate discovered during the connectivity checks between the two endpoints. Unlike "host" candidates (which represent direct connections) or "server reflexive" candidates (which represent the public-facing side of a NAT), peer reflexive candidates are discovered when one endpoint receives a media packet from an address/port combination that wasn't previously known. This can happen in complex NAT scenarios where the initial assumptions about the network's structure were not entirely accurate.

prflx candidates are discovered not added.