Opkald og lyd
Opkald og lydkanaler sender lyd, video og skærmdeling direkte til serveren på deres egen port. Denne side dækker netværksaspektet, de indstillinger, der skal kontrolleres efter installationen, samt transkription med et tale-til-tekst-model, som du kører selv.
Sådan fungerer opkald
Opkald leveres af Opkald-appen (id com.mattermost.calls), som er installeret og aktiveret som standard. Lydkanaler (Lydkanaler-appen, antimatter-next-billedet) er permanente opkaldsrum bygget på Opkald: de kræver, at Opkald er aktiveret, og de bruger de samme indstillinger, porte og servere.
Opkaldsappen kører en medieserver inde i Antimatter. Webappen, desktopappen og mobilappene forbinder sig til den med WebRTC:
- signaleringen går gennem den normale webforbindelse (din HTTPS-proxy);
- mediet (lyd, video, skærmdeling) gør det ikke: det går direkte til serveren på opkaldsporten, 8443 UDP og TCP som standard.
Indstillingerne findes i Systemkonsol › Plugins › Opkald. Hver af dem kan også indstilles med en AM_CALLS_ miljøvariabel på antimatter-tjenesten, som derefter har forrang over Systemkonsolen og låser indstillingen der. De ældre MM_CALLS_-navne virker også.
Kontroller disse efter installationen
- Åbn opkaldsporten. Tillad 8443/udp og 8443/tcp i serverens og din cloududbyders firewall.
- Tjek testtilstand. Testtilstand (
DefaultEnabled) er slået fra som standard, så alle kan starte opkald. Slå Til i Systemkonsol › Plugins › Opkald, hvis du kun vil lade systemadministratorer starte opkald i kanaler, mens du kontrollerer, at opkald fungerer, og slå det derefter fra igen. Variablen erAM_CALLS_DEFAULT_ENABLED:truebetyder, at testtilstand er slået fra. En server, der er flyttet fra Mattermost, beholder det valg, der er gemt i dens konfiguration. - Bestem om video skal være tilgængelig. Slå video til (
EnableVideo,AM_CALLS_ENABLE_VIDEO) er slået til som standard: folk kan slå deres kamera til, hvor opkald er tilladt, i direkte og gruppebeskeder samt i kanaler. I lydkanaler afgøres det af Lydkanaler-appens Tillad video i lydkanaler. Slå det fra, og ingen kan slå et kamera til, heller ikke i lydkanaler. - Bag NAT, sæt den offentlige adresse (næste afsnit).
Hvor opkald er slået til
Alle fællesskaber har en type, arbejdsområde eller guild (se Guild eller arbejdsområde). En kanal, hvis administratorer ikke har aktiveret eller deaktiveret opkald, følger fællesskabets type:
- i et arbejdsområde følger kanalerne serverens standard: opkald er aktiveret for alle, mens testtilstand er slået fra;
- i en guild er opkald deaktiveret i kanaler: folk taler i lydkanaler i stedet. Kanal- og fællesskabsadministratorer kan stadig aktivere opkald i en kanal.
En kanals egne indstillinger har altid forrang. Direkte og gruppebeskeder tilhører ikke et fællesskab: opkald er slået til for alle der, mens testtilstand er slået fra. En ændring af et fællesskabs type gælder for opkald inden for 30 sekunder.
Porte, NAT og STUN
| Indstilling | Variabel | Standard |
|---|---|---|
| RTC-serverport (UDP) | AM_CALLS_UDP_SERVER_PORT | 8443 |
| RTC-serverport (TCP) | AM_CALLS_TCP_SERVER_PORT | 8443 |
| RTC-serveradresse (UDP), (TCP) | AM_CALLS_UDP_SERVER_ADDRESS, AM_CALLS_TCP_SERVER_ADDRESS | tom: alle adresser |
| ICE Host Override | AM_CALLS_ICE_HOST_OVERRIDE | tom: fundet via STUN |
| ICE Host Port Override | AM_CALLS_ICE_HOST_PORT_OVERRIDE | tom: serverporten |
| ICE Servers Configurations | AM_CALLS_ICE_SERVERS_CONFIGS | [{"urls":["stun:stun.cloudflare.com:3478"]}] |
| (Eksperimentelt) Aktiver IPv6-understøttelse | (Systemkonsol) | Fra |
Porte skal være mellem 80 og 49151. Med webstedets compose-fil, ændr CALLS_PORT i .env: det sætter begge variabler og udgiver porten, samme nummer på værten og i containeren. Klienter forsøger først UDP og falder tilbage til TCP på samme port.
Hvilken adresse klienter sender medie til
Serveren fortæller hver klient adressen, de skal sende medie til (deres "host candidate"). Som standard finder den sin offentlige adresse ved at spørge en STUN-server, en offentlig tjeneste, der svarer med adressen og porten, en anmodning kom fra. Standarden er Cloudflares offentlige STUN-server, stun:stun.cloudflare.com:3478. Serveren er ikke den eneste, der bruger den: hver klient, der deltager i et opkald, spørger også den om sin egen offentlige adresse. STUN-serveren ser kun IP-adresser og porte, aldrig opkaldslyd, video eller beskeder.
En server, der stadig har Mattermosts STUN-server (stun.global.calls.mattermost.com) gemt i ICE Servers Configurations, for eksempel efter et skift fra Mattermost, bruger i stedet Cloudflares. Den gemte indstilling ændres ikke.
Sæt adressen selv, når:
- serveren er bag NAT, eller har flere offentlige adresser: sæt ICE Host Override til den offentlige IP-adresse (eller et hostname, der løses til den);
- NAT kortlægger en anden offentlig port til 8443: sæt også ICE Host Port Override til den offentlige port;
- serveren har ingen internetadgang, eller du ikke ønsker, at serveren og klienterne skal kontakte en ekstern STUN-server: sæt ICE Host Override, og tom STUN-listen med
AM_CALLS_ICE_SERVERS_CONFIGS=[]. Med ICE Host Override sat, spørger serveren ikke længere en STUN-server om sin adresse; den tomme liste forhindrer klienterne i at spørge en.
services:
antimatter:
environment:
AM_CALLS_ICE_HOST_OVERRIDE: 203.0.113.10
AM_CALLS_ICE_SERVERS_CONFIGS: "[]"
For at beholde STUN uden en tredjepart, kør din egen STUN-server (en TURN-server, såsom coturn, svarer også på STUN-anmodninger) og list den i ICE Servers Configurations i stedet, som i TURN-eksemplet nedenfor.
På et lokalt netværk alene, brug serverens LAN-adresse. Genstart serveren efter ændring af porte, adresser eller ICE-indstillinger, eller deaktiver og aktiver Calls-appen: medieserveren opsættes, når appen starter.
TURN, for strenge firewalls
Nogle netværk blokerer både UDP og udgående forbindelser til usædvanlige TCP-porte. Brugere på disse netværk har brug for en TURN-server, der videresender mediet via en port, de kan nå (ofte 443). Antimatter indeholder ikke en TURN-server; kør en TURN-server som coturn og tilføj den til ICE Servers Configurations, en JSON-liste:
[
{"urls": ["stun:turn.example.com:3478"]},
{"urls": ["turn:turn.example.com:3478?transport=udp", "turns:turn.example.com:443?transport=tcp"]}
]
- Ved brug af en fælles hemmelig nøgle (coturns
use-auth-secret), skal du indsætte den samme nøgle i TURN Static Auth Secret (AM_CALLS_TURN_STATIC_AUTH_SECRET): serveren udsteder kortvarige legitimationsoplysninger til hver klient, der er gyldige i TURN Credentials Expiration (minutes) (240 som standard). - Ved brug af faste legitimationsoplysninger, tilføj
"username"og"credential"til TURN-posten i stedet. - Server Side TURN (slået fra som standard) bruger også TURN-serverne til forbindelser, der startes af serveren.
Andre opkaldsindstillinger
| Indstilling | Variabel | Standard | Hvad den gør |
|---|---|---|---|
| Max call participants | AM_CALLS_MAX_CALL_PARTICIPANTS | 0 (ingen begrænsning) | Største antal personer i ét opkald. |
| Allow screen sharing | (Systemkonsol) | til | Gør det muligt for deltagere at dele deres skærm. |
| Enable call ringing | AM_CALLS_ENABLE_RINGING | til | Ringer til de andre i en direkte eller gruppebesked, når et opkald startes der. |
| Enable simulcast for screen sharing (Experimental) | (Systemkonsol) | Fra | Sender skærmdelinger i flere kvaliteter. |
| Enable AV1 codec for screen sharing (Experimental) | (Systemkonsol) | Fra | Ignoreret, mens simulcast er slået til. |
Lydkanalappen har to indstillinger i Systemkonsol › Plugins › Lydkanaler: Deltag, når en lydkanal åbnes (aktiveret som standard) og Tillad video i lydkanaler (aktiveret som standard, men se videoen ovenfor). Stemme er en kanaltype, der vælges, når kanalen oprettes (se Opret en kanal); der er ingen senere trin for at "omdanne til en lydkanal". Disse to indstillinger gælder stadig for alle lydkanaler. Oprettelse kræver, at Lydkanalappen er aktiv; uden den er Stemme gråtonet i dialogboksen for oprettelse af kanal.

