Les visioconférences dans KamoCRM fonctionnent sur l'infrastructure média que nous exploitons: une unité de transfert sélectif, un focus de conférence, un relais TURN, des composants de passerelle d'enregistrement et de streaming.Les médias en temps réel sont la chose la moins indulgente sur le Web et il n'y a pas de moyen de l'apprendre sauf en l'exécutant.
| Mesure | Valeur | Source | Mesurées |
|---|---|---|---|
| Composants multimédias en temps réel en production | 6 (media server, conference focus, signalling, recording, telephony gateway, TURN relay) | kubectl get deployments,statefulsets -n kamo | |
| Serveur de streaming exploité parallèlement à la conférence | 1 (MediaMTX, live streaming only) | kubectl get deployments -n kamo |
Quel bâtiment il nous a appris
Une requête web qui prend deux cents millisecondes supplémentaires n’est pas remarquable ; deux cents millisecondes de gigue dans un appel sont un argument pour savoir qui parle au-dessus de qui. La connectivité est négociée plutôt que configurée — les adresses candidates sont rassemblées, les chemins sont testés, un relais est utilisé lorsqu’un chemin direct ne peut être trouvé — et les modes d’échec sont asymétriques et furieux.
L'échec dont nous avons le plus appris a été une conférence qui s'est terminée lorsque la deuxième personne a rejoint, ce qui ressemblait à un bogue d'application et n'était pas le cas : le serveur multimédia s'était marqué comme non opérationnel et le focus de la conférence, n'ayant nulle part où acheminer un deuxième flux, a déchiré la conférence. La leçon était sur l'ordre de diagnostic — vérifier le point de fin de santé du serveur multimédia avant de lire une ligne de code d'application — et cela se généralise à tous les systèmes distribués sur lesquels nous avons travaillé depuis.
C'est au moment de l'enregistrement que les obligations en matière de protection de la vie privée deviennent concrètes plutôt que théoriques, parce qu'un enregistrement est un document sur des personnes identifiables que quelqu'un doit maintenant conserver légalement, et c'est une contrainte de conception bien avant qu'il ne s'agisse d'un document de politique.
Construit avec
- WebRTC
- Jitsi Videobridge
- Jicofo
- Prosody
- coturn
- MediaMTX
- XMPP
- ICE
- SRTP
Dites-nous ce que vous essayez de faire
Une courte conversation est généralement suffisante pour savoir si nous sommes les bonnes personnes, si nous ne le sommes pas, nous le dirons et vous indiquerons quelque part mieux.
