2016-02-12 1 views
1

Le mécanisme de signalisation que nous avons implémenté nécessite d'envoyer les icecandidates dans le sdp lui-même.
Avez-vous une idée de l'intégration de icecandidates dans sdp?
De même, si les icecandidates sont intégrés dans sdp, comment PeerConnection initiera-t-il la connexion p-2-p?
Ou PeerConnection peut-il initier une connexion p2p juste après avoir défini le sdp distant ou autre chose à faire?Comment incorporer IceCandidates à SDP?

En outre, pouvez-vous suggérer quelque chose sur la façon dont nous pouvons utiliser webrtc pour la communication vidéo entre 2 appareils dans le même réseau wifi (sans l'utilisation de STUN/TURN)?
J'ai essayé de mettre les iceservers à zéro, mais l'application ne fonctionne pas!
J'ai collecté le fichier sdp généré pour les deux périphériques à partir des journaux.
J'ai les candidats de glace générés pour les deux pairs. J'ai combiné le sdp et icecandidates dans un seul sdp. Avec ceci, j'ai placé les iceservers à RTCConfiguration comme NULL. Mais maintenant, l'application ne fonctionne pas! Ce que je veux savoir, c'est que si nous avons un SDP embarqué avec icecandidates, comment pouvons-nous initier la connexion p2p? La connexion p2p est-elle initiée lorsque Remote IceCandidate est défini ou que RemoteDescription est défini?

Merci!

Répondre

2

Les candidats ICE sont inclus dans l'offre/la réponse SDP. Il suffit donc d'attendre la fin du processus de collecte de l'ICE pour envoyer l'offre/la réponse SDP.

Je ne sais pas si vous pouvez utiliser WebRTC sans serveur STUN/TURN, mais vous pouvez utiliser le vôtre ou un serveur public. Il semble que sur l'environnement local, tout fonctionne bien sans un serveur STUN/TURN - il suffit de passer un tableau vide à iceServers.

Et pour la dernière question - cela dépend. Si TrickleICE est implémenté (et dans Chrome et Firefox est), la connexion est lancée lorsque le premier bon candidat ICE est trouvé. Et vous pouvez définir la description avant cela. Sinon, vous devez attendre que le processus ICE gathering soit terminé, puis envoyez une offre/une réponse et définissez-la sur l'autre homologue en tant que description distante. Ensuite, la connexion sera initiée.

+0

Que pensez-vous: 1. Si je n'utilise pas de serveur stun/turn, le sdp sera-t-il uniquement rempli avec des icecandidates locaux?Dans Android, l'application se bloque si le IceServer n'est pas fourni!
2. Si le sdp n'a que des icecandidates locaux (dans le même réseau wifi), PeerConnection sera-t-il capable de connecter les pairs? – Neernay

+0

1. Je doute que cela fonctionnera. Vous pouvez essayer de passer comme 'iceServers' un tableau vide. Mais toute la chose ICE est basée sur cela pour fonctionner. 2. Si c'est un candidat viable, oui, il se connectera. –

+0

en passant un 'IceServer' vide: et le remplissage de SDP avec IceCandidate local devrait probablement marcher! Lemme essayer! – Neernay

1

Je ne pouvais pas faire cela dans un commentaire, donc je vais l'afficher comme réponse.

Nous effectuons un test WebRTC local assez souvent sans serveurs STUN/TURN configurés et cela fonctionne très bien. Cela limitera simplement votre capacité à vous connecter via les firewalls NAT. Ne peut pas promettre qu'il va se connecter dans votre environnement, mais il ne devrait pas tomber en panne. Avoir encore essayer avec Android donc pas de commentaire là-bas. En ce qui concerne la désactivation de Trickle ICE, nous avons rencontré quelques problèmes (principalement sur Google Chrome). Vous devez essentiellement attendre jusqu'à ce que vous receviez un candidat NULL ICE avant d'envoyer l'OFFRE ou la RÉPONSE. C'est ainsi que le moteur WebRTC indique à l'application que le processus de collecte ICE est terminé. Lorsque nous configurons pour utiliser les serveurs google STUN/TURN il y a un long délai (> 10 sec) entre le moment où le dernier événement candidat viable se produit et l'événement candidat NULL se produit. J'ai également vu des cas où l'événement candidat NULL n'est jamais reçu et l'appel arrive à expiration.

Nous prévoyons d'ajouter une minuterie pour sortir du processus de collecte ICE après quelques secondes lorsque Trickle ICE est désactivé. Je ne l'ai pas encore essayé mais je ne vois pas pourquoi cela ne marchera pas et devrait être beaucoup plus utilisable. De mon expérience, tous les candidats sont recueillis dans la première seconde ou deux.

+0

ce délai de 10 secondes suggère la collecte à partir d'une interface qui n'a pas de route vers les serveurs STUN/TURN expire. –

+0

Oui, tout VPN sur la machine, par exemple, a tendance à avoir cet effet. Un délai d'attente combiné à un nombre minimal de candidats semble raisonnable. – jib

+0

Dans l'environnement local sans le serveur STUN/TURN, tout fonctionne bien! – Neernay