Azure Communication Phone Numbers Package-Clientbibliothek für Python – Version 1.1.0
Das Clientpaket "Azure Communication Phone Numbers" wird zum Verwalten von Telefonnummern verwendet.
Haftungsausschluss
Die Unterstützung von Azure SDK-Python-Paketen für Python 2.7 endet am 01. Januar 2022. Weitere Informationen und Antworten finden Sie unter https://github.com/Azure/azure-sdk-for-python/issues/20691.
Erste Schritte
Voraussetzungen
- Für die Verwendung dieses Pakets ist Python 3.7 oder höher erforderlich.
- Sie benötigen ein Azure-Abonnement.
- Eine bereitgestellte Communication Services-Ressource. Sie können das Azure-Portal oder die Azure PowerShell zum Einrichten verwenden.
Installieren des Pakets
Installieren Sie die Clientbibliothek für Azure Communication Phone Numbers für Python mit pip:
pip install azure-communication-phonenumbers
Wichtige Begriffe
Dieses SDK bietet Funktionen zum einfachen Verwalten direct offer
von Und direct routing
Zahlen.
Die direct offer
Zahlen sind in zwei Arten verfügbar: geografisch und gebührenfrei. Geografische Telefonpläne sind Telefonpläne, die einem Standort zugeordnet sind, dessen Telefonnummern mit der Ortsvorwahl eines geografischen Standorts verknüpft sind. Toll-Free Telefontarife sind Telefonpläne, die nicht dem Standort zugeordnet sind. In den USA können beispielsweise gebührenfreie Nummern mit Ortsvorwahlen wie 800 oder 888 enthalten sein.
Sie werden mithilfe der PhoneNumbersClient
Das direct routing
Feature ermöglicht das Verbinden Ihrer vorhandenen Telefonieinfrastruktur mit ACS.
Die Konfiguration wird mithilfe von SipRoutingClient
verwaltet, das Methoden zum Einrichten von SIP-Trunks und VoIP-Routingregeln bereitstellt, um Anrufe für Ihr Telefonsubnetz ordnungsgemäß zu verarbeiten.
Initialisieren des Clients
Der Client kann mithilfe der AAD-Authentifizierung initialisiert werden.
import os
from azure.communication.phonenumbers import PhoneNumbersClient
from azure.identity import DefaultAzureCredential
endpoint = "https://<RESOURCE_NAME>.communication.azure.com"
# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have your
# AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables.
phone_numbers_client = PhoneNumbersClient(endpoint, DefaultAzureCredential())
import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient
from azure.identity import DefaultAzureCredential
endpoint = "https://<RESOURCE_NAME>.communication.azure.com"
# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have your
# AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables.
sip_routing_client = SipRoutingClient(endpoint, DefaultAzureCredential())
Eine weitere Möglichkeit besteht darin, den Client mithilfe der Verbindungszeichenfolge der Ressource zu initialisieren.
# You can find your connection string from your resource in the Azure Portal
import os
from azure.communication.phonenumbers import PhoneNumbersClient
connection_str = "endpoint=ENDPOINT;accessKey=KEY"
phone_numbers_client = PhoneNumbersClient.from_connection_string(connection_str)
# You can find your connection string from your resource in the Azure Portal
import os
from azure.communication.phonenumbers.siprouting import SipRoutingClient
connection_str = "endpoint=ENDPOINT;accessKey=KEY"
sip_routing_client = SipRoutingClient.from_connection_string(connection_str)
Telefonnummern-Client
Übersicht über Telefonnummerntypen
Telefonnummern gibt es in zwei Arten; Geografisch und gebührenfrei. Geografische Telefonnummern sind Telefonnummern, die einem Standort zugeordnet sind, dessen Ortsvorwahlen der Ortsvorwahl eines geografischen Standorts zugeordnet sind. Toll-Free Telefonnummern sind Telefonnummern ohne zugeordneten Standort. In den USA können beispielsweise gebührenfreie Nummern mit Ortsvorwahlen wie 800 oder 888 enthalten sein.
Suchen und Kaufen und Freigeben von Nummern
Telefonnummern können über die Sucherstellungs-API durchsucht werden, indem eine Ortsvorwahl, anzahl von Telefonnummern, Anwendungstyp, Telefonnummerntyp und Funktionen angegeben werden. Die angegebene Anzahl von Telefonnummern wird für zehn Minuten reserviert und kann innerhalb dieser Zeit erworben werden. Wenn die Suche nicht gekauft wird, werden die Telefonnummern nach zehn Minuten für andere Personen verfügbar. Wenn die Suche erworben wird, werden die Telefonnummern für die Azure-Ressourcen abgerufen.
Telefonnummern können auch mithilfe der Release-API veröffentlicht werden.
SIP-Routingclient
Das Feature "Direct Routing" ermöglicht das Verbinden der vom Kunden bereitgestellten Telefonieinfrastruktur mit Azure Communication Resources. Um die Routingkonfiguration ordnungsgemäß einzurichten, muss der Kunde die SIP-Trunkkonfiguration und SIP-Routingregeln für Anrufe angeben. Der SIP-Routingclient stellt die erforderliche Schnittstelle zum Festlegen dieser Konfiguration bereit.
Wenn ein Aufruf erfolgt, versucht das System, die Zielnummer mit regex-Nummernmustern definierter Routen abzugleichen. Die erste Route, die mit der Nummer übereinstimmt, wird ausgewählt. Die Reihenfolge des RegEx-Abgleichs ist identisch mit der Reihenfolge der Routen in der Konfiguration, daher ist die Reihenfolge der Routen wichtig. Sobald eine Route abgeglichen wurde, wird der Anruf an den ersten Trunk in der Trunkliste der Route weitergeleitet. Wenn der Trunk nicht verfügbar ist, wird der nächste Trunk in der Liste ausgewählt.
Beispiele
PhoneNumbersClient
Abrufen aller erworbenen Telefonnummern
Listet alle erworbenen Telefonnummern auf.
purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
for acquired_phone_number in purchased_phone_numbers:
print(acquired_phone_number.phone_number)
Erworbene Telefonnummer abrufen
Ruft die Informationen von der angegebenen Telefonnummer ab.
result = phone_numbers_client.get_purchased_phone_number("<phone number>")
print(result.country_code)
print(result.phone_number)
Vorgänge mit langer Ausführungsdauer
Der Telefonnummernclient unterstützt eine Vielzahl von Vorgängen mit langer Ausführungszeit, die eine unbegrenzte Abrufzeit für die unten aufgeführten Funktionen ermöglichen.
Suchen Nach verfügbarer Telefonnummer
Sie können nach verfügbaren Telefonnummern suchen, indem Sie die Funktionen des gewünschten Telefons, den Telefonnummerntyp, den Zuweisungstyp und die Landesvorwahl angeben. Es ist erwähnenswert, dass für den gebührenfreien Telefonnummerntyp, der nachweist, dass die Vorwahl optional ist. Das Ergebnis der Suche kann dann verwendet werden, um die Nummer in der entsprechenden API zu erwerben.
capabilities = PhoneNumberCapabilities(
calling = PhoneNumberCapabilityType.INBOUND,
sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
)
poller = phone_numbers_client.begin_search_available_phone_numbers(
"US",
PhoneNumberType.TOLL_FREE,
PhoneNumberAssignmentType.APPLICATION,
capabilities,
area_code ="833", # Area code is optional for toll-free numbers
quantity = 2, # Quantity is optional. If not set, default is 1
polling = True
)
search_result = poller.result()
Kaufen von Telefonnummern
Das Ergebnis Ihrer Suche kann verwendet werden, um die angegebenen Telefonnummern zu erwerben. Dies kann durch Übergeben von search_id
aus der Suchantwort an die API für die Kauftelefonnummer erfolgen.
purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(
search_result.search_id,
polling=True
)
Freigeben einer Telefonnummer
Gibt eine erworbene Telefonnummer frei.
poller = self.phone_number_client.begin_release_phone_number(
"<phone number>",
polling = True
)
Aktualisieren von Telefonnummernfunktionen
Aktualisierungen die angegebenen Telefonnummernfunktionen für Anrufe und SMS an eine der folgenden Funktionen:
PhoneNumberCapabilityType.NONE
PhoneNumberCapabilityType.INBOUND
PhoneNumberCapabilityType.OUTBOUND
PhoneNumberCapabilityType.INBOUND_OUTBOUND
poller = self.phone_number_client.begin_update_phone_number_capabilities(
"<phone number>",
PhoneNumberCapabilityType.OUTBOUND,
PhoneNumberCapabilityType.INBOUND_OUTBOUND,
polling = True
)
SipRoutingClient
Abrufen von SIP-Trunks und -Routen
Rufen Sie die Liste der derzeit konfigurierten Trunks oder Routen ab.
trunks = sip_routing_client.list_trunks()
for trunk in trunks:
print(trunk.fqdn)
print(trunk.sip_signaling_port)
routes = sip_routing_client.list_routes()
for route in routes:
print(route.name)
print(route.description)
print(route.number_pattern)
for trunk_fqdn in route.trunks:
print(trunk_fqdn)
Ersetzen von SIP-Trunks und -Routen
Ersetzen Sie die Liste der aktuell konfigurierten Trunks oder Routen durch neue Werte.
new_trunks = [SipTrunk(fqdn="sbs1.contoso.com", sip_signaling_port=1122), SipTrunk(fqdn="sbs2.contoso.com", sip_signaling_port=1123)]
new_routes = [SipTrunkRoute(name="First rule", description="Handle numbers starting with '+123'", number_pattern="\+123[0-9]+", trunks=["sbs1.sipconfigtest.com"])]
sip_routing_client.set_trunks(new_trunks)
sip_routing_client.set_routes(new_routes)
Abrufen eines einzelnen Trunks
trunk = sip_routing_client.get_trunk("sbs1.contoso.com")
Festlegen eines einzelnen Trunks
# Set function will either modify existing item or add new item to the collection.
# The trunk is matched based on it's FQDN.
new_trunk = SipTrunk(fqdn="sbs3.contoso.com", sip_signaling_port=5555)
sip_routing_client.set_trunk(new_trunk)
Löschen eines einzelnen Trunks
sip_routing_client.delete_trunk("sbs1.contoso.com")
Problembehandlung
Der Client für die Telefonnummernverwaltung löst ausnahmen aus, die in Azure Core definiert sind.
Nächste Schritte
Weiterer Beispielcode
Ausführliche Beispiele für die Verwendung dieser Bibliothek finden Sie im Beispielverzeichnis .
Feedback geben
Wenn Fehler auftreten oder Vorschläge vorliegen, melden Sie ein Problem im Abschnitt Probleme des Projekts.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.
Azure SDK for Python