Share via


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

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.