Skip to content

Commit 2fa6ce3

Browse files
committed
edit pass: communication-services-telephony
1 parent 9d4ef4f commit 2fa6ce3

File tree

3 files changed

+88
-94
lines changed

3 files changed

+88
-94
lines changed

articles/communication-services/how-tos/telephony/domain-validation.md

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Azure Communication Services direct routing domain validation
3-
description: A how-to page about domain validation for direct routing.
3+
description: Learn how to validate a domain for direct routing.
44
services: azure-communication-services
55
author: boris-bazilevskiy
66

@@ -12,54 +12,50 @@ ms.custom: include file
1212
ms.author: nikuklic
1313
---
1414

15-
# Domain validation
15+
# Validate a domain for direct routing
1616

17-
This page describes the process of domain name ownership validation. Fully Qualified Domain Name (FQDN) consists of two parts: host name and domain name. For example, if your session border controller (SBC) name is `sbc1.contoso.com`, then `sbc1` would be a host name, while `contoso.com` would be a domain name. If there's an SBC with FQDN of `acs.sbc1.testing.contoso.com`, `acs` would be a host name, and `sbc1.testing.contoso.com` would be a domain name. To use direct routing, you need to validate that you own a domain part of your FQDN.
17+
This article describes the process of validating domain name ownership. A fully qualified domain name (FQDN) consists of two parts: host name and domain name. For example, if your session border controller (SBC) name is `sbc1.contoso.com`, then `sbc1` would be a host name and `contoso.com` would be a domain name. If there's an SBC with FQDN of `acs.sbc1.testing.contoso.com`, `acs` is a host name and `sbc1.testing.contoso.com` is a domain name. To use direct routing, you need to validate that you own the domain part of your FQDN.
1818

19-
Azure Communication Services direct routing configuration consists of the following steps:
19+
To configure direct routing configuration in Azure Communication Services, you first verify domain ownership for your SBC FQDN. You then configure the SBC FQDN and port number and create voice routing rules.
2020

21-
- Verify domain ownership for your SBC FQDN
22-
- Configure SBC FQDN and port number
23-
- Create voice routing rules
21+
## Validate domain ownership by using the Azure portal
2422

25-
## Domain ownership validation
23+
When you're verifying the domain name portion of the FQDN, keep in mind that the `*.onmicrosoft.com` and `*.azure.com` domain names aren't supported for the SBC FQDN domain name. For example, if you have two domain names, `contoso.com` and `contoso.onmicrosoft.com`, use `sbc.contoso.com` as the SBC name.
2624

27-
Make sure to add and verify domain name portion of the FQDN and keep in mind that the `*.onmicrosoft.com` and `*.azure.com` domain names aren't supported for the SBC FQDN domain name. For example, if you have two domain names, `contoso.com` and `contoso.onmicrosoft.com`, use `sbc.contoso.com` as the SBC name. If using a subdomain, make sure this subdomain is also added and verified. For example, if you want to use `sbc.acs.contoso.com`, then `acs.contoso.com` needs to be registered.
25+
If you're using a subdomain, make sure that this subdomain is also added and verified. For example, if you want to use `sbc.acs.contoso.com`, you need to register `acs.contoso.com`.
2826

29-
### Domain verification using Azure portal
27+
### Add a new domain name
3028

31-
#### Add new domain name
32-
33-
1. Open Azure portal and navigate to your [Communication Service resource](../../quickstarts/create-communication-resource.md).
34-
1. In the left navigation pane, select Direct routing under Voice Calling - PSTN.
35-
1. Select Connect domain from the Domains tab.
36-
1. Enter the domain part of SBC’s fully qualified domain name.
29+
1. Open the Azure portal and go to your [Communication Services resource](../../quickstarts/create-communication-resource.md).
30+
1. On the left pane, under **Voice Calling - PSTN**, select **Direct routing**.
31+
1. On the **Domains** tab, select **Connect domain**.
32+
1. Enter the domain part of the SBC FQDN.
3733
1. Reenter the domain name.
38-
1. Select Confirm and then select Add.
34+
1. Select **Confirm**, and then select **Add**.
3935

