Översikt av SDK för samtal
Med Azure Communication Services kan slutanvändares webbläsare, appar och tjänster driva röst- och videokommunikation. Den här sidan fokuserar på anropande klient-SDK, som kan bäddas in på webbplatser och interna program. Den här sidan innehåller detaljerade beskrivningar av klientfunktioner för samtal, till exempel supportinformation för plattform och webbläsare. Tjänster hanterar och kommer åt samtal programmatiskt med hjälp av API:erna för samtalsautomatisering. Rooms API är ett valfritt Azure Communication Services-API som lägger till ytterligare funktioner i ett röst- eller videosamtal, till exempel roller och behörigheter.
Om du vill skapa en egen användarupplevelse med Calling SDK kan du titta på Snabbstarter för samtal eller Anropa hero.
Om du vill ha hjälp med slutanvändarupplevelsen tillhandahåller Azure Communication Services UI Library en samling produktionsklara gränssnittskomponenter med öppen källkod som kan tas bort i ditt program. Med den här uppsättningen fördefinierade kontroller kan du skapa snygga kommunikationsupplevelser med microsofts fluent-designspråk. Om du vill veta mer om användargränssnittsbiblioteket går du till översiktswebbplatsen.
När du har börjat utveckla kan du titta på sidan med kända problem för att hitta buggar som vi arbetar med.
SDK-länkar
Plattform | Web (JavaScript) | Windows (.NET) | iOS | Android | Övrigt |
---|---|---|---|---|---|
Samtal | npm | NuGet | GitHub | Maven | |
UI-bibliotek | npm | - | GitHub | GitHub | GitHub, Storybook |
Huvudfunktioner
- Enhetshantering och Media – Calling SDK tillhandahåller funktioner för bindning till ljud- och videoenheter, kodar innehåll för effektiv överföring via kommunikationsdataplanen och återger innehåll till utdataenheter och vyer som du anger. API:er tillhandahålls också för skärm- och programdelning.
- PSTN – Calling SDK kan initiera röstsamtal med det traditionella offentligt växlade telefonnätet med hjälp av telefonnummer som du skaffar i Azure Portal eller programmatiskt. Du kan också ta med egna nummer med hjälp av sessionsgränskontrollanter.
- Teams möten och samtal – Den anropande SDK:n kan ansluta till Teams-möten och interagera med Teams röst- och videodataplan.
- Kryptering – Anropande SDK krypterar trafik och förhindrar manipulering av kabeln.
- Adressering – Azure Communication Services tillhandahåller allmänna identiteter som används för att hantera kommunikationsslutpunkter. Klienter använder dessa identiteter för att autentisera till tjänsten och kommunicera med varandra. Dessa identiteter används i ANROPANDE API:er som ger klienter insyn i vem som är ansluten till ett anrop (listan).
- Säkerhet för användaråtkomst
- Schemakontroll , schemakontroll och användarroller /behörigheter tillämpas via virtuella rum.
- Möjligheten för en användare att initiera ett nytt anrop eller ansluta till ett befintligt anrop kan hanteras via användaridentiteter och token
- Meddelanden – Anropande SDK tillhandahåller API:er som gör att klienter kan meddelas om ett inkommande samtal. I situationer där din app inte körs i förgrunden är mönster tillgängliga för att utlösa popup-meddelanden ("popup-fönster") för att informera slutanvändarna om ett inkommande samtal.
- Mediestatistik – Calling SDK ger omfattande insikter om måtten för dina VoIP- och videosamtal. Med den här informationen har utvecklare en tydligare förståelse för samtalskvalitet och kan fatta välgrundade beslut för att ytterligare förbättra sin kommunikationsupplevelse.
- Videobegränsningar – Calling SDK tillhandahåller API:er som kan reglera videokvaliteten bland andra parametrar under videosamtal genom att justera parametrar som upplösning och bildfrekvens som stöder olika samtalssituationer för olika nivåer av videokvalitet
- Användarinriktad diagnostik (UFD) – Anropande SDK tillhandahåller händelser som är utformade för att ge insikter om underliggande problem som kan påverka samtalskvaliteten. Utvecklare kan prenumerera på utlösare som svaga nätverkssignaler eller dämpade mikrofoner, vilket säkerställer att de alltid är medvetna om faktorer som påverkar anropen.
Detaljerade funktioner
I följande lista visas den uppsättning funktioner som för närvarande är tillgängliga i Azure Communication Services Calling SDK:er.
Grupp med funktioner | Kapacitet | JS | Windows | Java (Android) | Objective-C (iOS) |
---|---|---|---|---|---|
Kärnfunktioner | Placera ett 1-till-ett-anrop mellan två användare | ✔️ | ✔️ | ✔️ | ✔️ |
Placera ett gruppsamtal med fler än två användare (upp till 100 användare) | ✔️ | ✔️ | ✔️ | ✔️ | |
Höja upp ett 1-till-ett-samtal med två användare i ett gruppsamtal med fler än två användare | ✔️ | ✔️ | ✔️ | ✔️ | |
Ansluta till ett gruppsamtal när det har startats | ✔️ | ✔️ | ✔️ | ✔️ | |
Bjud in en annan VoIP-deltagare att delta i ett pågående gruppsamtal | ✔️ | ✔️ | ✔️ | ✔️ | |
Kontroll av mittanrop | Aktivera/inaktivera videon | ✔️ | ✔️ | ✔️ | ✔️ |
Stäng av/slå på mikrofonen | ✔️ | ✔️ | ✔️ | ✔️ | |
Stäng av ljudet för andra deltagare | ✔️ | ✔️1 | ✔️1 | ✔️1 | |
Växla mellan kameror | ✔️ | ✔️ | ✔️ | ✔️ | |
Lokalt undantag/avspärrning | ✔️ | ✔️ | ✔️ | ✔️ | |
Aktiv högtalare | ✔️ | ✔️ | ✔️ | ✔️ | |
Välj talare för samtal | ✔️ | ✔️ | ✔️ | ✔️ | |
Välj mikrofon för samtal | ✔️ | ✔️ | ✔️ | ✔️ | |
Visa status för en deltagare Idle, Early media, Connecting, Connected, On hold, In Lobby, Disconnected |
✔️ | ✔️ | ✔️ | ✔️ | |
Visa tillståndet för ett anrop Tidig media, inkommande, anslutning, ringning, ansluten, håll, koppla från, frånkopplad |
✔️ | ✔️ | ✔️ | ✔️ | |
Visa om en deltagare är avstängd | ✔️ | ✔️ | ✔️ | ✔️ | |
Visa orsaken till att en deltagare lämnade ett anrop | ✔️ | ✔️ | ✔️ | ✔️ | |
Skärmdelning | Dela hela skärmen inifrån programmet | ✔️ | ✔️2 | ✔️2 | ✔️2 |
Dela ett specifikt program (från listan över program som körs) | ✔️ | ✔️2 | ❌ | ❌ | |
Dela en webbläsarflik från listan med öppna flikar | ✔️ | ||||
Dela systemljud under skärmdelning | ✔️ | ❌ | ❌ | ❌ | |
Deltagare kan visa fjärrskärmsresurs | ✔️ | ✔️ | ✔️ | ✔️ | |
Lista | Visa en lista över deltagare | ✔️ | ✔️ | ✔️ | ✔️ |
Ta bort en deltagare | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN | Placera ett 1-till-1-samtal med en PSTN-deltagare | ✔️ | ✔️ | ✔️ | ✔️ |
Ringa ett gruppsamtal med PSTN-deltagare | ✔️ | ✔️ | ✔️ | ✔️ | |
Höja upp ett 1-till-ett-samtal med en PSTN-deltagare i ett gruppsamtal | ✔️ | ✔️ | ✔️ | ✔️ | |
Uppringning från ett gruppsamtal som PSTN-deltagare | ✔️ | ✔️ | ✔️ | ✔️ | |
Stöd för tidiga medier | ✔️ | ✔️ | ✔️ | ✔️ | |
Allmänt | Testa mikrofonen, högtalaren och kameran med en ljudtestningstjänst (tillgänglig genom att ringa 8:echo123) | ✔️ | ✔️ | ✔️ | ✔️ |
Enhetshantering | Be om behörighet att använda ljud och/eller video | ✔️ | ✔️ | ✔️ | ✔️ |
Hämta kameralista | ✔️ | ✔️ | ✔️ | ✔️ | |
Ställ in kamera | ✔️ | ✔️ | ✔️ | ✔️ | |
Hämta vald kamera | ✔️ | ✔️ | ✔️ | ✔️ | |
Hämta mikrofonlista | ✔️ | ✔️ | ❌3 | ❌3 | |
Ställ in mikrofon | ✔️ | ✔️ | ❌3 | ❌3 | |
Hämta vald mikrofon | ✔️ | ✔️ | ❌3 | ❌3 | |
Hämta talarlista | ✔️ | ✔️ | ❌3 | ❌3 | |
Ange högtalare | ✔️ | ✔️ | ❌3 | ❌3 | |
Hämta vald talare | ✔️ | ✔️ | ❌3 | ❌3 | |
Videoåtergivning | Rendera enstaka video på många platser (lokal kamera eller fjärrström) | ✔️ | ✔️ | ✔️ | ✔️ |
Ange/uppdatera skalningsläge | ✔️ | ✔️ | ✔️ | ✔️ | |
Rendera fjärrvideoström | ✔️ | ✔️ | ✔️ | ✔️ | |
Videoeffekter | Bakgrundsoskärpa | ✔️ | ✔️ | ✔️ | ✔️ |
Anpassad bakgrundsbild | ✔️ | ✔️ | ✔️ | ✔️ | |
Ljudeffekter | Musikläge | ❌ | ✔️ | ✔️ | ✔️ |
Ekoreducering | ❌ | ✔️ | ✔️ | ✔️ | |
Brusreducering | ✔️ | ✔️ | ✔️ | ✔️ | |
Automatisk gain-kontroll (AGC) | ❌ | ✔️ | ✔️ | ✔️ | |
Meddelanden 4 | Push-aviseringar | ✔️ | ✔️ | ✔️ | ✔️ |
Anpassad kontext | Lägga till användar-till-användare (UUI) eller anpassade rubriker i ett anrop | ✔️ | ❌ | ❌ | ❌ |
1 Funktionen för att stänga av andra är för närvarande i offentlig förhandsversion.
2 Funktionen Dela skärm kan uppnås med hjälp av RAW Media-API:er. Mer information finns i snabbstartsguiden för rå mediaåtkomst.
3 Calling SDK har inte något explicit API för dessa funktioner. Du bör använda API:erna för Android- och iOS-operativsystemet för att uppnå det i stället.
4 Det maximala värdet för TTL på interna plattformar är 180 dagar (15 552 000 sekunder) och minimivärdet är 5 minuter (300 sekunder).. För CTE (Custom Teams Endpoint)/M365 Identity är det maximala TTL-värdet 24 timmar (86 400 sekunder).
Stöd för JavaScript Calling SDK per operativsystem och webbläsare
Följande tabell representerar den uppsättning webbläsare som stöds, som för närvarande är tillgängliga. Vi stöder de senaste tre huvudversionerna av webbläsaren (de senaste tre delversionerna för Safari) om inget annat anges.
Plattform | Chrome | Safari | Edge | Firefox | Webbvy | Elektron |
---|---|---|---|---|---|---|
Android | ✔️ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
iOS | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
macOS | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Windows | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
Ubuntu/Linux | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
- Utgående skärmdelning stöds inte i iOS- eller Android-mobila webbläsare.
- Firefox-stöd finns i offentlig förhandsversion.
- För närvarande stöder anropande SDK endast Android System WebView på Android, iOS WebView (WKWebView) i offentlig förhandsversion. Andra typer av inbäddade webbläsare eller WebView på andra operativsystemplattformar stöds inte officiellt, till exempel GeckoView, Chromium Embedded Framework (CEF), Microsoft Edge WebView2. Körning av JavaScript Calling SDK på dessa plattformar testas inte aktivt, det kanske eller kanske inte fungerar.
- En iOS-app i Safari kan inte räkna upp/välja mikrofon- och talarenheter (till exempel Bluetooth). Det här problemet är en begränsning för iOS och operativsystemet styr standardalternativet för enheten.
Anropa klient – webbläsarsäkerhetsmodell
Använda WebRTC via HTTPS
WebRTC-API:er som getUserMedia
kräver att appen som anropar dessa API:er hanteras via HTTPS. För lokal utveckling kan du använda http://localhost
.
Bädda in Communication Services Calling SDK i en iframe
En ny behörighetsprincip (kallas även för en funktionsprincip) är tillgänglig i olika webbläsare. Den här principen påverkar samtalsscenarier genom att styra hur program kan komma åt en enhets kamera och mikrofon via ett korsande iframe-element.
Om du vill använda en iframe som värd för en del av appen från en annan domän måste du lägga till allow
attributet med rätt värde i din iframe.
Till exempel tillåter den här iframe både kamera- och mikrofonåtkomst:
<iframe allow="camera *; microphone *">
Stöd för Android Calling SDK
- Stöd för Android API-nivå 21 eller senare
- Stöd för Java 7 eller senare
- Stöd för Android Studio 2.0
Vi rekommenderar starkt att du identifierar och validerar ditt scenario genom att besöka androidplattformar som stöds
Stöd för iOS-samtals-SDK
- Stöd för iOS 10.0+ vid byggtid och iOS 12.0+ vid körning
- Xcode 12.0+
- Stöd för iPadOS 13.0+
Maximal samtalsvaraktighet
Den maximala samtalsvaraktigheten är 30 timmar, deltagare som når den maximala samtalstiden på 30 timmar kopplas från samtalet.
Antal inkommande videoströmmar som stöds
Azure Communication Services Calling SDK stöder följande strömningskonfigurationer:
Gräns | Webb | Windows/Android/iOS |
---|---|---|
Maximalt antal utgående lokala strömmar som kan skickas samtidigt | 1 video och 1 skärmdelning | 1 video + 1 skärmdelning |
Maximalt antal inkommande fjärrströmmar som kan renderas samtidigt | 16 videor + 1 skärmdelning på skrivbordswebbläsare*, 4 videor + 1 skärmdelning på mobila webbläsare | 9 videor + 1 skärmdelning |
* Från och med Azure Communication Services Web Calling SDK version 1.16.3 Även om anropande SDK inte tillämpar dessa gränser kan användarna uppleva prestandaförsämring om de överskrids. Använd API :et optimalt antal video för att avgöra hur många aktuella inkommande videoströmmar som din webbmiljö kan stödja. För att korrekt stödja 16 inkommande videor datorn bör ha en mimimum på 16 GB RAM och en 4-kärnor eller större CPU som inte är äldre än 3 år gammal
Videoupplösningar som stöds
Azure Communication Services Calling SDK justerar automatiskt upplösningar för video- och skärmdelningsströmmar under samtalet.
Kommentar
Lösningen kan variera beroende på antalet deltagare i ett anrop, mängden bandbredd som är tillgänglig för klienten, maskinvarufunktioner för lokala deltagare som återger fjärrvideo-streans och andra övergripande anropsparametrar.
Azure Communication Services Calling SDK stöder sändning av följande videoupplösningar
Maximal videoupplösning | WebJS | iOS | Android | Fönster |
---|---|---|---|---|
Skicka video | 720P | 720P | 720P | 1080P |
Skicka skärmresurs | 1080P | 1080P | 1080P | 1080P |
Ta emot en fjärrvideoström eller skärmresurs | 1080P | 1080P | 1080P | 1080P |
Antal deltagare i ett samtalsstöd
- Upp till 350 användare kan ansluta till ett gruppsamtal, Rum eller Teams + ACS-samtal.
- När samtalsstorleken når 100+ deltagare i ett samtal kan endast de 4 mest dominerande talarna som har sin videokamera vänd ses.
- När antalet personer i samtalet är 100+ minskar det visningsbara antalet inkommande videor automatiskt från 4x4 (16 inkommande videor) ned till 2x2 (4 inkommande videor).
- När antalet användare understiger 100 går antalet inkommande videor som stöds tillbaka upp till 4 x 4 (16 inkommande videor).
Anropa SDK-timeouter
Följande tidsgränser gäller för SDK:er för kommunikationstjänster som anropar:
Åtgärd | Timeout i sekunder |
---|---|
Återansluta/ta bort deltagare | 60 |
Lägga till eller ta bort ny modalitet från ett anrop (Starta/stoppa video- eller skärmdelning) | 40 |
Tidsgräns för samtalsöverföringsåtgärd | 60 |
1:1 Tidsgräns för samtalsetablissemang | 85 |
Tidsgräns för gruppsamtalsetablering | 85 |
Tidsgräns för PSTN-samtalsetableringsetablering | 115 |
Flytta upp 1:1-samtal till en timeout för gruppsamtal | 115 |
Nästa steg
Mer information finns i följande artiklar:
- Bekanta dig med allmänna samtalsflöden
- Läs mer om samtalstyper
- Lär dig mer om API för samtalsautomatisering som gör att du kan skapa serverbaserade samtalsarbetsflöden som kan dirigera och styra anrop med klientprogram.
- Planera din PSTN-lösning