Trucades i veu

Les trucades i els canals de veu envien àudio, vídeo i la compartició de pantalla directament al servidor pel seu propi port. Aquesta pàgina cobreix la part de xarxa, la configuració a revisar després de la instal·lació i la transcripció amb un model de reconeixement de veu que executis tu mateix.

Com funcionen les trucades

Les trucades les proporciona l'aplicació Trucades (id com.mattermost.calls), que s'instal·la i s'activa per defecte. Els canals de veu (l'aplicació Canals de veu, imatge antimatter-next) són sales de trucades permanents basades en Trucades: cal que Trucades estigui activada i utilitzen la mateixa configuració, els mateixos ports i els mateixos servidors.

L'aplicació Trucades executa un servidor de mitjans dins d'Antimatter. L'aplicació web, l'aplicació d'escriptori i les aplicacions mòbils s'hi connecten amb WebRTC:

  • la senyalització passa per la connexió web normal (el teu proxy HTTPS);
  • els mitjans (àudio, vídeo, compartició de pantalla) no: van directament al servidor pel port de trucades, 8443 UDP i TCP per defecte.

La configuració es troba a Consola del sistema › Connectors › Trucades. Cadascun d'aquests paràmetres també es pot establir amb una variable d'entorn AM_CALLS_ al servei antimatter, la qual té prioritat sobre la Consola del sistema i bloqueja la configuració en aquest lloc. Els noms anteriors MM_CALLS_ també funcionen.

Revisa això després de la instal·lació

  1. Obre el port de trucades. Permet 8443/udp i 8443/tcp al tallafoc del servidor i del teu proveïdor de núvol.
  2. Comprova el mode de prova. El mode de prova (DefaultEnabled) està desactivat de manera predeterminada, de manera que tothom pot iniciar trucades. Activa'l (Activat) a Consola del sistema › Connectors › Trucades per permetre que només els administradors del sistema iniciïn trucades als canals mentre comproves que les trucades funcionen, i després torna a desactivar-lo. La variable és AM_CALLS_DEFAULT_ENABLED: true significa que el mode de prova està desactivat. Un servidor migrat des de Mattermost manté l'opció guardada a la seva configuració.
  3. Decideix sobre el vídeo. Activa el vídeo (EnableVideo, AM_CALLS_ENABLE_VIDEO) està activat de manera predeterminada: les persones poden activar la càmera allà on les trucades estiguin activades, als missatges directes i de grup i als canals. Als canals de veu, l'opció Permet el vídeo als canals de veu de l'aplicació Canals de veu ho decideix. Si la desactives, ningú no podrà activar la càmera, ni tan sols als canals de veu.
  4. Darrere de NAT, establix l'adreça pública (secció següent).

On estan activades les trucades

Cada comunitat té un tipus, Espai de treball o Gremi (vegeu Gremi o espai de treball). Un canal els administradors del qual no han activat ni desactivat les trucades segueix el tipus de la seva comunitat:

  • en un espai de treball, els canals segueixen el valor predeterminat del servidor: les trucades estan activades per a tothom mentre el mode de proves estigui desactivat;
  • en un gremi, les trucades estan desactivades als canals: la gent parla als canals de veu. Els administradors del canal i de la comunitat encara poden activar les trucades en un canal.

La configuració pròpia d'un canal sempre té prioritat. Els missatges directes i de grup no pertanyen a cap comunitat: les trucades hi estan activades per a tothom mentre el mode de prova estigui desactivat. Un canvi de tipus d'una comunitat s'aplica a les trucades en un termini de 30 segons.

Ports, NAT i STUN

ParàmetreVariableValor per defecte
Port del servidor RTC (UDP)AM_CALLS_UDP_SERVER_PORT8443
Port del servidor RTC (TCP)AM_CALLS_TCP_SERVER_PORT8443
Adreça del servidor RTC (UDP), (TCP)AM_CALLS_UDP_SERVER_ADDRESS, AM_CALLS_TCP_SERVER_ADDRESSbuit: totes les adreces
Sobreescript de l'amfitrió ICEAM_CALLS_ICE_HOST_OVERRIDEbuit: trobat mitjançant STUN
Sobreescript del port de l'amfitrió ICEAM_CALLS_ICE_HOST_PORT_OVERRIDEbuit: el port del servidor
Configuracions dels servidors ICEAM_CALLS_ICE_SERVERS_CONFIGS[{"urls":["stun:stun.cloudflare.com:3478"]}]
(Experimental) Habilita el suport per a IPv6(Consola del sistema)desactivat

