Azure Communication Phone Numbers Package-klientbibliotek för Python – version 1.1.0
Azure Communication Phone Numbers-klientpaketet används för att administrera telefonnummer.
Friskrivning
Stöd för Azure SDK Python-paket för Python 2.7 har upphört den 1 januari 2022. Mer information och frågor finns i https://github.com/Azure/azure-sdk-for-python/issues/20691
Komma igång
Förutsättningar
- Python 3.7 eller senare krävs för att använda det här paketet.
- Du måste ha en Azure-prenumeration
- En distribuerad Communication Services-resurs. Du kan använda Azure-portalen eller Azure PowerShell för att konfigurera den.
Installera paketet
Installera Azure Communication Phone Numbers-klientbiblioteket för Python med pip:
pip install azure-communication-phonenumbers
Viktiga begrepp
Den här SDK:en tillhandahåller funktioner för att enkelt hantera direct offer
och direct routing
numrera.
Siffrorna direct offer
finns i två typer: Geografisk och Avgiftsfri. Geografiska telefonplaner är telefonplaner som är associerade med en plats, vars telefonnummers riktnummer är associerade med riktnumret för en geografisk plats. Toll-Free telefonabonnemang är telefonplaner som inte är associerade platser. I USA kan till exempel avgiftsfria nummer komma med riktnummer som 800 eller 888.
De hanteras med hjälp av PhoneNumbersClient
Funktionen direct routing
gör det möjligt att ansluta din befintliga telefoninfrastruktur till ACS.
Konfigurationen hanteras med hjälp av SipRoutingClient
, som tillhandahåller metoder för att konfigurera SIP-trunkar och röstdirigeringsregler för att hantera samtal för telefonundernätet korrekt.
Initierar klienten
Klienten kan initieras med hjälp av AAD-autentiseringen.
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())
Ett annat alternativ är att initiera klienten med hjälp av resursens anslutningssträng.
# 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)
Telefonnummerklient
Översikt över telefonnummertyper
Telefonnummer finns i två typer; Geografisk och avgiftsfri. Geografiska telefonnummer är telefonnummer som är associerade med en plats, vars riktnummer är associerade med riktnumret för en geografisk plats. Toll-Free telefonnummer är telefonnummer utan associerad plats. I USA kan till exempel avgiftsfria nummer komma med riktnummer som 800 eller 888.
Söka efter och köpa och släppa nummer
Telefonnummer kan sökas igenom API:et för att skapa sökningar genom att ange riktnummer, antal telefonnummer, programtyp, telefonnummertyp och funktioner. Den angivna mängden telefonnummer reserveras i tio minuter och kan köpas inom denna tid. Om sökningen inte köps blir telefonnumren tillgängliga för andra efter tio minuter. Om sökningen köps hämtas telefonnumren för Azure-resurserna.
Telefonnummer kan också släppas med hjälp av versions-API:et.
SIP-routningsklient
Direktdirigeringsfunktionen gör det möjligt att ansluta telefoniinfrastruktur som tillhandahålls av kunden till Azure Communication Resources. För att kunna konfigurera routningskonfigurationen korrekt måste kunden ange SIP-trunkkonfigurationen och SIP-routningsreglerna för anrop. SIP-routningsklienten tillhandahåller det nödvändiga gränssnittet för att ställa in den här konfigurationen.
När ett anrop görs försöker systemet matcha målnumret med regex-nummermönster för definierade vägar. Den första vägen som matchar talet väljs. Ordningen på regexmatchning är densamma som ordningen på vägarna i konfigurationen, och därför är ordningen på vägarna viktig. När en väg har matchats dirigeras anropet till den första stammen i vägens trunklista. Om bagageutrymmet inte är tillgängligt väljs nästa trunk i listan.
Exempel
PhoneNumbersClient
Hämta alla köpta telefonnummer
Visar en lista över alla köpta telefonnummer
purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
for acquired_phone_number in purchased_phone_numbers:
print(acquired_phone_number.phone_number)
Hämta köpt telefonnummer
Hämtar informationen från det angivna telefonnumret
result = phone_numbers_client.get_purchased_phone_number("<phone number>")
print(result.country_code)
print(result.phone_number)
Tidskrävande åtgärder
Telefonnummerklienten har stöd för en mängd tidskrävande åtgärder som tillåter obestämd avsökningstid för de funktioner som anges nedan.
Sök efter tillgängligt telefonnummer
Du kan söka efter tillgängliga telefonnummer genom att ange funktionerna för den telefon som du vill skaffa, telefonnummertypen, tilldelningstypen och landskoden. Det är värt att nämna att för den avgiftsfria telefonnummertypen, vilket bevisar att riktnumret är valfritt. Resultatet av sökningen kan sedan användas för att köpa numret i motsvarande API.
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()
Köp telefonnummer
Resultatet av sökningen kan användas för att köpa de angivna telefonnumren. Detta kan göras genom att skicka search_id
från söksvaret till inköpstelefonnummer-API:et.
purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(
search_result.search_id,
polling=True
)
Utgivningstelefonnummer
Släpper ett anskaffat telefonnummer.
poller = self.phone_number_client.begin_release_phone_number(
"<phone number>",
polling = True
)
Uppdatera funktioner för telefonnummer
Uppdateringar de angivna telefonnummerfunktionerna för samtal och SMS till något av:
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
Hämta SIP-stammar och vägar
Hämta listan över för närvarande konfigurerade trunkar eller vägar.
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)
Ersätt SIP-stammar och vägar
Ersätt listan över för närvarande konfigurerade stammar eller vägar med nya värden.
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)
Hämta enkel trunk
trunk = sip_routing_client.get_trunk("sbs1.contoso.com")
Ange enkel trunk
# 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)
Ta bort enkel trunk
sip_routing_client.delete_trunk("sbs1.contoso.com")
Felsökning
Klienten för telefonnummeradministration genererar undantag som definierats i Azure Core.
Nästa steg
Mer exempelkod
Ta en titt på exempelkatalogen för detaljerade exempel på hur du använder det här biblioteket.
Ge feedback
Om du stöter på buggar eller har förslag kan du ange ett problem i avsnittet Problem i projektet
Bidra
Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.
När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.
Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakt opencode@microsoft.com med ytterligare frågor eller kommentarer.
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för