การโทร VoIP ด้วย Cordova
Pushwoosh รองรับการแจ้งเตือนการโทรสไตล์ VoIP สำหรับ iOS และ Android โดยใช้ pushwoosh-cordova-plugin ซึ่งจะเปิดใช้งานฟังก์ชันการโทร VoIP แบบเนทีฟ รวมถึง UI การโทรเข้าและอีเวนต์ควบคุมการโทร
ก่อนเริ่มต้น ให้ผสานรวมปลั๊กอินกับ 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. ตรวจสอบ dependency ของ PushwooshVoIP
Anchor link toปลั๊กอินจะลิงก์โมดูล PushwooshVoIP โดยอัตโนมัติ บน cordova-ios 8 ปลั๊กอินจะเพิ่ม Swift package PushwooshVoIP และไม่เปลี่ยนแปลง Podfile บน cordova-ios เวอร์ชันก่อนหน้า ปลั๊กอินจะเพิ่มบรรทัดนี้ลงใน Podfile ของคุณ:
pod 'PushwooshXCFramework/PushwooshVoIP'โมดูลนี้จำเป็นสำหรับการรองรับการแจ้งเตือน VoIP ที่ใช้ PushKit และการจัดการการโทรระดับระบบ
3. เปิดใช้งานโหมดเบื้องหลัง VoIP ใน Xcode
Anchor link toเปิดโปรเจกต์ของคุณใน Xcode และทำตามขั้นตอนเหล่านี้:
- ไปที่ Signing & Capabilities
- เพิ่ม capability Background Modes
- เลือกตัวเลือก Voice over IP
การทำเช่นนี้จะช่วยให้แอปของคุณสามารถรับ push การโทร VoIP ขาเข้าได้ในขณะที่ทำงานในเบื้องหลัง
4. ขออนุญาตการโทรบน Android
Anchor link toบน Android แอปต้องได้รับอนุญาตจากผู้ใช้เพื่อรับสาย ขออนุญาตด้วย requestCallPermission() หากผู้ใช้ปฏิเสธ แอปจะเพิกเฉยต่อสาย VoIP ที่เข้ามา
pushwoosh.requestCallPermission();5. ตั้งค่าเสียงเรียกเข้าแบบกำหนดเอง (ไม่บังคับ)
Anchor link toปลั๊กอินจะเริ่มต้น VoIP โดยอัตโนมัติ หากต้องการเล่นเสียงเรียกเข้าแบบกำหนดเองสำหรับสายเรียกเข้า ให้ส่งชื่อไฟล์เสียงจาก app bundle:
pushwoosh.setRingtone("incoming.caf");6. callbacks และเมธอด VoIP ที่มีให้ใช้งาน
Anchor link toการรองรับวิดีโอและรูปแบบหมายเลขผู้โทรจะกำหนดต่อการโทรแต่ละครั้งใน payload ของพุช VoIP: video และบน iOS คือ handleType (1 สำหรับทั่วไป, 2 สำหรับหมายเลขโทรศัพท์, 3 สำหรับอีเมล)
ปลั๊กอิน Cordova รองรับเมธอดและอีเวนต์ที่เกี่ยวข้องกับ VoIP ดังต่อไปนี้:
answer– ถูกเรียกเมื่อผู้ใช้รับสายเรียกเข้าendCall– ถูกเรียกเมื่อผู้ใช้วางสายปัจจุบันhangup– ถูกเรียกเมื่อมีการวางสายreject– ถูกเรียกเมื่อสายเรียกเข้าถูกปฏิเสธmuted– สลับสถานะปิดเสียง, สำหรับ iOS เท่านั้นheld– สลับสถานะพักสาย, สำหรับ iOS เท่านั้นvoipPushPayload– คืนค่า push payload สำหรับสาย VoIP ที่เข้ามาincomingCallSuccess– ถูกเรียกเมื่อ UI การโทรของระบบแสดงผลสำเร็จ, สำหรับ iOS เท่านั้นincomingCallFailure– ถูกเรียกเมื่อ UI การโทรของระบบแสดงผลไม่สำเร็จ, สำหรับ iOS เท่านั้นspeakerOn– เปิดลำโพงspeakerOff– ปิดลำโพงplayDTMF– เล่นเสียง DTMF ระหว่างการโทร, สำหรับ iOS เท่านั้นvoipDidRegisterTokenSuccessfully– เรียกใช้เมื่อโทเค็น VoIP ลงทะเบียนกับ Pushwoosh สำเร็จ, สำหรับ iOS เท่านั้นvoipDidFailToRegisterTokenWithError– เรียกใช้เมื่อการลงทะเบียนโทเค็น VoIP ล้มเหลว, สำหรับ iOS เท่านั้นvoipDidCancelCall– เรียกใช้เมื่อสายถูกยกเลิกจากระยะไกลผ่านพุช VoIPvoipDidFailToCancelCall– เรียกใช้เมื่อการพยายามยกเลิกสายล้มเหลว
สามารถเชื่อมต่อสิ่งเหล่านี้ได้โดยใช้อ็อบเจกต์ PushNotification ของ Cordova ซึ่งช่วยให้คุณสามารถควบคุมและตอบสนองต่อการเปลี่ยนแปลงสถานะการโทร VoIP ได้
บน Android คุณยังสามารถจัดการอีเวนต์เหล่านี้ในคลาส Java แบบเนทีฟของคุณเองได้ เช่น เพื่อเปิดหน้าจอการโทรของคุณเองเมื่อผู้ใช้รับสาย ดู ตัวจัดการอีเวนต์การโทรแบบกำหนดเองบน Android