Puhelut ja ääni
Puhelut ja äänikanavat lähettävät äänen, videon ja näytön jakamisen suoraan palvelimelle omalla portillaan. Tämä sivu käsittelee verkkotason, asetuksen, jotka kannattaa tarkistaa asennuksen jälkeen, sekä transkription, jossa käytät itse ajamaasi puheentunnistusmallia.
Miten puhelut toimivat
Puhelut toimittaa Puhelut-sovellus (tunnus com.mattermost.calls), joka on asennettu ja otettu käyttöön oletuksena. Äänikanavat (Äänikanavat-sovellus, antimatter-next-kuva) ovat pysyviä puheluhuoneita, jotka perustuvat Puhelut-sovellukseen: ne vaativat, että Puhelut on otettu käyttöön, ja käyttävät samoja asetuksia, portteja ja palvelimia.
Puhelut-sovellus ajaa mediapalvelimen Antimatterin sisällä. Web-sovellus, työpöytäsovellus ja mobiilisovellukset yhdistyvät siihen WebRTC:llä:
- signalointi kulkee normaalin web-yhteyden kautta (HTTPS-välityspalvelin);
- media (ääni, video, näytön jakaminen) ei kulje: se lähetetään suoraan palvelimelle puheluporttiin, oletuksena 8443 UDP ja TCP.
Asetukset löytyvät kohdasta Järjestelmäkonsoli › Liiteohjelmat › Puhelut. Jokainen asetus voidaan myös määrittää AM_CALLS_-ympäristömuuttujalla antimatter-palvelussa, jolloin se ohittaa Järjestelmäkonsolin ja lukitsee asetuksen siellä. Myös vanhat MM_CALLS_-nimet toimivat.
Tarkista nämä asennuksen jälkeen
- Ava puheluportti. Salli 8443/udp ja 8443/tcp palvelimen ja pilvipalveluntarjoajasi palomuurissa.
- Tarkista testitila. Testitila (
DefaultEnabled) on oletuksena pois päältä, joten kaikki voivat aloittaa puhelut. Kytke se Päälle kohdassa Järjestelmäkonsoli › Liiteohjelmat › Puhelut, jotta vain järjestelmän ylläpitäjät voivat aloittaa puhelut kanavilla, kun tarkistat, että puhelut toimivat. Kytke testitila pois päältä tarkistuksen jälkeen. Muuttuja onAM_CALLS_DEFAULT_ENABLED:truetarkoittaa, että testitila on pois päältä. Jos palvelin on siirretty Mattermostista, valinta on tallennettu sen konfiguraatioon. - Päätä videon käytöstä. Ota video käyttöön (
EnableVideo,AM_CALLS_ENABLE_VIDEO) on oletuksena päällä: käyttäjät voivat kytkeä kameransa päälle kaikkialla, missä puhelut ovat käytössä, eli suorissa ja ryhmäviesteissä sekä kanavilla. Äänikanavissa päätöksen tekee Äänikanavat-sovelluksen asetus Salli video äänikanavissa. Jos kytket tämän asetuksen pois päältä, kukaan ei voi kytkeä kameraa päälle, ei edes äänikanavissa. - NAT-taustalla, aseta julkinen osoite (seuraava osio).
Missä puhelut ovat käytössä
Jokaisella yhteisöllä on tyyppi, Työtila tai Kilta (katso Kilta tai työtila). Kanava, jonka ylläpitäjät eivät ole kytkenet puheluita päälle tai pois päältä, seuraa yhteisönsä tyyppiä:
- työtilassa kanavat seuraavat palvelimen oletusta: puhelut ovat päällä kaikille, kun testitila on pois päältä;
- killassa puhelut ovat pois päältä kanavilla: keskustelut käydään äänikanavissa. Kanavan ja yhteisön ylläpitäjät voivat silti kytkeä puhelut päälle kanavalla.
Kanavan oma asetus on aina määräävä. Suorat ja ryhmäviestit eivät kuulu yhteisöön: puhelut ovat niissä päällä kaikille, kun testitila on pois päältä. Yhteisön tyypin muutos tulee voimaan puheluita varten 30 sekunnin kuluessa.
Portit, NAT ja STUN
| Asetus | Muuttuja | Oletusarvo |
|---|---|---|
| RTC-palvelimen portti (UDP) | AM_CALLS_UDP_SERVER_PORT | 8443 |
| RTC-palvelimen portti (TCP) | AM_CALLS_TCP_SERVER_PORT | 8443 |
| RTC-palvelimen osoite (UDP), (TCP) | AM_CALLS_UDP_SERVER_ADDRESS, AM_CALLS_TCP_SERVER_ADDRESS | tyhjä: kaikki osoitteet |
| ICE-isäntäosoitteen ohitus | AM_CALLS_ICE_HOST_OVERRIDE | tyhjä: löydetään STUN-palvelimen kautta |
| ICE-isäntäportin ohitus | AM_CALLS_ICE_HOST_PORT_OVERRIDE | tyhjä: palvelimen portti |
| ICE-palvelimien asetukset | AM_CALLS_ICE_SERVERS_CONFIGS | [{"urls":["stun:stun.cloudflare.com:3478"]}] |
| (Kokeellinen) IPv6-tuen käyttöönotto | (Järjestelmäkonsoli) | Ei käytössä |
Porttien tulee olla välillä 80–49151. Sivuston compose-tiedostossa muuta CALLS_PORT-muuttujan arvoa .env-tiedostossa: se asettaa molemmat muuttujat ja julkaisee portin, samalla numerolla isäntäkoneella ja kontissa. Asiakkaat yrittävät ensin UDP:ta ja siirtyvät TCP:hen samalla portilla, jos UDP ei toimi.
Mihin osoitteeseen asiakkaat lähettävät median
Palvelin kertoo jokaiselle asiakkaalle osoitteen, johon median tulee lähettää (ns. "host candidate"). Oletuksena se löytää julkisen osoitteen kysymällä STUN-palvelimelta, joka on julkinen palvelu, joka vastaa osoitteella ja portilla, josta pyyntö tuli. Oletusarvona on Cloudflaren julkinen STUN-palvelin stun:stun.cloudflare.com:3478. Palvelin ei ole ainoa, joka käyttää sitä: jokainen asiakas, joka liittyy puhelimeen, kysyy myös omasta julkisesta osoitteestaan. STUN-palvelin näkee vain IP-osoitteet ja portit, ei koskaan puheluiden ääntä, videota tai viestejä.
Palvelin, jossa on tallennettu Mattermostin STUN-palvelin (stun.global.calls.mattermost.com) ICE-palvelimien asetuksiin, esimerkiksi siirryttäessä Mattermostista, käyttää sen sijaan Cloudflaren palvelinta. Tallennettua asetusta ei muuteta.
Aseta osoite itse, jos:
- palvelin on NAT-taustalla tai sillä on useita julkisia osoitteita: aseta ICE-isäntäosoitteen ohitus julkiseksi IP-osoitteeksi (tai isännänimeksi, joka ratkeaa siihen);
- NAT karttaa eri julkisen portin porttiin 8443: aseta myös ICE-isäntäportin ohitus kyseiseksi julkiseksi portiksi;
- palvelimella ei ole Internet-yhteyttä, tai et halua palvelimen eikä asiakkaiden ottavan yhteyttä ulkoiseen STUN-palvelimeen: aseta ICE-isäntäosoitteen ohitus ja tyhjennä STUN-lista arvolla
AM_CALLS_ICE_SERVERS_CONFIGS=[]. Kun ICE-isäntäosoitteen ohitus on asetettu, palvelin ei enää kysy osoitettaan STUN-palvelimelta; tyhjä lista estää asiakkaita kysymästä osoitettaan.
services:
antimatter:
environment:
AM_CALLS_ICE_HOST_OVERRIDE: 203.0.113.10
AM_CALLS_ICE_SERVERS_CONFIGS: "[]"
Jotta STUN-palvelu pysyy kolmannen osapuolen ulkopuolella, aja oma STUN-palvelin (TURN-palvelin, kuten coturn, vastaa myös STUN-pyyntöihin) ja lisää se ICE-palvelimien asetuksiin alla olevan TURN-esimerkin tapaan.
Vain paikallisverkossa käytä palvelimen LAN-osoitetta. Käynnitä palvelin uudelleen, kun olet muuttanut portteja, osoitteita tai ICE-asetuksia, tai poista Calls-sovellus käytöstä ja ota se uudelleen käyttöön: mediaserveri asetetaan, kun sovellus käynnistyy.
TURN, tiukkojen palomuurien kanssa
Jotkut verkot estävät sekä UDP-liikenteen että poistuvat yhteydet epätavallisiin TCP-portteihin. Tällaisten verkkojen käyttäjät tarvitsevat TURN-palvelimen, joka välittää median portin kautta, johon heillä on pääsy (usein 443). Antimatter ei sisällä TURN-palvelinta; aja TURN-palvelin, kuten coturn, ja lisää se ICE Servers Configurations-asetukseen, joka on JSON-lista:
[
{"urls": ["stun:turn.example.com:3478"]},
{"urls": ["turn:turn.example.com:3478?transport=udp", "turns:turn.example.com:443?transport=tcp"]}
]
- Yhteisen salasan (coturnin
use-auth-secret) kanssa aseta sama salasana TURN Static Auth Secret-asetukseen (AM_CALLS_TURN_STATIC_AUTH_SECRET): palvelin antaa jokaiselle asiakkaalle lyhytaikaiset tunnistetiedot, jotka ovat voimassa TURN Credentials Expiration (minutes) -ajan (oletusarvo 240 minuuttia). - Kiinteiden tunnistetietojen tapauksessa lisää TURN-tietueeseen
"username"ja"credential"-kentät. - Server Side TURN (oletus: pois) käyttää TURN-palvelimia myös palvelimen aloittamiin yhteyksiin.
Muut puhelinasetukset
| Asetus | Muuttuja | Oletusarvo | Toiminto |
|---|---|---|---|
| Max call participants | AM_CALLS_MAX_CALL_PARTICIPANTS | 0 (ei rajoitusta) | Yhden puhelun suurin osallistujamäärä. |
| Allow screen sharing | (Järjestelmäkonsoli) | on | Sallii osallistujien jakaa näytönsä. |
| Enable call ringing | AM_CALLS_ENABLE_RINGING | on | Soittaa suoran tai ryhmäviestin muille osallistujille, kun puhelu alkaa siellä. |
| Enable simulcast for screen sharing (Experimental) | (Järjestelmäkonsoli) | Ei käytössä | Lähettaa näytön jakamisen useilla laadutasoilla. |
| Enable AV1 codec for screen sharing (Experimental) | (Järjestelmäkonsoli) | Ei käytössä | Ohitetaan, kun simulcast on käytössä. |
Äänikanavat-sovelluksessa on kaksi asetusta kohdassa Järjestelmäkonsoli › Liiteohjelmat › Äänikanavat: Liity avattaessa äänikanava (oletuksena päällä) ja Salli video äänikanavissa (oletuksena päällä, mutta katso videoa koskeva osio yllä). Ääni on kanavatyyppi, joka valitaan kanavaa luotaessa (katso Kanavan luominen); erillistä vaihetta äänikanavaksi muuttamiseen ei ole. Nämä kaksi asetusta koskevat kaikkia äänikanavia. Äänikanavan luominen edellyttää, että Äänikanavat-sovellus on aktiivinen; ilman sitä Ääni on harmaana kanavan luomisdialogissa.

