Bagikan melalui


Pustaka klien Azure Communication Phone Numbers untuk JavaScript - versi 1.0.0

Pustaka nomor telepon menyediakan kemampuan untuk administrasi nomor telepon.

Nomor telepon yang dibeli dapat dilengkapi dengan banyak kemampuan, tergantung pada negara, jenis nomor, dan jenis penugasan. Contoh kemampuan adalah penggunaan masuk dan keluar SMS, penggunaan masuk dan keluar PSTN. Nomor telepon juga dapat ditetapkan ke bot melalui URL webhook.

Memulai

Prasyarat

Menginstal

npm install @azure/communication-phone-numbers

Dukungan browser

Bundel JavaScript

Untuk menggunakan pustaka klien ini di browser, pertama-tama Anda perlu menggunakan bunder. Untuk detail tentang cara melakukan ini, silakan lihat dokumentasi bundling kami.

Konsep utama

Paket nomor telepon mengekspos PhoneNumbersClient yang menyediakan metode untuk mengelola nomor telepon.

Jenis nomor telepon

Nomor telepon datang dalam dua jenis; Geografis dan Bebas Ongkos. Nomor telepon geografis adalah nomor telepon yang terkait dengan lokasi, yang kode areanya terkait dengan kode area lokasi geografis. Toll-Free nomor telepon tidak terkait dengan lokasi. Misalnya, di AS, nomor bebas ongkos dapat dilengkapi dengan kode area seperti 800 atau 888.

Semua nomor telepon geografis dalam negara yang sama dikelompokkan ke dalam grup paket telepon dengan jenis nomor telepon Geografis. Semua nomor telepon Toll-Free dalam negara yang sama dikelompokkan ke dalam grup paket telepon.

Mencari dan memperoleh angka

Nomor telepon dapat dicari melalui API pembuatan pencarian dengan menyediakan jenis nomor telepon (geografis atau bebas ongkos), jenis penugasan (orang atau aplikasi), kemampuan panggilan dan sms, kode area dan jumlah nomor telepon. Jumlah nomor telepon yang disediakan akan dipesan selama 15 menit. Pencarian nomor telepon ini dapat dibatalkan atau dibeli. Jika pencarian dibatalkan, maka nomor telepon akan tersedia untuk orang lain. Jika pencarian dibeli, maka nomor telepon diperoleh untuk sumber daya Azure.

Mengonfigurasi nomor telepon

Nomor telepon dapat memiliki kombinasi kemampuan. Mereka dapat dikonfigurasi untuk mendukung panggilan masuk dan/atau keluar, atau tidak jika Anda tidak akan menggunakan nomor telepon untuk panggilan. Hal yang sama berlaku untuk kemampuan sms.

Penting untuk mempertimbangkan jenis penugasan nomor telepon Anda. Beberapa kemampuan dibatasi untuk jenis penugasan tertentu.

Contoh

Autentikasi

Untuk membuat objek klien untuk mengakses COMMUNICATION Services API, Anda memerlukan connection string atau endpoint sumber daya Communication Services Anda dan credential. Klien Nomor Telepon dapat menggunakan kredensial Azure Active Directory atau kredensial kunci API untuk mengautentikasi.

Anda bisa mendapatkan string kunci dan/atau koneksi dari sumber daya Communication Services Anda di Portal Microsoft Azure. Anda juga dapat menemukan titik akhir untuk sumber daya Communication Services Anda di Portal Microsoft Azure.

Setelah memiliki kunci, Anda dapat mengautentikasi PhoneNumbersClient dengan salah satu metode berikut:

Menggunakan string koneksi

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

Menggunakan kunci akses dengan AzureKeyCredential

Jika Anda menggunakan kunci untuk menginisialisasi klien, Anda juga perlu menyediakan titik akhir yang sesuai. Anda bisa mendapatkan titik akhir ini dari sumber daya Communication Services Anda di Portal Microsoft Azure. Setelah memiliki kunci dan titik akhir, Anda dapat mengautentikasi dengan kode berikut:

import { AzureKeyCredential } from "@azure/core-auth";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const credential = new AzureKeyCredential("<key-from-resource>");
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);

Menggunakan Kredensial Azure Active Directory

Autentikasi string koneksi digunakan di sebagian besar contoh, tetapi Anda juga dapat mengautentikasi dengan Azure Active Directory menggunakan pustaka Azure Identity. Untuk menggunakan penyedia DefaultAzureCredential yang ditunjukkan di bawah ini, atau penyedia kredensial lain yang disediakan dengan Azure SDK, harap instal @azure/identity paket:

npm install @azure/identity

Paket ini @azure/identity menyediakan berbagai jenis kredensial yang dapat digunakan aplikasi Anda untuk melakukan ini. README untuk @azure/identity memberikan detail dan sampel lebih lanjut untuk memulai Anda.

import { DefaultAzureCredential } from "@azure/identity";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

let credential = new DefaultAzureCredential();
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);

Penggunaan

Bagian berikut ini menyediakan cuplikan kode yang mencakup beberapa tugas umum menggunakan klien Azure Communication Services Nomor Telepon. Skenario yang dibahas di sini terdiri dari:

Mencari Nomor Telepon yang Tersedia

beginSearchAvailablePhoneNumbers Gunakan metode untuk mencari nomor telepon dan memesannya. Nomor telepon yang dikembalikan dipesan selama 15 menit dan dapat dibeli selama periode ini dengan memberikan searchId ke beginPurchasePhoneNumbers metode .

beginSearchAvailablePhoneNumbers adalah operasi jangka panjang dan mengembalikan poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    quantity: 1
  };

  const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);

  // The search is underway. Wait to receive searchId.
  const searchResults = searchPoller.pollUntilDone();
  console.log(`Found phone number: ${searchResults.phoneNumbers[0]}`);
  console.log(`searchId: ${searchResults.searchId}`);
}

main();

beginPurchasePhoneNumbers Gunakan metode untuk membeli nomor telepon dari pencarian Anda. Nomor telepon yang dibeli akan ditetapkan ke sumber daya Communication Services yang digunakan saat memulai klien. Yang searchId dikembalikan dari beginSearchAvailablePhoneNumbers diperlukan.

beginPurchasePhoneNumbers adalah operasi jangka panjang dan mengembalikan poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    quantity: 1
  };

  const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);

  // The search is underway. Wait to receive searchId.
  const { searchId, phoneNumbers } = searchPoller.pollUntilDone();

  const purchasePoller = await client.beginPurchasePhoneNumbers(searchId);

  // Purchase is underway.
  await purchasePoller.pollUntilDone();
  console.log(`Successfully purchased ${phoneNumbers[0]}`);
}

main();

Merilis nomor telepon yang dibeli

beginReleasePhoneNumber Gunakan metode untuk merilis nomor telepon yang dibeli sebelumnya. Nomor telepon yang dirilis tidak akan lagi dikaitkan dengan sumber daya Communication Services, dan tidak akan tersedia untuk digunakan dengan operasi lain (misalnya. SMS) dari sumber daya. Nomor telepon yang dirilis diperlukan.

beginReleasePhoneNumber adalah operasi jangka panjang dan mengembalikan poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const phoneNumberToRelease = "<phone-number-to-release>";

  const releasePoller = await client.beginReleasePhoneNumber(phoneNumberToRelease);

  // Release is underway.
  await releasePoller.pollUntilDone();
  console.log("Successfully release phone number.");
}

main();

Perbarui kemampuan nomor telepon

beginUpdatePhoneNumberCapabilities Gunakan metode untuk memperbarui kemampuan nomor telepon yang dibeli. Nomor telepon dapat dikonfigurasi untuk mendukung panggilan masuk dan/atau keluar dan sms, atau tidak keduanya.

beginUpdatePhoneNumberCapabilities adalah operasi jangka panjang dan mengembalikan poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const phoneNumberToUpdate = "<phone-number-to-update>";

  // This will update phone number to send and receive sms, but only send calls.
  const updateRequest = {
    sms: "inbound+outbound",
    calling: "outbound"
  };

  const updatePoller = await client.beginUpdatePhoneNumberCapabilities(
    phoneNumberToUpdate,
    updateRequest
  );

  // Update is underway.
  const { capabilities } = await updatePoller.pollUntilDone();
  console.log(`These are the update capabilities: ${capabilities}`);
}

main();

Mendapatkan nomor telepon yang dibeli

getPurchasedPhoneNumber Gunakan metode untuk mendapatkan informasi tentang nomor telepon yang dibeli. Informasi ini mencakup jenis, kemampuan, biaya, dan tanggal pembelian nomor telepon.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async main function() {
  const phoneNumberToGet = "<phone-number-to-get>";

  const phoneNumber = await client.getPurchasedPhoneNumber(phoneNumberToGet);

  console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
  console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
}

main();

Mencantumkan nomor telepon yang dibeli

listPurchasedPhoneNumbers Gunakan metode untuk halaman melalui semua nomor telepon yang dibeli.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async main function() {
  const phoneNumbers = await client.listPurchasedPhoneNumbers();

  for await (const phoneNumber of phoneNumbers) {
    console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
    console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
  }
}

main();

Pemecahan Masalah

Langkah berikutnya

Silakan lihat direktori sampel untuk contoh terperinci tentang cara menggunakan pustaka ini.

Berkontribusi

Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.

Tayangan