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
- Bu paketi kullanmak için Python 3.7 veya üzeri gereklidir.
- Azure aboneliğiniz olmalıdır
- Dağıtılan bir İletişim Hizmetleri kaynağı. Ayarlamak için Azure Portal'ı veya Azure PowerShell kullanabilirsiniz.
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 .
Azure SDK for Python