التشغيل السريع: الحصول على أرقام الهواتف وإدارتها

هام

تعتمد الإمكانات المتوفرة (PSTN/SMS، الوارد/الصادر) على البلد الذي تعمل فيه (موقع عنوان فوترة Azure) وحالة الاستخدام ونوع رقم الهاتف الذي حددته. وتختلف هذه الإمكانات باختلاف البلد بسبب المتطلبات التنظيمية. لمزيد من المعلومات، قم بزيارة وثائق Phone number types.

هام

بالنسبة للطلبات ذات الكميات الكبيرة أو في حالة عدم توفر رقم الهاتف المطلوب، أكمل هذا النموذج وأرسله بالبريد الإلكتروني مع acstnrequest@microsoft.com سطر موضوع يبدأ ب "طلب رقم خدمات اتصالات Azure:".

المتطلبات الأساسية

الحصول على رقم الهاتف

لبدء توفير الأرقام، انتقل إلى مورد Communication Services المُتاحة على مدخل Azure.

Screenshot showing a Communication Services resource's main page.

البحث عن أرقام الهاتف المتوفرة

انتقل إلى شفرة أرقام الهاتف في قائمة الموارد.

Screenshot showing a Communication Services resource's phone page.

اضغط على زر الحصول على لبدء تشغيل المعالج. سيرشدك المعالج الموجود في شفرة أرقام الهواتف من خلال طرح سلسلة من الأسئلة التي تساعدك في اختيار رقم الهاتف الذي يناسب السيناريو.

ستحتاج أولاً إلى اختيار البلد/المنطقة التي ترغب في إتاحة رقم الهاتف فيها. بعد اختيار البلد/المنطقة، ستحتاج بعد ذلك إلى تحديد حالة الاستخدام التي تناسب احتياجاتك بشكل أفضل.

Screenshot showing the Get phone numbers view.

حدد ميزات رقم هاتفك

ينقسم تكوين رقم هاتفك إلى خطوتين:

  1. تحديد نوع الرقم
  2. تحديد إمكانيات الرقم

يمكنك الاختيار من بين نوعين من أرقام الهواتف: محلي ورقم مجاني. عند تحديد نوع الرقم، يمكنك اختيار الميزة بعد ذلك.

في مثالنا، اخترنا نوع رقم مجاني مع ميزات إجراء المكالماتوإرسال الرسائل القصيرة وتلقيها .

Screenshot showing the Select features view.

من هنا، حدد الزر التالي: الأرقام أسفل الصفحة لتخصيص رقم (أرقام) الهاتف الذي ترغب في توفيره.

تخصيص أرقام الهواتف

في صفحة الأرقام، ستقوم بتخصيص رقم الهاتف الذي تريد توفيره.

Screenshot showing the Numbers selection page.

ملاحظة

يُظهر التشغيل السريع تدفق تخصيص نوع الرقم المجاني. قد تختلف التجربة قليلا إذا اخترت نوع الرقم المحلي ، ولكن النتيجة النهائية ستكون هي نفسها.

اختر رمز المنطقة من قائمة رموز المناطق المتوفرة وأدخل الكمية التي تريد توفيرها، ثم انقر فوق بحث للعثور على أرقام تفي بمتطلباتك المحددة. سيتم عرض أرقام الهواتف التي تلبي احتياجاتك بالإضافة إلى تكلفتها الشهرية.

Screenshot showing the Numbers selection page with reserved numbers.

ملاحظة

يعتمد التوفر على نوع الرقم والموقع والميزات التي حددتها. يتم الاحتفاظ بالأرقام لفترة قصيرة قبل انتهاء صلاحية المعاملة. إذا انتهت صلاحية المعاملة، فستحتاج إلى إعادة تحديد الأرقام.

لعرض ملخص الشراء ووضع طلبك، حدد الزر التالي: المُلخص متاحأسفل الصفحة.

شراء أرقام الهواتف

ستراجع صفحة الملخص نوع الرقم والميزات وأرقام الهاتف وإجمالي التكلفة الشهرية لتوفير أرقام الهواتف.

ملاحظة

تتمثل الأسعار المعروضة في الرسوم الشهرية المتكررة التي تغطي تكلفة تأجير رقم الهاتف المحدد لك. لا يتضمن هذا العرض تكاليف الدفع عند الانتقال التي يتم تكبدها عند إجراء المكالمات أو تلقيها. قوائم الأسعار متوفرة هنا. تعتمد التكاليف على نوع الرقم والوجهات التي يتم طلبها. على سبيل المثال، قد يختلف سعر الدقيقة للمكالمة من رقم سياتل الإقليمي إلى رقم إقليمي في نيويورك ومكالمة من نفس الرقم إلى رقم هاتف محمول في المملكة المتحدة.

وفي النهاية، حدد وضع الترتيب في أسفل الصفحة للتأكيد.

Screenshot showing the Summary page with the Number type, Features, Phone Numbers, and Total monthly cost shown.

العثور عن أرقام الهواتف المُتاحة على بوابة Azure

انتقل إلى موردAzure Communication Services المُتاحة على مدخل Azure:

Screenshot showing a Communication Services Resource's main page.

حدد شفرة أرقام الهاتف في القائمة لإدارة أرقام هاتفك.

Screenshot showing a Communication Services Resource's phone number page.

ملاحظة

قد يستغرق الأمر بضع دقائق لعرض الأرقام المتوفرة في هذه الصفحة.

تحديث قدرات أرقام الهاتف

في صفحة أرقام الهاتف، يمكنك تحديد رقم هاتف لتكوينه.

Screenshot showing the update features page.

حدد الميزات من الخيارات المتاحة، ثم انقر على حفظ لتطبيق التحديد.

إصدار رقم الهاتف

في صفحة الأرقام، يُمكنك إصدار أرقام الهواتف.

Screenshot showing the release phone numbers page.

حدد رقم الهاتف الذي تريد إصداره ثم حدد زر الإصدار.

ملاحظة

العثور على التعليمات البرمجية النهائية الخاصة بالتشغيل السريع على GitHub

المتطلبات الأساسية

التحقق من المتطلبات الأساسية

  • في النافذة الطرفية أو نافذة الأوامر، قم بتشغيل dotnet الأمر للتحقق من تثبيت NET client library.

إعداد

إنشاء تطبيق C# جديد

في نافذة وحدة تحكم (مثل cmd أو PowerShell أو Bash)، استخدم الأمر ⁧dotnet new⁩ لإنشاء تطبيق وحدة تحكم جديد بالاسم ⁧PhoneNumbersQuickstart⁩. هذا الأمر ينشئ مشروع "Hello World" بسيطًا بلغة #C باستخدام ملف مصدر واحد: Program.cs.

dotnet new console -o PhoneNumbersQuickstart

قم بتغيير الدليل الخاص بك إلى مجلد التطبيق الذي تم إنشاؤه حديثًا، واستخدم الأمر dotnet build للتحويل البرمجي لتطبيقك.

cd PhoneNumbersQuickstart
dotnet build

تثبيت الحِزَم

أثناء الاستمرار في دليل التطبيق، تثبيت مAzure Communication PhoneNumbers client library for .NET package باستخدام dotnet add package الأمر.

dotnet add package Azure.Communication.PhoneNumbers --version 1.0.0

إضافة using توجيه إلى أعلى البرنامج.cs لتضمين namespaces.

using System;
using System.Linq;
using System.Threading.Tasks;
using Azure.Communication.PhoneNumbers;

تحديث Main توقيع الدالة ليكون متزامناً.

static async Task Main(string[] args)
{
  ...
}

مصادقة العميل

يمكن مصادقة عملاء رقم الهاتف باستخدام سلسلة الاتصال التي تم الحصول عليها من موارد Azure Communication Services في [مدخل Azure] [azure_portal].

// Get a connection string to our Azure Communication Services resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);

