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

  1. 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.

  2. 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.

    Screenshot of adding a session border controller on the panel for configuring direct routing.

  3. Wybierz pozycję Dalej. Jeśli wszystko jest poprawnie skonfigurowane, stan SBC powinien być widoczny jako Aktywny w witrynie Azure Portal.

    Screenshot of SBC connection properties.

Ważne

Przed wprowadzeniem lub odbieraniem połączeń upewnij się, że stan SBC to Online

Tworzenie reguł routingu głosowego

Screenshot of outgoing voice routing configuration.

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 +1206z , 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ą:

  1. W okienku po lewej stronie w obszarze Połączenia głosowe — PSTN przejdź do pozycji Routing bezpośredni.
  2. Na karcie Trasy głosowe zaznacz pola wyboru trasy (lub trasy), które chcesz usunąć.
  3. Wybierz Usuń.

Aby usunąć SBC:

  1. W okienku po lewej stronie w obszarze Połączenia głosowe — PSTN przejdź do pozycji Routing bezpośredni.
  2. Na karcie Kontrolery obramowania sesji wybierz pozycję Konfiguruj.
  3. Wyczyść pola FQDN i port dla SBC, które chcesz usunąć, a następnie wybierz przycisk Dalej.
  4. 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

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:

  1. Przejdź do katalogu /src/main/java/com/communication/quickstart .
  2. Otwórz plik App.java w edytorze.
  3. Zastąp instrukcję System.out.println("Hello world!"); .
  4. 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ą SipRoutingClientBuilderprogramu 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ą SipRoutingClientprogramu 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_SECRETi 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: