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
- Python 3.7 of hoger is vereist voor het gebruik van dit pakket.
- U moet een Azure-abonnement hebben
- Een geïmplementeerde Communication Services-resource. U kunt de Azure-portal of de Azure PowerShell gebruiken om dit in te stellen.
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 SipRoutingClient
instellen 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.
Azure SDK for Python