يتوفر لعملاء رقم الهاتف أيضاً خيار المصادقة باستخدام مصادقة Azure Active Directory. مع هذا AZURE_CLIENT_SECRET الخيار، AZURE_CLIENT_ID، ومتغيرات البيئة تحتاج إلى إعدادها AZURE_TENANT_ID للمصادقة.

// Get an endpoint to our Azure Communication Services resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new PhoneNumbersClient(endpoint, tokenCredential);

إدارة أرقام الهواتف

البحث عن أرقام الهواتف المتاحة

من أجل شراء أرقام الهواتف، يجب عليك أولًا البحث عن أرقام الهواتف المتاحة. للبحث عن أرقام الهواتف، أدخل رمز المنطقة ونوع التعيين وإمكانات رقم الهاتفونوع رقم الهاتفوالكمية. لاحظ أنه بالنسبة لرقم الهاتف المجاني، فإن توفير رمز المنطقة اختياري.

var capabilities = new PhoneNumberCapabilities(calling:PhoneNumberCapabilityType.None, sms:PhoneNumberCapabilityType.Outbound);
var searchOptions = new PhoneNumberSearchOptions { AreaCode = "833", Quantity = 1 };

var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync("US", PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities, searchOptions);
await searchOperation.WaitForCompletionAsync();

شراء أرقام الهواتف

نتيجة البحث عن أرقام الهواتف PhoneNumberSearchResult. يحتوي على SearchId والذي يمكن تمريره إلى واجهة برمجة تطبيقات الأرقام الخاصة بالشراء للحصول على الأرقام في البحث. لاحظ أن الاتصال بواجهة برمجة تطبيقات أرقام الهواتف الخاصة بالشراء سيؤدي إلى فرض رسوم على حساب Azure الخاص بك.

var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId);
await purchaseOperation.WaitForCompletionResponseAsync();

الحصول على رقم (أرقام) الهاتف

بعد شراء الرقم، يمكنك استرداده من العميل.

var getPhoneNumberResponse = await client.GetPurchasedPhoneNumberAsync("+14255550123");
Console.WriteLine($"Phone number: {getPhoneNumberResponse.Value.PhoneNumber}, country code: {getPhoneNumberResponse.Value.CountryCode}");

يمكنك أيضاً استرداد جميع أرقام الهواتف التي تم شراؤها.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();
await foreach (var purchasedPhoneNumber in purchasedPhoneNumbers)
{
    Console.WriteLine($"Phone number: {purchasedPhoneNumber.PhoneNumber}, country code: {purchasedPhoneNumber.CountryCode}");
}

تحديث قدرات رقم الهاتف

أي رقم تم شراؤه، يمكنك تحديث إمكاناته.

var updateCapabilitiesOperation = await client.StartUpdateCapabilitiesAsync("+14255550123", calling: PhoneNumberCapabilityType.Outbound, sms: PhoneNumberCapabilityType.InboundOutbound);
await updateCapabilitiesOperation.WaitForCompletionAsync();

إصدار رقم الهاتف

يمكنك إصدار رقم هاتف تم شراؤه.

var releaseOperation = await client.StartReleasePhoneNumberAsync("+14255550123");
await releaseOperation.WaitForCompletionResponseAsync();

تشغيل التعليمات البرمجية

شغل التطبيق من دليل تطبيقك باستخدام الأمر dotnet run.

dotnet run

نموذج التعليمات البرمجية

يمكنك تنزيل نموذج التطبيق من GitHub

ملاحظة

العثور على التعليمات البرمجية النهائية الخاصة بالتشغيل السريع على GitHub

المتطلبات الأساسية

إعداد

إنشاء تطبيق Java جديد

افتح نافذة المحطة الطرفية أو نافذة الأوامر. انتقل إلى الدليل الذي تريد إنشاء تطبيق Java فيه. تشغيل الأمر أدناه لإنشاء مشروع Java من قالب maven-archetype-quickstart.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

ستلاحظ أن المهمة "إنشاء" أعدت دليلاً بنفس اسم artifactId. ضمن هذا الدليل، يحتوي دليل src/main/java على كود مصدر المشروع، src/test/java directory ويحتوي على مصدر الاختبار، pom.xml والملف هو نموذج لعنصر المشروع.

