Szybki start: programowe konfigurowanie routingu głosowego
Skonfiguruj reguły routingu głosowego dla bezpośredniego routingu usługi Azure Communication Services.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
- W pełni kwalifikowana nazwa domeny (FQDN) i numer portu kontrolera granic sesji (SBC) w operacyjnym systemie telefonii.
- Zweryfikowana nazwa domeny nazwy FQDN SBC.
Uwaga
Więcej przykładów użycia można znaleźć w SipRoutingClient
witrynie GitHub.
Dodawanie kontrolera obramowania sesji
W okienku po lewej stronie w obszarze Połączenia głosowe — PSTN wybierz pozycję Routing bezpośredni. Na karcie Kontroler obramowania sesji wybierz pozycję Konfiguruj.
Wprowadź nazwę FQDN i port sygnalizujący dla SBC. Wymagania dotyczące nazwy FQDN SBC obejmują:
- Część domeny nazwy FQDN musi zostać zweryfikowana przed dodaniem jej do konfiguracji routingu bezpośredniego, jak wspomniano wcześniej w wymaganiach wstępnych.
- Certyfikat SBC musi być zgodny z nazwą. Obsługiwane są certyfikaty z symbolami wieloznacznymi.
- Nie można używać
*.onmicrosoft.com
domen i*.azure.com
dla nazwy FQDN.
Aby uzyskać pełną listę wymagań, zobacz Wymagania dotyczące infrastruktury routingu bezpośredniego platformy Azure.
Wybierz pozycję Dalej. Jeśli wszystko jest poprawnie skonfigurowane, stan SBC powinien być widoczny jako Aktywny w witrynie Azure Portal.
Ważne
Przed wprowadzeniem lub odbieraniem połączeń upewnij się, że stan SBC to Online
Tworzenie reguł routingu głosowego
Nadaj trasie głosowej nazwę, określ wzorzec liczbowy przy użyciu wyrażeń regularnych i wybierz SBC dla tego wzorca. Oto kilka przykładów podstawowych wyrażeń regularnych:
^\+\d+$
: pasuje do numeru telefonu z co najmniej jedną cyfrą rozpoczynającą się od znaku plus.^\+1(\d{10})$
: Dopasuje numer telefonu z 10 cyframi po+1
.^\+1(425|206)(\d{7})$
: Pasuje do numeru telefonu rozpoczynającego się od+1425
lub+1206
z , po którym następuje siedem cyfr.^\+0?1234$
: pasuje do numerów+01234
telefonów i+1234
.
Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz Omówienie wyrażeń regularnych platformy .NET.
Dla pojedynczego wzorca można wybrać wiele kontrolerów SBCs. W takim przypadku algorytm routingu wybiera je w kolejności losowej. Można również określić dokładny wzorzec liczby więcej niż raz. Wyższy wiersz ma wyższy priorytet. Jeśli wszystkie SBCs skojarzone z tym wierszem nie są dostępne, zostanie wybrany następny wiersz. W ten sposób tworzysz złożone scenariusze routingu.
Usuwanie konfiguracji routingu bezpośredniego
Aby usunąć trasę głosową:
- W okienku po lewej stronie w obszarze Połączenia głosowe — PSTN przejdź do pozycji Routing bezpośredni.
- Na karcie Trasy głosowe zaznacz pola wyboru trasy (lub trasy), które chcesz usunąć.
- Wybierz Usuń.
Aby usunąć SBC:
- W okienku po lewej stronie w obszarze Połączenia głosowe — PSTN przejdź do pozycji Routing bezpośredni.
- Na karcie Kontrolery obramowania sesji wybierz pozycję Konfiguruj.
- Wyczyść pola FQDN i port dla SBC, które chcesz usunąć, a następnie wybierz przycisk Dalej.
- Na karcie Trasy głosowe przejrzyj konfigurację routingu głosowego. W razie potrzeby wprowadź zmiany, a następnie wybierz pozycję Zapisz.
Po usunięciu SBC skojarzonego z trasą głosową możesz wybrać inny protokół SBC dla trasy na karcie Trasy głosowe. Trasa głosowa bez SBC zostanie usunięta.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- Najnowsza wersja biblioteki klienta .NET Core dla systemu operacyjnego.
- W pełni kwalifikowana nazwa domeny (FQDN) i numer portu kontrolera granic sesji (SBC) w operacyjnym systemie telefonii.
- Zweryfikowana nazwa domeny nazwy FQDN SBC.
Kod końcowy
Znajdź sfinalizowany kod dla tego przewodnika Szybki start w witrynie GitHub.
Więcej przykładów użycia można również znaleźć w SipRoutingClient
witrynie GitHub.
Tworzenie aplikacji w języku C#
W oknie konsoli (takim jak wiersz polecenia, program PowerShell lub powłoka Bash) użyj dotnet new
polecenia , aby utworzyć nową aplikację konsolową:
dotnet new console -o DirectRoutingQuickstart
To polecenie tworzy prosty projekt języka C# "Hello World" z jednym plikiem źródłowym: Program.cs.
Zmień katalog na nowo utworzony folder aplikacji i użyj dotnet build
polecenia , aby skompilować aplikację:
cd DirectRoutingQuickstart
dotnet build
Instalowanie pakietu
Mimo że nadal znajdujesz się w katalogu aplikacji, zainstaluj bibliotekę klienta azure Communication Telefon Numbers dla platformy .NET przy użyciu dotnet add package
polecenia :
dotnet add package Azure.Communication.PhoneNumbers --version 1.1.0
Dodaj dyrektywę using
na początku pliku Program.cs , aby uwzględnić przestrzenie nazw:
using Azure.Communication.PhoneNumbers.SipRouting;
Uwierzytelnianie użytkownika
Uwierzytelnianie klientów numeru telefonu przy użyciu parametry połączenia z zasobu usług Azure Communication Services:
// Get a connection string to the Azure Communication Services resource.
var connectionString = "<connection_string>";
var client = new SipRoutingClient(connectionString);
Konfigurowanie konfiguracji routingu bezpośredniego
W wymaganiach wstępnych zweryfikowano własność domeny. Następne kroki to tworzenie magistrali (dodawanie SBCs) i tworzenie tras głosowych.
Tworzenie lub aktualizowanie magistrali
Routing bezpośredni usług Azure Communication Services umożliwia komunikację tylko z zarejestrowanymi kontrolerami SBCs. Aby zarejestrować protokół SBC, potrzebujesz jego nazwy FQDN i portu:
// Register your SBCs by providing their fully qualified domain names and port numbers.
var usSbcFqdn = "sbc.us.contoso.com";
var euSbcFqdn = "sbc.eu.contoso.com";
var sbcPort = 5061;
var usTrunk = new SipTrunk(usSbcFqdn, sbcPort);
var euTrunk = new SipTrunk(euSbcFqdn, sbcPort);
await client.SetTrunksAsync(new List<SipTrunk> { usTrunk, euTrunk });
Tworzenie lub aktualizowanie tras
Podaj reguły routingu dla wywołań wychodzących. Każda reguła składa się z dwóch części: wzorca wyrażeń regularnych, który powinien być zgodny z numerem telefonu z numerem telefonu i nazwą FQDN zarejestrowanego magistrali, w której jest kierowane połączenie.
Kolejność tras określa priorytet tras. Pierwsza trasa zgodna z wyrażeniem regularnym zostanie wybrana dla wywołania.
W tym przykładzie utworzysz jedną trasę dla liczb rozpoczynających się od +1
i drugą trasę dla liczb rozpoczynających się od tylko +
:
var usRoute = new SipTrunkRoute("UsRoute", "^\\+1(\\d{10})$", trunks: new List<string> { usSbcFqdn });
var defaultRoute = new SipTrunkRoute("DefaultRoute", "^\\+\\d+$", trunks: new List<string> { usSbcFqdn, euSbcFqdn });
await client.SetRoutesAsync(new List<SipTrunkRoute> { usRoute, defaultRoute });
Aktualizowanie konfiguracji routingu bezpośredniego
Właściwości określonego magistrali można zaktualizować, zastępując rekord tą samą nazwą FQDN. Można na przykład ustawić nową wartość portu SBC:
var usTrunk = new SipTrunk("sbc.us.contoso.com", 5063);
await client.SetTrunkAsync(usTrunk);
Ta sama metoda służy do tworzenia i aktualizowania reguł routingu. Podczas aktualizowania tras wyślij wszystkie z nich w ramach jednej aktualizacji. Nowa konfiguracja routingu w pełni zastępuje poprzednią.
Usuwanie konfiguracji routingu bezpośredniego
Nie można edytować ani usuwać jednej trasy głosowej. Należy zastąpić całą konfigurację routingu głosowego. Oto przykład pustej listy, która usuwa wszystkie trasy i magistrale:
//delete all configured voice routes
await client.SetRoutesAsync(new List<SipTrunkRoute>());
//delete all trunks
await client.SetTrunksAsync(new List<SipTrunk>());
Poniższy przykład umożliwia usunięcie pojedynczego magistrali (SBC), jeśli nie są używane żadne trasy głosowe. Jeśli protokół SBC znajduje się na liście w dowolnej trasie głosowej, najpierw usuń tę trasę.
await client.DeleteTrunkAsync("sbc.us.contoso.com");
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Zestaw Java Development Kit (JDK) w wersji 8 lub nowszej.
- Apache Maven.
- Wdrożony zasób i parametry połączenia usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
- W pełni kwalifikowana nazwa domeny (FQDN) i numer portu kontrolera granic sesji (SBC) w operacyjnym systemie telefonii.
- Zweryfikowana nazwa domeny nazwy FQDN SBC.
Kod końcowy
Znajdź sfinalizowany kod dla tego przewodnika Szybki start w witrynie GitHub.
Więcej przykładów użycia można również znaleźć w SipRoutingClient
witrynie GitHub.
Tworzenie aplikacji Java
Otwórz terminal lub okno polecenia. Przejdź do katalogu, w którym chcesz utworzyć aplikację Java. Następnie uruchom polecenie , aby wygenerować projekt Java na podstawie szablonu maven-archetype-quickstart :
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Zadanie generate
utworzyło katalog o takiej samej nazwie jak artifactId
wartość. W tym katalogu katalog src/main/java zawiera kod źródłowy projektu, katalog src/test/java zawiera źródło testowe, a plik pom.xml jest projektem Project Object Model (POM).
Instalowanie pakietu
Otwórz plik pom.xml w edytorze tekstów. Dodaj następujące elementy zależności do grupy zależności:
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-phonenumbers</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
Konfigurowanie struktury aplikacji
Z katalogu projektu:
- Przejdź do katalogu /src/main/java/com/communication/quickstart .
- Otwórz plik App.java w edytorze.
- Zastąp instrukcję
System.out.println("Hello world!");
. - Dodaj
import
dyrektywy.
Użyj następującego kodu, aby rozpocząć:
import com.azure.communication.phonenumbers.siprouting.SipRoutingAsyncClient;
import com.azure.communication.phonenumbers.siprouting.SipRoutingClientBuilder;
import com.azure.communication.phonenumbers.siprouting.models.SipTrunk;
import com.azure.communication.phonenumbers.siprouting.models.SipTrunkRoute;
import static java.util.Arrays.asList;
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println("Azure Communication Services - Direct Routing Quickstart");
// Quickstart code goes here
}
}
Uwierzytelnianie użytkownika
Za pomocą SipRoutingClientBuilder
programu można użyć uwierzytelniania firmy Microsoft Entra:
// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
SipRoutingAsyncClient sipRoutingAsyncClient = new SipRoutingClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Alternatywnie użyj punktu końcowego i klucza dostępu z zasobu komunikacji, aby przeprowadzić uwierzytelnianie:
// You can find your connection string from your resource in the Azure portal
String connectionString = "endpoint=https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<ACCESS_KEY>";
SipRoutingAsyncClient sipRoutingAsyncClient = new SipRoutingClientBuilder()
.connectionString(connectionString)
.buildClient();
Konfigurowanie konfiguracji routingu bezpośredniego
W wymaganiach wstępnych zweryfikowano własność domeny. Następne kroki to tworzenie magistrali (dodawanie SBCs) i tworzenie tras głosowych.
Tworzenie lub aktualizowanie magistrali
Routing bezpośredni usług Azure Communication Services umożliwia komunikację tylko z zarejestrowanymi kontrolerami SBCs. Aby zarejestrować protokół SBC, potrzebujesz jego nazwy FQDN i portu:
sipRoutingAsyncClient.setTrunksWithResponse(asList(
new SipTrunk("sbc.us.contoso.com", 5061),
new SipTrunk("sbc.eu.contoso.com", 5061)
)).block();
Tworzenie lub aktualizowanie tras
Podaj reguły routingu dla wywołań wychodzących. Każda reguła składa się z dwóch części: wzorca wyrażeń regularnych, który powinien być zgodny z numerem telefonu z numerem telefonu i nazwą FQDN zarejestrowanego magistrali, w której jest kierowane połączenie.
Kolejność tras określa priorytet tras. Pierwsza trasa zgodna z wyrażeniem regularnym zostanie wybrana dla wywołania.
W tym przykładzie utworzysz jedną trasę dla liczb rozpoczynających się od +1
i drugą trasę dla liczb rozpoczynających się od tylko +
:
sipRoutingAsyncClient.setRoutes(asList(
new SipTrunkRoute("UsRoute", "^\\+1(\\d{10})$").setTrunks(asList("sbc.us.contoso.com")),
new SipTrunkRoute("DefaultRoute", "^\\+\\d+$").setTrunks(asList("sbc.us.contoso.com", "sbc.eu.contoso.com"))
)).block();
Aktualizowanie konfiguracji routingu bezpośredniego
Właściwości określonego magistrali można zaktualizować, zastępując rekord tą samą nazwą FQDN. Można na przykład ustawić nową wartość portu SBC:
sipRoutingClient.setTrunk(new SipTrunk("sbc.us.contoso.com", 5063));
Ta sama metoda służy do tworzenia i aktualizowania reguł routingu. Podczas aktualizowania tras wyślij wszystkie z nich w ramach jednej aktualizacji. Nowa konfiguracja routingu w pełni zastępuje poprzednią.
Usuwanie konfiguracji routingu bezpośredniego
Nie można edytować ani usuwać jednej trasy głosowej. Należy zastąpić całą konfigurację routingu głosowego. Oto przykład pustej listy, która usuwa wszystkie trasy i magistrale.
Dodaj dwa importy:
import java.util.Collections;
import java.util.List;
Użyj następującego kodu, aby usunąć konfigurację routingu bezpośredniego:
//delete all configured voice routes
System.out.println("Delete all routes");
List<SipTrunkRoute> routes = Collections.<SipTrunkRoute> emptyList();
sipRoutingAsyncClient.setRoutes(routes).block();
//delete all trunks
System.out.println("Delete all trunks");
List<SipTrunk> trunks = Collections.<SipTrunk> emptyList();
sipRoutingAsyncClient.setTrunksWithResponse(trunks).block();
Poniższy przykład umożliwia usunięcie pojedynczego magistrali (SBC), jeśli nie są używane żadne trasy głosowe. Jeśli protokół SBC znajduje się na liście w dowolnej trasie głosowej, najpierw usuń tę trasę.
sipRoutingClient.deleteTrunk("sbc.us.contoso.com");
Uruchamianie kodu
Przejdź do katalogu zawierającego plik pom.xml i skompiluj projekt przy użyciu następującego mvn
polecenia:
mvn clean compile
Następnie skompiluj pakiet:
mvn package
Uruchom następujące mvn
polecenie, aby uruchomić aplikację:
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Aktywny zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- Wersje LtS Active LTS i Maintenance LTS środowiska Node.js dla systemu operacyjnego.
- W pełni kwalifikowana nazwa domeny (FQDN) i numer portu kontrolera granic sesji (SBC) w operacyjnym systemie telefonii.
- Zweryfikowana nazwa domeny nazwy FQDN SBC.
Kod końcowy
Znajdź sfinalizowany kod dla tego przewodnika Szybki start w witrynie GitHub.
Więcej przykładów użycia można również znaleźć w SipRoutingClient
witrynie GitHub.
Tworzenie aplikacji w języku Node.js
Otwórz terminal lub okno polecenia, utwórz nowy katalog dla aplikacji i przejdź do niego:
mkdir direct-routing-quickstart && cd direct-routing-quickstart
Uruchom narzędzie npm init -y
, aby utworzyć plik package.json z ustawieniami domyślnymi:
npm init -y
Utwórz plik o nazwie direct-routing-quickstart.js w katalogu głównym utworzonego katalogu. Dodaj do niego następujący fragment kodu:
async function main() {
// quickstart code will go here
}
main();
Instalowanie pakietu
npm install
Użyj polecenia , aby zainstalować bibliotekę klienta usługi Azure Communication Services Telefon Numbers dla języka JavaScript:
npm install @azure/communication-phone-numbers --save
Opcja --save
dodaje bibliotekę jako zależność w pliku package.json .
Uwierzytelnianie użytkownika
Zaimportuj SipRoutingClient
z biblioteki klienta i utwórz jej wystąpienie przy użyciu parametry połączenia. Kod pobiera parametry połączenia zasobu ze zmiennej środowiskowej o nazwie COMMUNICATION_SERVICES_CONNECTION_STRING
. Dowiedz się, jak zarządzać parametry połączenia zasobu.
Dodaj następujący kod do pliku direct-routing-quickstart.js:
const { SipRoutingClient } = require('@azure/communication-phone-numbers');
// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
// Instantiate the phone numbers client
const sipRoutingClient = new SipRoutingClient(connectionString);
Konfigurowanie konfiguracji routingu bezpośredniego
W wymaganiach wstępnych zweryfikowano własność domeny. Następne kroki to tworzenie magistrali (dodawanie SBCs) i tworzenie tras głosowych.
Tworzenie lub aktualizowanie magistrali
Routing bezpośredni usług Azure Communication Services umożliwia komunikację tylko z zarejestrowanymi kontrolerami SBCs. Aby zarejestrować protokół SBC, potrzebujesz jego nazwy FQDN i portu:
await client.setTrunks([
{
fqdn: 'sbc.us.contoso.com',
sipSignalingPort: 5061
},{
fqdn: 'sbc.eu.contoso.com',
sipSignalingPort: 5061
}
]);
Tworzenie lub aktualizowanie tras
Podaj reguły routingu dla wywołań wychodzących. Każda reguła składa się z dwóch części: wzorca wyrażeń regularnych, który powinien być zgodny z numerem telefonu z numerem telefonu i nazwą FQDN zarejestrowanego magistrali, w której jest kierowane połączenie.
Kolejność tras określa priorytet tras. Pierwsza trasa zgodna z wyrażeniem regularnym zostanie wybrana dla wywołania.
W tym przykładzie utworzysz jedną trasę dla liczb rozpoczynających się od +1
i drugą trasę dla liczb rozpoczynających się od tylko +
:
await client.setRoutes([
{
name: "UsRoute",
description: "route's description",
numberPattern: "^\+1(\d{10})$",
trunks: [ 'sbc.us.contoso.com' ]
},{
name: "DefaultRoute",
description: "route's description",
numberPattern: "^\+\d+$",
trunks: [ 'sbc.us.contoso.com', 'sbc.eu.contoso.com']
}
]);
Aktualizowanie konfiguracji routingu bezpośredniego
Właściwości określonego magistrali można zaktualizować, zastępując rekord tą samą nazwą FQDN. Można na przykład ustawić nową wartość portu SBC:
await client.setTrunk({
fqdn: 'sbc.us.contoso.com',
sipSignalingPort: 5063
});
Ta sama metoda służy do tworzenia i aktualizowania reguł routingu. Podczas aktualizowania tras wyślij wszystkie z nich w ramach jednej aktualizacji. Nowa konfiguracja routingu w pełni zastępuje poprzednią.
Usuwanie konfiguracji routingu bezpośredniego
Nie można edytować ani usuwać jednej trasy głosowej. Należy zastąpić całą konfigurację routingu głosowego. Oto przykład pustej listy, która usuwa wszystkie trasy i magistrale:
//delete all configured voice routes
console.log("Deleting all routes...");
await client.setRoutes([]);
//delete all trunks
console.log("Deleting all trunks...");
await client.setTrunks([]);
Poniższy przykład umożliwia usunięcie pojedynczego magistrali (SBC), jeśli nie są używane żadne trasy głosowe. Jeśli protokół SBC znajduje się na liście w dowolnej trasie głosowej, najpierw usuń tę trasę.
await client.deleteTrunk('sbc.us.contoso.com');
Uruchamianie kodu
Użyj polecenia , node
aby uruchomić kod dodany do direct-routing-quickstart.js
pliku:
node direct-routing-quickstart.js
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Python 3.7+.
- Wdrożony zasób usług komunikacyjnych i parametry połączenia. Utwórz zasób usług komunikacyjnych.
- W pełni kwalifikowana nazwa domeny (FQDN) i numer portu kontrolera granic sesji (SBC) w operacyjnym systemie telefonii.
- Zweryfikowana nazwa domeny nazwy FQDN SBC.
Kod końcowy
Znajdź sfinalizowany kod dla tego przewodnika Szybki start w witrynie GitHub.
Więcej przykładów użycia można również znaleźć w SipRoutingClient
witrynie GitHub.
Tworzenie aplikacji w języku Python
Otwórz terminal lub okno polecenia. Utwórz nowy katalog dla aplikacji, a następnie przejdź do niego:
mkdir direct-routing-quickstart && cd direct-routing-quickstart
Użyj edytora tekstów, aby utworzyć plik o nazwie direct_routing_sample.py w katalogu głównym projektu i dodać następujący kod:
import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient, SipTrunk, SipTrunkRoute
try:
print('Azure Communication Services - Direct Routing Quickstart')
# Quickstart code goes here
except Exception as ex:
print('Exception:')
print(ex)
W poniższych sekcjach dodasz pozostały kod szybkiego startu.
Instalowanie pakietu
Mimo że nadal znajdujesz się w katalogu aplikacji, zainstaluj bibliotekę klienta azure Communication Services Administracja istration dla języka Python przy użyciu pip install
polecenia :
pip install azure-communication-phonenumbers==1.1.0
Uwierzytelnianie użytkownika
Za pomocą SipRoutingClient
programu można użyć uwierzytelniania firmy Microsoft Entra. DefaultAzureCredential
Użycie obiektu jest najprostszym sposobem rozpoczęcia pracy z identyfikatorem Entra firmy Microsoft i można go zainstalować za pomocą pip install
polecenia :
pip install azure-identity
DefaultAzureCredential
Utworzenie obiektu wymaga, aby element AZURE_CLIENT_ID
, AZURE_CLIENT_SECRET
i AZURE_TENANT_ID
został już ustawiony jako zmienne środowiskowe z odpowiednimi wartościami z zarejestrowanej aplikacji Firmy Microsoft Entra. Aby uzyskać szybki sposób uzyskiwania tych zmiennych środowiskowych, zobacz Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft.
Po zainstalowaniu azure-identity
biblioteki możesz kontynuować uwierzytelnianie klienta:
import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient
from azure.identity import DefaultAzureCredential
# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
print('Azure Communication Services - Direct Routing Quickstart')
credential = DefaultAzureCredential()
sip_routing_client = SipRoutingClient(endpoint, credential)
except Exception as ex:
print('Exception:')
print(ex)
Alternatywnie możesz użyć punktu końcowego i klucza dostępu z zasobu komunikacji do uwierzytelniania:
import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient
# You can find your connection string from your resource in the Azure portal
connection_string = 'https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<YOUR_ACCESS_KEY>'
try:
print('Azure Communication Services - Direct Routing Quickstart')
sip_routing_client = SipRoutingClient.from_connection_string(connection_string)
except Exception as ex:
print('Exception:')
print(ex)
Konfigurowanie konfiguracji routingu bezpośredniego
W wymaganiach wstępnych zweryfikowano własność domeny. Następne kroki to tworzenie magistrali (dodawanie SBCs) i tworzenie tras głosowych.
Tworzenie lub aktualizowanie magistrali
Zarejestruj swoje kontrolery SBCs, podając w pełni kwalifikowane nazwy domen i numery portów:
new_trunks = [SipTrunk(fqdn="sbc.us.contoso.com", sip_signaling_port=1234), SipTrunk(fqdn="sbc.eu.contoso.com", sip_signaling_port=1234)]
sip_routing_client.set_trunks(new_trunks)
Tworzenie lub aktualizowanie tras
Podaj reguły routingu dla wywołań wychodzących. Każda reguła składa się z dwóch części: wzorca wyrażeń regularnych, który powinien być zgodny z numerem telefonu z numerem telefonu i nazwą FQDN zarejestrowanego magistrali, w której jest kierowane połączenie.
Kolejność tras określa priorytet tras. Pierwsza trasa zgodna z wyrażeniem regularnym zostanie wybrana dla wywołania.
W tym przykładzie utworzysz jedną trasę dla liczb rozpoczynających się od +1
i drugą trasę dla liczb rozpoczynających się od tylko +
:
us_route = SipTrunkRoute(name="UsRoute", description="Handle US numbers '+1'", number_pattern="^\\+1(\\d{10})$", trunks=["sbc.us.contoso.com"])
def_route = SipTrunkRoute(name="DefaultRoute", description="Handle all numbers", number_pattern="^\\+\\d+$", trunks=["sbc.us.contoso.com","sbc.eu.contoso.com"])
new_routes = [us_route, def_route]
sip_routing_client.set_routes(new_routes)
Aktualizowanie konfiguracji routingu bezpośredniego
Właściwości określonego magistrali można zaktualizować, zastępując rekord tą samą nazwą FQDN. Można na przykład ustawić nową wartość portu SBC:
new_trunk = SipTrunk(fqdn="sbc.us.contoso.com", sip_signaling_port=5063)
sip_routing_client.set_trunk(new_trunk)
Ta sama metoda służy do tworzenia i aktualizowania reguł routingu. Podczas aktualizowania tras wyślij wszystkie z nich w ramach jednej aktualizacji. Nowa konfiguracja routingu w pełni zastępuje poprzednią.
Usuwanie konfiguracji routingu bezpośredniego
Nie można edytować ani usuwać jednej trasy głosowej. Należy zastąpić całą konfigurację routingu głosowego. Oto przykład pustej listy, która usuwa wszystkie trasy i magistrale:
#delete all configured voice routes
print('Deleting all routes...')
sip_routing_client.set_routes([])
#delete all trunks
print('Deleting all trunks...')
sip_routing_client.set_trunks([])
Poniższy przykład umożliwia usunięcie pojedynczego magistrali (SBC), jeśli nie są używane żadne trasy głosowe. Jeśli protokół SBC znajduje się na liście w dowolnej trasie głosowej, najpierw usuń tę trasę.
sip_routing_client.delete_trunk("sbc.us.contoso.com")
Uruchamianie kodu
W wierszu polecenia konsoli przejdź do katalogu zawierającego plik direct_routing_sample.py . Następnie uruchom następujące polecenie języka Python, aby uruchomić aplikację:
python direct_routing_sample.py
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Komunikacyjnych, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów. Dowiedz się więcej o czyszczeniu zasobów.
Następne kroki
Aby uzyskać więcej informacji, zobacz następujące artykuły:
- Dowiedz się więcej o automatyzacji wywołań w celu tworzenia przepływów pracy, które kierują wywołania do usług Komunikacyjnych i zarządzają nimi .
- Dowiedz się więcej o możliwościach wywoływania zestawu SDK.
- Dowiedz się więcej o tym, jak działa wywołanie.
- Skontaktuj się z numerem telefonu, postępując zgodnie z przewodnikiem Szybki start.