مكالمات VoIP في Cordova
يدعم Pushwoosh إشعارات المكالمات بأسلوب VoIP لنظامي iOS و Android باستخدام pushwoosh-cordova-plugin. يتيح هذا وظيفة مكالمات VoIP الأصلية، بما في ذلك واجهة المستخدم للمكالمات الواردة وأحداث التحكم في المكالمات.
قبل البدء، ادمج الإضافة مع Application Code الخاص بـ Pushwoosh كما هو موضح في دليل التكامل الأساسي.
1. أضف إضافة Pushwoosh Cordova مع تمكين VoIP
Anchor link toقم بتثبيت الإضافة مع تمكين علامة VoIP:
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 واتبع هذه الخطوات:
- اذهب إلى Signing & Capabilities.
- أضف قدرة Background Modes.
- حدد خيار 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– يتم استدعاؤه عند إلغاء مكالمة عن بُعد عبر إشعار VoIPvoipDidFailToCancelCall– يتم استدعاؤه عند فشل محاولة إلغاء مكالمة
يمكن ربط هذه الطرق باستخدام كائن PushNotification الخاص بـ Cordova، مما يسمح لك بالتحكم في تغييرات حالة مكالمة VoIP والاستجابة لها.
على Android، يمكنك أيضًا معالجة هذه الأحداث في فئة Java أصلية خاصة بك، على سبيل المثال لفتح شاشة المكالمة الخاصة بك عندما يرد المستخدم. راجع معالج مخصص لأحداث المكالمات على Android.