تثبيت الحِزَم

افتح ملف pom.xml في محرر النص. إضافة العناصر غير المستقلة التالية إلى مجموعة التبعيات.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-common</artifactId>
    <version>1.0.0</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-phonenumbers</artifactId>
    <version>1.0.0</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.2.3</version>
</dependency>

إعداد إطار عمل التطبيق

من دليل المشروع:

  1. انتقل إلى دليل /src/main/java/com/communication/quickstart
  2. افتح ملف تطبيق.java في المحرر الخاص بك
  3. استبدال System.out.println("Hello world!"); العبارة
  4. إضافةimport دليل

استخدم الكود التالي للبدء:

import com.azure.communication.phonenumbers.*;
import com.azure.communication.phonenumbers.models.*;
import com.azure.core.http.rest.*;
import com.azure.core.util.Context;
import com.azure.core.util.polling.LongRunningOperationStatus;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.*;
import java.io.*;

public class App
{
    public static void main( String[] args ) throws IOException
    {
        System.out.println("Azure Communication Services - Phone Numbers Quickstart");
        // Quickstart code goes here
    }
}

مصادقة أرقام العميل

تم تمكين PhoneNumberClientBuilder لاستخدام مصادقة Azure Active Directory

// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";

PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

بدلاً من ذلك، استخدم نقطة النهاية ومفتاح الوصول من مورد الاتصال للمصادقة.

// You can find your connection string from your resource in the Azure portal
String connectionString = "endpoint=https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<ACCESS_KEY>";

PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder()
    .connectionString(connectionString)
    .buildClient();

إدارة أرقام الهاتف

البحث عن أرقام الهاتف المتوفرة

من أجل شراء أرقام الهواتف، يجب عليك أولاً البحث عن أرقام الهواتف المتاحة. للبحث عن أرقام الهواتف، أدخل رمز المنطقة ونوع التعيين وإمكانات رقم الهاتفونوع رقم الهاتفوالكمية. لاحظ أنه بالنسبة لرقم الهاتف المجاني، فإن توفير رمز المنطقة اختياري.

 PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities()
    .setCalling(PhoneNumberCapabilityType.INBOUND)
    .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND);
PhoneNumberSearchOptions searchOptions = new PhoneNumberSearchOptions().setAreaCode("833").setQuantity(1);

SyncPoller<PhoneNumberOperation, PhoneNumberSearchResult> poller = phoneNumberClient
    .beginSearchAvailablePhoneNumbers("US", PhoneNumberType.TOLL_FREE, PhoneNumberAssignmentType.APPLICATION, capabilities, searchOptions, Context.NONE);
PollResponse<PhoneNumberOperation> response = poller.waitForCompletion();
String searchId = "";

if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus()) {
    PhoneNumberSearchResult searchResult = poller.getFinalResult();
    searchId = searchResult.getSearchId();
    System.out.println("Searched phone numbers: " + searchResult.getPhoneNumbers());
    System.out.println("Search expires by: " + searchResult.getSearchExpiresBy());
    System.out.println("Phone number costs:" + searchResult.getCost().getAmount());
}

شراء أرقام الهواتف

نتيجة البحث عن أرقام الهواتف هي PhoneNumberSearchResult. يحتوي على searchId والذي يمكن تمريره إلى واجهة برمجة تطبيقات الأرقام الخاصة بالشراء للحصول على الأرقام في البحث. لاحظ أن الاتصال بواجهة برمجة تطبيقات أرقام الهواتف الخاصة بالشراء سيؤدي إلى فرض رسوم على حساب Azure الخاص بك.

PollResponse<PhoneNumberOperation> purchaseResponse = phoneNumberClient.beginPurchasePhoneNumbers(searchId, Context.NONE).waitForCompletion();
System.out.println("Purchase phone numbers operation is: " + purchaseResponse.getStatus());

رقم (أرقام) الهاتف

