Aracılığıyla paylaş


Python için Azure İletişim Telefon Numaraları Paketi istemci kitaplığı - sürüm 1.1.0

Azure İletişim Telefon Numaraları istemci paketi, Telefon Numaralarını yönetmek için kullanılır.

Bildirim

Python 2.7 için Azure SDK Python paketleri desteği 01 Ocak 2022'de sona erdi. Daha fazla bilgi ve soru için lütfen https://github.com/Azure/azure-sdk-for-python/issues/20691

Başlarken

Ön koşullar

Paketi yükleme

Pip ile Python için Azure İletişim Telefon Numaraları istemci kitaplığını yükleyin:

pip install azure-communication-phonenumbers

Önemli kavramlar

Bu SDK, ve direct routing numaralarını kolayca yönetmek direct offer için işlevsellik sağlar.

Sayılar direct offer iki tür olarak gelir: Coğrafi ve Ücretsiz. Coğrafi telefon planları, telefon numaralarının alan kodları coğrafi konumun alan koduyla ilişkili olan bir konumla ilişkilendirilmiş telefon planlarıdır. Toll-Free telefon planları, ilişkili konum olmayan telefon planlarıdır. Örneğin ABD'de ücretsiz sayılar 800 veya 888 gibi alan kodlarıyla birlikte gelebilir. Bunlar şu şekilde yönetilir: PhoneNumbersClient

Bu özellik, direct routing mevcut telefon altyapınızı ACS'ye bağlamanızı sağlar. Yapılandırma, telefon alt ağınıza yönelik çağrıları düzgün bir şekilde işlemek için SIP gövdelerini ve ses yönlendirme kurallarını ayarlamak için yöntemler sağlayan kullanılarak yönetilir SipRoutingClient.

İstemci Başlat

İstemci, AAD kimlik doğrulaması kullanılarak başlatılabilir.

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

Bir diğer seçenek de kaynağın bağlantı dizesini kullanarak istemciyi başlatmaktır.

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

Telefon numaraları istemcisi

Telefon numarası türlerine genel bakış

Telefon numaraları iki tür gelir; Coğrafi ve Ücretsiz. Coğrafi telefon numaraları, alan kodları bir coğrafi konumun alan koduyla ilişkili olan bir konumla ilişkilendirilmiş telefon numaralarıdır. Toll-Free telefon numaraları, ilişkili konumu olmayan telefon numaralarıdır. Örneğin ABD'de ücretsiz sayılar 800 veya 888 gibi alan kodlarıyla birlikte gelebilir.

Arama ve Satın Alma ve Numaraları Yayınlama

Alan kodu, telefon numarası miktarı, uygulama türü, telefon numarası türü ve özellikler sağlanarak arama oluşturma API'sinde telefon numaraları aranabilir. Sağlanan telefon numarası miktarı on dakika boyunca ayrılacak ve bu süre içinde satın alınabilir. Arama satın alınmazsa, telefon numaraları on dakika sonra başkalarının kullanımına sunulur. Arama satın alınırsa, Azure kaynakları için telefon numaraları alınır.

Telefon numaraları, yayın API'sini kullanarak da yayınlanabilir.

SIP yönlendirme istemcisi

Doğrudan yönlendirme özelliği, müşteri tarafından sağlanan telefon altyapısının Azure İletişim Kaynakları'na bağlanmasına olanak tanır. Yönlendirme yapılandırmasını düzgün bir şekilde ayarlamak için müşterinin çağrılar için SIP gövde yapılandırmasını ve SIP yönlendirme kurallarını sağlaması gerekir. SIP yönlendirme istemcisi bu yapılandırmayı ayarlamak için gerekli arabirimi sağlar.

Bir çağrı yapıldığında, sistem hedef numarayı tanımlı yolların regex sayı desenleriyle eşleştirmeye çalışır. Sayıyla eşleşen ilk yol seçilir. Regex eşleştirme sırası yapılandırmadaki yolların sırasıyla aynıdır, bu nedenle yolların sırası önemlidir. Bir yol eşleştirildikten sonra çağrı, rotanın gövdeler listesindeki ilk gövdeye yönlendirilir. Gövde kullanılamıyorsa, listede bir sonraki gövde seçilir.

Örnekler

PhoneNumbersClient

Tüm Satın Alınan Telefon Numaralarını Al

Satın aldığınız tüm telefon numaralarını listeler

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

Satın Alınan Telefon Numarasını Al

Belirtilen telefon numarasından bilgileri alır

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

Uzun Süre Çalışan İşlemler

Telefon Numarası İstemcisi, aşağıda listelenen işlevlere süresiz yoklama süresi sağlayan çeşitli uzun süre çalışan işlemleri destekler.

Kullanılabilir Telefon Numarası Ara

Almak istediğiniz telefonun özelliklerini, telefon numarası türünü, atama türünü ve ülke kodunu sağlayarak kullanılabilir telefon numaralarını arayabilirsiniz. Ücretsiz telefon numarası türü için alan kodunun isteğe bağlı olduğunu kanıtlamanın faydalı olduğunu belirtmekte fayda vardır. Aramanın sonucu daha sonra ilgili API'deki numarayı satın almak için kullanılabilir.

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

Telefon Numaraları Satın Al

Aramanızın sonucu, belirtilen telefon numaralarını satın almak için kullanılabilir. Bu, arama yanıtından satın alınan telefon numarası API'sine geçirilerek search_id yapılabilir.

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

Sürüm Telefon Numarası

Alınan bir telefon numarasını serbest bırakır.

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

Telefon Numarası Özelliklerini Güncelleştirme

Arama ve SMS için belirtilen telefon numarası özelliklerini aşağıdakilerden birine Güncelleştirmeler:

  • 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 gövdelerini ve yollarını alma

Şu anda yapılandırılmış olan gövdelerin veya yolların listesini alın.

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 gövdelerini ve yollarını değiştirme

Şu anda yapılandırılmış olan gövdelerin veya yolların listesini yeni değerlerle değiştirin.

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)

Tek gövdeyi alma

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

Tek gövde ayarlama

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

Tek gövdeyi silme

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

Sorun giderme

Telefon Numaraları Yönetimi istemcisi , Azure Core'da tanımlanan özel durumları tetikler.

Sonraki adımlar

Daha fazla örnek kod

Bu kitaplığın nasıl kullanılacağına ilişkin ayrıntılı örnekler için lütfen samples dizinine göz atın.

Geri Bildirim Sağlama

Herhangi bir hatayla karşılaşırsanız veya önerileriniz varsa, lütfen projenin Sorunlar bölümünde bir sorun oluşturun

Katkıda bulunma

Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.

Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.

Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya ek sorular veya yorumlarla iletişime geçin opencode@microsoft.com .