Delen via


Interne netwerkonderdelen aanroepen

In het artikel worden de oproepstromen in Azure Communication Services beschreven. Signalerings- en mediastromen zijn afhankelijk van de typen oproepen die uw gebruikers maken. Voorbeelden van oproeptypen zijn een-op-een VoIP, een-op-een openbaar telefoonnetwerk (PSTN) en groepsgesprekken met een combinatie van voIP- en PSTN-verbonden deelnemers. Zie Oproeptypen voor meer informatie.

Signalerings- en mediaprotocollen

Wanneer u een peer-to-peer- of groepsoproep tot stand brengt, worden er achter de schermen twee protocollen gebruikt: HTTPS (REST) voor signalering en Secure Real-Time Transport Protocol (SRTP) voor media.

Signalering tussen de SDK's of tussen SDK's en Communication Services-signaleringscontrollers wordt verwerkt met HTTPS REST (TLS). Azure Communication Services maakt gebruik van TLS 1.2. Voor realtime mediaverkeer (RTP) raden we u aan om UDP (User Datagram Protocol) te gebruiken. Als de firewall het gebruik van UDP voorkomt, gebruikt de SDK het TRANSMISSION Control Protocol (TCP) voor media.

Laten we de signalerings- en mediaprotocollen in verschillende scenario's bekijken.

Oproepstroomcases

Case 1: VoIP met een directe verbinding tussen twee apparaten

In een-op-een VoIP- of videogesprekken geeft verkeer de voorkeur aan het meest directe pad. Direct pad betekent dat als twee SDK's elkaar rechtstreeks kunnen bereiken, ze een directe verbinding tot stand brengen. Directe verbinding is mogelijk wanneer twee SDK's zich in hetzelfde subnet bevinden (zoals in subnet 192.168.1.0/24) of wanneer de apparaten zich elk in subnetten bevinden die elkaar kunnen zien (SDK's in subnet 10.10.0.0/16 en 192.168.1.0/24 kunnen elkaar bereiken).

Diagram met een directe VOIP-aanroep tussen gebruikers en Communication Services.

Case 2: VoIP waarbij een directe verbinding tussen apparaten niet mogelijk is, maar een verbinding tussen NAT-apparaten mogelijk is

Als twee apparaten zich in subnetten bevinden die elkaar niet kunnen bereiken, maar de verbinding tussen de NAT-apparaten (Network Address Translation) mogelijk is, maken de SDK's aan de clientzijde verbinding via NAT-apparaten. Als Alice bijvoorbeeld werkt vanuit een koffiebar en Bob werkt vanuit een thuiskantoor.

Voor Alice is het de NAT van de koffiebar en voor Bob is het de NAT van het thuiskantoor. Het apparaat van Alice verzendt het externe adres van haar NAT en Bob doet hetzelfde. De SDK's leren de externe adressen van een sessiekruisingshulpprogramma voor NAT (STUN) dat Azure Communication Services kosteloos biedt. De logica die de handshake tussen Alice en Bob afhandelt, is ingesloten in de door Azure Communication Services geleverde SDK's. U hebt geen toegevoegde configuratie nodig.

Diagram van een VOIP-oproep met behulp van een sessiedoorgangshulpprogramma voor NAT (STUN)-verbinding.

Case 3: VoIP waarin noch een directe noch een NAT-verbinding mogelijk is

Als een of beide clientapparaten zich achter een symmetrische NAT bevinden, is een afzonderlijke cloudservice vereist om de media tussen de twee SDK's door te sturen. Deze service, genaamd doorgang met behulp van relays rond NAT (TURN), wordt ook geleverd door Azure Communication Services. De Communication Services Calling SDK maakt automatisch gebruik van TURN-services op basis van gedetecteerde netwerkvoorwaarden. TURN-kosten zijn inbegrepen in de prijs van de oproep.

Diagram van een VOIP, via een doorkruising met behulp van relays rond NAT-verbinding (TURN).

Case 4: Groepsgesprekken met PSTN

Zowel signalering als media voor PSTN-oproepen maken gebruik van de Azure Communication Services-telefonieresource. Deze resource is verbonden met andere providers.

PSTN-mediaverkeer loopt via een mediaprocessoronderdeel.

Diagram met een PSTN-groepsgesprek met Communication Services.

Opmerking

De mediaprocessor is ook een back-to-back-gebruikersagent, zoals gedefinieerd in RFC 3261 SIP: Session Initiation Protocol, wat betekent dat het codecs kan vertalen bij het verwerken van gesprekken tussen Microsoft- en Carrier-netwerken. De signaalcontroller van Azure Communication Services is de implementatie van een SIP-proxy van Microsoft per dezelfde RFC.

Voor groepsgesprekken stromen media en signalering altijd via de Back-end van Azure Communication Services. De audio en/of video van alle deelnemers worden gemengd in de mediaprocessor. Alle leden van een groepsgesprek verzenden hun audio- en videostreams naar de mediaprocessor, die gemengde mediastreams retourneert.

Het standaard realtime protocol (RTP) voor groepsaanroepen is UDP (User Datagram Protocol).

Opmerking

De mediaprocessor kan fungeren als een multipointcontrol-unit (MCU) of selectieve doorstuurunit (SFU).

Diagram met de UDP-mediaprocesstroom binnen de Communication Services.

Als de SDK UDP niet kan gebruiken voor media vanwege firewallbeperkingen, wordt geprobeerd het TRANSMISSION Control Protocol (TCP) te gebruiken. Voor het mediaprocessoronderdeel is UDP vereist, dus wanneer in dit geval de Communication Services TURN-service wordt toegevoegd aan de groepsoproep om TCP te vertalen naar UDP. TURN-kosten zijn inbegrepen in de prijs van de oproep.

Diagram van de TCP-media processtroom binnen Communication Services.

Case 5: Communication Services SDK en Microsoft Teams in een geplande Teams-vergadering

Signalering verloopt via de signaleringscontroller. Media stroomt door de mediaprocessor. De signaleringscontroller en mediaprocessor worden gedeeld tussen Communication Services en Microsoft Teams.

Diagram met Communication Services SDK en Teams-client in een geplande Teams-vergadering.

Case 6: Vroege media

Verwijst naar media die worden uitgewisseld, zoals audio en video, voordat de aangeroepene de sessie accepteert. Voor een vroege mediastroom moet de SBC (Session Border Controller) worden gekoppeld aan het eerste eindpunt dat begint met het streamen van media; mediastroom kan beginnen voordat kandidaten worden genomineerd. De SBC moet ondersteuning bieden voor het verzenden van dubbele toonmulti-frequentiesignalen (DTMF) tijdens deze fase om IVR- of voicemailscenario's mogelijk te maken. De SBC moet het hoogste prioriteitspad gebruiken waarop het controles ontvangt, indien de nominaties niet voltooid zijn.

Volgende stappen