بعد شراء الرقم، يمكنك استرداده من العميل.

PurchasedPhoneNumber phoneNumber = phoneNumberClient.getPurchasedPhoneNumber("+14255550123");
System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode());

يمكنك أيضاً استرداد جميع أرقام الهواتف التي تم شراؤها.

PagedIterable<PurchasedPhoneNumber> phoneNumbers = phoneNumberClient.listPurchasedPhoneNumbers(Context.NONE);
PurchasedPhoneNumber phoneNumber = phoneNumbers.iterator().next();
System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode());

تحديث قدرات أرقام الهاتف

أي رقم تم شراؤه، يمكنك تحديث إمكاناته.

PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities();
capabilities
    .setCalling(PhoneNumberCapabilityType.INBOUND)
    .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND);

SyncPoller<PhoneNumberOperation, PurchasedPhoneNumber> poller = phoneNumberClient.beginUpdatePhoneNumberCapabilities("+18001234567", capabilities, Context.NONE);
PollResponse<PhoneNumberOperation> response = poller.waitForCompletion();
if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus()) {
    PurchasedPhoneNumber phoneNumber = poller.getFinalResult();
    System.out.println("Phone Number Calling capabilities: " + phoneNumber.getCapabilities().getCalling()); //Phone Number Calling capabilities: inbound
    System.out.println("Phone Number SMS capabilities: " + phoneNumber.getCapabilities().getSms()); //Phone Number SMS capabilities: inbound+outbound
}

إصدار رقم الهاتف

يمكنك التخلي عن رقم هاتف تم شراؤه.

PollResponse<PhoneNumberOperation> releaseResponse =
    phoneNumberClient.beginReleasePhoneNumber("+14255550123", Context.NONE).waitForCompletion();
System.out.println("Release phone number operation is: " + releaseResponse.getStatus());

تشغيل التعليمات البرمجية

انتقل إلى الدليل الذي يحتوي على ملف pom.xml وأعد المشروع باستخدام mvn الأمر التالي.

mvn compile

ثم أنشئ الحزمة.

mvn package

استخدم الأمر التاليmvn لتشغيل التطبيق.

mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

تصف مخرجات التطبيق كل إجراء يتم إكماله:

Azure Communication Services - Phone Numbers Quickstart

Searched phone numbers: [+18001234567]

Purchase phone numbers operation is: SUCCESSFULLY_COMPLETED

Phone Number Country Code: US

Phone Number Calling capabilities: inbound

Phone Number SMS capabilities: inbound

Release phone number operation is: SUCCESSFULLY_COMPLETED

ملاحظة

العثور على التعليمات البرمجية النهائية الخاصة بالتشغيل السريع على GitHub

المتطلبات الأساسية

الإعداد

إنشاء تطبيق Python جديد

افتح المحطة الطرفية أو نافذة الأوامر لديك، وأنشئ دليلاً جديدًا لتطبيقك، وانتقل إليه.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart

استخدم محرر نص لإنشاء ملف يسمى phone_numbers_sample.py في الدليل الجذر للمشروع وأضف التعليمات البرمجية التالية. سنقوم بإضافة رمز التشغيل السريع المتبقي في الأقسام التالية.

import os
from azure.communication.phonenumbers import PhoneNumbersClient

try:
   print('Azure Communication Services - Phone Numbers Quickstart')
   # Quickstart code goes here
except Exception as ex:
   print('Exception:')
   print(ex)

تثبيت الحِزَمة

أثناء وجودك في دليل التطبيق، قم بتثبيت مكتبة عميل إدارة خدمات الاتصال في Azure لحزمة Python باستخدام الأمر pip install.

pip install azure-communication-phonenumbers

مصادقة عميل أرقام الهاتف

تم تمكين PhoneNumbersClient لاستخدام مصادقة Azure Active Directory. يعد استخدام الكائن DefaultAzureCredential أسهل طريقة لبدء استخدام Azure Active Directory ويمكنك تثبيته باستخدام الأمر pip install.

pip install azure-identity

يتطلب إنشاء كائن DefaultAzureCredential تعيين AZURE_CLIENT_ID وAZURE_CLIENT_SECRET وAZURE_TENANT_ID بالفعل كمتغيرات بيئة مع القيم المقابلة لها من تطبيق Azure AD المسجل.

للحصول على تكثيف سريع حول كيفية الحصول على متغيرات البيئة المذكورة، يمكنك اتباع التشغيل السريع: إعداد مبادئ الخدمة من CLI.

بمجرد تثبيت مكتبة azure-identity، يمكننا متابعة مصادقة العميل.

import os
from azure.communication.phonenumbers import PhoneNumbersClient
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
except Exception as ex:
    print('Exception:')
    print(ex)

ويمكن أيضًا استخدام نقطة النهاية ومفتاح الوصول من مورد الاتصال للمصادقة بدلاً من ذلك.

import os
from azure.communication.phonenumbers import PhoneNumbersClient

# You can find your connection string from your resource in the Azure portal
connection_string = 'https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<YOUR_ACCESS_KEY>'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    phone_numbers_client = PhoneNumbersClient.from_connection_string(connection_string)
except Exception as ex:
    print('Exception:')
    print(ex)

الوظائف

بمجرد مصادقة PhoneNumbersClient، يمكننا البدء في العمل على الوظائف المختلفة التي يمكنه القيام بها.

البحث عن أرقام الهاتف المتوفرة

من أجل شراء أرقام الهواتف، يجب عليك أولاً البحث عن أي أرقام هواتف متوفرة. للبحث عن أرقام الهواتف ، قدم رمز المنطقة ونوع التعيين وإمكانيات رقم الهاتف، ونوع رقم الهاتف، والكمية (تم تعيين الكمية الافتراضية على 1). لاحظ أنه بالنسبة لنوع رقم الهاتف المجاني، يعد توفير رمز المنطقة أمرًا اختياريًا.

import os
from azure.communication.phonenumbers import PhoneNumbersClient, PhoneNumberCapabilityType, PhoneNumberAssignmentType, PhoneNumberType, PhoneNumberCapabilities
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
    capabilities = PhoneNumberCapabilities(
        calling = PhoneNumberCapabilityType.INBOUND,
        sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
    )
    search_poller = phone_numbers_client.begin_search_available_phone_numbers(
        "US",
        PhoneNumberType.TOLL_FREE,
        PhoneNumberAssignmentType.APPLICATION,
        capabilities,
        polling = True
    )
    search_result = search_poller.result()
    print ('Search id: ' + search_result.search_id)
    phone_number_list = search_result.phone_numbers
    print('Reserved phone numbers:')
    for phone_number in phone_number_list:
        print(phone_number)

except Exception as ex:
    print('Exception:')
    print(ex)

شراء أرقام الهاتف

نتيجة البحث عن أرقام الهواتف هي PhoneNumberSearchResult. يحتوي على searchId والذي يمكن تمريره إلى واجهة برمجة تطبيقات الأرقام الخاصة بالشراء للحصول على الأرقام في البحث. لاحظ أن الاتصال بواجهة برمجة تطبيقات أرقام الهواتف الخاصة بالشراء سيؤدي إلى فرض رسوم على حسابك في Azure.

import os
from azure.communication.phonenumbers import (
    PhoneNumbersClient,
    PhoneNumberCapabilityType,
    PhoneNumberAssignmentType,
    PhoneNumberType,
    PhoneNumberCapabilities
)
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
    capabilities = PhoneNumberCapabilities(
        calling = PhoneNumberCapabilityType.INBOUND,
        sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
    )
    search_poller = phone_numbers_client.begin_search_available_phone_numbers(
        "US",
        PhoneNumberType.TOLL_FREE,
        PhoneNumberAssignmentType.APPLICATION,
        capabilities,
        area_code="833",
        polling = True
    )
    search_result = poller.result()
    print ('Search id: ' + search_result.search_id)
    phone_number_list = search_result.phone_numbers
    print('Reserved phone numbers:')
    for phone_number in phone_number_list:
        print(phone_number)

    purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(search_result.search_id, polling = True)
    purchase_poller.result()
    print("The status of the purchase operation was: " + purchase_poller.status())
except Exception as ex:
    print('Exception:')
    print(ex)

الحصول على رقم (أرقام) الهاتف المشتراة

بعد شراء رقم يمكنك استعادته من العميل.

purchased_phone_number_information = phone_numbers_client.get_purchased_phone_number("+18001234567")
print('Phone number: ' + purchased_phone_number_information.phone_number)
print('Country code: ' + purchased_phone_number_information.country_code)

يمكنك أيضاً استرداد جميع أرقام الهواتف التي تم شراؤها.

purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
print('Purchased phone numbers:')
for purchased_phone_number in purchased_phone_numbers:
    print(purchased_phone_number.phone_number)

تحديث قدرات أرقام الهاتف

يمكنك تحديث إمكانات رقم هاتف تم شراؤه مسبقًا.

update_poller = phone_numbers_client.begin_update_phone_number_capabilities(
    "+18001234567",
    PhoneNumberCapabilityType.OUTBOUND,
    PhoneNumberCapabilityType.OUTBOUND,
    polling = True
)
update_poller.result()
print('Status of the operation: ' + update_poller.status())

التخلي عن رقم هاتف

يمكنك التخلي عن رقم هاتف تم شراؤه.

release_poller = phone_numbers_client.begin_release_phone_number("+18001234567")
release_poller.result()
print('Status of the operation: ' + release_poller.status())

تشغيل التعليمات البرمجية

من مطالبة وحدة التحكم، انتقل إلى الدليل الذي يحتوي على ملف phone_numbers_sample.py، ثم قم بتنفيذ أمر Python التالي لتشغيل التطبيق.

python phone_numbers_sample.py

ملاحظة

العثور على التعليمات البرمجية النهائية الخاصة بالتشغيل السريع على GitHub

المتطلبات الأساسية

التحقق من المتطلبات الأساسية

  • في نافذة طرفية أو نافذة أوامر، قم بتشغيل node --version للتحقق من تثبيت Node.js.

إعداد

إنشاء تطبيق Node.js جديد

أولًا، افتح نافذة طرفية أو نافذة الأوامر الخاصة بك، وأنشئ دليلًا جديدًا لتطبيقك، وانتقل إليه.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart

قم بتشغيل npm init -yلإنشاء ملفpackage.json بالإعدادات الافتراضية.

npm init -y

إنشاء ملف يسمى phone-numbers-quickstart.js في جذر الدليل الذي قمت بإنشائه للتو. أضف القصاصة البرمجية التالية إليه:

async function main() {
    // quickstart code will here
}

main();

تثبيت الحُزَم

استخدم الأمر npm installلتثبيت مكتبة عميل أرقام هواتف خدمات الاتصال في Azure لـ JavaScript.

npm install @azure/communication-phone-numbers --save

يضيف الخيار --saveالمكتبة كعنصر تبعية في ملفpackage.json الخاص بك.

مصادقة العميل

استيراد PhoneNumbersClient من مكتبة العميل ثم إنشاء مثيل مع سلسلة الاتصال. يسترد الرمز أدناه سلسلة الاتصال للمورد من متغير بيئة يسمى COMMUNICATION_SERVICES_CONNECTION_STRING. تعرف على كيفية إدارة سلسلة اتصال المورد.

إضافة التعليمات البرمجية التالية إلى أعلى phone-numbers-quickstart.js:

const { PhoneNumbersClient } = require('@azure/communication-phone-numbers');

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];

// Instantiate the phone numbers client
const phoneNumbersClient = new PhoneNumbersClient(connectionString);

إدارة أرقام الهواتف

البحث عن أرقام الهواتف المتاحة

