Freigeben über


Schnellstart: Programmgesteuertes Konfigurieren des Sprachroutings

Konfigurieren Sie ausgehende Sprachroutingregeln für Direct Routing von Azure Communication Services.

Voraussetzungen

Hinweis

Weitere Verwendungsbeispiele für SipRoutingClient finden Sie im GitHub.

Hinzufügen eines Session Border Controllers

  1. Wählen Sie im linken Bereich unter Sprachanrufe – PSTN die Option Direct Routing aus. Wählen Sie auf der Registerkarte Session Border Controller die Option Konfigurieren aus.

  2. Geben Sie einen FQDN und einen Signalport für den SBC ein. Zu den Anforderungen für den SBC-FQDN gehören:

    • Der Domänenteil des FQDN muss überprüft werden, bevor Sie ihn Ihrer Direct Routing-Konfiguration hinzufügen können, wie weiter oben in den Voraussetzungen erwähnt.
    • Das SBC-Zertifikat muss mit dem Namen übereinstimmen. Platzhalterzertifikate werden unterstützt.
    • Sie können die Domänen *.onmicrosoft.com und *.azure.com nicht für den FQDN verwenden.

    Die vollständige Liste der Anforderungen finden Sie unter Anforderungen an die Infrastruktur für direktes Azure-Routing.

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

  3. Wählen Sie Weiter aus. Wenn alles ordnungsgemäß eingerichtet ist, sollte der Status von SBC im Azure-Portal als Aktiv angezeigt werden.

    Screenshot of SBC connection properties.

Wichtig

Bevor Sie Anrufe tätigen oder entgegennehmen, stellen Sie sicher, dass der SBC-Status Online ist

Erstellen von VoIP-Routingregeln

Screenshot of outgoing voice routing configuration.

Geben Sie Ihrer VoIP-Route einen Namen, geben Sie das Zahlenmuster mit regulären Ausdrücken an, und wählen Sie den SBC für dieses Muster aus. Im Folgenden werden Beispiele für einfache reguläre Ausdrücke dargestellt:

  • ^\+\d+$: entspricht einer Telefonnummer mit mindestens einer Ziffer, die mit einem Pluszeichen beginnt
  • ^\+1(\d{10})$: entspricht einer Telefonnummer mit 10 Ziffern nach +1
  • ^\+1(425|206)(\d{7})$: entspricht einer Telefonnummer, die mit +1425 oder mit +1206 beginnt, gefolgt von sieben Ziffern
  • ^\+0?1234$: entspricht den Telefonnummern+01234 und +1234

Weitere Informationen zu regulären Ausdrücken finden Sie in der Datei .NET-Übersicht zu regulären Ausdrücken.

Sie können mehrere SBCs für ein einzelnes Muster auswählen. In einem solchen Fall wählt der Routingalgorithmus sie in einer zufälliger Reihenfolge aus. Sie können das genaue Zahlenmuster auch mehr als einmal angeben. Die höhere Zeile hat eine höhere Priorität. Wenn nicht alle SBCs verfügbar sind, die dieser Zeile zugeordnet sind, wird die nächste Zeile ausgewählt. Auf diese Weise erstellen Sie komplexe Routing-Szenarien.

Entfernen einer Direct Routing-Konfiguration

So löschen Sie eine VoIP-Route:

  1. Wählen Sie im linken Bereich unter Sprachanrufe – PSTN die Option Direct Routing aus.
  2. Aktivieren Sie auf der Registerkarte VoIP-Routen die Kontrollkästchen für die Route (oder Routen), die Sie löschen möchten.
  3. Wählen Sie Entfernen.

So löschen Sie einen Session Border Controller:

  1. Wählen Sie im linken Bereich unter Sprachanrufe – PSTN die Option Direct Routing aus.
  2. Wählen Sie auf der Registerkarte Session Border Controllers die Option Konfigurieren aus.
  3. Löschen Sie die Felder „FQDN“ und „Port“ für den SBC, den Sie entfernen möchten, und wählen Sie dann Weiter aus.
  4. Überprüfen Sie auf der Registerkarte VoIP-Routen die Konfiguration des VoIP-Routings. Nehmen Sie nach Bedarf Änderungen vor, und wählen Sie dann Speichern aus.

