Delen via


Azure Communication Phone Numbers Package-clientbibliotheek voor Python - versie 1.1.0

Het azure Communication Phone Numbers-clientpakket wordt gebruikt om telefoonnummers te beheren.

Disclaimer

Ondersteuning voor Azure SDK Python-pakketten voor Python 2.7 is beëindigd op 1 januari 2022. Raadpleeg voor meer informatie en vragen https://github.com/Azure/azure-sdk-for-python/issues/20691

Aan de slag

Vereisten

Het pakket installeren

Installeer de Azure Communication Phone Numbers-clientbibliotheek voor Python met pip:

pip install azure-communication-phonenumbers

Belangrijkste concepten

Deze SDK biedt functionaliteit voor het eenvoudig beheren direct offer van en direct routing getallen.

De direct offer nummers zijn er in twee typen: geografisch en gratis. Geografische telefoonabonnementen zijn telefoonabonnementen die zijn gekoppeld aan een locatie, waarvan de netnummers van de telefoonnummers zijn gekoppeld aan het netnummer van een geografische locatie. Toll-Free telefoonabonnementen zijn telefoonabonnementen die geen gekoppelde locatie zijn. In de VS kunnen gratis nummers bijvoorbeeld worden geleverd met een netnummer zoals 800 of 888. Ze worden beheerd met behulp van de PhoneNumbersClient

Met de direct routing functie kunt u uw bestaande telefonie-infrastructuur verbinden met ACS. De configuratie wordt beheerd met behulp van de , die methoden biedt voor het SipRoutingClientinstellen van SIP-trunks en regels voor spraakroutering om oproepen voor uw telefoniesubnet correct te verwerken.

Client initialiseren

Client kan worden geïnitialiseerd met behulp van de AAD-verificatie.

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

Een andere optie is om de client te initialiseren met behulp van connection string van de resource.

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

Telefoonnummerclient

Overzicht van typen telefoonnummers

Telefoonnummers zijn er in twee typen; Geografisch en gratis. Geografische telefoonnummers zijn telefoonnummers die zijn gekoppeld aan een locatie, waarvan het netnummer is gekoppeld aan het netnummer van een geografische locatie. Toll-Free telefoonnummers zijn telefoonnummers zonder gekoppelde locatie. In de VS kunnen gratis nummers bijvoorbeeld worden geleverd met een netnummer zoals 800 of 888.

Nummers zoeken en kopen en vrijgeven

Telefoonnummers kunnen worden doorzocht via de API voor het maken van zoekopdrachten door een netnummer, aantal telefoonnummers, toepassingstype, type telefoonnummer en mogelijkheden op te geven. Het opgegeven aantal telefoonnummers wordt tien minuten gereserveerd en kan binnen deze tijd worden gekocht. Als de zoekopdracht niet is gekocht, zijn de telefoonnummers na tien minuten beschikbaar voor anderen. Als de zoekopdracht is aangeschaft, worden de telefoonnummers verkregen voor de Azure-resources.

Telefoonnummers kunnen ook worden vrijgegeven met behulp van de release-API.

SIP-routeringsclient

Met de functie voor directe routering kunt u de door de klant geleverde telefonie-infrastructuur verbinden met Azure-communicatieresources. Om de routeringsconfiguratie correct in te stellen, moet de klant de SIP Trunk-configuratie en SIP-routeringsregels voor oproepen opgeven. SIP-routeringsclient biedt de benodigde interface voor het instellen van deze configuratie.

Wanneer een aanroep wordt uitgevoerd, probeert het systeem het doelnummer te koppelen aan regex-nummerpatronen van gedefinieerde routes. De eerste route die overeenkomt met het nummer wordt geselecteerd. De volgorde van regex matching is hetzelfde als de volgorde van routes in configuratie, daarom is de volgorde van routes van belang. Zodra een route is gekoppeld, wordt de aanroep gerouteerd naar de eerste trunk in de trunks-lijst van de route. Als de trunk niet beschikbaar is, wordt volgende trunk in de lijst geselecteerd.

Voorbeelden

PhoneNumbersClient

Alle gekochte telefoonnummers ophalen

Een lijst met al uw gekochte telefoonnummers

purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
for acquired_phone_number in purchased_phone_numbers:
    print(acquired_phone_number.phone_number)

Gekocht telefoonnummer ophalen

Hiermee haalt u de gegevens van het opgegeven telefoonnummer op

result = phone_numbers_client.get_purchased_phone_number("<phone number>")
print(result.country_code)
print(result.phone_number)

Langlopende bewerkingen

De telefoonnummerclient ondersteunt verschillende langlopende bewerkingen die een onbeperkte pollingtijd mogelijk maken voor de functies die hieronder worden vermeld.

Zoeken naar beschikbaar telefoonnummer

U kunt zoeken naar beschikbare telefoonnummers door de mogelijkheden op te geven van de telefoon die u wilt verkrijgen, het type telefoonnummer, het toewijzingstype en de landcode. Het is de moeite waard om te vermelden dat voor het gratis telefoonnummertype het bewijzen van het netnummer optioneel is. Het resultaat van de zoekopdracht kan vervolgens worden gebruikt om het nummer in de bijbehorende API te kopen.

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

Telefoonnummers kopen

Het resultaat van uw zoekopdracht kan worden gebruikt om de opgegeven telefoonnummers te kopen. U kunt dit doen door de search_id van het zoekantwoord door te geven aan de API voor het kopen van telefoonnummers.

purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(
    search_result.search_id,
    polling=True
)

Telefoonnummer vrijgeven

Geeft een verkregen telefoonnummer vrij.

poller = self.phone_number_client.begin_release_phone_number(
    "<phone number>",
    polling = True
)

Mogelijkheden voor telefoonnummers bijwerken

Updates de opgegeven telefoonnummermogelijkheden voor bellen en sms-berichten naar een van de volgende opties:

  • 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

SIP-trunks en -routes ophalen

Haal de lijst met momenteel geconfigureerde trunks of routes op.

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)

SIP-trunks en -routes vervangen

Vervang de lijst met momenteel geconfigureerde trunks of routes door nieuwe waarden.

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)

Eén trunk ophalen

trunk = sip_routing_client.get_trunk("sbs1.contoso.com")

Enkele trunk instellen

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

Enkele trunk verwijderen

sip_routing_client.delete_trunk("sbs1.contoso.com")

Problemen oplossen

De beheerclient voor telefoonnummers genereert uitzonderingen die zijn gedefinieerd in Azure Core.

Volgende stappen

Meer voorbeeldcode

Raadpleeg de map met voorbeelden voor gedetailleerde voorbeelden van het gebruik van deze bibliotheek.

Feedback geven

Als u fouten tegenkomt of suggesties hebt, kunt u een probleem melden in de sectie Problemen van het project

Bijdragen

Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar https://cla.microsoft.com voor meer informatie.

Wanneer u een pull-aanvraag indient, wordt met een CLA-bot automatisch bepaald of u een CLA moet verschaffen en wordt de pull-aanvraag dienovereenkomstig opgemaakt (bijvoorbeeld met een label of commentaar). Volg gewoon de instructies van de bot. U hoeft dit maar eenmaal te doen voor alle repo's waar gebruik wordt gemaakt van onze CLA.

Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Zie voor meer informatie de veelgestelde vragen over de gedragscode of neem contact op opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.