مكالمات VoIP في Cordova
يدعم Pushwoosh إشعارات المكالمات بأسلوب VoIP لنظامي iOS و Android باستخدام pushwoosh-cordova-plugin. يتيح هذا وظيفة مكالمات VoIP الأصلية، بما في ذلك واجهة المستخدم للمكالمات الواردة وأحداث التحكم في المكالمات.
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 CocoaPod
Anchor link toتأكد من تضمين PushwooshVoIP pod تلقائيًا عبر الإضافة. إذا لزم الأمر، تحقق يدويًا في ملف Podfile الخاص بك:
pod 'PushwooshVoIP'هذا الـ pod مطلوب لدعم إشعارات VoIP المستندة إلى PushKit ومعالجة المكالمات على مستوى النظام.
3. تمكين وضع VoIP في الخلفية في Xcode
Anchor link toافتح مشروعك في Xcode واتبع هذه الخطوات:
- اذهب إلى Signing & Capabilities.
- أضف قدرة Background Modes.
- حدد خيار Voice over IP.
يسمح هذا لتطبيقك باستقبال إشعارات VoIP الواردة أثناء وجوده في الخلفية.
4. تكوين رمز تطبيق VoIP (إذا كنت تستخدم كلاً من إشعارات VoIP والإشعارات العادية)
Anchor link toإذا كان تطبيقك يستخدم كلاً من إشعارات الدفع القياسية و VoIP، فيجب عليك تعيين رمز تطبيق VoIP بشكل صريح قبل تهيئة VoIP:
pushwoosh.setVoipAppCode("XXXXX-XXXXX");استبدل "XXXXX-XXXXX" برمز تطبيق Pushwoosh (App Code) المخصص لتطبيقك الذي يدعم VoIP في لوحة تحكم Pushwoosh.
5. طلب إذن المكالمات على Android
Anchor link toعلى نظام Android، تحتاج إلى طلب منح إذن لتلقي المكالمات من المستخدم. للقيام بذلك، استدعِ طريقة requestCallPermission(). يجب أن يتم ذلك قبل تسجيل الجهاز.
pushwoosh.requestCallPermission();6. تهيئة معلمات VoIP
Anchor link toاستدعِ الطريقة التالية لتهيئة وظيفة VoIP:
PushNotification.prototype.initializeVoIPParameters = function(supportsVideo, ringtoneSound, handleTypes, success, error) { if (typeof handleTypes === "function") { error = ringtoneSound; success = supportsVideo; handleTypes = undefined; ringtoneSound = undefined; supportsVideo = undefined; }
exec(success, error, "PushNotification", "initializeVoIPParameters", [ !!supportsVideo, ringtoneSound || "", handleTypes != null ? Number(handleTypes) : 1 ]);};المعلمات
Anchor link tosupportsVideo–trueأوfalseاعتمادًا على ما إذا كان تطبيقك يدعم مكالمات الفيديوringtoneSound– اسم ملف نغمة رنين مخصص (على سبيل المثال،"incoming.caf")، أو سلسلة فارغة للافتراضيhandleTypes– قناع بت رقمي لأنواع معالجة المكالمات (1لرقم الهاتف،2للبريد الإلكتروني، إلخ.)
7. ردود الاتصال (callbacks) والطرق المتاحة لـ VoIP
Anchor link toتدعم إضافة Cordova الطرق والأحداث التالية المتعلقة بـ VoIP:
answer– يتم استدعاؤها عندما يجيب المستخدم على مكالمة واردةendCall– يتم استدعاؤها عندما ينهي المستخدم المكالمة الحاليةhangup– يتم استدعاؤها عند إنهاء المكالمةreject– يتم استدعاؤها عند رفض مكالمة واردةmuted– تبديل حالة كتم الصوت، لنظام iOS فقطheld– تبديل حالة الانتظار، لنظام iOS فقطvoipPushPayload– تُرجع حمولة الإشعار (push payload) للمكالمة VoIP الواردةincomingCallSuccess– يتم استدعاؤها عند عرض واجهة مستخدم مكالمة النظام بنجاح، لنظام iOS فقطincomingCallFailure– يتم استدعاؤها عند فشل عرض واجهة مستخدم مكالمة النظام، لنظام iOS فقطspeakerOn– تشغيل مكبر الصوتspeakerOff– إيقاف تشغيل مكبر الصوتplayDTMF– تشغيل نغمة DTMF أثناء المكالمة، لنظام iOS فقط
يمكن ربط هذه الطرق باستخدام كائن PushNotification الخاص بـ Cordova، مما يسمح لك بالتحكم في تغييرات حالة مكالمة VoIP والاستجابة لها.