انتقل إلى المحتوى

مكالمات VoIP في Cordova

يدعم Pushwoosh إشعارات المكالمات بأسلوب VoIP لنظامي iOS و Android باستخدام pushwoosh-cordova-plugin. يتيح هذا وظيفة مكالمات VoIP الأصلية، بما في ذلك واجهة المستخدم للمكالمات الواردة وأحداث التحكم في المكالمات.

قبل البدء، ادمج الإضافة مع Application Code الخاص بـ Pushwoosh كما هو موضح في دليل التكامل الأساسي.

1. أضف إضافة Pushwoosh Cordova مع تمكين VoIP

Anchor link to

قم بتثبيت الإضافة مع تمكين علامة VoIP:

Terminal window
cordova plugin add pushwoosh-cordova-plugin --variable PW_VOIP_IOS_ENABLED=true --variable PW_VOIP_ANDROID_ENABLED=true

سيؤدي هذا إلى تكوين الإضافة لدعم وظيفة VoIP على نظام iOS.

2. تحقق من تبعية PushwooshVoIP

Anchor link to

تربط الإضافة وحدة PushwooshVoIP تلقائيًا. في cordova-ios 8، تضيف حزمة Swift PushwooshVoIP ولا تغيّر ملف Podfile. في إصدارات cordova-ios الأقدم، تضيف هذا السطر إلى ملف Podfile الخاص بك:

pod 'PushwooshXCFramework/PushwooshVoIP'

هذه الوحدة مطلوبة لدعم إشعارات VoIP المستندة إلى PushKit ومعالجة المكالمات على مستوى النظام.

3. تمكين وضع VoIP في الخلفية في Xcode

Anchor link to

افتح مشروعك في Xcode واتبع هذه الخطوات:

  1. اذهب إلى Signing & Capabilities.
  2. أضف قدرة Background Modes.
  3. حدد خيار Voice over IP.

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

4. طلب إذن المكالمات على Android

Anchor link to

على Android، يحتاج التطبيق إلى إذن المستخدم لتلقي المكالمات. اطلبه باستخدام requestCallPermission(). إذا رفض المستخدم، يتجاهل التطبيق مكالمات VoIP الواردة.

pushwoosh.requestCallPermission();

5. تعيين نغمة رنين مخصصة (اختياري)

Anchor link to

تهيّئ الإضافة VoIP تلقائيًا. لتشغيل نغمة رنين مخصصة للمكالمات الواردة، مرّر اسم ملف صوتي من حزمة التطبيق:

pushwoosh.setRingtone("incoming.caf");

6. ردود الاتصال (callbacks) والطرق المتاحة لـ VoIP

Anchor link to

يتم تعيين دعم الفيديو وتنسيق معرّف المتصل لكل مكالمة في حمولة إشعار VoIP: video، وعلى iOS handleType (1 للعام، 2 لرقم الهاتف، 3 للبريد الإلكتروني).

تدعم إضافة Cordova الطرق والأحداث التالية المتعلقة بـ VoIP:

  • answer – يتم استدعاؤها عندما يجيب المستخدم على مكالمة واردة
  • endCall – يتم استدعاؤها عندما ينهي المستخدم المكالمة الحالية
  • hangup – يتم استدعاؤها عند إنهاء المكالمة
  • reject – يتم استدعاؤها عند رفض مكالمة واردة
  • muted – تبديل حالة كتم الصوت، لنظام iOS فقط
  • held – تبديل حالة الانتظار، لنظام iOS فقط
  • voipPushPayload – تُرجع حمولة الإشعار (push payload) للمكالمة VoIP الواردة
  • incomingCallSuccess – يتم استدعاؤها عند عرض واجهة مستخدم مكالمة النظام بنجاح، لنظام iOS فقط
  • incomingCallFailure – يتم استدعاؤها عند فشل عرض واجهة مستخدم مكالمة النظام، لنظام iOS فقط
  • speakerOn – تشغيل مكبر الصوت
  • speakerOff – إيقاف تشغيل مكبر الصوت
  • playDTMF – تشغيل نغمة DTMF أثناء المكالمة، لنظام iOS فقط
  • voipDidRegisterTokenSuccessfully – يتم استدعاؤه عند تسجيل رمز VoIP المميز لدى Pushwoosh، لنظام iOS فقط
  • voipDidFailToRegisterTokenWithError – يتم استدعاؤه عند فشل تسجيل رمز VoIP المميز، لنظام iOS فقط
  • voipDidCancelCall – يتم استدعاؤه عند إلغاء مكالمة عن بُعد عبر إشعار VoIP
  • voipDidFailToCancelCall – يتم استدعاؤه عند فشل محاولة إلغاء مكالمة

يمكن ربط هذه الطرق باستخدام كائن PushNotification الخاص بـ Cordova، مما يسمح لك بالتحكم في تغييرات حالة مكالمة VoIP والاستجابة لها.

على Android، يمكنك أيضًا معالجة هذه الأحداث في فئة Java أصلية خاصة بك، على سبيل المثال لفتح شاشة المكالمة الخاصة بك عندما يرد المستخدم. راجع معالج مخصص لأحداث المكالمات على Android.

روابط ذات صلة

Anchor link to