Skip to content

Commit 1654cff

Browse files
Merge pull request #264378 from MicrosoftDocs/ktoliver-patch-1
Update proxy-calling-support-tutorial-web.md
2 parents 14a8b78 + f4cd5e6 commit 1654cff

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

articles/communication-services/tutorials/includes/proxy-calling-support-tutorial-web.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ ms.subservice: calling
1111
ms.custom: mode-other
1212
---
1313

14-
The proxy feature is available starting in the public preview version [1.13.0-beta.4](https://www.npmjs.com/package/@azure/communication-calling/v/1.13.0-beta.4) of the Calling SDK. Make sure that you use this SDK or a newer SDK when you try to use this feature. This tutorial uses the Azure Communication Services Calling SDK version greater than `1.13.0`.
14+
The proxy feature is available starting in the public preview version [1.13.0-beta.4](https://www.npmjs.com/package/@azure/communication-calling/v/1.13.0-beta.4) of Azure Communication Services Calling SDK. Make sure that you use this SDK or a later version of the SDK when you try to use this feature. This tutorial uses a version of the Calling SDK version later than 1.13.0.
1515

1616
[!INCLUDE [Public Preview](../../includes/public-preview-include-document.md)]
17+
1718
## Proxy calling media traffic
1819

1920
The following sections describe how to proxy call your media traffic.
2021

2122
### What is a TURN server?
23+
2224
Many times, establishing a network connection between two peers isn't straightforward. A direct connection might not work because of:
2325

2426
- Firewalls with strict rules.
@@ -28,6 +30,7 @@ Many times, establishing a network connection between two peers isn't straightfo
2830
To solve these network connection issues, you can use a server that uses the Traversal Using Relay NAT (TURN) protocol for relaying network traffic. Session Traversal Utilities for NAT (STUN) and TURN servers are the relay servers here. To learn more about how Azure Communication Services mitigates network challenges by using STUN and TURN, see [Network traversal concepts](../../concepts/network-traversal.md).
2931

3032
### Provide your TURN server details to the SDK
33+
3134
To provide the details of your TURN servers, you need to pass details of what TURN server to use as part of `CallClientOptions` while initializing `CallClient`. For more information on how to set up a call, see [Azure Communication Services Web SDK](../../quickstarts/voice-video-calling/get-started-with-video-calling.md?pivots=platform-web) for the quickstart on how to set up voice and video.
3235

3336
```js
@@ -70,7 +73,7 @@ const callClient = new CallClient({
7073
```
7174

7275
> [!IMPORTANT]
73-
> If you provided your TURN server details while you initialized `CallClient`, all the media traffic <i>exclusively</i> flows through these TURN servers. Any other ICE candidates that are normally generated when you create a call won't be considered while trying to establish connectivity between peers. That means only `relay` candidates are considered. To learn more about different types of Ice candidates see [RTCIceCandidate: type property](https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate/type).
76+
> If you provided your TURN server details while you initialized `CallClient`, all the media traffic *exclusively* flows through these TURN servers. Any other ICE candidates that are normally generated when you create a call won't be considered while trying to establish connectivity between peers. That means only `relay` candidates are considered. To learn more about different types of Ice candidates see [RTCIceCandidate: type property](https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate/type).
7477
7578
If the `?transport` query parameter isn't present as part of the TURN URL or isn't one of the `udp`, `tcp`, or `tls` values, the default behavior is UDP.
7679

@@ -79,13 +82,14 @@ If any of the URLs provided are invalid or don't have one of the `turn:`, `turns
7982
For the API reference for the `CallClientOptions` object, and the `networkConfiguration` property within it, see [CallClientOptions](/javascript/api/azure-communication-services/@azure/communication-calling/callclientoptions?view=azure-communication-services-js&preserve-view=true).
8083

8184
### Set up a TURN server in Azure
85+
8286
You can create a Linux virtual machine in the Azure portal. For more information, see [Quickstart: Create a Linux virtual machine in the Azure portal](/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu). To deploy a TURN server, use [coturn](https://github.com/coturn/coturn). Coturn is a free and open-source implementation of a TURN and STUN server for VoIP and WebRTC.
8387

8488
After you set up a TURN server, you can test it by using the instructions on the [WebRTC Trickle ICE](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/) webpage.
8589

8690
## Proxy signaling traffic
8791

88-
To provide the URL of a proxy server, you need to pass it in as part of `CallClientOptions` while initializing `CallClient`. For more information on how to set up a call, see [Azure Communication Services Web SDK](../../quickstarts/voice-video-calling/get-started-with-video-calling.md?pivots=platform-web)) for the quickstart on how to set up voice and video.
92+
To provide the URL of a proxy server, you need to pass it in as part of `CallClientOptions` while initializing `CallClient`. For more information on how to set up a call, see [Azure Communication Services Web SDK](../../quickstarts/voice-video-calling/get-started-with-video-calling.md?pivots=platform-web) for the quickstart on how to set up voice and video.
8993

9094
```js
9195
import { CallClient } from '@azure/communication-calling';
@@ -107,9 +111,9 @@ const callClient = new CallClient({
107111
108112
For the API reference for the `CallClientOptions` object, and the `networkConfiguration` property within it, see [CallClientOptions](/javascript/api/azure-communication-services/@azure/communication-calling/callclientoptions?view=azure-communication-services-js&preserve-view=true).
109113

110-
### Set up a signaling proxy middleware in express js
114+
### Set up a signaling proxy middleware in Express.js
111115

112-
You can also create a proxy middleware in your express js server setup to have all the URLs redirected through it by using the [http-proxy-middleware](https://www.npmjs.com/package/http-proxy-middleware) npm package. The `createProxyMiddleware` function from that package should cover what you need for a simple redirect proxy setup. Here's an example usage of it with some option settings that the SDK needs so that all of our URLs work as expected:
116+
You can also create a proxy middleware in your Express.js server setup to have all the URLs redirected through it by using the [http-proxy-middleware](https://www.npmjs.com/package/http-proxy-middleware) npm package. The `createProxyMiddleware` function from that package should cover what you need for a simple redirect proxy setup. Here's an example usage of it with some option settings that the SDK needs so that all of our URLs work as expected:
113117

114118
```js
115119
const proxyRouter = (req) => {
@@ -147,6 +151,7 @@ app.use('/proxy', myProxyMiddleware);
147151
> If you're having SSL issues, see the [cors](https://www.npmjs.com/package/cors) package.
148152
149153
### Set up a signaling proxy server on Azure
154+
150155
You can create a Linux virtual machine in the Azure portal and deploy an NGINX server on it. For more information, see [Quickstart: Create a Linux virtual machine in the Azure portal](/azure/virtual-machines/linux/quick-create-portal?tabs=ubuntu).
151156

152157
Here's an NGINX configuration that you can use as a sample:

0 commit comments

Comments
 (0)