Els ports han d'estar entre 80 i 49151. Amb el fitxer compose del lloc, canvia CALLS_PORT a .env: estableix les dues variables i publica el port, el mateix número a l'amfitrió i al contenidor. Els clients primer intenten UDP i, si no funciona, recuren a TCP al mateix port.

L'adreça a la qual els clients envien els mitjans

El servidor indica a cada client l'adreça a la qual ha d'enviar els mitjans (el seu «candidat d'amfitrió»). Per defecte, troba la seva adreça pública demanant-ho a un servidor STUN, un servei públic que respon amb l'adreça i el port des d'on ha arribat la sol·licitud. El valor per defecte és el servidor STUN públic de Cloudflare, stun:stun.cloudflare.com:3478. El servidor no és l'únic que l'utilitza: cada client que s'uneix a una trucada també li demana la seva pròpia adreça pública. El servidor STUN només veu adreces IP i ports, mai àudio, vídeo o missatges de la trucada.

Un servidor que encara té guardat el servidor STUN de Mattermost (stun.global.calls.mattermost.com) a Configuracions dels servidors ICE, per exemple després de migrar des de Mattermost, utilitza el de Cloudflare en lloc d'aquest. La configuració guardada no es modifica.

Estableix l'adreça manualment quan:

  • el servidor està darrere d'un NAT o té diverses adreces públiques: estableix Sobreescript de l'amfitrió ICE a l'adreça IP pública (o a un nom d'amfitrió que s'hi resol);
  • el NAT associa un port públic diferent al 8443: estableix també Sobreescript del port de l'amfitrió ICE a aquest port públic;
  • el servidor no té accés a Internet, o no vols que el servidor i els clients contactin amb un servidor STUN extern: estableix Sobreescript de l'amfitrió ICE i buida la llista de STUN amb AM_CALLS_ICE_SERVERS_CONFIGS=[]. Amb Sobreescript de l'amfitrió ICE establert, el servidor ja no demana la seva adreça a un servidor STUN; la llista buida impedeix que els clients ho facin.
services:
  antimatter:
    environment:
      AM_CALLS_ICE_HOST_OVERRIDE: 203.0.113.10
      AM_CALLS_ICE_SERVERS_CONFIGS: "[]"

Per mantenir STUN sense una tercera part, executa el teu propi servidor STUN (un servidor TURN com coturn també respon a sol·licituds STUN) i llista'l a Configuracions dels servidors ICE en lloc d'això, com a l'exemple de TURN següent.

En una xarxa local, utilitza l'adreça LAN del servidor. Reinicia el servidor després de canviar ports, adreces o configuracions ICE, o desactiva i activa l'aplicació Calls: el servidor de mitjans es configura quan l'aplicació s'inicia.

TURN, per a parets de seguretat estrictes

Algunes xarxes bloquegen tant les connexions UDP com les sortides a ports TCP poc habituals. Les persones que hi estan necessiten un servidor TURN, que reenvia els mitjans per un port al qual poden accedir (sovint el 443). Antimatter no n'inclou cap; executeu un servidor TURN com coturn i afegiu-lo a Configuracions de servidors ICE, una llista JSON:

[
  {"urls": ["stun:turn.example.com:3478"]},
  {"urls": ["turn:turn.example.com:3478?transport=udp", "turns:turn.example.com:443?transport=tcp"]}
]
  • Amb un secret compartit (l'opció use-auth-secret de coturn), introduïu el mateix secret a Secret d'autenticació estàtica de TURN (AM_CALLS_TURN_STATIC_AUTH_SECRET): el servidor assigna a cada client credencials de curta durada, vàlides durant Expiració de les credencials de TURN (minuts) (240 per defecte).
  • Amb credencials fixes, afegiu "username" i "credential" a l'entrada de TURN en lloc d'això.
  • TURN al costat del servidor (desactivat per defecte) també utilitza els servidors TURN per a les connexions que inicia el servidor.

Altres configuracions de trucades

ParàmetreVariableValor per defecteQuè fa
Màxim de participants en una trucadaAM_CALLS_MAX_CALL_PARTICIPANTS0 (sense límit)Nombre màxim de persones en una mateixa trucada.
Permetre la compartició de pantalla(Consola del sistema)activatPermet als participants compartir la seva pantalla.
Activar el to de trucadaAM_CALLS_ENABLE_RINGINGactivatFonona les altres persones d'un missatge directe o de grup quan hi comença una trucada.
Activar simulcast per a la compartició de pantalla (Experimental)(Consola del sistema)desactivatEnvia les comparticions de pantalla en diverses qualitats.
Activar el codificador AV1 per a la compartició de pantalla (Experimental)(Consola del sistema)desactivatS'ignora mentre simulcast està activat.

L'aplicació Canals de veu té dos paràmetres, a Consola del sistema › Connectors › Canals de veu: Uneix-te en obrir un canal de veu (activat de manera predeterminada) i Permetre el vídeo als canals de veu (activat de manera predeterminada, però vegeu el vídeo anterior). La veu és un tipus de canal, que es tria en crear el canal (vegeu Crear un canal); no hi ha cap pas posterior de "convertir en un canal de veu". Aquests dos paràmetres s'apliquen a tots els canals de veu. Per crear-ne un cal que l'aplicació Canals de veu estigui activa; si no, Veu apareix en gris al diàleg de creació de canal.

The create-channel dialog with Voice picked: the Talk and Stage preset cards, Voice Channels app active
Veu, un cop l'aplicació Canals de veu està activa: les targetes Parla i Escenari.
Per desactivar les trucades completament, desactiveu l'aplicació Trucades a Consola del sistema › Connectors › Gestió de plugins, o establiu AM_CALLS_DISABLE=true. Els canals de veu també deixaran de funcionar.

Servidors més grans: un rtcd extern

Per defecte, un servidor d'Antimatter gestiona tot el contingut multimèdia de les trucades. Per a moltes trucades simultànies, o per mantenir el contingut multimèdia fora del servidor de xat, l'aplicació de trucades pot delegar el contingut multimèdia a rtcd, un servidor de contingut multimèdia independent (el rtcd de codi obert de Mattermost, versió 0.17 o superior). Estableix URL del servei RTCD (AM_CALLS_RTCD_SERVICE_URL), per exemple https://rtcd.example.com: totes les trucades passaran per aquest servidor, i els clients enviaran el seu contingut multimèdia al port propi de rtcd en lloc del d'Antimatter. Les credencials es poden proporcionar amb AM_CALLS_RTCD_CLIENT_ID i AM_CALLS_RTCD_AUTH_KEY; si no es proporcionen, l'aplicació s'auto-registra amb rtcd. No cal cap llicència. L'aplicació de trucades mostra un avís als administradors recomanant rtcd quan un servidor sol tenir més de 50 persones en trucades al mateix temps.

Transcripció i subtítols en directe

Antimatter pot transcriure trucades amb un model de veu a text que executis tu mateix, i mostrar subtítols en directe mentre les persones parlen. Antimatter utilitza qualsevol servidor que ofereixi un endpoint /v1/audio/transcriptions compatible amb OpenAI, com ara un servidor Whisper a la teva xarxa. No cal cap servei addicional d'Antimatter.

Com funciona

  • L'host de la trucada inicia la transcripció amb Transcriu la trucada als controls de la trucada. Una insignia de Transcrivint ho indica a tothom.
  • L'aplicació de cada participant escolta el seu propi micròfon, divideix la veu en fragments curts (màxim 12 segons, mai mentre està en silenci) i els envia a Antimatter, que els reenvia al teu servidor de veu a text.
  • Amb els subtítols en directe activats, el text de cada fragment es mostra als participants com a subtítol immediatament.
  • Quan la transcripció s'atura o la trucada finalitza, el bot de trucades publica la transcripció com a fitxer de text i fitxer de subtítols WebVTT, al fil de la trucada (als canals de veu, al canal).
  • Amb Resumeix les transcripcions activat, l'agent predeterminat de l'aplicació de xat d'IA també publica un resum al fil (vegeu IA).
A call's thread: the Calls bot has posted the transcript as a text file, and an AI agent has posted a summary below it.
Després de la trucada, la transcripció i el seu resum al fil de la trucada.

Configuració

Estableix aquests paràmetres al servei antimatter:

services:
  antimatter:
    environment:
      AM_CALLS_ENABLE_TRANSCRIPTIONS: "true"
      AM_CALLS_TRANSCRIBE_API: openai
      AM_CALLS_TRANSCRIBE_API_OPEN_AIURL: http://stt.internal:8000/v1
      AM_CALLS_TRANSCRIBE_API_OPEN_AI_MODEL: whisper-1
      AM_CALLS_TRANSCRIBE_API_OPEN_AI_KEY: ""
      AM_CALLS_ENABLE_LIVE_CAPTIONS: "true"
      AM_CALLS_LIVE_CAPTIONS_LANGUAGE: en
ParàmetreVariableQuè introduir
Activa transcripcions de trucades (Beta)AM_CALLS_ENABLE_TRANSCRIPTIONStrue
API del transcriptor de trucadesAM_CALLS_TRANSCRIBE_APIopenai (s' mostra com «API compatible amb OpenAI (sense servei de tasques)»)
URL de l'API de veu a textAM_CALLS_TRANSCRIBE_API_OPEN_AIURLL'URL base de l'API, fins i inclòs /v1.
Model de veu a textAM_CALLS_TRANSCRIBE_API_OPEN_AI_MODELEl nom del model tal com el coneix l'API, per exemple whisper-1. Obligatori.
Clau de l'API de veu a textAM_CALLS_TRANSCRIBE_API_OPEN_AI_KEYS'envia com a testimoni (bearer token). Deixa-la buida si l'API no n' requereix cap.
Activa els subtítols en directe (Beta)AM_CALLS_ENABLE_LIVE_CAPTIONStrue per mostrar subtítols durant la trucada.
Idioma dels subtítols en directeAM_CALLS_LIVE_CAPTIONS_LANGUAGEL'idioma parlat, com a codi de dues lletres (en per defecte). També s'envia a l'API de transcripció de veu per generar transcripcions, així que configura'l fins i tot si no actives els subtítols.
Resum de les transcripcionsAM_CALLS_SUMMARIZE_TRANSCRIPTIONStrue per obtenir un resum amb IA després de la trucada.
A la Consola del sistema, les configuracions de transcripció només apareixen quan Activa les gravacions de trucades està activat, tot i que aquest tipus de transcripció no necessita cap gravació. Configurar-les amb les variables d'evita aquest problema. No activis les gravacions juntament amb el transcriptor openai: si es comencés una gravació, s'intentaria iniciar el transcriptor del servei de tasques i fallaria.

L'àudio de tothom que parla mentre la transcripció està activa s'envia al servidor de transcripció de veu que has configurat, i la transcripció es publica on tothom del canal pot llegir-la. Informa els teus usuaris i mantingues aquest servidor a la teva xarxa pròpia si les trucades són confidencials.

Gravacions

La gravació de trucades (i la transcripció amb els transcriptors integrats whisper.cpp o Azure) s'executa en contenidors separats iniciats per un servei de tasques, el calls-offloader de codi obert de Mattermost, que heu de desplegar vosaltres mateixos al costat d'Antimatter. La configuració és Activa les gravacions de trucades (AM_CALLS_ENABLE_RECORDINGS, desactivada per defecte), URL del servei de tasques (AM_CALLS_JOB_SERVICE_URL), Durada màxima de la gravació de trucades (60 minuts per defecte, de 15 a 180) i Qualitat de la gravació de trucades (baixa, mitjana o alta; mitjana per defecte). No cal cap llicència. Un cop activades les gravacions, l'amfitrió d'una trucada inicia i atura la gravació amb Grava la trucada als controls de la trucada; tothom a la trucada veu que està sent gravada, i la gravació es publica al fil de la trucada quan s'atura. Les trucades en canals de veu no tenen fil, per tant, no es poden gravar. Per a transcripcions i subtítols en directe només, la configuració de reconeixement de veu anterior és més senzilla: no necessita cap servei de tasques.