ICE (Interactive Connectivity Establishment) est le protocole utilisé pour connecter 2 pairs ; il détermine toutes les routes possibles entre les 2 pairs, puis s'assure qu'ils sont connectés. Ces routes sont également appelées paires de candidats, qui sont un jumelage d'adresses de transport locales et distantes. Ces adresses peuvent être l'adresse IP locale, l'adresse IP publique ou l'adresse de transport relayée. Chaque pair rassemble toutes les adresses qu'il souhaite utiliser, les échange, puis tente de se connecter.
Les événements suivants peuvent être appelés lors de la collecte des adresses
OnRTCLocalCandidate
L'événement est appelé lorsqu'un nouveau candidat local a été trouvé.
OnRTCRemoteCandidate
L'événement est appelé lorsque le serveur WebSocket envoie un candidat distant à ce pair.
OnRTCLocalDescription
L'événement est appelé lorsque TsgcRTCPeerConnection nécessite le SDP local
OnRTCRemoteDescription
L'événement est appelé lorsque le serveur websocket envoie le SDP distant à ce pair.
Lorsque le pair envoie des requêtes de liaison à l'autre pair pour tester la possibilité de connexion, les événements suivants peuvent être appelés
OnRTCCandidatePairNominated
Lorsque les deux pairs peuvent se connecter en utilisant cette paire de candidats, l'événement est appelé.
OnRTCCandidatePairFailed
Lorsque les pairs ne peuvent pas se connecter en utilisant cette paire de candidats, cet événement est appelé.
OnRTCConnect
Cet événement est appelé lorsqu'il y a une paire de candidats valide et que DTLS n'est pas activé.
Si DTLS est activé, cet événement est appelé après un handshake DTLS réussi.