AM_CALLS_DISABLE=true. Äänikanavat lakkaavat silloin toimimasta.Suuremmat palvelimet: ulkoinen rtcd
Oletuksena yksi Antimatter-palvelin käsittelee kaiken puheluiden median. Useiden yhtäaikaisien puheluiden tai median pitämisen keskustelupalvelin ulkopuolella takia Calls-sovellus voi siirtää median erilliseen mediaserveriin rtcd:iin (Mattermostin avoimen lähdekoodin rtcd, versio 0.17 tai uudempi). Määritä RTCD-palvelin-URL (AM_CALLS_RTCD_SERVICE_URL), esimerkiksi https://rtcd.example.com: silloin kaikki puhelut kulkevat sen kautta, ja asiakkaat lähettävät median rtcd:n omaan porttiin Antimatterin sijaan. Tunnustiedot voi antaa AM_CALLS_RTCD_CLIENT_ID ja AM_CALLS_RTCD_AUTH_KEY -muuttujilla; ilman niitä sovellus rekisteröi itsensä rtcd:ään. Lisenssiä ei tarvita. Calls-sovellus näyttää ylläpitäjille varoituksen, joka suosittelee rtcd:ää, jos palvelimella on usein yli 50 henkilöä puheluissa yhtä aikaa.
Transkriptio ja live-titrat
Antimatter voi transkriboita puheluita puheentunnistusmallilla, jonka ajat itse, ja näyttää live-titraat, kun ihmiset puhuvat. Antimatter käyttää mitä tahansa palvelinta, joka tarjoaa OpenAI-yhteensopivan /v1/audio/transcriptions-päätepisteen, kuten Whisper-palvelinta omassa verkossasi. Antimatterin lisäpalvelua ei tarvita.
Näin se toimii
- Puhelun isäntä käynnistää transkription valitsemalla Transkriboi puhelu -kohdan puhelinhallinnasta. Transkriptio käynnissä -merkki ilmoittaa tästä kaikille.
- Jokaisen osallistujan sovellus kuuntelee omaa mikrofoniaan, leikkaa puheen lyhyiksi paloiksi (enintään 12 sekuntia, ei koskaan mykistettynä) ja lähettää ne Antimatteriin, joka välittää ne puheentunnistuspalvelimellesi.
- Kun live-titrat ovat päällä, jokaisen palan teksti näytetään osallistujille titratena heti.
- Kun transkriptio lopetetaan tai puhelu päättyy, Calls-botti lähettää transkription tekstitiedostona ja WebVTT-alikirjoitustiedostona puhelun ketjuun (äänikanavissa kanavaan).
- Kun Yhteenveto transkriptioista on päällä, tekoälykeskustelun oletusagentti julkaisee myös yhteenvedon ketjussa (katso Tekoäly).

