google webrtc stun rfc5766turnserver turn

webrtc - stun server google



Implementando nuestro propio servidor STUN/TURN para la aplicaciĆ³n WebRTC (2)

Estoy trabajando en una aplicación webrtc y tengo que implementar el siguiente servidor TURN.

https://code.google.com/p/rfc5766-turn-server/

Estoy siguiendo este tutorial.

http://www.dialogic.com/den/developer_forums/f/71/t/10238.aspx

y dice hacer referencia al servidor TURN de la siguiente manera, en el código javascript donde se crea RTCPeerConnection.

var pc_config = {"iceServers": [{"url": "stun:stun.l.google.com:19302"}, {"url":"turn:my_username@<turn_server_ip_address>", "credential":"my_password"}]}; pc_new = new webkitRTCPeerConnection(pc_config);

Estoy un poco confundido, ¿por qué nos referimos al servidor STUN público de Google? Pensé que el servidor RFC5766 TURN tiene STUN en su interior.

¿RFC5766 es solo el servidor TURN? y no STUN server? ¿No podemos implementar nuestro propio servidor STUN en lugar de usar uno provisto por Google?

Lo siento por tal pregunta ingenua. Soy nuevo en WebRTC.

Gracias.


Simplemente añadiendo a la respuesta de Igor,

coturn es una bifurcación de rfc5766-turn-server , las funcionalidades principales son las mismas, con funciones adicionales y a las que se agregan nuevas funciones, por lo que le aconsejaría que lo utilice.

En las propias palabras del autor:

Este proyecto evolucionó desde el proyecto rfc5766-turn-server ( https://code.google.com/p/rfc5766-turn-server/ ). Hay muchas nuevas especificaciones avanzadas de TURN que van mucho más allá del documento RFC 5766 original. Este proyecto toma el código de rfc5766-turn-server como inicio, y le agrega nuevas características avanzadas.

En cuanto a la instalación, es fácil de instalar en máquinas Linux, no se ha probado en otros sistemas operativos.

manera simple:

sudo apt-get install coturn

Si dice que no, quiero lo último en tecnología de punta, puede descargar el código fuente de su página de descargas e instalarlo usted mismo, por ejemplo:

sudo -i # ignore if you already in admin mode apt-get update && apt-get install libssl-dev libevent-dev libhiredis-dev make -y # install the dependencies wget -O turn.tar.gz http://turnserver.open-sys.org/downloads/v4.5.0.6/turnserver-4.5.0.6.tar.gz # Download the source tar tar -zxvf turn.tar.gz # unzip cd turnserver-* ./configure make && make install

para ejecutar TURN, es recomendable ejecutarlo como un demonio, y puede usar este wiki como referencia para configurarlo.

Ejemplo de comando para ejecutar el servidor TURN:

sudo turnserver -a -o -v -n --no-dtls --no-tls -u test:test -r "someRealm"

descripción del comando:

  • -a - Utilizar un mecanismo de credenciales a largo plazo.
  • -o - Ejecutar el proceso del servidor como demonio
  • -v - Modo verboso ''moderado''.
  • -n - no hay archivo de configuración
  • --no-dtls - No inicie escuchas DTLS
  • --no-tls - No iniciar escuchas TLS
  • -u - credenciales de usuario a utilizar
  • -r - dominio predeterminado que se utilizará, se necesita la API REST TURN

ahora puede usar el servidor TURN en su aplicación WebRTC como:

var peerConnectionConfig = { iceServers: [{ urls: YOUR_IP:3478, username: ''test'', password: ''test'' }] }


TURN es una extensión de STUN, por lo que el servidor TURN también tiene características STUN.

https://code.google.com/p/rfc5766-turn-server/ funciona también como STUN, por lo que puede intentar escribir algo como esto:

var pc_config = {"iceServers": [{"url":"turn:my_username@<turn_server_ip_address>", "credential":"my_password"}]}; pc_new = new webkitRTCPeerConnection(pc_config);