You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/communication-services/concepts/detailed-call-flows.md
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Before reviewing call flow topologies, we define some terms that are referred to
23
23
24
24
A *customer network* contains any network segments that you manage. The customer network might include wired and wireless networks within your office or between offices, data centers, and internet service providers.
25
25
26
-
A customer network usually has several network perimeters with firewalls or proxy servers that enforce your organization's security policies. We recommend that you perform a [comprehensive network assessment](/microsoftteams/3-envision-evaluate-my-environment) to ensure optimal performance and quality of your communication solution.
26
+
A customer network usually has several network perimeters with firewalls or proxy servers that enforce your organization's security policies. We recommend that you perform a [comprehensive network assessment](/microsoftteams/3-envision-evaluate-my-environment) to achieve the optimal performance and quality of your communication solution.
27
27
28
28
The *Azure Communication Services network* is the network that supports Azure Communication Services. Microsoft manages this network and distributes it worldwide with the Microsoft-owned data centers that are closest to end customers. This network is responsible for transport relay, media processing for group calls, and other components that support rich, real-time media communications.
29
29
@@ -39,13 +39,13 @@ Users of your Azure Communication Services solution connect to your services fro
39
39
40
40
Call flows in Azure Communication Services that call SDK and Teams clients are based on the [Session Description Protocol (SDP) RFC 8866](https://datatracker.ietf.org/doc/html/rfc8866) offer and answer model over HTTPS. When the callee accepts an incoming call, the caller and callee agree on the session parameters.
41
41
42
-
Media traffic is encrypted, and flows between the caller and callee by using SRTP, a profile of RTP that provides confidentiality, authentication, and replay attack protection to RTP traffic. In most cases, client-to-client media traffic is negotiated through client-to-server connection signaling, and is encrypted by using SRTP when going directly from client to client.
42
+
Media traffic is encrypted and flows between the caller and callee by using SRTP, a profile of RTP that provides confidentiality, authentication, and replay attack protection to RTP traffic. In most cases, client-to-client media traffic is negotiated through client-to-server connection signaling, and is encrypted by using SRTP when going directly from client to client.
43
43
44
44
Azure Communication Services that call SDK clients use Datagram Transport Layer Security (DTLS) to derive an encryption key. After the DTLS handshake is done, the media begins to flow by using this DTLS-negotiated encryption key over SRTP.
45
45
46
-
Azure Communication Services that call SDK and Teams clients uses a credentials-based token for secure access to media relays over TURN. Media relays exchange the token over a Transport Layer Security (TLS) secured channel.
46
+
Azure Communication Services that call SDK and Teams clients use a credentials-based token for secure access to media relays over TURN. Media relays exchange the token over a Transport Layer Security (TLS) secured channel.
47
47
48
-
Azure Communication Services media traffic between two endpoints that participate in Azure Communication Services audio, video, and video sharing utilizes SRTP to encrypt the media stream. Cryptographic keys are negotiated between the two endpoints over a signaling protocol, which uses TLS 1.2 and AES-256 (in GCM mode) encrypted UDP/TCP channel.
48
+
Azure Communication Services media traffic between two endpoints that participate in Azure Communication Services audio, video, and video sharing utilizes SRTP to encrypt the media stream. Cryptographic keys are negotiated between the two endpoints over a signaling protocol, which uses a TLS 1.2 and AES-256 (in GCM mode) encrypted UDP/TCP channel.
49
49
50
50
### Call flow principles
51
51
@@ -60,7 +60,7 @@ This endpoint is selected based on the region in which the call is hosted. Media
60
60
61
61
* Media traffic for peer-to-peer calls takes *the most direct route that's available*, assuming the call doesn't need a media endpoint in the cloud.
62
62
63
-
The preferred route is direct to the remote peer (client). If a direct route isn't available, one or more transport relays forward the traffic. Media traffic shouldn't transverse servers that act like packet shapers or virtual private network (VPN) servers, or fulfill other functions that might delay processing and degrade the end-user experience.
63
+
The preferred route is direct to the remote peer (client). If a direct route isn't available, one or more transport relays forward the traffic. Media traffic shouldn't traverse servers that act like packet shapers or virtual private network (VPN) servers, or fulfill other functions that might delay processing and degrade the end-user experience.
64
64
65
65
* Signaling traffic always goes to *whatever server is closest to the user*.
66
66
@@ -74,24 +74,24 @@ This call flow topology example depicts customers that use Azure Communication S
74
74
75
75
:::image type="content" source="./media/call-flows/detailed-flow-general.png" alt-text="Diagram that shows Azure Communication Services call flow topology initiated by a cloud based user over the internet.":::
76
76
77
-
The direction of the arrows in the preceding diagram reflect the direction of the initial communication that affects connectivity at the enterprise perimeters. For UDP media, the first packets might flow in the reverse direction, but these packets might be blocked until packets are flowing in the other direction.
77
+
The direction of the arrows in the preceding diagram reflects the direction of the initial communication that affects connectivity at the enterprise perimeters. For UDP media, the first packets might flow in the reverse direction, but these packets might be blocked until packets are flowing in the other direction.
78
78
79
79
#### Flow descriptions
80
80
81
81
* Flow 2 – Represents a flow initiated by a user on the customer network to the internet as a part of the user's Azure Communication Services experience. Examples of these flows include DNS and peer-to-peer media transmission.
82
-
* Flow 2` – Represents a flow initiated by a remote mobile Azure Communication Services user, with VPN to the customer network.
82
+
* Flow 2` – Represents a flow initiated by a remote mobile Azure Communication Services user with VPN to the customer network.
83
83
* Flow 3 – Represents a flow initiated by a remote mobile Azure Communication Services user to Azure Communication Services endpoints.
84
84
* Flow 4 – Represents a flow initiated by a user on the customer network to Azure Communication Services.
85
85
* Flow 5 – Represents a peer-to-peer media flow between one Azure Communication Services user and another within the customer network.
86
86
* Flow 6 – Represents a peer-to-peer media flow between a remote mobile Azure Communication Services user and another remote mobile Azure Communication Services user over the internet.
87
87
88
88
### Use case: One-to-one calling
89
89
90
-
A one-to-one call means one user directly calls another user. To initialize the call, the calling SDK obtains a set of candidates consisting of IP addresses and ports, including local, relay, and reflexive (public IP address of client as seen by the relay) candidates. The calling SDK sends these candidates to the called party. The called party receives a similar set of candidates and sends them to the caller.
90
+
A one-to-one call means one user directly calls another user. To initialize the call, the calling SDK obtains a set of candidates that consists of IP addresses and ports. This set includes local, relay, and reflexive (the public IP address of the client as seen by the relay) candidates. The calling SDK sends these candidates to the called party. The called party receives a similar set of candidates and sends them to the caller.
91
91
92
-
The system uses STUN connectivity check messages to find which caller/called party media paths work, and then selects the best working path. After the system establishes the connection path, it performs a DTLS handshake over the connection to ensure security. After the DTLS handshake, the system derives SRTP keys from the DTLS handshake process. Media (that is, RTP/RTCP packets secured by using SRTP) are then sent using the selected candidate pair. The transport relay is available as part of Azure Communication Services.
92
+
The system uses STUN connectivity check messages to find which caller/called party media paths work, and then selects the best working path. After the system establishes the connection path, it performs a DTLS handshake over the connection to ensure security. After the DTLS handshake, the system derives SRTP keys from the DTLS handshake process. Media (RTP/RTCP packets secured by using SRTP) are then sent by using the selected candidate pair. The transport relay is available as part of Azure Communication Services.
93
93
94
-
If the local IP address and port candidates or the reflexive candidates have connectivity, then the direct path between the clients (or using a NAT) is selected for media. If the clients are both on the customer network, then the direct path should be selected. This selection requires direct UDP connectivity within the customer network. If the clients are both nomadic cloud users, then depending on the NAT/firewall, media might use direct connectivity.
94
+
If the local IP address and port candidates or the reflexive candidates have connectivity, then the direct path between the clients (or if you're using a NAT) is selected for media. If the clients are both on the customer network, then the direct path should be selected. This selection requires direct UDP connectivity within the customer network. If the clients are both nomadic cloud users, then depending on the NAT/firewall, media might use direct connectivity.
95
95
96
96
If one client is internal on the customer network and one client is external (for example, a mobile cloud user), it's unlikely that direct connectivity between the local or reflexive candidates would be enabled. In this case, you can use one of the transport relay candidates from either client. For example, the internal client obtained a relay candidate from the transport relay in Azure; the external client needs to be able to send STUN/RTP/RTCP packets to the transport relay. Another option is that the internal client sends to the relay candidate obtained by the mobile cloud client. Although UDP connectivity for media is highly recommended, TCP is supported.
97
97
@@ -101,13 +101,13 @@ If one client is internal on the customer network and one client is external (fo
101
101
102
102
1. User A allocates a media relay port on the Teams transport relay by using Flow 4.
103
103
104
-
1. User A sends an "invite" with Interactive Connectivity Establishment (ICE) candidates by using Flow 4 to Azure Communication Services.
104
+
1. User A sends an *invite* with Interactive Connectivity Establishment (ICE) candidates by using Flow 4 to Azure Communication Services.
105
105
106
106
1. Azure Communication Services notifies User B by using Flow 4.
107
107
108
108
1. User B allocates a media relay port on the Teams transport relay by using Flow 4.
109
109
110
-
1. User B sends an "answer" with ICE candidates by using Flow 4, which is forwarded back to User A by using Flow 4.
110
+
1. User B sends an *answer* with ICE candidates by using Flow 4, which is forwarded back to User A by using Flow 4.
111
111
112
112
1. User A and User B invoke ICE connectivity tests and the best available media path is selected. Review the following diagrams to see various use cases.
113
113
@@ -119,7 +119,7 @@ If one client is internal on the customer network and one client is external (fo
119
119
120
120
In Step 7, peer-to-peer media Flow 5 is selected.
121
121
122
-
This media transmission is bidirectional. The direction of Flow 5 indicates that one side initiates the communication from a connectivity perspective. In this case, it doesn't matter which direction is used because both endpoints are within the customer network.
122
+
This media transmission is bidirectional. The direction of Flow 5 indicates that one side initiates the communication from a connectivity perspective. In this case, it doesn't matter which direction is used, because both endpoints are within the customer network.
123
123
124
124
### Customer network to external user (media relayed by the Teams transport relay)
125
125
@@ -151,15 +151,15 @@ Signaling between the VPN to the customer network uses Flow 2*. Signaling betwee
151
151
152
152
:::image type="content" source="./media/call-flows/vpn-to-internal-direct-media.png" alt-text="Diagram that shows a one-to-one call flow between an internal user and a VPN user with direct media":::
153
153
154
-
Signaling between the VPN to the customer network uses Flow 2*. Signaling between the customer network and Azure uses Flow 4. However, media bypasses the VPN and is routed by using Flow 2 from the customer network to the internet.
154
+
Signaling between the VPN to the customer network uses Flow 2'. Signaling between the customer network and Azure uses Flow 4. However, media bypasses the VPN and is routed by using Flow 2 from the customer network to the internet.
155
155
156
156
This media transmission is bidirectional. The direction of Flow 2 to the remote mobile user indicates that one side initiates the communication from a connectivity perspective.
157
157
158
158
### VPN user to external user (direct media)
159
159
160
160
:::image type="content" source="./media/call-flows/vpn-user-to-external-user.png" alt-text="Diagram that shows a one-to-one call flow for and external user calling a VPN user with direct media.":::
161
161
162
-
Signaling between the VPN user to the customer network uses Flow 2* and Flow 4 to Azure. However, media bypasses VPN and is routed by using Flow 6.
162
+
Signaling between the VPN user to the customer network uses Flow 2* and Flow 4 to Azure. However, media bypasses the VPN and is routed by using Flow 6.
163
163
164
164
This media transmission is bidirectional. The direction of Flow 6 to the remote mobile user indicates that one side initiates the communication from a connectivity perspective.
165
165
@@ -193,8 +193,8 @@ Media flowing through Azure Communication Services is restricted as follows:
193
193
194
194
***VPN network**: Azure Communication Services doesn't support media transmission over VPNs. If your users are using VPN clients, the client should split and route media traffic over a non-VPN connection as specified in [Enabling Lync media to bypass a VPN tunnel](https://techcommunity.microsoft.com/t5/skype-for-business-blog/enabling-lync-media-to-bypass-a-vpn-tunnel/ba-p/620210).
195
195
196
-
> [!NOTE]
197
-
> Although the title indicates Lync, it's applicable to Azure Communication Services and Teams.*
196
+
> [!NOTE]
197
+
> Although the title indicates Lync, it's applicable to Azure Communication Services and Teams.
198
198
199
199
* Packet-snipping, packet-inspection, or packet-shaping devices aren't supported and might degrade quality significantly.
0 commit comments