من أجل شراء أرقام الهواتف، يجب عليك أولًا البحث عن أرقام الهواتف المتاحة. للبحث عن أرقام الهواتف، أدخل رمز المنطقة ونوع التعيين وإمكانات رقم الهاتفونوع رقم الهاتفوالكمية. لاحظ أنه بالنسبة لنوع رقم الهاتف المجاني، يعد توفير رمز المنطقة اختياريًّا.

أضف القصاصة البرمجية التالية إلى الوظيفة main الخاصة بك:

/**
 * Search for Available Phone Number
 */

// Create search request
const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    areaCode: "833",
    quantity: 1
  };

const searchPoller = await phoneNumbersClient.beginSearchAvailablePhoneNumbers(searchRequest);

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

console.log(`Found phone number: ${phoneNumber}`);
console.log(`searchId: ${searchId}`);

شراء رقم الهاتف

نتيجة البحث عن أرقام الهواتف هي PhoneNumberSearchResult. يحتوي على searchId والذي يمكن تمريره إلى واجهة برمجة تطبيقات الأرقام الخاصة بالشراء للحصول على الأرقام في البحث. لاحظ أن الاتصال بواجهة برمجة تطبيقات أرقام هواتف الشراء سيؤدي إلى فرض رسوم على حساب Azure الخاص بك.

أضف القصاصة البرمجية التالية إلى الوظيفة main الخاصة بك:

/**
 * Purchase Phone Number
 */

const purchasePoller = await phoneNumbersClient.beginPurchasePhoneNumbers(searchId);

// Purchase is underway.
await purchasePoller.pollUntilDone();
console.log(`Successfully purchased ${phoneNumber}`);

تحديث قدرات رقم الهاتف

بعد شراء رقم هاتف الآن، أضف الرمز التالي لتحديث إمكانياته:

/**
 * Update Phone Number Capabilities
 */

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

const updatePoller = await phoneNumbersClient.beginUpdatePhoneNumberCapabilities(
  phoneNumber,
  updateRequest
);

// Update is underway.
await updatePoller.pollUntilDone();
console.log("Phone number updated successfully.");

الحصول على رقم (أرقام) الهاتف المشتراة

بعد شراء الرقم، يمكنك استرداده من العميل. أضف الرمز التالي إلى main الوظيفة الخاصة بك للحصول على رقم الهاتف الذي اشتريته للتو:

/**
 * Get Purchased Phone Number
 */

const { capabilities } = await phoneNumbersClient.getPurchasedPhoneNumber(phoneNumber);
console.log("These capabilities:", capabilities, "should be the same as these:", updateRequest, ".");

يمكنك أيضًا استرداد جميع أرقام الهواتف التي تم شراؤها.

const purchasedPhoneNumbers = await phoneNumbersClient.listPurchasedPhoneNumbers();

for await (const purchasedPhoneNumber of purchasedPhoneNumbers) {
  console.log(`Phone number: ${purchasedPhoneNumber.phoneNumber}, country code: ${purchasedPhoneNumber.countryCode}.`);
}

إصدار رقم الهاتف

يمكنك الآن إصدار رقم الهاتف الذي تم شراؤه. أضف رمز القصاصة البرمجية أدناه إلى main الوظيفة الخاصة بك:

/**
 * Release Purchased Phone Number
 */

const releasePoller = await phoneNumbersClient.beginReleasePhoneNumber(phoneNumber);

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

تشغيل التعليمات البرمجية

استخدم الأمر node لتشغيل الرمز الذي أضفته إلى ملف phone-number-quickstart.js.

node phone-numbers-quickstart.js

استكشاف الأخطاء وإصلاحها

الأسئلة والمشكلات الشائعة:

  • عندما يتم إصدار رقم الهاتف، لن يتم إصدار رقم الهاتف أو إعادة شرائه حتى نهاية دورة الفوترة.

  • عند حذف مورد خدمات الاتصالات، سيتم إصدار أرقام الهواتف المقترنة بهذا المورد تلقائيًا في نفس الوقت.

الخطوات التالية

في هذا التشغيل السريع، قد تعلّمت كيفية:

  • شراء رقم هاتف
  • إدارة رقم هاتفك
  • إصدار رقم هاتف