Hívások és hang
A hívások és hangcsatornák hangot, videót és képernyőmegosztást közvetlenül a szerverre küldenek a saját portjukon. Ez az oldal a hálózati oldalt, a telepítés utáni ellenőrizendő beállításokat, valamint a saját futtatású beszédfelismerő modelllel készült átiratokat tárgyalja.
A hívások működése
A hívásokat a Hívások alkalmazás (azonosító: com.mattermost.calls) biztosítja, amely alapértelmezés szerint telepítve és engedélyezve van. A hangcsatornák (a Hangcsatornák alkalmazás, antimatter-next image) állandó hívási szobák, amelyek a Hívásokra épülnek: a Hívások engedélyezése szükséges, és ugyanazokat a beállításokat, portokat és szervereket használják.
A Hívások alkalmazás egy médiaszervert futtat az Antimatteren belül. A webböngészős, asztali és mobil alkalmazások WebRTC-vel kapcsolódnak hozzá:
- a jelzés (signalling) a szokásos webes kapcsolat (HTTPS proxy) keresztül történik;
- a média (hang, videó, képernyőmegosztás) nem: közvetlenül a szerverre megy a hívások portján, alapértelmezés szerint 8443 UDP és TCP.
A beállítások a Rendszerkonzol › Bővítmények › Hívások alatt találhatók. Mindegyik beállítás beállítható az antimatter szolgáltatáson egy AM_CALLS_ környezeti változóval is, amely ekkor felülírja a Rendszerkonzol beállításait, és ott zárolja az értéket. A régebbi MM_CALLS_ nevek is működnek.
Ezeket ellenőrizd a telepítés után
- Nyisd meg a hívások portját. Engedd át a 8443/udp és 8443/tcp portokat a szerver és a felhőszolgáltató tűzfalán.
- Check test mode. Test mode (
DefaultEnabled) is off by default, so everyone can start calls. Turn it On in System Console › Plugins › Calls to let only system administrators start calls in channels while you check that calls work, then turn it off again. The variable isAM_CALLS_DEFAULT_ENABLED:truemeans test mode is off. A server moved from Mattermost keeps the choice saved in its configuration. - Döntse el a videó kérdésében. Az Engedélyezze a videót (
EnableVideo,AM_CALLS_ENABLE_VIDEO) alapértelmezés szerint bekapcsolva van: mindenki bekapcsolhatja a kameráját ott, ahol a hívások engedélyezve vannak, közvetlen és csoportos üzenetekben, valamint csatornákban. Hangcsatornákban a Hangcsatornák alkalmazás Engedélyezze a videót hangcsatornákban beállítása dönt. Ha kikapcsolja, senki nem kapcsolhatja be a kameráját, még hangcsatornákban sem. - NAT mögött állítsd be a nyilvános címet (következő szakasz).
Hol vannak bekapcsolva a hívások
Minden közösségnek van egy típusa: Munkahely vagy Közösség (lásd: Az új közösségek típusa). Egy csatorna, amelynek adminisztrátorai nem kapcsolnak be vagy ki expliciten a hívásokat, a közösség típusát követi:
- egy munkahelyen a csatornák a szerver alapértelmezését követik: a hívások mindenki számára bekapcsolva vannak, amíg a teszt mód kikapcsolva van;
- egy közösségben a hívások kikapcsolva vannak a csatornákban: az emberek hangcsatornákban beszélgetnek. A csatorna- és közösségadminisztrátorok mégis bekapcsolhatják a hívásokat egy csatornában.
A csatorna saját beállítása mindig elsőbbséget élvez. A közvetlen és csoportos üzenetek nem tartoznak egy közösséghez: ott a hívások mindenki számára bekapcsolva vannak, amíg a teszt mód kikapcsolva van. Egy közösség típusának megváltoztatása 30 másodpercen belül hat a hívásokra.
Portok, NAT és STUN
| Beállítás | Változó | Alapérték |
|---|---|---|
| RTC-szerver port (UDP) | AM_CALLS_UDP_SERVER_PORT | 8443 |
| RTC-szerver port (TCP) | AM_CALLS_TCP_SERVER_PORT | 8443 |
| RTC-szerver cím (UDP), (TCP) | AM_CALLS_UDP_SERVER_ADDRESS, AM_CALLS_TCP_SERVER_ADDRESS | üres: minden cím |
| ICE host felülírás | AM_CALLS_ICE_HOST_OVERRIDE | üres: STUN-nal keresve |
| ICE host port felülírás | AM_CALLS_ICE_HOST_PORT_OVERRIDE | üres: a szerver portja |
| ICE-szerverek konfigurációi | AM_CALLS_ICE_SERVERS_CONFIGS | [{"urls":["stun:stun.cloudflare.com:3478"]}] |
| (Kísérleti) IPv6-támogatás engedélyezése | (Rendszerkonzol) | ki |
A portoknak 80 és 49151 között kell lenniük. A webhely compose-fájljában módosítsa a .env fájlban a CALLS_PORT értékét: ez mindkét változót beállítja, és publikálja a portot, ugyanazzal a számmal a hoston és a konténerben is. A kliensek először UDP-t próbálnak, majd ugyanazon a porton TCP-re váltanak.
Az a cím, ahová a kliensek a médiát küldik
A szerver minden kliensnek megadja azt a címet, ahová a médiát kell küldeni (ezt nevezi „host jelöltnek”). Alapértelmezés szerint a STUN-szerverrel – egy nyilvános szolgáltatással, amely a kérés forrásának címét és portját adja vissza – keresi meg a nyilvános címét. Az alapértelmezett a Cloudflare nyilvános STUN-szervere, a stun:stun.cloudflare.com:3478. Nem csak a szerver használja: minden, amely csatlakozik egy híváshoz, ugyanígy kérdez rá a saját nyilvános címére. A STUN-szerver csak IP-címeket és portokat lát, soha nem hallja a hívás hangját, nem látja a videót, és nem olvassa az üzeneteket.
Ha a szerverben még a Mattermost STUN-szervere (stun.global.calls.mattermost.com) van mentve a ICE-szerverek konfigurációi beállításban, például Mattermost-ról való átvándorlás után, akkor a Cloudflare-ét használja. A mentett beállítás nem módosul.
Állítsa be a címet manuálisan, ha:
- a szerver NAT mögött van, vagy több nyilvános címe is van: állítsa be az ICE host felülírást a nyilvános IP-címre (vagy egy olyan hostnévre, amely erre mutat);
- a NAT egy másik nyilvános portot rendel a 8443-hoz: állítsa be az ICE host port felülírást is erre a nyilvános portra;
- a szervernek nincs internetkapcsolata, vagy nem szeretné, hogy a szerver és a kliensek külső STUN-szervert érnék el: állítsa be az ICE host felülírást, és üresse ki a STUN-listát a
AM_CALLS_ICE_SERVERS_CONFIGS=[]beállítással. Ha be van állítva az ICE host felülírás, a szerver már nem kérdez rá a címére STUN-szervernél; az üres lista pedig megakadályozza, hogy a kliensek ilyen szervert keressenek.
services:
antimatter:
environment:
AM_CALLS_ICE_HOST_OVERRIDE: 203.0.113.10
AM_CALLS_ICE_SERVERS_CONFIGS: "[]"
Ha STUN-t szeretne használni harmadik fél bevonása nélkül, futtasson saját STUN-szervert (egy TURN-szerver, például a coturn, szintén válaszol STUN-kérésekre), és ezt adja meg a ICE-szerverek konfigurációi beállításban, ahogy az alábbi TURN-példában is.
Csak helyi hálózaton használja a szerver LAN-címét. A portok, címek vagy ICE-beállítások módosítása után indítsa újra a szerveret, vagy tiltsa le, majd engedélyezze a Calls-alkalmazást: a médiaszerver az alkalmazás indításakor áll be.
TURN szigorú tűzfalakkal
Néhány hálózat mind a UDP-t, mind a nem szabványos TCP-portokra kimenő kapcsolatok is blokkolja. Ezek használóihoz TURN-szerverre van szükség, amely egy elérhető porton (gyakran a 443-as) közvetíti a médiát. Az Antimatter nem tartalmaz ilyen szervert; futtasson egy TURN-szervert, például a coturn-t, és adja hozzá a ICE-szerverek konfigurációi nevű JSON-listához:
[
{"urls": ["stun:turn.example.com:3478"]},
{"urls": ["turn:turn.example.com:3478?transport=udp", "turns:turn.example.com:443?transport=tcp"]}
]
- Ha közös titkot használ (a coturn
use-auth-secretbeállítása), azonos titkot adjon meg a TURN statikus hitelesítési titok (AM_CALLS_TURN_STATIC_AUTH_SECRET) mezőben is: a szerver ekkor rövid ideig érvényes hitelesítő adatokat ad ki minden kliensnek, amelyek TURN hitelesítő adatok érvényességi ideje (percben) (alapértelmezés szerint 240) ideig érvényesek. - Ha rögzített hitelesítő adatokat használ, a TURN-bejegyzéshez adja hozzá a
"username"és a"credential"mezőket. - A Szerveroldali TURN (alapértelmezés szerint kikapcsolva) a szerver által kezdeményezett kapcsolatokhoz is a TURN-szervereket használja.
Egyéb hívásbeállítások
| Beállítás | Változó | Alapérték | Mire szolgál |
|---|---|---|---|
| Maximális híváshoz csatlakozók száma | AM_CALLS_MAX_CALL_PARTICIPANTS | 0 (korlát nélkül) | Egy hívásban részt vevő személyek maximális száma. |
| Képernyőmegosztás engedélyezése | (Rendszerkonzol) | bekapcsolva | Lehetővé teszi a résztvevők számára, hogy megossák a képernyőjüket. |
| Hívás csengésének engedélyezése | AM_CALLS_ENABLE_RINGING | bekapcsolva | Amikor egy közvetlen vagy csoportos üzenetben hívás indul, a többi résztvevő készüléke cseng. |
| Simulcast engedélyezése képernyőmegosztáshoz (Kísérleti) | (Rendszerkonzol) | ki | A képernyőmegosztást több minőségben is elküldi. |
| AV1-kódék engedélyezése képernyőmegosztáshoz (Kísérleti) | (Rendszerkonzol) | ki | Ha a simulcast be van kapcsolva, ez a beállítás figyelmen kívül marad. |
A Hangcsatornák alkalmazásnak két beállítása van a Rendszerkonzol › Bővítmények › Hangcsatornák menüben: Automatikus csatlakozás hangcsatorna megnyitása esetén (alapértelmezés szerint bekapcsolva) és Videó engedélyezése hangcsatornákon (alapértelmezés szerint bekapcsolva, de lásd a fenti videót). A közösségi adminisztrátorok a csatorna beállításaiban alakíthatják át egy csatornát hangcsatornává.
AM_CALLS_DISABLE=true. Ekkor a hangcsatornák sem működnek tovább.Nagyobb szerverek: külső rtcd
Alapértelmezés szerint egy Antimatter-szerver kezeli az összes híváshoz tartozó médiát. Ha sok párhuzamos hívás zajlik, vagy a médiát a csevegőszerverről el szeretnéd távolítani, a Hívások app átadhatja a médiát az rtcd nevű különálló médiaszervernek (a Mattermost nyílt forráskódú rtcd szervere, 0.17-es vagy újabb verzió). Állítsd be az RTCD-szerver URL-címét (AM_CALLS_RTCD_SERVICE_URL), például https://rtcd.example.com: ekkor minden hívás ezen keresztül zajlik, és a kliensek a médiát az rtcd saját portjára küldik, nem az Antimatterére. A hitelesítő adatokat az AM_CALLS_RTCD_CLIENT_ID és az AM_CALLS_RTCD_AUTH_KEY segítségével adhatod meg; ha ezeket nem állítod be, az app önmagát regisztrálja az rtcd-nél. Licenc nem szükséges. A Hívások app figyelmeztetést jelenít meg az adminisztrátorok számára, amely az rtcd használatát javasolja, ha a szerveren gyakran 50-nél több ember vesz egyszerre részt hívásokban.
Átirat és élő feliratok
Az Antimatter beszéd-főszövégi (speech-to-text) modell segítségével, amelyet saját magad futtatsz, átiratot készíthet a hívásokról, és élő feliratokat jeleníthet meg, amíg a beszélők szólnak. Az Antimatter bármilyen szerverrel működik, amely nyújt OpenAI-kompatibilis /v1/audio/transcriptions végpontot, például egy a hálózaton futó Whisper-szerverrel. Nem szükséges hozzá további Antimatter-szolgáltatás.
Így működik
- A hívás háziasszonya a Átirat készítése a hívásról gombbal indítja el az átírást a hívás vezérlőin. Egy Átírás folyamatban jelvény tájékoztatja mindenkit.
- Minden résztvevő appja a saját mikrofonját hallgatja, a beszédet rövid darabokra vágja (legfeljebb 12 másodperces, soha nem némítás közben), és ezeket elküldi az Antimatternek, amely továbbítja őket a beszéd-főszövégi szerveredre.
- Ha az élő feliratok be vannak kapcsolva, minden darab szövege azonnal feliratként jelenik meg a résztvevők előtt.
- Amikor az átiratkészítés leáll, vagy a hívás véget ér, a Hívások bot szövegfájlként és WebVTT-feliratként beküldi az átiratot a hívás üzenetszálába (a hangcsatornákban a csatornába).
- Ha a Átiratok összefoglalása be van kapcsolva, az Ügynökök app alapértelmezett ügynöke is beküld egy összefoglalót a szálba (lásd MI).