Wenn Sie einen SBC entfernen, dem einer VoIP-Route zugeordnet ist, können Sie auf der Registerkarte VoIP-Route einen anderen SBC für die Route auswählen. Die VoIP-Route ohne SBC wird dann gelöscht.

Voraussetzungen

Endgültiger Code

Den fertigen Code für diese Schnellstartanleitung finden Sie auf GitHub.

Weitere Verwendungsbeispiele für SipRoutingClient finden Sie auch im GitHub.

Erstellen einer C#-Anwendung

Verwenden Sie in einem Konsolenfenster (z. B. Eingabeaufforderung, PowerShell oder Bash) den Befehl dotnet new zum Erstellen einer neuen Konsolen-App:

    dotnet new console -o DirectRoutingQuickstart

Dieser Befehl erstellt ein einfaches „Hallo Welt“-C#-Projekt mit einer einzigen Quelldatei: Program.cs.

Wechseln Sie zum neu erstellten App-Ordner, und verwenden Sie den Befehl dotnet build, um Ihre Anwendung zu kompilieren:

    cd DirectRoutingQuickstart
    dotnet build

Installieren des Pakets

Installieren Sie im Anwendungsverzeichnis mithilfe des Befehls dotnet add package die Azure Communication PhoneNumbers-Clientbibliothek für .NET:

    dotnet add package Azure.Communication.PhoneNumbers --version 1.1.0

Fügen Sie am Anfang von Program.cs eine Anweisung vom Typ using hinzu, um die Namespaces einzuschließen:

using Azure.Communication.PhoneNumbers.SipRouting;

Authentifizieren des Clients

Authentifizieren Sie Telefonnummer-Clients mithilfe von Verbindungszeichenfolgen von einer Azure Communication Services-Ressource:

// Get a connection string to the Azure Communication Services resource.
var connectionString = "<connection_string>";
var client = new SipRoutingClient(connectionString);

Einrichten einer Direct Routing-Konfiguration

In den Voraussetzungen haben Sie den Domänenbesitz überprüft. Die nächsten Schritte sind das Erstellen von Trunks (Hinzufügen von SBCs) und das Erstellen von VoIP-Routen.

Erstellen oder Aktualisieren von Trunks

Direct Routing von Azure Communication Services erlaubt nur die Kommunikation mit registrierten SBCs. Um einen SBC zu registrieren, benötigen Sie seinen FQDN und Port:

// 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 });

Erstellen oder Aktualisieren von Routen

Stellen Sie Routingregeln für ausgehende Anrufe bereit. Jede Regel besteht aus zwei Teilen: dem RegEx-Muster, das mit der gewählten Telefonnummer übereinstimmen sollte, und der FQDN eines registrierten Trunks, zu dem der Anruf weitergeleitet wird.

Die Reihenfolge der Routen bestimmt die Priorität von Routen. Die erste Route, die mit dem regulären Ausdruck übereinstimmt, wird für einen Anruf ausgewählt.

In diesem Beispiel erstellen wir eine Route für Nummern, die mit +1 beginnen, und eine zweite Route für Nummern, die nur mit + beginnen:

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 });

Aktualisieren einer Direct Routing-Konfiguration

Sie können die Eigenschaften eines bestimmten Trunks aktualisieren, indem der Datensatz mit demselben FQDN überschrieben wird. Sie können beispielsweise einen neuen Wert für den SBC-Port festlegen:

var usTrunk = new SipTrunk("sbc.us.contoso.com", 5063);
await client.SetTrunkAsync(usTrunk);

Die gleiche Methode wird zum Erstellen und Aktualisieren von Routingregeln verwendet. Wenn Sie Routen aktualisieren, senden Sie alle in einem einzigen Update. Die neue Routingkonfiguration überschreibt die vorherige vollständig.

Entfernen einer Direct Routing-Konfiguration