Asetukset
Määritä nämä antimatter-palveluun:
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
| Asetus | Muuttuja | Mikä syötetään |
|---|---|---|
| Ota puheluiden transkriptio käyttöön (Beta) | AM_CALLS_ENABLE_TRANSCRIPTIONS | true |
| Puheluiden transkriptio-API | AM_CALLS_TRANSCRIBE_API | openai (näytetään nimellä "OpenAI-compatible API (no job service)") |
| PUHEENTUNNISTUS-API-URL | AM_CALLS_TRANSCRIBE_API_OPEN_AIURL | API:n perus-URL, mukaan lukien /v1. |
| PUHEENTUNNISTUS-MALLI | AM_CALLS_TRANSCRIBE_API_OPEN_AI_MODEL | Mallin nimi, sellaisena kuin API sen tuntee, esimerkiksi whisper-1. Pakollinen. |
| PUHEENTUNNISTUS-API-AVAIN | AM_CALLS_TRANSCRIBE_API_OPEN_AI_KEY | Lähetetään bearer-tokenina. Jätä tyhjäksi, jos API ei vaadi avainta. |
| Ota live-titrat käyttöön (beta) | AM_CALLS_ENABLE_LIVE_CAPTIONS | true titrajen näyttämiseksi puhelun aikana. |
| Live-titrajen kieli | AM_CALLS_LIVE_CAPTIONS_LANGUAGE | Puhuttu kieli kahden merkin koodina (oletus en). Arvo lähetetään myös puhe-tunnistus-API:lle transkriptioita varten, joten aseta se vaikka titrat eivät olisi käytössä. |
| Yhteenveto transkriptioista | AM_CALLS_SUMMARIZE_TRANSCRIPTIONS | true tekoälyn luoman yhteenveton saamiseksi puhelun jälkeen. |
openai-transkriptioinnin kanssa: tallenteen käynnistys yrittäisi silloin käynnistää job-service-transkriptioinnin ja epäonnistuisi.Kaikkien, jotka puhuvat transkriptioinnin ollessa päällä, ääni lähetetään sinun määrittämälle puhe-tunnistuspalvelimelle, ja transkriptio julkaistaan kanavassa, jossa kaikki voivat lukea sen. Kerro käyttäjillesi tästä ja pidä palvelin omassa verkossasi, jos puhelut ovat luottamuksellisia.
Tallenteet
Puhelujen tallennus (ja transkriptio sisäänrakennetuilla whisper.cpp- tai Azure-transkriptoreilla) tapahtuu erillisissä konteissa, jotka käynnistää työpalvelu, Antimatterin avoimen lähdekoodin calls-offloader. Tämä palvelu on asennettava Antimatterin viereen. Asetukset ovat Enable call recordings (AM_CALLS_ENABLE_RECORDINGS, oletuksena pois päältä), Job service URL (AM_CALLS_JOB_SERVICE_URL), Maximum call recording duration (oletuksena 60 minuuttia, välillä 15–180) ja Call recording quality (matala, keskitaso tai korkea; oletuksena keskitaso). Lisenssiä ei tarvita. Kun tallennus on käytössä, puhelun isäntä voi käynnistää ja lopettaa tallennuksen puhelun hallintapainikkeiden Tallenna puhelu-painikkeella. Kaikki puhelun osallistujat näkevät, että puhelua tallennetaan, ja tallenne julkaistaan puhelun ketjuun, kun tallennus päättyy. Äänikanavien puheluilla ei ole ketjua, joten niitä ei voi tallentaa. Jos tarvitset vain transkriptiot ja live-titrat, yllä oleva puheentunnistuksen asennus on yksinkertaisempi: se ei vaadi työpalvelua.