การโทร VoIP ด้วย Cordova
Pushwoosh รองรับการแจ้งเตือนการโทรสไตล์ VoIP สำหรับ iOS และ Android โดยใช้ pushwoosh-cordova-plugin ซึ่งจะเปิดใช้งานฟังก์ชันการโทร VoIP แบบเนทีฟ รวมถึง UI การโทรเข้าและอีเวนต์ควบคุมการโทร
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 CocoaPod
Anchor link toตรวจสอบให้แน่ใจว่า PushwooshVoIP pod ถูกรวมไว้โดยอัตโนมัติผ่านปลั๊กอิน หากจำเป็น ให้ตรวจสอบด้วยตนเองใน Podfile ของคุณ:
pod 'PushwooshVoIP'pod นี้จำเป็นสำหรับการรองรับการแจ้งเตือน VoIP ที่ใช้ PushKit และการจัดการการโทรในระดับระบบ
3. เปิดใช้งานโหมดเบื้องหลัง VoIP ใน Xcode
Anchor link toเปิดโปรเจกต์ของคุณใน Xcode และทำตามขั้นตอนเหล่านี้:
- ไปที่ Signing & Capabilities
- เพิ่ม capability Background Modes
- เลือกตัวเลือก Voice over IP
การทำเช่นนี้จะช่วยให้แอปของคุณสามารถรับ push การโทร VoIP ขาเข้าได้ในขณะที่ทำงานในเบื้องหลัง
4. กำหนดค่ารหัสแอป VoIP (หากใช้ทั้ง VoIP และ push ปกติ)
Anchor link toหากแอปของคุณใช้ทั้ง push แบบมาตรฐานและ VoIP คุณต้องตั้งค่ารหัสแอปพลิเคชัน VoIP อย่างชัดเจนก่อนการเริ่มต้น VoIP:
pushwoosh.setVoipAppCode("XXXXX-XXXXX");แทนที่ "XXXXX-XXXXX" ด้วย Pushwoosh App Code ที่กำหนดให้กับแอปพลิเคชันที่เปิดใช้งาน VoIP ของคุณใน Pushwoosh Control Panel
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– bitmask ตัวเลขสำหรับประเภท handle การโทร (1สำหรับหมายเลขโทรศัพท์,2สำหรับอีเมล, ฯลฯ)
7. callbacks และเมธอด VoIP ที่มีให้ใช้งาน
Anchor link toปลั๊กอิน 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 เท่านั้น
สามารถเชื่อมต่อสิ่งเหล่านี้ได้โดยใช้อ็อบเจกต์ PushNotification ของ Cordova ซึ่งช่วยให้คุณสามารถควบคุมและตอบสนองต่อการเปลี่ยนแปลงสถานะการโทร VoIP ได้