Sie können keine einzelne VoIP-Route bearbeiten oder entfernen. Sie sollten die gesamte VoIP-Routingkonfiguration überschreiben. Hier sehen Sie das Beispiel einer leeren Liste, die alle Routen und Trunks entfernt:

//delete all configured voice routes
await client.SetRoutesAsync(new List<SipTrunkRoute>());

//delete all trunks
await client.SetTrunksAsync(new List<SipTrunk>());

Sie können das folgende Beispiel verwenden, um einen einzelnen Trunk (SBC) zu löschen, wenn ihn keine VoIP-Routen verwenden. Wenn der SBC in einer VoIP-Route aufgeführt ist, müssen Sie diese Route zuerst löschen.

await client.DeleteTrunkAsync("sbc.us.contoso.com");

Voraussetzungen

Endgültiger Code

Den fertigen Code für diese Schnellstartanleitung finden Sie auf GitHub.

Weitere Verwendungsbeispiele für SipRoutingClient finden Sie auch im GitHub.

Erstellen einer Java-Anwendung

Öffnen Sie Ihr Terminal oder Befehlsfenster. Navigieren Sie zu dem Verzeichnis, in dem Sie Ihre Java-Anwendung erstellen möchten. Führen Sie den Befehl aus, um das Java-Projekt aus der Vorlage maven-archetype-quickstart zu generieren:

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Die Aufgabe generate hat ein Verzeichnis erstellt, das den gleichen Namen wie der artifactId-Wert besitzt. In diesem Verzeichnis enthält das Verzeichnis src/main/java den Quellcode des Projekts. Das Verzeichnis src/test/java enthält die Testquelle, und die Datei pom.xml ist das Projektobjektmodell (POM) des Projekts.

Installieren des Pakets

Öffnen Sie die Datei pom.xml in Ihrem Text-Editor. Fügen Sie der Gruppe der Abhängigkeiten die folgenden Abhängigkeitselemente hinzu:

<dependencies>
	<dependency>
		<groupId>com.azure</groupId>
		<artifactId>azure-communication-phonenumbers</artifactId>
		<version>1.1.0</version>
	</dependency>
</dependencies>

Einrichten des App-Frameworks

Über das Projektverzeichnis:

  1. Gehen Sie zum Verzeichnis /src/main/java/com/communication/quickstart.
  2. Öffnen Sie die Datei App.java im Editor.
  3. Ersetzen Sie die Anweisung System.out.println("Hello world!");.
  4. Fügen Sie Anweisungen des Typs import hinzu.

Verwenden Sie zum Einstieg den folgenden Code:

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
    }
}

Authentifizieren des Clients

Mit SipRoutingClientBuilder können Sie Microsoft Entra-Authentifizierung verwenden:

// 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();

Verwenden Sie alternativ den Endpunkt und den Zugriffsschlüssel aus der Kommunikationsressource zur Authentifizierung:

// 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();

Einrichten einer Direct Routing-Konfiguration

In den Voraussetzungen haben Sie den Domänenbesitz überprüft. Die nächsten Schritte sind das Erstellen von Trunks (Hinzufügen von SBCs) und das Erstellen von VoIP-Routen.

Erstellen oder Aktualisieren von Trunks

Direct Routing von Azure Communication Services erlaubt nur die Kommunikation mit registrierten SBCs. Um einen SBC zu registrieren, benötigen Sie seinen FQDN und Port:

sipRoutingAsyncClient.setTrunksWithResponse(asList(
	new SipTrunk("sbc.us.contoso.com", 5061),
	new SipTrunk("sbc.eu.contoso.com", 5061)
)).block();

Erstellen oder Aktualisieren von Routen

Stellen Sie Routingregeln für ausgehende Anrufe bereit. Jede Regel besteht aus zwei Teilen: dem RegEx-Muster, das mit der gewählten Telefonnummer übereinstimmen sollte, und der FQDN eines registrierten Trunks, zu dem der Anruf weitergeleitet wird.

Die Reihenfolge der Routen bestimmt die Priorität von Routen. Die erste Route, die mit dem regulären Ausdruck übereinstimmt, wird für einen Anruf ausgewählt.

