KamoCRM

Nuestra propia videoconferencia

Servidores de medios WebRTC, retransmisiones TURN y la ruta ICE en el medio

Las videoconferencias en KamoCRM se ejecutan en la infraestructura de medios que operamos: una unidad de reenvío selectivo, enfoque de conferencia, relé TURN, componentes de puerta de enlace de grabación y transmisión.Los medios en tiempo real son lo menos indulgente en la web y no hay manera de aprenderlo excepto ejecutándolo.

Cada número aquí nombra de dónde vino y cuándo fue medido.
MedidaValorFuenteMedido
Componentes multimedia en tiempo real en producción6 (media server, conference focus, signalling, recording, telephony gateway, TURN relay)kubectl get deployments,statefulsets -n kamo
Servidor de streaming operado junto con conferencias1 (MediaMTX, live streaming only)kubectl get deployments -n kamo

Qué edificio nos enseñó

Una solicitud web que tarda doscientos milisegundos adicionales no es notable; doscientos milisegundos de fluctuación en una llamada es una discusión sobre quién está hablando sobre quién. La conectividad se negocia en lugar de configurarse —se recopilan direcciones candidatas, se prueban rutas, se utiliza un relé cuando no se puede encontrar una ruta directa— y los modos de falla son asimétricos y enfurecedores. Un participante escucha a todos, nadie los escucha, y todos los registros dicen que la llamada está bien.

El fallo del que más aprendimos fue de una conferencia que terminó cuando la segunda persona se unió, parecía un error de aplicación y no lo era: el servidor de medios se había marcado a sí mismo como no operativo y el foco de la conferencia, al no tener a dónde enrutar una segunda transmisión, destrozó la conferencia. La lección fue sobre el orden de diagnóstico — comprobar el punto final de salud del propio servidor de medios antes de leer una línea de código de aplicación — y se generaliza a todos los sistemas distribuidos en los que hemos trabajado desde entonces.

La grabación es donde las obligaciones de privacidad se hacen concretas más que teóricas, porque una grabación es un documento sobre personas identificables que alguien ahora tiene que almacenar legalmente, y eso es una restricción de diseño mucho antes de que sea un documento de política.

Construido con

  • WebRTC
  • Jitsi Videobridge
  • Jicofo
  • Prosody
  • coturn
  • MediaMTX
  • XMPP
  • ICE
  • SRTP

Para lo que esto nos califica

Real-time systemsLive data, messaging, presence and media — the unforgiving end of the webCustom web applicationsThe system your business actually runs on, built properlyMobile applicationsCross-platform where it makes sense, native where it does not

Cuéntanos lo que estás tratando de hacer

Una breve conversación suele ser suficiente para saber si somos las personas adecuadas, si no lo somos, lo diremos y le indicaremos un lugar mejor.

Iniciar una conversaciónYa uso KamoCRMCómo cotizamos