Schnellstart: Programmgesteuertes Konfigurieren des Sprachroutings
Konfigurieren Sie ausgehende Sprachroutingregeln für Direct Routing von Azure Communication Services.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine aktive Communication Services-Ressource. Erstellen Sie eine Communication Services-Ressource.
- Vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN) und Portnummer eines Session Border Controllers (SBC) in einem operativen Telefoniesystem.
- Der überprüfte Domänenname des SBC-FQDN.
Hinweis
Weitere Verwendungsbeispiele für SipRoutingClient
finden Sie im GitHub.
Hinzufügen eines Session Border Controllers
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.
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.
Wählen Sie Weiter aus. Wenn alles ordnungsgemäß eingerichtet ist, sollte der Status von SBC im Azure-Portal als Aktiv angezeigt werden.
Wichtig
Bevor Sie Anrufe tätigen oder entgegennehmen, stellen Sie sicher, dass der SBC-Status Online ist
Erstellen von VoIP-Routingregeln
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:
- Wählen Sie im linken Bereich unter Sprachanrufe – PSTN die Option Direct Routing aus.
- Aktivieren Sie auf der Registerkarte VoIP-Routen die Kontrollkästchen für die Route (oder Routen), die Sie löschen möchten.
- Wählen Sie Entfernen.
So löschen Sie einen Session Border Controller:
- Wählen Sie im linken Bereich unter Sprachanrufe – PSTN die Option Direct Routing aus.
- Wählen Sie auf der Registerkarte Session Border Controllers die Option Konfigurieren aus.
- Löschen Sie die Felder „FQDN“ und „Port“ für den SBC, den Sie entfernen möchten, und wählen Sie dann Weiter aus.
- Ü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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine aktive Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
- Die aktuelle Version der .NET Core-Clientbibliothek für Ihr Betriebssystem.
- Vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN) und Portnummer eines Session Border Controllers (SBC) in einem operativen Telefoniesystem.
- Der überprüfte Domänenname des SBC-FQDN.
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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Java Development Kit (JDK) Version 8 oder höher.
- Apache Maven.
- Eine bereitgestellte Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
- Vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN) und Portnummer eines Session Border Controllers (SBC) in einem operativen Telefoniesystem.
- Der überprüfte Domänenname des SBC-FQDN.
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:
- Gehen Sie zum Verzeichnis /src/main/java/com/communication/quickstart.
- Öffnen Sie die Datei App.java im Editor.
- Ersetzen Sie die Anweisung
System.out.println("Hello world!");
. - 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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine aktive Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
- Aktive LTS- und Wartungs-LTS-Versionen von Node.js für Ihr Betriebssystem.
- Vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN) und Portnummer eines Session Border Controllers (SBC) in einem operativen Telefoniesystem.
- Der überprüfte Domänenname des SBC-FQDN.
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
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Python 3.7+.
- Eine bereitgestellte Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
- Vollqualifizierter Domänenname (Fully Qualified Domain Name, FQDN) und Portnummer eines Session Border Controllers (SBC) in einem operativen Telefoniesystem.
- Der überprüfte Domänenname des SBC-FQDN.
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:
- Erfahren Sie mehr über die Anrufautomatisierung zum Erstellen von Workflows, die Anrufe an Communication Services weiterleiten und verwalten.
- Erfahren Sie mehr über das Aufrufen von SDK-Funktionen.
- Informieren Sie sich über die Funktionsweise von Anrufen.
- Rufen Sie eine Telefonnummer an, indem Sie eine Schnellstartanleitung befolgen.