In diesem Beispiel erstellen wir eine Route für Nummern, die mit +1 beginnen, und eine zweite Route für Nummern, die nur mit + beginnen:

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();

Aktualisieren einer Direct Routing-Konfiguration

Sie können die Eigenschaften eines bestimmten Trunks aktualisieren, indem der Datensatz mit demselben FQDN überschrieben wird. Sie können beispielsweise einen neuen Wert für den SBC-Port festlegen:

sipRoutingClient.setTrunk(new SipTrunk("sbc.us.contoso.com", 5063));

Die gleiche Methode wird zum Erstellen und Aktualisieren von Routingregeln verwendet. Wenn Sie Routen aktualisieren, senden Sie alle in einem einzigen Update. Die neue Routingkonfiguration überschreibt die vorherige vollständig.

Entfernen einer Direct Routing-Konfiguration

Sie können keine einzelne VoIP-Route bearbeiten oder entfernen. Sie sollten die gesamte VoIP-Routingkonfiguration überschreiben. Hier sehen Sie das Beispiel einer leeren Liste, die alle Routen und Trunks entfernt.

Fügen Sie zwei Importe hinzu:

import java.util.Collections;
import java.util.List;

Verwenden Sie den folgenden Code, um eine Direct Routing-Konfiguration zu löschen:

//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();

Sie können das folgende Beispiel verwenden, um einen einzelnen Trunk (SBC) zu löschen, wenn ihn keine VoIP-Routen verwenden. Wenn der SBC in einer VoIP-Route aufgeführt ist, müssen Sie diese Route zuerst löschen.

sipRoutingClient.deleteTrunk("sbc.us.contoso.com");

Ausführen des Codes

Wechseln Sie zum Verzeichnis, das die Datei pom.xml enthält, und kompilieren Sie das Projekt mit dem folgenden mvn-Befehl:

  mvn clean compile

Erstellen Sie dann das Paket:

  mvn package

Führen Sie den folgenden mvn-Befehl aus, um die App auszuführen:

  mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

Voraussetzungen

Endgültiger Code

Den fertigen Code für diese Schnellstartanleitung finden Sie auf GitHub.

Weitere Verwendungsbeispiele für SipRoutingClient finden Sie auch im GitHub.

Erstellen einer Node.js-Anwendung

Öffnen Sie Ihr Terminal- oder Befehlsfenster, erstellen Sie ein neues Verzeichnis für Ihre App, und navigieren Sie zu diesem Verzeichnis:

    mkdir direct-routing-quickstart && cd direct-routing-quickstart

Führen Sie npm init -y aus, um eine Datei package.json mit den Standardeinstellungen zu erstellen:

   npm init -y

Erstellen Sie eine Datei namens direct-routing-quickstart.js im Stamm des von Ihnen erstellten Verzeichnisses. Führen Sie den folgenden Codeausschnitt hinzu:

async function main() {
    // quickstart code will go here
}

main();

Installieren des Pakets

Verwenden Sie den Befehl npm install, um die JavaScript-Clientbibliothek für Telefonnummern von Azure Communication Services zu installieren:

   npm install @azure/communication-phone-numbers --save

Mit der Option --save wird die Bibliothek als Abhängigkeit zu Ihrer Datei package.json hinzugefügt.

Authentifizieren des Clients

Importieren Sie SipRoutingClient aus der Clientbibliothek, und instanziieren Sie ihn mit Ihrer Verbindungszeichenfolge. Der Code ruft die Verbindungszeichenfolge für die Ressource aus einer Umgebungsvariablen namens COMMUNICATION_SERVICES_CONNECTION_STRING ab. Erfahren Sie, wie Sie die Verbindungszeichenfolge Ihrer Ressource verwalten.

Fügen Sie den folgenden Code zu direct-routing-quickstart.js hinzu:

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);

Einrichten einer Direct Routing-Konfiguration

In den Voraussetzungen haben Sie den Domänenbesitz überprüft. Die nächsten Schritte sind das Erstellen von Trunks (Hinzufügen von SBCs) und das Erstellen von VoIP-Routen.

