Skip to content

MichelleChen2/TallerDeProgramacionTPFinal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taller de Programacion I - Grupo Sobrevivir Taller

En este presente proyecto desarrollamos una aplicación de videoconferencia Peer-to-Peer (P2P) basada en la arquitectura del stack WebRTC en Rust. La aplicación transmisión de audio/video y transferencia de archivos en tiempo real permitiendo, también, la creación de nuevos usuarios con sus contraseñas para inicio de sesión, apagado/encendido del micrófono y cámara,

El trabajo principal fue implementar la pila de protocolos del stack WebRTC algunos desde cero y otros con la ayuda de crates.

Los componentes son:

  • SDP (Session Description Protocol): utilizado para establecer la conexión entre pares.
  • ICE (Interactive Connectivity Establishment): Protocolo de comunicación utiliazado para definir la ruta por la que se enviará el video.
  • Servidor STUN: Soporte de direcciones Server Reflexive (STUN). Para poder utilizar servidor público.
  • Comunicación encriptada con el Signalling Server (TLS): Mensajes entre el usuario y el servidor encriptados.
  • Transmisión de Video (Encodeo y Desencodeo): Códec H264.
  • SRTP (Secure Real-time Transport Protocol)
  • DTLS (Datagram Transport Layer Security)
  • Archivo de Configuración: Los componentes de la aplicación pueden ser configurados mediante archivos de configuración. Elegirmos usar .json.
  • Inicio de Sesión, creación de usuarios nuevos y visualización de los estados de conexión
  • Interfaz UI de la Aplicación: Implementación de vistas como Inicio de Sesión, Sala de Espera y Sala de Llamada. Visualización de estadíasticas de transmisión.
  • Logs: Mantenemos registros de las acciones realizadas en Client y Server.

UI

Inicio de Sesión

image

Creación de nuevos usuarios

image

Inicio de Sesión con usuario y contraseña

image

Sala de Espera

image

Visualización de la lista de usuarios conectados

image

Llamada

image image

En Llamada

image

Integrantes

  • Rivero, Tobías 106302
  • Vargas, Alejandro 104121
  • Paz Blanco, Pilar 105600
  • Chen, Michelle Melisa 105506

Cómo usar

A continuación se detallan los pasos para compilar y ejecutar el programa.

Para levantar el Signalling Server:

cargo run --bin signalling_server  path_config_file

Para levantar el Client en una terminal:

cargo run --bin room_rtc  path_config_file

Ejemplo de archivo de configuración para server y client

{
    "server_adder": "localhost:8000",
    "users_db": "src/users.json"
}
{
    "general_info": {
        "server_adder": "192.168.0.15"
    },

    "sdp_handshake": {
        "local_adder": "localhost:8090",
        "server_adder": "192.168.0.15:8000", 
        "codecs": ["VP8", "H264"],
        "ice_candidates": [ "192.168.0.114:8500", "192.168.0.114:8250"],
        "offer_path": "src/offer2.sdp"
    }
}


About

(Cátedra Deymonnaz) Proyecto Final Grupal RoomRTC - App de videollamada P2P con transmisión de audio, video y archivos

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages