Phone Number Management¶
This recipe shows how to search, purchase, and release Azure Communication Services (ACS) phone numbers using the JavaScript SDK.
Prerequisites¶
- ACS Resource.
- Managed Identity or connection string.
SDK Installation¶
Search Available Phone Numbers¶
const { PhoneNumbersClient } = require("@azure/communication-phone-numbers");
const { DefaultAzureCredential } = require("@azure/identity");
// Initialize client
const endpoint = process.env.COMMUNICATION_SERVICES_ENDPOINT;
const client = new PhoneNumbersClient(endpoint, new DefaultAzureCredential());
async function searchPhoneNumbers() {
// Search for available phone numbers in the US with SMS capabilities
const searchPoller = await client.beginSearchAvailablePhoneNumbers({
areaCode: "425",
countryCode: "US",
phoneNumberType: "geographic",
assignmentType: "person",
capabilities: { sms: "inbound+outbound", calling: "none" },
quantity: 1
});
const searchResult = await searchPoller.pollUntilDone();
console.log(`Found phone number: ${searchResult.phoneNumbers[0]}`);
console.log(`Search ID: ${searchResult.searchId}`);
}
searchPhoneNumbers();
Purchase Phone Numbers¶
async function purchasePhoneNumber(searchId) {
// Purchase the phone number (uncomment carefully)
// const purchasePoller = await client.beginPurchasePhoneNumbers(searchId);
// await purchasePoller.pollUntilDone();
// console.log("Phone number purchased successfully!");
}
Configure Capabilities¶
async function updateCapabilities(phoneNumber) {
// Update capabilities for a specific phone number
// const updatePoller = await client.beginUpdatePhoneNumberCapabilities(
// phoneNumber,
// { sms: "inbound+outbound", calling: "none" }
// );
// await updatePoller.pollUntilDone();
// console.log("Phone number capabilities updated!");
}
Release Phone Numbers¶
async function releasePhoneNumber(phoneNumber) {
// Release a phone number (uncomment carefully)
// const releasePoller = await client.beginReleasePhoneNumber(phoneNumber);
// await releasePoller.pollUntilDone();
// console.log("Phone number released successfully!");
}
List Purchased Phone Numbers¶
async function listPhoneNumbers() {
// List all purchased phone numbers
const purchasedNumbers = client.listPurchasedPhoneNumbers();
for await (const number of purchasedNumbers) {
console.log(`Phone number: ${number.phoneNumber}, Type: ${number.phoneNumberType}`);
}
}
listPhoneNumbers();