ederson-torresini / adcipt20231

Projetos das disciplinas de Administração de Redes de Computadores (ADC) e Telefonia IP (IPT) do Curso Técnico Integrado ao Ensino Médio em Telecomunicações do Instituto Federal de Santa Catarina (IFSC) câmpus São José.
MIT License
3 stars 4 forks source link

Programar escolha de caminho e transporte de mídia #48

Closed ghost closed 1 year ago

ghost commented 1 year ago

Atualizar o código de #43. Depende de #47.

ghost commented 1 year ago

No servidor, foi adicionado o servidor STUN/TURN coturn com a seguinte configuração (arquivo /etc/turnserver.conf):

# turnserver.conf
cli-password=ifsc

# Rede
listening-ip=0.0.0.0
listening-ip=::

# Transporte
listening-port=3478
min-port=49152
max-port=65535

# Logging
syslog
verbose

# Identificação do servidor
server-name=ifsc.digital
realm=ifsc.digital

# TLS
fingerprint
cert=/etc/letsencrypt/live/ifsc.digital/fullchain.pem
pkey=/etc/letsencrypt/live/ifsc.digital/privkey.pem
no-tlsv1
no-tlsv1_1

# Autenticação
lt-cred-mech
user=adcipt:adcipt20231

Foi aproveitada a configuração de registros DNS em #30 e certificado digital em #42, e na sequência a configuração foi aplicada com:

systemctl restart coturn
ghost commented 1 year ago

No cliente, foi configurado os servidores STUN (acesso anônimo) e TURN (autenticação conforme arquivo mencionado na mensagem anterior, além do servidor disponibilizado pelo Google:

    let iceServers;
    if (window.location.host === "ifsc.digital") {
      this.socket = io.connect({ path: "/adcipt20231/socket.io/" });

      iceServers = [
        {
          urls: "stun:ifsc.digital",
        },
        {
          urls: "turns:ifsc.digital",
          username: "adcipt",
          credential: "adcipt20231",
        },
        {
          urls: "stun:stun.l.google.com:19302",
        }
      ];
    } else {
      this.socket = io();

      iceServers = [
        {
          urls: "stun:stun.l.google.com:19302",
        },
      ];
    }
    this.ice_servers = { iceServers };

No ambiente de desenvolvimento, é usado apenas o servidor do Google. No ambiente de produção, ifsc.digital, usa-se também o servidor dedicado (STUN e TURN autenticado).