Pustaka klien Paket Nomor Telepon Azure Communication untuk Python - versi 1.1.0
Paket klien Azure Communication Phone Numbers digunakan untuk mengelola Nomor Telepon.
Pengelakan
Dukungan paket Azure SDK Python untuk Python 2.7 telah berakhir 01 Januari 2022. Untuk informasi lebih lanjut dan pertanyaan, silakan merujuk ke https://github.com/Azure/azure-sdk-for-python/issues/20691
Memulai
Prasyarat
- Python 3.7 atau yang lebih baru diharuskan untuk menggunakan paket ini.
- Anda harus memiliki langganan Azure
- Sumber daya Communication Services yang disebarkan. Anda dapat menggunakan Portal Microsoft Azure atau Azure PowerShell untuk menyiapkannya.
Instal paketnya
Instal pustaka klien Azure Communication Phone Numbers untuk Python dengan pip:
pip install azure-communication-phonenumbers
Konsep utama
SDK ini menyediakan fungsionalitas untuk mengelola direct offer
dan direct routing
angka dengan mudah.
Angka-angkanya direct offer
datang dalam dua jenis: Geografis dan Bebas Angkutan. Paket telepon geografis adalah paket telepon yang terkait dengan lokasi, yang kode area nomor teleponnya dikaitkan dengan kode area lokasi geografis. Toll-Free paket telepon adalah paket telepon yang tidak terkait dengan lokasi. Misalnya, di AS, nomor bebas ongkos dapat dilengkapi dengan kode area seperti 800 atau 888.
Mereka dikelola menggunakan PhoneNumbersClient
Fitur ini direct routing
memungkinkan menyambungkan infrastruktur telepon Anda yang ada ke ACS.
Konfigurasi dikelola menggunakan SipRoutingClient
, yang menyediakan metode untuk menyiapkan batang SIP dan aturan perutean suara, untuk menangani panggilan untuk subnet telepon Anda dengan benar.
Menginisialisasi Klien
Klien dapat diinisialisasi menggunakan autentikasi AAD.
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())
Opsi lain adalah menginisialisasi klien menggunakan string koneksi sumber daya.
# 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)
Klien nomor telepon
Gambaran umum jenis nomor telepon
Nomor telepon datang dalam dua jenis; Geografis dan Bebas Angkutan. Nomor telepon geografis adalah nomor telepon yang terkait dengan lokasi, yang kode areanya terkait dengan kode area lokasi geografis. Toll-Free nomor telepon adalah nomor telepon tanpa lokasi terkait. Misalnya, di AS, nomor bebas ongkos dapat dilengkapi dengan kode area seperti 800 atau 888.
Mencari dan Membeli dan Merilis nomor
Nomor telepon dapat dicari melalui API pembuatan pencarian dengan menyediakan kode area, jumlah nomor telepon, jenis aplikasi, jenis nomor telepon, dan kemampuan. Jumlah nomor telepon yang disediakan akan dipesan selama sepuluh menit dan dapat dibeli dalam waktu ini. Jika pencarian tidak dibeli, nomor telepon akan tersedia untuk orang lain setelah sepuluh menit. Jika pencarian dibeli, maka nomor telepon diperoleh untuk sumber daya Azure.
Nomor telepon juga dapat dirilis menggunakan API rilis.
Klien perutean SIP
Fitur perutean langsung memungkinkan menghubungkan infrastruktur telepon yang disediakan pelanggan ke Azure Communication Resources. Untuk menyiapkan konfigurasi perutean dengan benar, pelanggan perlu menyediakan konfigurasi batang SIP dan aturan perutean SIP untuk panggilan. Klien perutean SIP menyediakan antarmuka yang diperlukan untuk mengatur konfigurasi ini.
Ketika panggilan dilakukan, sistem mencoba mencocokkan nomor tujuan dengan pola nomor regex dari rute yang ditentukan. Rute pertama yang cocok dengan nomor akan dipilih. Urutan pencocokan regex sama dengan urutan rute dalam konfigurasi, oleh karena itu urutan rute penting. Setelah rute dicocokkan, panggilan dirutekan ke batang pertama dalam daftar batang rute. Jika batang tidak tersedia, batang berikutnya dalam daftar dipilih.
Contoh
PhoneNumbersClient
Dapatkan Semua Nomor Telepon yang Dibeli
Mencantumkan semua nomor telepon yang Anda beli
purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
for acquired_phone_number in purchased_phone_numbers:
print(acquired_phone_number.phone_number)
Dapatkan Nomor Telepon yang Dibeli
Mendapatkan informasi dari nomor telepon yang ditentukan
result = phone_numbers_client.get_purchased_phone_number("<phone number>")
print(result.country_code)
print(result.phone_number)
Operasi Jangka Panjang
Klien Nomor Telepon mendukung berbagai operasi jangka panjang yang memungkinkan waktu polling yang tidak terbatas ke fungsi yang tercantum di bawah ini.
Cari Nomor Telepon yang Tersedia
Anda dapat mencari nomor telepon yang tersedia dengan menyediakan kemampuan telepon yang ingin Anda peroleh, jenis nomor telepon, jenis penugasan, dan kode negara. Perlu disebutkan bahwa untuk jenis nomor telepon bebas ongkos, membuktikan kode area bersifat opsional. Hasil pencarian kemudian dapat digunakan untuk membeli nomor di API yang sesuai.
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()
Beli Nomor Telepon
Hasil pencarian Anda dapat digunakan untuk membeli nomor telepon yang ditentukan. Ini dapat dilakukan dengan meneruskan search_id
dari respons pencarian ke API nomor telepon pembelian.
purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(
search_result.search_id,
polling=True
)
Rilis Nomor Telepon
Merilis nomor telepon yang diperoleh.
poller = self.phone_number_client.begin_release_phone_number(
"<phone number>",
polling = True
)
Memperbarui Kapabilitas Nomor Telepon
Updates kemampuan nomor telepon yang ditentukan untuk Panggilan dan SMS ke salah satu dari:
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
Mengambil batang dan rute SIP
Dapatkan daftar batang atau rute yang saat ini dikonfigurasi.
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)
Mengganti batang dan rute SIP
Ganti daftar batang atau rute yang saat ini dikonfigurasi dengan nilai baru.
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)
Mengambil batang tunggal
trunk = sip_routing_client.get_trunk("sbs1.contoso.com")
Mengatur batang tunggal
# 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)
Menghapus batang tunggal
sip_routing_client.delete_trunk("sbs1.contoso.com")
Pemecahan Masalah
Klien Administrasi Nomor Telepon akan memunculkan pengecualian yang ditentukan di Azure Core.
Langkah berikutnya
Lebih banyak kode sampel
Silakan lihat direktori sampel untuk contoh terperinci tentang cara menggunakan pustaka ini.
Berikan Umpan Balik
Jika Anda menemukan bug atau memiliki saran, silakan ajukan masalah di bagian Masalah proyek
Berkontribusi
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.
Ketika Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repos menggunakan CLA kami.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Tata Tertib atau hubungi opencode@microsoft.com untuk pertanyaan atau komentar lainnya.
Azure SDK for Python