4036
[![Screenshot of adding a custom domain.](./media/direct-routing-add-domain.png)](./media/direct-routing-add-domain.png#lightbox)
4137

42-
#### Verify domain ownership
38+
### Verify domain ownership
4339

4440
1. Select Verify next to new domain that is now visible in Domain’s list.
4541
1. Azure portal generates a value for a TXT record, you need to add that record to
4642

47-
[![Screenshot of verifying a custom domain.](./media/direct-routing-verify-domain-2.png)](./media/direct-routing-verify-domain-2.png#lightbox)
43+
[![Screenshot of verifying a custom domain.](./media/direct-routing-verify-domain-2.png)](./media/direct-routing-verify-domain-2.png#lightbox)
4844

49-
>[!Note]
50-
>It might take up to 30 minutes for new DNS record to propagate on the Internet
45+
>[!NOTE]
46+
>It might take up to 30 minutes for new DNS record to propagate on the Internet
5147
52-
3. Select Next. If everything is set up correctly, you should see Domain status changed to *Verified* next to the added domain.
48+
1. Select Next. If everything is set up correctly, you should see Domain status changed to *Verified* next to the added domain.
5349

54-
[![Screenshot of a verified domain.](./media/direct-routing-domain-verified.png)](./media/direct-routing-domain-verified.png#lightbox)
50+
[![Screenshot of a verified domain.](./media/direct-routing-domain-verified.png)](./media/direct-routing-domain-verified.png#lightbox)
5551

56-
#### Remove domain from Azure Communication Services
52+
### Remove a domain from Azure Communication Services
5753

5854
If you want to remove a domain from your Azure Communication Services direct routing configuration, select the checkbox fir a corresponding domain name, and select *Remove*.
5955

6056
[![Screenshot of removing a custom domain.](./media/direct-routing-remove-domain.png)](./media/direct-routing-remove-domain.png#lightbox)
6157

62-
## Next steps:
58+
## Next steps
6359

6460
### Conceptual documentation
6561

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: include file
3-
description: A quickstart on how to use Number Management JavaScript SDK to configure direct routing.
3+
description: Learn how to use the Number Management JavaScript SDK to configure direct routing.
44
services: azure-communication-services
55
author: boris-bazilevskiy
66

@@ -15,29 +15,30 @@ ms.author: nikuklic
1515
## Prerequisites
1616

1717
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
18-
- An active Communication Services resource and connection string. [Create a Communication Services resource](../../create-communication-resource.md)).
19-
- Active LTS and Maintenance LTS versions of [Node.js](https://nodejs.org/) for your operating system.
20-
- Fully Qualified Domain Name (FQDN) and port number of a Session Border Controller (SBC) in operational telephony system.
21-
- [Verified domain name](../../../how-tos/telephony/domain-validation.md) of the SBC FQDN.
18+
- An active Azure Communication Services resource and connection string. [Create a Communication Services resource](../../create-communication-resource.md).
19+
- Active LTS and Maintenance LTS versions of [Node.js](https://nodejs.org/) for your operating system.
20+
- The fully qualified domain name (FQDN) and port number of a session border controller (SBC) in an operational telephony system.
21+
- The [verified domain name](../../../how-tos/telephony/domain-validation.md) of the SBC FQDN.
2222

2323
## Final code
2424

25-
Find the finalized code for this quickstart on [GitHub](https://github.com/Azure-Samples/communication-services-javascript-quickstarts/tree/main/direct-routing-quickstart)
25+
Find the finalized code for the following procedures on [GitHub](https://github.com/Azure-Samples/communication-services-javascript-quickstarts/tree/main/direct-routing-quickstart).
2626

2727
## Create a new Node.js application
2828

29-
First, open your terminal or command window, create a new directory for your app, and navigate to it.
29+
First, open your terminal or command window, create a new directory for your app, and go to it:
3030

3131
``` console
3232
mkdir direct-routing-quickstart && cd direct-routing-quickstart
3333
```
3434

35-
Run npm `init -y` to create a package.json file with default settings.
35+
Run npm `init -y` to create a *package.json* file with default settings.
3636

3737
``` console
3838
npm init -y
3939
```
40-
Create a file called direct-routing-quickstart.js in the root of the directory you created. Add the following snippet to it:
40+
41+
Create a file called *direct-routing-quickstart.js* in the root of the directory that you created. Add the following snippet to it:
4142

4243
``` javascript
4344
async function main() {
@@ -49,19 +50,19 @@ main();
4950

5051
## Install the package
5152

52-
Use `npm install` command to install the Azure Communication Services Phone Numbers client library for JavaScript.
53+
Use the `npm install` command to install the Azure Communication Services Phone Numbers client library for JavaScript:
5354

5455
``` console
5556
npm install @azure/communication-phone-numbers --save
5657
```
5758

58-
The `--save` option adds the library as a dependency in your package.json file.
59+
The `--save` option adds the library as a dependency in your *package.json* file.
5960

6061
## Authenticate the client
6162

62-
Import the `SipRoutingClient` from the client library and instantiate it with your connection string. The code retrieves the connection string for the resource from an environment variable named `COMMUNICATION_SERVICES_CONNECTION_STRING`. Learn how to [manage your resource's connection string](../../create-communication-resource.md#store-your-connection-string).
63+
Import `SipRoutingClient` from the client library and instantiate it with your connection string. The code retrieves the connection string for the resource from an environment variable named `COMMUNICATION_SERVICES_CONNECTION_STRING`. [Learn how to manage your resource's connection string](../../create-communication-resource.md#store-your-connection-string).
6364

64-
Add the following code to the `direct-routing-quickstart.js`:
65+
Add the following code to *direct-routing-quickstart.js*:
6566

6667
```javascript
6768
const { SipRoutingClient } = require('@azure/communication-phone-numbers');
@@ -74,15 +75,13 @@ const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING']
7475
const sipRoutingClient = new SipRoutingClient(connectionString);
7576
```
7677

77-
## Setup direct routing configuration
78+
## Set up a direct routing configuration
7879

79-
1. Domain ownership verification - see [prerequisites](#prerequisites)
80-
1. Creating trunks (adding SBCs)
81-
1. Creating voice routes
80+
In the [prerequisites](#prerequisites), you verified domain ownership. The next steps are to create trunks (add SBCs) and create voice routes.
8281

83-
### Create or update Trunks
82+
### Create or update trunks
8483

85-
Azure Communication Services direct routing allows communication with registered SBCs only. To register an SBC, you need its FQDN and port.
84+
Azure Communication Services direct routing allows communication with registered SBCs only. To register an SBC, you need its FQDN and port:
8685

8786
```javascript
8887
await client.setTrunks([
@@ -96,12 +95,12 @@ Azure Communication Services direct routing allows communication with registered
9695
]);
9796
```
9897

99-
### Create or update Routes
98+
### Create or update routes
10099

101100
> [!NOTE]
102-
> Order of routes does matter, as it determines priority of routes. The first route that matches the regex will be picked for a call.
101+
> The order of routes determines the priority of routes. The first route that matches the regex will be picked for a call.
103102
104-
For outbound calling routing rules should be provided. Each rule consists of two parts: regex pattern that should match dialed phone number and FQDN of a registered trunk where call is routed. In this example, we create one route for numbers that start with `+1` and a second route for numbers that start with just `+`.
103+
Provide routing rules for outbound calls. Each rule consists of two parts: a regex pattern that should match a dialed phone number and the FQDN of a registered trunk where call is routed. In this example, you create one route for numbers that start with `+1` and a second route for numbers that start with just `+`:
105104

106105
```javascript
107106
await client.setRoutes([
@@ -119,22 +118,23 @@ For outbound calling routing rules should be provided. Each rule consists of two
119118
]);
120119
```
121120

122-
### Updating existing configuration
121+
## Update a direct routing configuration
123122

124-
Properties of specific Trunk can be updated by overwriting the record with the same FQDN. For example, you can set new SBC Port value.
123+
You can update the properties of a specific trunk by overwriting the record with the same FQDN. For example, you can set new SBC port value:
125124

126125
``` javascript
127126
await client.setTrunk({
128127
fqdn: 'sbc.us.contoso.com',
129128
sipSignalingPort: 5063
130129
});
131130
```
131+
132132
> [!IMPORTANT]
133-
>The same method is used to create and update routing rules. When updating routes, all routes should be sent in single update and routing configuration will be fully overwritten by the new one.
133+
>You use the same method to create and update routing rules. When you update routes, send all of them in a single update. The new routing configuration fully overwrites the former one.
134134
135-
### Removing a direct routing configuration
135+
## Remove a direct routing configuration
136136

137-
You can't edit or remove single voice route. Entire voice routing configuration should be overwritten. Here's the example of an empty list that removes all the routes and trunks:
137+
You can't edit or remove a single voice route. You should overwrite the entire voice routing configuration. Here's an example of an empty list that removes all the routes and trunks:
138138

139139
``` javascript
140140
//delete all configured voice routes
@@ -144,23 +144,21 @@ await client.setRoutes([]);
144144
//delete all trunks
145145
console.log("Deleting all trunks...");
146146
await client.setTrunks([]);
147-
```
147+
```
148148

149-
You can delete a single trunk (SBC), if it isn't used in any voice route. If SBC is listed in any voice route, that route should be deleted first.
149+
You can use the following example to delete a single trunk (SBC), if no voice routes are using it. If the SBC is listed in any voice route, delete that route first.
150150

151151
``` javascript
152152
await client.deleteTrunk('sbc.us.contoso.com');
153153
```
154154

155-
<!-- All Direct Routing configuration can be deleted by overriding routes and trunks configudation with new configuration or empty lists. Same methods are used as in "Create or Update Trunks" and "Create or Update Routes" sections. -->
156-
157-
### Run the code
155+
## Run the code
158156

159-
Use the node command to run the code you added to the `direct-routing-quickstart.js` file.
157+
Use the node command to run the code that you added to the `direct-routing-quickstart.js` file:
160158

161159
``` console
162160
node direct-routing-quickstart.js
163161
```
164162

165163
> [!NOTE]
166-
> More usage examples for SipRoutingClient can be found [here](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/communication/azure-communication-phonenumbers/src/samples/java/com/azure/communication/phonenumbers/siprouting/AsyncClientJavaDocCodeSnippets.java).
164+
> You can find more usage examples for `SipRoutingClient` on [GitHub](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/communication/azure-communication-phonenumbers/src/samples/java/com/azure/communication/phonenumbers/siprouting/AsyncClientJavaDocCodeSnippets.java).

0 commit comments

Comments
 (0)