التشغيل السريع: مكالمة صادرة إلى رقم هاتف

ابدأ بتشغيل خدمة Azure Communication Services من خلال استخدام Communication Services Calling SDK لإضافة خاصية إجراء المكالمات عبر PSTN إلى تطبيقك.

هام

تدعم Azure Communication Services مكالمات الطوارئ لأرقام الطوارئ في الولايات المتحدة وبورتوريكو وكندا والدنمارك والمملكة المتحدة فقط.

يمكن استخدام المكالمات الصوتية ل Azure Communication Services (PSTN) لطلب رقم الطوارئ 911 في الولايات المتحدة وبورتوريكو وكندا، ولطلب رقم الطوارئ 112 في الدانمرك، ولطلب أرقام الطوارئ 999 و112 في المملكة المتحدة. لا تدعم Azure Communication Services حاليا طلب أرقام الطوارئ هذه من خارج تلك البلدان أو المناطق، أو طلب خدمات الطوارئ في بلدان أو مناطق أخرى.

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

ابحث عن التعليمات البرمجية النهائية لهذه البداية السريعة في GitHub.

إشعار

يمكن الوصول إلى المكالمات الصادرة إلى رقم هاتف باستخدام مكتبة واجهة مستخدم Azure Communication Services. تمكن مكتبة واجهة المستخدم المطورين من إضافة عميل مكالمة تم تمكين PSTN له في تطبيقهم باستخدام سطرين فقط من التعليمات البرمجية.

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

الإعداد

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

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

mkdir calling-quickstart
cd calling-quickstart

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

npm init -y

تثبيت الحزمة

استخدم الأمر npm install لتثبيت Azure Communication Services Calling SDK لـ JavaScript.

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

يسرد الخيار --save المكتبة كتبعية في ملف package.json.

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

يستخدم هذا التشغيل السريع طردا لتجميع أصول التطبيق. قم بتشغيل الأمر التالي لتثبيته وإدراجه كتبعية تطوير في package.json:

npm install parcel --save-dev

قم بإنشاء ملف index.html في الدليل الجذر لمشروعك. سنستخدم هذا الملف لتكوين تخطيط أساسي يسمح للمستخدم بإجراء مكالمة.

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

<!DOCTYPE html>
<html>
  <head>
    <title>Communication Client - Calling Sample</title>
  </head>
  <body>
    <h4>Azure Communication Services</h4>
    <h1>Calling Quickstart</h1>
    <input 
      id="callee-phone-input"
      type="text"
      placeholder="Who would you like to call?"
      style="margin-bottom:1em; width: 230px;"
    />
    <div>
      <button id="call-phone-button" type="button">
        Start Call
      </button>
      &nbsp;
      <button id="hang-up-phone-button" type="button" disabled="true">
        Hang Up
      </button>
    </div>
    <script src="./app.js" type="module"></script>
  </body>
</html>

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

import { CallClient, CallAgent } from "@azure/communication-calling";
import { AzureCommunicationTokenCredential } from '@azure/communication-common';

let call;
let callAgent;

const calleePhoneInput = document.getElementById("callee-phone-input");
const callPhoneButton = document.getElementById("call-phone-button");
const hangUpPhoneButton = document.getElementById("hang-up-phone-button");

async function init() {
    const callClient = new CallClient();
    const tokenCredential = new AzureCommunicationTokenCredential('<USER ACCESS TOKEN with VoIP scope>');
    callAgent = await callClient.createCallAgent(tokenCredential);
    //callPhoneButton.disabled = false;
}

init();

ابدأ مكالمة هاتفية

حدد رقم الهاتف الذي حصلت عليه في مورد Communication Services المستخدم لبدء المكالمة:

تحذير

وينبغي توفير الهاتف الأرقام بتنسيق معيار E.164 الدولي. (على سبيل المثال: 12223334444+)

أضف معالج حدث لبدء الاتصال برقم الهاتف الذي قدمته عند النقر على callPhoneButton:

callPhoneButton.addEventListener("click", () => {
  // start a call to phone
  const phoneToCall = calleePhoneInput.value;
  call = callAgent.startCall(
    [{phoneNumber: phoneToCall}], { alternateCallerId: {phoneNumber: 'YOUR AZURE REGISTERED PHONE NUMBER HERE: +12223334444'}
  });
  // toggle button states
  hangUpPhoneButton.disabled = false;
  callPhoneButton.disabled = true;
});

إنهاء مكالمة هاتفية

أضف موزع رسائل الأحداث لإنهاء الاتصال الحالي عند تحديد hangUpPhoneButton:

hangUpPhoneButton.addEventListener("click", () => {
  // end the current call
  call.hangUp({
    forEveryone: true
  });

  // toggle button states
  hangUpPhoneButton.disabled = true;
  callPhoneButton.disabled = false;
});

تنهي خاصية forEveryone الاتصال لجميع المشاركين في الاتصال.

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

استخدم الأمر npx parcel index.html لإنشاء تطبيقك وتشغيله.

افتح المستعرض وانتقل إلى http://localhost:1234/. يجب أن تشاهد تطبيق الويب التالي:

Screenshot of the completed JavaScript Application.

يمكنك إجراء مكالمة برقم هاتف حقيقي من خلال توفير رقم هاتف في حقل النص المضاف والنقر فوق الزر "Start Phone Call".

هام

تدعم Azure Communication Services مكالمات الطوارئ لأرقام الطوارئ في الولايات المتحدة وبورتوريكو وكندا والدنمارك والمملكة المتحدة فقط.

