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
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,19 +33,19 @@ Azure Communication Services is built primarily on two types of traffic: *real-t
33
33
34
34
Real-time media is transmitted by using Real-Time Transport Protocol (RTP). This protocol supports audio, video, and screen-sharing data transmission. This data is sensitive to network latency issues. Although it's possible to transmit real-time media by using TCP or HTTP, we recommend that you use User Datagram Protocol (UDP) as the transport-layer protocol to support high-performance end-user experiences. Media payloads transmitted over RTP are secured by using secure RTP (SRTP).
35
35
36
-
Users of your Azure Communication Services solution connect to your services from their client devices. Communication between these devices and your servers is handled with *signaling*. For example, call initiation and real-time chat are supported by signaling between devices and your service. Most signaling traffic uses HTTPS REST. In some scenarios, you can use Session Initiation Protocol (SIP) as a signaling traffic protocol. While this type of traffic is less sensitive to latency, low-latency signaling give the users of your solution a pleasant end-user experience.
36
+
Users of your Azure Communication Services solution connect to your services from their client devices. Communication between these devices and your servers is handled with *signaling*. For example, call initiation and real-time chat are supported by signaling between devices and your service. Most signaling traffic uses HTTPS REST. In some scenarios, you can use Session Initiation Protocol (SIP) as a signaling traffic protocol. While this type of traffic is less sensitive to latency, low-latency signaling provides a pleasant end-user experience.
37
37
38
38
### Media encryption
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
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
-
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.
44
+
Azure Communication Services instances 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 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.
46
+
Azure Communication Services instances 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 a TLS 1.2 and AES-256 (in GCM mode) encrypted UDP/TCP channel.
48
+
Media traffic that's going 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
@@ -64,7 +64,7 @@ The preferred route is direct to the remote peer (client). If a direct route isn
64
64
65
65
* Signaling traffic always goes to *whatever server is closest to the user*.
66
66
67
-
For more information about media paths, see [call flows conceptual documentation](./call-flows.md).
67
+
For more information about media paths, see [Call flows conceptual documentation](./call-flows.md).
68
68
69
69
## Call flows in various topologies
70
70
@@ -93,7 +93,7 @@ The system uses STUN connectivity check messages to find which caller/called par
93
93
94
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
-
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.
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, if the internal client obtained a relay candidate from the transport relay in Azure, and 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
98
98
#### High-level steps
99
99
@@ -117,15 +117,15 @@ If one client is internal on the customer network and one client is external (fo
117
117
118
118
:::image type="content" source="./media/call-flows/one-to-one-internal.png" alt-text="Diagram that shows traffic flow within the customer network between two Azure Communication Services users.":::
119
119
120
-
In Step 7, peer-to-peer media Flow 5 is selected.
120
+
In step 7, peer-to-peer media Flow 5 is selected.
121
121
122
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
126
126
:::image type="content" source="./media/call-flows/one-to-one-via-relay.png" alt-text="Diagram that shows a one-to-one call flow with an external user via an Azure transport relay.":::
127
127
128
-
In Step 7, Flow 4 (from the customer network to Azure Communication Services) and Flow 3 (from a remote mobile Azure Communication Services user to Azure Communication Services) are selected.
128
+
In step 7, Flow 4 (from the customer network to Azure Communication Services) and Flow 3 (from a remote mobile Azure Communication Services user to Azure Communication Services) are selected.
129
129
130
130
The Teams transport relay handles these flows within Azure.
131
131
@@ -173,15 +173,15 @@ In this case, signaling and media from the customer network to Azure use Flow 4.
173
173
174
174
### Use case: Azure Communication Services group calls
175
175
176
-
The service that provides audio, video, and screen-sharing is part of Azure Communication Services. It has a public IP address that must be reachable from the customer network and must be reachable from a nomadic cloud client. Each client and endpoint needs to be able to connect to the service.
176
+
The service that provides audio, video, and screen-sharing is part of Azure Communication Services. It has a public IP address that must be reachable from both the customer network and a nomadic cloud client. Each client and endpoint needs to be able to connect to the service.
177
177
178
178
Internal clients obtain local, reflexive, and relay candidates in the same manner as described for one-to-one calls. The clients send these candidates to the service in an invite. The service doesn't use a relay because it has a publicly reachable IP address, so it responds with its local IP address candidate. The client and the service check connectivity in the same manner described for one-to-one calls.
179
179
180
180
:::image type="content" source="./media/call-flows/acs-group-calls.png" alt-text="Diagram that shows an Azure Communication Services group call between external users and mobile users.":::
181
181
182
182
### Interoperability restrictions
183
183
184
-
Media flowing through Azure Communication Services is restricted as follows:
184
+
Media that flows through Azure Communication Services is restricted as follows:
185
185
186
186
***Third-party Session Border Controller (SBC)**: An SBC on the boundary with PSTN should terminate the RTP/RTCP stream, secured by using SRTP, and not relay it to the next hop. If you relay the flow to the next hop, it might not be understood.
187
187
@@ -206,4 +206,4 @@ Media flowing through Azure Communication Services is restricted as follows:
206
206
## Related content
207
207
208
208
* Learn more about [call types](../concepts/voice-video-calling/about-call-types.md).
209
-
* Learn about [Client-server architecture](./client-and-server-architecture.md).
209
+
* Learn about [client-server architecture](./client-and-server-architecture.md).
0 commit comments