Erstellen oder Aktualisieren von Trunks

Direct Routing von Azure Communication Services erlaubt nur die Kommunikation mit registrierten SBCs. Um einen SBC zu registrieren, benötigen Sie seinen FQDN und Port:

  await client.setTrunks([
    {
      fqdn: 'sbc.us.contoso.com',
      sipSignalingPort: 5061
    },{
      fqdn: 'sbc.eu.contoso.com',
      sipSignalingPort: 5061
    }
  ]);

Erstellen oder Aktualisieren von Routen

Stellen Sie Routingregeln für ausgehende Anrufe bereit. Jede Regel besteht aus zwei Teilen: dem RegEx-Muster, das mit der gewählten Telefonnummer übereinstimmen sollte, und der FQDN eines registrierten Trunks, zu dem der Anruf weitergeleitet wird.

Die Reihenfolge der Routen bestimmt die Priorität von Routen. Die erste Route, die mit dem regulären Ausdruck übereinstimmt, wird für einen Anruf ausgewählt.

In diesem Beispiel erstellen wir eine Route für Nummern, die mit +1 beginnen, und eine zweite Route für Nummern, die nur mit + beginnen:

   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']
    }
  ]);

Aktualisieren einer Direct Routing-Konfiguration

Sie können die Eigenschaften eines bestimmten Trunks aktualisieren, indem der Datensatz mit demselben FQDN überschrieben wird. Sie können beispielsweise einen neuen Wert für den SBC-Port festlegen:

  await client.setTrunk({
    fqdn: 'sbc.us.contoso.com',
    sipSignalingPort: 5063
  });

Die gleiche Methode wird zum Erstellen und Aktualisieren von Routingregeln verwendet. Wenn Sie Routen aktualisieren, senden Sie alle in einem einzigen Update. Die neue Routingkonfiguration überschreibt die vorherige vollständig.

Entfernen einer Direct Routing-Konfiguration

Sie können keine einzelne VoIP-Route bearbeiten oder entfernen. Sie sollten die gesamte VoIP-Routingkonfiguration überschreiben. Hier sehen Sie das Beispiel einer leeren Liste, die alle Routen und Trunks entfernt:

//delete all configured voice routes
console.log("Deleting all routes...");
await client.setRoutes([]);

//delete all trunks
console.log("Deleting all trunks...");
await client.setTrunks([]);

Sie können das folgende Beispiel verwenden, um einen einzelnen Trunk (SBC) zu löschen, wenn ihn keine VoIP-Routen verwenden. Wenn der SBC in einer VoIP-Route aufgeführt ist, müssen Sie diese Route zuerst löschen.

   await client.deleteTrunk('sbc.us.contoso.com');

Ausführen des Codes

Verwenden Sie den Befehl node, um den Code auszuführen, den Sie zur Datei direct-routing-quickstart.js hinzugefügt haben:

   node direct-routing-quickstart.js

Voraussetzungen

Endgültiger Code

Den fertigen Code für diese Schnellstartanleitung finden Sie auf GitHub.

Weitere Verwendungsbeispiele für SipRoutingClient finden Sie auch im GitHub.

Erstellen einer Python-Anwendung

Öffnen Sie Ihr Terminal oder Befehlsfenster. Erstellen Sie ein neues Verzeichnis für Ihre App, und wechseln Sie dann zu diesem Verzeichnis:

mkdir direct-routing-quickstart && cd direct-routing-quickstart

Erstellen Sie mithilfe eines Text-Editors im Stammverzeichnis des Projekts eine Datei mit dem Namen direct_routing_sample.py, und fügen Sie den folgenden Code hinzu:

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)

In den folgenden Abschnitten fügen wir den restlichen Schnellstartcode hinzu.

Installieren des Pakets

Installieren Sie im Anwendungsverzeichnis mithilfe des Befehls pip install die Azure Communication Services Administration-Clientbibliothek für Python:

pip install azure-communication-phonenumbers==1.1.0

Authentifizieren des Clients