AM_CALLS_DISABLE=true. Lydkanalerne holder også op med at fungere.Større servere: en ekstern rtcd
Som standard håndterer én Antimatter-server al medie til opkald. Ved mange samtidige opkald, eller for at holde mediet væk fra chatserveren, kan Calls-appen overføre mediet til rtcd, en separat medieserver (Mattermosts open-source rtcd, version 0.17 eller nyere). Indstil RTCD service URL (AM_CALLS_RTCD_SERVICE_URL), for eksempel https://rtcd.example.com: alle opkald går derefter igennem den, og klienter sender deres medie til rtcd's egen port i stedet for Antimatters. Kredensialer kan angives med AM_CALLS_RTCD_CLIENT_ID og AM_CALLS_RTCD_AUTH_KEY; uden dem registrerer appen sig selv hos rtcd. Der kræves ingen licens. Calls-appen viser administratorer en advarsel, der anbefaler rtcd, når en server ofte har mere end 50 personer i opkald samtidigt.
Transkription og live undertitler
Antimatter kan transkribere opkald med et tale-til-tekst-model, som du kører selv, og vise live undertitler, mens folk taler. Antimatter bruger enhver server, der tilbyder en OpenAI-kompatibel /v1/audio/transcriptions-endepunkt, såsom en Whisper-server på dit netværk. Der kræves ingen ekstra service fra Antimatter.
Sådan fungerer det
- Værten for et opkald starter transkriptionen med Transkriber opkaldet i opkaldskontrollerne. Et Transkriberer-mærke giver besked til alle.
- Hver deltagers app lytter til sin egen mikrofon, skærer talen op i korte stykker (op til 12 sekunder, aldrig mens de er lydløse) og sender dem til Antimatter, som videresender dem til din tale-til-tekst-server.
- Med live undertitler slået til, vises teksten for hvert stykke straks som en undertitel for deltagerne.
- Når transkriptionen stopper eller opkaldet slutter, poster Calls-botten transkriptet som en tekstfil og en WebVTT-undertitelfil i opkaldets tråd (i lydkanaler, i kanalen).
- Når Opsummer transkriptioner er aktiveret, udsender AI-chatappens standardagent også en opsummering i tråden (se AI).

