Bagikan melalui


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

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.