Qu'est ce ICE ?
ICE signifie "Interactive Connectivity Establishment".
ICE permet à un UAC (Wazo App par exemple) de découvrir les éléments de sa connexion publique. Pour cela, via une API RTPICECANDIDATE(), l'UAC dispose d'adresses de transport candidates (combinaison de l'adresse IP et du port pour un protocole de transport particulier) qu’il pourrait utiliser pour communiquer avec un serveur (UAS) ou un autre client (UAC).
Pour compléter ces ICE candidats, l'UAC contacte un serveur STUN afin d'obtenir son adresse et port public, information qui sera transmise dans le SDP de l'INVITE.
Ceux-ci pourraient inclure:
o une adresse de transport sur une interface réseau directement connectée
o Une adresse de transport traduite du côté public d’un NAT (un
adresse "serveur réfléchie")
+-------+ | SIP | +-------+ | Srvr | +-------+ | STUN | | | | STUN | | Srvr | +-------+ | Srvr | | | / \ | | +-------+ / \ +-------+ / \ / \ / \ / \ / <- Signaling -> \ / \ / \ +--------+ +--------+ | NAT | | NAT | +--------+ +--------+ / \ / \ / \ +-------+ +-------+ | Agent | | Agent | | L | | R | | | | | +-------+ +-------+
IETF / RFC5245
Activation
ICE s'activement depuis le menu "Global Settings" puis "RTP", sélectionnez "ICE Support = Yes"
Ajoutez le serveur STUN (personnalisé ou non) : stun.wazo.io:443
Configuration optionnelle
Dans l'onglet ICE Host Candidates, saisissez la ou les IP Privée(s) et Publique(s) concernant votre stack.