Sådan indstiller du det
Indstil disse på antimatter-tjenesten:
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
| Indstilling | Variabel | Hvad der skal indtastes |
|---|---|---|
| Slå opkaldstranskriptioner til (Beta) | AM_CALLS_ENABLE_TRANSCRIPTIONS | true |
| Opkaldstranskribent-API | AM_CALLS_TRANSCRIBE_API | openai (vises som "OpenAI-kompatibelt API (ingen jobtjenest)") |
| Tale-til-tekst-API URL | AM_CALLS_TRANSCRIBE_API_OPEN_AIURL | API'ets basis-URL, op til og med /v1. |
| Tale-til-tekst-model | AM_CALLS_TRANSCRIBE_API_OPEN_AI_MODEL | Modelnavnet, som API'et kender det, for eksempel whisper-1. Påkrævet. |
| Tale-til-tekst-API-nøgle | AM_CALLS_TRANSCRIBE_API_OPEN_AI_KEY | Sendes som en bearer token. Lad den stå tom, hvis API'et ikke kræver nogen. |
| Aktivér live undertitler (Beta) | AM_CALLS_ENABLE_LIVE_CAPTIONS | true for undertitler under opkaldet. |
| Sprog for live undertitler | AM_CALLS_LIVE_CAPTIONS_LANGUAGE | Det talte sprog som en to-bogstavskode (standard er en). Det sendes også til tale-til-tekst-API'et for transkriptioner, så sæt det, selvom du ikke bruger undertitler. |
| Opsummer transkriptioner | AM_CALLS_SUMMARIZE_TRANSCRIPTIONS | true for en AI-opsummering efter opkaldet. |
openai-transkriptoren: Hvis en optagelse startes, forsøges der ellers at starte job-service-transkriptoren, hvilket vil fejle.Lyden fra alle, der taler, mens transkription er aktiv, sendes til den tale-til-tekst-server, du har konfigureret, og transkriptionen lægges der, hvor alle i kanalen kan læse den. Giv dine brugere besked, og hold serveren på dit eget netværk, hvis opkaldene er fortrolige.
Optagelser
Optagelser af opkald (og transkription med den indbyggede whisper.cpp eller Azure-transkribenter) køres i separate containere, der startes af en jobtjeneste, Mattermosts open source calls-offloader, som du selv udruller ved siden af Antimatter. Indstillingerne er Enable call recordings (AM_CALLS_ENABLE_RECORDINGS, slukket som standard), Job service URL (AM_CALLS_JOB_SERVICE_URL), Maximum call recording duration (60 minutter som standard, 15 til 180) og Call recording quality (lav, medium eller høj; medium som standard). Der kræves ingen licens. Når optagelser er slået til, starter og stopper værten for et opkald en optagelse med Record the call i opkaldskontrollerne; alle i opkaldet kan se, at det optages, og optagelsen indlægges i opkaldets tråd, når den stopper. Opkald i lydkanaler har ingen tråd, så de kan ikke optages. Hvis du kun ønsker transkriptioner og undertitler, er den ovenstående tale-til-tekst-opsætning enklere: den kræver ingen jobtjeneste.