Beállítás
Állítsd be ezeket az antimatter szolgáltatáson:
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
| Beállítás | Változó | Mit kell beírni |
|---|---|---|
| Hívások átiratának engedélyezése (Beta) | AM_CALLS_ENABLE_TRANSCRIPTIONS | true |
| Hívás átiratkészítő API | AM_CALLS_TRANSCRIBE_API | openai (megjelenik „OpenAI-kompatibilis API (munkafolyamat-szolgáltatás nélkül)” néven) |
| Beszéd-főszövégi API URL-címe | AM_CALLS_TRANSCRIBE_API_OPEN_AIURL | Az API alap URL-címe, a /v1-ig, beleértve azt. |
| Beszéd-főszövégi modell | AM_CALLS_TRANSCRIBE_API_OPEN_AI_MODEL | A modell neve, ahogy az API ismeri, például whisper-1. Kötelező. |
| Beszéd-főszövégi API-kulcs | AM_CALLS_TRANSCRIBE_API_OPEN_AI_KEY | Bearer tokenként küldődik. Hagyd üresen, ha az API nem igényel kulcsot. |
| Élő feliratok engedélyezése (Beta) | AM_CALLS_ENABLE_LIVE_CAPTIONS | true a hívás alatti feliratokhoz. |
| Élő feliratok nyelve | AM_CALLS_LIVE_CAPTIONS_LANGUAGE | A beszélt nyelv kétbetűs kódja (alapértelmezés szerint en). Ez az érték a hangszövegfelismerő API-hoz is továbbításra kerül az átiratokhoz, ezért akkor is állítsa be, ha nem használ élő feliratokat. |
| Átiratok összefoglalása | AM_CALLS_SUMMARIZE_TRANSCRIPTIONS | true az AI által generált összefoglalóhoz a hívás után. |
openai átiratolóval együtt: ekkor a felvétel indításakor a job-service átiratoló indítását próbálná meg, ami hibával járna.Az átiratolás bekapcsolása esetén mindenki hangja, aki beszél, a beállított hangszövegfelismerő szerverre kerül, és az átirat ott jelenik meg, ahol a csatorna minden tagja elolvashatja. Tájékoztassa a felhasználókat, és ha a hívások bizalmasak, tartsa a szervert a saját hálózatában.
Felvételek
A hívások felvétele (a beépített whisper.cpp vagy Azure átiratolóval) külön konténerekben fut, amelyeket a Mattermost nyílt forráskódú calls-offloader feladatszolgáltatása indít, és amelyet Ön telepít az Antimatter mellé. A beállítások: Hívásfelvételek engedélyezése (AM_CALLS_ENABLE_RECORDINGS, alapértelmezés szerint kikapcsolva), Feladatszolgáltatás URL-címe (AM_CALLS_JOB_SERVICE_URL), Hívásfelvétel maximális időtartama (alapértelmezés szerint 60 perc, 15 és 180 perc között) és Hívásfelvétel minősége (alacsony, közepes vagy magas; alapértelmezés szerint közepes). Nem szükséges licenc. Amint a felvételek engedélyezve vannak, a hívás gazdája a hívásvezérlőknél a Hívás felvétele gombbal indítja és állítja le a felvételt; a hívásban mindenki látja, hogy felvétel készül, és a felvétel a hívás üzenetszálába kerül, amikor leáll. A hangcsatornákban zajló hívásoknak nincs üzenetszáluk, ezért nem rögzíthetők. Ha csak átiratokat és feliratokat szeretne, a fenti beszédfelismerő beállítás egyszerűbb: nem igényel feladatszolgáltatást.