Overzicht van diagnostische gegevens vooraf aanroepen
Belangrijk
Deze functie van Azure Communication Services is momenteel beschikbaar als preview-versie.
Preview-API's en SDK's worden aangeboden zonder een service level agreement. U wordt aangeraden deze niet te gebruiken voor productieworkloads. Sommige functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden.
Raadpleeg aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer informatie.
Met de api-functie vooraf aanroepen kunnen ontwikkelaars programmatisch de gereedheid van een client valideren om deel te nemen aan een Azure Communication Services-aanroep. U hebt alleen toegang tot functies vooraf aanroepen met behulp van de Calling SDK. De diagnostische functie vooraf bellen biedt meerdere diagnostische gegevens, waaronder apparaat, verbinding en gesprekskwaliteit. De diagnostische functie vooraf aanroepen is alleen beschikbaar voor het web (JavaScript). We zijn van plan om deze mogelijkheden in de toekomst in te schakelen op verschillende platforms. Geef ons feedback over welke platforms u diagnostische gegevens vooraf wilt laten inschakelen.
Vereisten
Een Azure-account met een actief abonnement. Gratis een account maken
Node.js actieve LTS-versies (Long Term Support) worden aanbevolen.
Een actieve Communication Services-resource. Een Communication Services-resource maken.
Een token voor gebruikerstoegang voor het instantiëren van de client voor oproepen. Meer informatie over tokens voor gebruikerstoegang maken en beheren. U kunt ook de Azure CLI gebruiken en de volgende opdracht uitvoeren met uw verbindingsreeks om een gebruiker en een toegangstoken te maken. Vergeet niet om de verbindingsreeks uit de resource te kopiëren via Azure Portal.
az communication identity token issue --scope voip --connection-string "yourConnectionString"
Zie Azure CLI gebruiken voor het maken en beheren van toegangstokens voor meer informatie.
Toegang tot diagnostische gegevens vooraf aanroepen
Belangrijk
Diagnostische gegevens vooraf aanroepen zijn beschikbaar vanaf versie 1.9.1-beta.1 van de Calling SDK. Zorg ervoor dat u die versie of hoger gebruikt wanneer u deze instructies volgt.
Als u diagnostische gegevens vooraf wilt aanroepen, moet u een callClient
azure Communication Services-toegangstoken initialiseren en inrichten. Daar hebt u toegang tot de PreCallDiagnostics
functie en de startTest
methode.
import { CallClient, Features} from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';
const callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential("INSERT ACCESS TOKEN");
const preCallDiagnosticsResult = await callClient.feature(Features.PreCallDiagnostics).startTest(tokenCredential);
Zodra de uitvoering is voltooid, hebben ontwikkelaars toegang tot het resultaatobject.
Diagnostische resultaten
Diagnostische gegevens vooraf bellen retourneren een volledige diagnose van het apparaat, waaronder details zoals apparaatmachtigingen, beschikbaarheid en compatibiliteit, statistieken over de gesprekskwaliteit en diagnostische gegevens in gesprek. De resultaten worden geretourneerd als een PreCallDiagnosticsResult
object.
export declare type PreCallDiagnosticsResult = {
deviceAccess: Promise<DeviceAccess>;
deviceEnumeration: Promise<DeviceEnumeration>;
inCallDiagnostics: Promise<InCallDiagnostics>;
browserSupport?: Promise<DeviceCompatibility>;
id: string;
callMediaStatistics?: Promise<MediaStatsCallFeature>;
};
U kunt afzonderlijke resultaatobjecten openen met behulp van het preCallDiagnosticsResult
type. Resultaten voor afzonderlijke tests worden geretourneerd wanneer ze worden voltooid, waarbij veel van de testresultaten onmiddellijk beschikbaar zijn. Als u de inCallDiagnostics
test gebruikt, kan het tot 1 minuut duren voordat de test de kwaliteit van de video en audio valideert.
Browserondersteuning
Browsercompatibiliteitscontrole. Browser
Controleert op en compatibiliteit en OS
retourneert een Supported
of NotSupported
waarde.
const browserSupport = await preCallDiagnosticsResult.browserSupport;
if(browserSupport) {
console.log(browserSupport.browser)
console.log(browserSupport.os)
}
Als de test mislukt en de browser die door de gebruiker wordt gebruikt, is NotSupported
de eenvoudigste manier om dit op te lossen door de gebruiker te vragen over te schakelen naar een ondersteunde browser. Raadpleeg de ondersteunde browsers in calling SDK-overzicht > javaScript Calling SDK-ondersteuning per besturingssysteem en browser.
Notitie
Bekend probleem: browser support
test die wordt geretourneerd Unknown
in gevallen waarin deze een juiste waarde moet retourneren.
Apparaattoegang
De machtigingscontrole bepaalt of video- en audioapparaten beschikbaar zijn vanuit het perspectief van machtigingen. Biedt boolean
waarde voor audio
en video
apparaten.
const deviceAccess = await preCallDiagnosticsResult.deviceAccess;
if(deviceAccess) {
console.log(deviceAccess.audio)
console.log(deviceAccess.video)
}
Als de test mislukt en de machtigingen onwaar zijn voor audio en video, mag de gebruiker niet doorgaan met deelnemen aan een gesprek. In plaats daarvan vraagt u de gebruiker om de machtigingen in te schakelen. De beste manier om dit te doen, is door de specifieke instructies te geven voor toegang tot machtigingen op basis van het besturingssysteem, de versie en de browser die ze gebruiken. Zie de controlelijst voor geavanceerde belervaringen in webbrowsers voor meer informatie over machtigingen.
Opsomming van apparaat
Beschikbaarheid van apparaten. Controleert of microfoon-, camera- en luidsprekerapparaten worden gedetecteerd in het systeem en klaar zijn voor gebruik. Retourneert een Available
of NotAvailable
meer waarden.
const deviceEnumeration = await preCallDiagnosticsResult.deviceEnumeration;
if(deviceEnumeration) {
console.log(deviceEnumeration.microphone)
console.log(deviceEnumeration.camera)
console.log(deviceEnumeration.speaker)
}
Als apparaten niet beschikbaar zijn, mag de gebruiker niet doorgaan met deelnemen aan een gesprek. In plaats daarvan vraagt u de gebruiker om apparaatverbindingen te controleren om ervoor te zorgen dat headsets, camera's of luidsprekers correct zijn aangesloten. Zie Video beheren tijdens gesprekken voor meer informatie over apparaatbeheer.
Diagnostische gegevens van InCall
Voert een snelle oproep uit om metrische gegevens voor audio en video te controleren en resultaten terug te geven. Bevat connectiviteit (connected
, Booleaanse waarde), bandbreedtekwaliteit (bandWidth
, 'Bad' | 'Average' | 'Good'
) en diagnostische oproepdiagnose voor audio en video (diagnostics
). De opgegeven diagnostische categorieën omvatten jitter
, packetLoss
en rtt
resultaten worden gegenereerd met behulp van een eenvoudige kwaliteitsklasse ('Bad' | 'Average' | 'Good'
).
InCall diagnostics maakt gebruik van mediakwaliteitsstatistieken om kwaliteitsscores te berekenen en problemen te diagnosticeren. Tijdens de diagnose vooraf zijn de volledige set statistieken over mediakwaliteit beschikbaar voor gebruik. Deze statistieken omvatten onbewerkte waarden voor video- en audiogegevens die u programmatisch kunt gebruiken.
De InCall-diagnose biedt een handige laag boven op de statistieken van mediakwaliteit om de resultaten te gebruiken zonder dat alle onbewerkte gegevens hoeven te worden verwerkt. Zie de mediakwaliteitsstatistieken voor een doorlopend gesprek voor meer informatie, waaronder instructies voor toegang.
const inCallDiagnostics = await preCallDiagnosticsResult.inCallDiagnostics;
if(inCallDiagnostics) {
console.log(inCallDiagnostics.connected)
console.log(inCallDiagnostics.bandWidth)
console.log(inCallDiagnostics.diagnostics.audio)
console.log(inCallDiagnostics.diagnostics.video)
}
In deze stap zijn er meerdere mogelijke foutpunten. De waarden die door de API worden geleverd, zijn gebaseerd op de drempelwaarden die door de service zijn vereist. De onbewerkte drempelwaarden vindt u in statistieken over mediakwaliteit.
- Als een verbinding mislukt, vraagt u gebruikers om hun netwerkverbinding opnieuw te controleren. Verbindingsfouten kunnen ook worden toegeschreven aan netwerkvoorwaarden zoals DNS, proxy's of firewalls. Zie Aanbevelingen voor netwerken voor meer informatie over aanbevolen netwerkinstellingen.
- Als bandbreedte is
Bad
, vraagt u gebruikers om een ander netwerk te proberen of de beschikbaarheid van bandbreedte in hun huidige netwerk te controleren. Zorg ervoor dat er geen andere activiteiten met hoge bandbreedte plaatsvinden.
Prijzen
Wanneer de diagnostische test vóór aanroep achter de schermen wordt uitgevoerd, worden belminuten gebruikt om de diagnose uit te voeren. De test duurt ongeveer 30 seconden, waarbij gebruik wordt gemaakt van 30 seconden aan beltijd die wordt in rekening gebracht tegen het standaardtarief van $ 0,004 per deelnemer per minuut. Voor het geval van diagnostische gegevens vooraf bellen is de kosten voor 1 deelnemer x 30 seconden = $ 0,002.