Mit SipRoutingClient können Sie Microsoft Entra-Authentifizierung verwenden. Die Verwendung des DefaultAzureCredential-Objekts ist die einfachste Möglichkeit, um mit Microsoft Entra ID zu beginnen. Sie können es mit dem Befehl pip install installieren:

pip install azure-identity

Zum Erstellen eines DefaultAzureCredential-Objekts müssen Sie AZURE_CLIENT_ID, AZURE_CLIENT_SECRET und AZURE_TENANT_ID bereits als Umgebungsvariablen mit den entsprechenden Werten aus der registrierten Microsoft Entra-Anwendung festlegen. Eine schnelle Möglichkeit zum Abrufen dieser Umgebungsvariablen finden Sie unter Authentifizieren mit Microsoft Entra ID.

Sobald Sie die azure-identity-Bibliothek installiert haben, können Sie mit der Authentifizierung des Clients fortfahren:

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)

Alternativ können Sie den Endpunkt und den Zugriffsschlüssel aus der Kommunikationsressource für die Authentifizierung verwenden:

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)

Einrichten einer Direct Routing-Konfiguration

In den Voraussetzungen haben Sie den Domänenbesitz überprüft. Die nächsten Schritte sind das Erstellen von Trunks (Hinzufügen von SBCs) und das Erstellen von VoIP-Routen.

Erstellen oder Aktualisieren von Trunks

Registrieren Sie Ihre SBCs, indem Sie ihre vollqualifizierten Domänennamen und Portnummern angeben:

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)

Erstellen oder Aktualisieren von Routen

Stellen Sie Routingregeln für ausgehende Anrufe bereit. Jede Regel besteht aus zwei Teilen: dem RegEx-Muster, das mit der gewählten Telefonnummer übereinstimmen sollte, und der FQDN eines registrierten Trunks, zu dem der Anruf weitergeleitet wird.

Die Reihenfolge der Routen bestimmt die Priorität von Routen. Die erste Route, die mit dem regulären Ausdruck übereinstimmt, wird für einen Anruf ausgewählt.

In diesem Beispiel erstellen wir eine Route für Nummern, die mit +1 beginnen, und eine zweite Route für Nummern, die nur mit + beginnen:

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)

Aktualisieren einer Direct Routing-Konfiguration

Sie können die Eigenschaften eines bestimmten Trunks aktualisieren, indem der Datensatz mit demselben FQDN überschrieben wird. Sie können beispielsweise einen neuen Wert für den SBC-Port festlegen:

new_trunk = SipTrunk(fqdn="sbc.us.contoso.com", sip_signaling_port=5063)
sip_routing_client.set_trunk(new_trunk)

Die gleiche Methode wird zum Erstellen und Aktualisieren von Routingregeln verwendet. Wenn Sie Routen aktualisieren, senden Sie alle in einem einzigen Update. Die neue Routingkonfiguration überschreibt die vorherige vollständig.

Entfernen einer Direct Routing-Konfiguration

Sie können keine einzelne VoIP-Route bearbeiten oder entfernen. Sie sollten die gesamte VoIP-Routingkonfiguration überschreiben. Hier sehen Sie das Beispiel einer leeren Liste, die alle Routen und Trunks entfernt:

#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([])

Sie können das folgende Beispiel verwenden, um einen einzelnen Trunk (SBC) zu löschen, wenn ihn keine VoIP-Routen verwenden. Wenn der SBC in einer VoIP-Route aufgeführt ist, müssen Sie diese Route zuerst löschen.

sip_routing_client.delete_trunk("sbc.us.contoso.com")

Ausführen des Codes

Wechseln Sie über eine Konsolenaufforderung zu dem Verzeichnis, das die Datei direct_routing_sample.py enthält. Führen Sie als Nächstes den folgenden Python-Befehl aus, um die App auszuführen:

python direct_routing_sample.py

Bereinigen von Ressourcen

Wenn Sie ein Communication Services-Abonnement bereinigen und entfernen möchten, können Sie die Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind. Weitere Informationen zum Bereinigen von Ressourcen finden Sie hier.

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Artikeln: