By default TCP candidate type priority is UDP one minus 27 (except
relay), so that UDP+srlfx priority > TCP+host priority. That priority
offset can be configured using AgentConfig.
IPv6 TCP candidates are also supported.
A Candidate with IPv6 address was formatted similar to fe80::1:51820
net.JoinHostPort will add [ ] around the address if it's IPv6,
so it would look like [fe80::1]:51820 instead.
Go encourages short names. And a quick
survey through the Pion code bases reveals,
that we have been using buf more often than buffer.
So this change will harmonize the different spellings.
In #252 decide to ignore the writeTo failed error with a log,
application can choose callback and query state for the connection
state. But if application keep sending packet during try icerestart
to recover from ICEFailed, the warn log is annoying since the error
is not critical and no need to process. So change it to info.
Expose this error so pion/webrtc can handle gracefully.
rfc8839#section-5.1 specifies that a WebRTC Agent MUST
ignore any name/value pairs it doesn't understand.
Relates to pion/webrtc#1949
The webrtc-stats spec defines this field as:
> It is the protocol used by the endpoint to communicate with the TURN
> server. This is only present for local candidates. Valid values are
> "udp", "tcp", or "tls".
https://w3.org/TR/webrtc-stats/#dom-rtcicecandidatestats-relayprotocol