يمكن استخدام المكالمات الصوتية ل Azure Communication Services (PSTN) لطلب رقم الطوارئ 911 في الولايات المتحدة وبورتوريكو وكندا، ولطلب رقم الطوارئ 112 في الدانمرك، ولطلب أرقام الطوارئ 999 و112 في المملكة المتحدة. لا تدعم Azure Communication Services حاليا طلب أرقام الطوارئ هذه من خارج تلك البلدان أو المناطق، أو طلب خدمات الطوارئ في بلدان أو مناطق أخرى.

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

ابحث عن التعليمات البرمجية النهائية لهذه البداية السريعة في GitHub.

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

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

  • لعرض أرقام الهواتف المقترنة بمورد Communication Services، سجل الدخول إلى مدخل Azure، وحدد موقع مورد Communication Services وافتح علامة التبويب أرقام الهواتف من جزء التنقل الأيسر.

الإعداد

إضافة وظائف PSTN إلى التطبيق

أضف PhoneNumber النوع إلى التطبيق عن طريق تعديل MainActivity.java:

import com.azure.android.communication.common.PhoneNumberIdentifier;

ابدأ مكالمة هاتفية

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

تحذير

لاحظ أنه يجب توفير أرقام الهواتف في تنسيق معيار E.164 الدولي. (على سبيل المثال: 12223334444+)

تعديل startCall() معالج الأحداث في MainActivity.java، بحيث يعالج المكالمات الهاتفية:

    private void startCall() {
        EditText calleePhoneView = findViewById(R.id.callee_id);
        String calleePhone = calleePhoneView.getText().toString();
        PhoneNumberIdentifier callerPhone = new PhoneNumberIdentifier("+12223334444");
        StartCallOptions options = new StartCallOptions();
        options.setAlternateCallerId(callerPhone);
        options.setVideoOptions(new VideoOptions(null));
        call = agent.startCall(
                getApplicationContext(),
                new PhoneNumberIdentifier[] {new PhoneNumberIdentifier(calleePhone)},
                options);
    }

تشغيل التطبيق واستدعاء echo bot

يمكن الآن تشغيل التطبيق باستخدام زر "Run App" الموجود على شريط الأدوات (Shift+F10). لإجراء مكالمة، قم بتوفير رقم هاتف في حقل النص المضاف وحدد الزر مكالمة .

تحذير

لاحظ أنه يجب توفير أرقام الهواتف في تنسيق معيار E.164 الدولي. (على سبيل المثال: 12223334444+)

Screenshot showing the completed application.

هام

تدعم Azure Communication Services مكالمات الطوارئ لأرقام الطوارئ في الولايات المتحدة وبورتوريكو وكندا والدنمارك والمملكة المتحدة فقط.

يمكن استخدام المكالمات الصوتية ل Azure Communication Services (PSTN) لطلب رقم الطوارئ 911 في الولايات المتحدة وبورتوريكو وكندا، ولطلب رقم الطوارئ 112 في الدانمرك، ولطلب أرقام الطوارئ 999 و112 في المملكة المتحدة. لا تدعم Azure Communication Services حاليا طلب أرقام الطوارئ هذه من خارج تلك البلدان أو المناطق، أو طلب خدمات الطوارئ في بلدان أو مناطق أخرى.

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

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

  • لعرض أرقام الهواتف المقترنة بمورد Communication Services، سجل الدخول إلى مدخل Azure، وحدد موقع مورد Communication Services وافتح علامة التبويب أرقام الهواتف من جزء التنقل الأيسر.
  • يمكنك إنشاء تطبيقك وتشغيله باستخدام Azure Communication Services Calling SDK لنظام iOS:

الإعداد

ابدأ مكالمة هاتفية

حدد رقم الهاتف الذي حصلت عليه في مورد Communication Services المستخدم لبدء المكالمة:

تحذير

لاحظ أنه يجب توفير أرقام الهواتف في تنسيق معيار E.164 الدولي. (على سبيل المثال: 12223334444+)

تعديل startCall معالج الأحداث الذي يتم تنفيذه عند الضغط على زر بدء المكالمة :

func startCall() {
        // Ask permissions
        AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
            if granted {
                let startCallOptions = StartCallOptions()
                startCallOptions.alternateCallerId = PhoneNumberIdentifier(phoneNumber: "<YOUR AZURE REGISTERED PHONE NUMBER>")
                self.callAgent!.startCall(participants: [PhoneNumberIdentifier(phoneNumber: self.callee)], options: startCallOptions) { (call, error) in
                    if (error == nil) {
                        self.call = call
                    } else {
                        print("Failed to get call object")
                    }
                }
            }
        }
    }

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

يمكنك إنشاء التطبيق وتشغيله على جهاز محاكاة iOS عن طريق تحديد تشغيل المنتج>أو باستخدام اختصار لوحة المفاتيح (⌘-R).

Final look and feel of the quick start app

يمكنك إجراء مكالمة هاتفية من خلال توفير رقم هاتف في الحقل النصي المضاف والنقر فوق زر بدء المكالمة .

تحذير

لاحظ أنه يجب توفير أرقام الهواتف في تنسيق معيار E.164 الدولي. (على سبيل المثال: 12223334444+)

إشعار

في المرة الأولى التي تجري فيها مكالمة، سيطالبك النظام بالوصول إلى الميكروفون. في تطبيق الإنتاج، يجب استخدام AVAudioSession API للتحقق من حالة الإذن وتحديث سلوك التطبيق بأمان عند عدم منح الإذن.

تنظيف الموارد

إذا كنت ترغب في تنظيف وإزالة اشتراك Communication Services، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا. تعرّف على المزيد حول تنظيف الموارد.

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

لمزيد من المعلومات، راجع المقالات التالية: