Android 6.0 (Marshmallow) นำการรองรับ Visual Voicemail (VVM) มาใช้งานใน Dialer ทำให้บริการ Carrier VVM ที่ใช้งานร่วมกันได้เชื่อมต่อกับ Dialer ด้วยการกำหนดค่าขั้นต่ำ ข้อความเสียงพร้อมภาพช่วยให้ผู้ใช้ตรวจสอบข้อความเสียงได้อย่างง่ายดายโดยไม่ต้องโทรออก ผู้ใช้สามารถดูรายการข้อความในอินเทอร์เฟซเหมือนกล่องจดหมาย ฟังในลำดับใดก็ได้ และสามารถลบได้ตามต้องการ
Android 7.0 เพิ่มพารามิเตอร์การกำหนดค่าต่อไปนี้ให้กับข้อความเสียงพร้อมภาพ:
- การดึงข้อความเสียงล่วงหน้าที่ควบคุมโดย
KEY_VVM_PREFETCH_BOOLEAN
- ควบคุมว่าจำเป็นต้องมีการเชื่อมต่อข้อมูลมือถือโดย
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
หรือไม่ - กำลังดึงข้อมูลการถอดข้อความเสียง
- กำลังดึงโควต้าข้อความเสียง
บทความนี้จะให้ภาพรวมของสิ่งที่มีให้ วิธีที่ผู้ให้บริการสามารถผสานรวมเข้ากับบทความนี้ และรายละเอียดบางประการของการนำไปปฏิบัติ
ไคลเอ็นต์ข้อความเสียงพร้อมภาพ (VVM)
Android 6.0 ขึ้นไปมีไคลเอ็นต์ OMTP VVM ซึ่งจะเชื่อมต่อกับเซิร์ฟเวอร์ Carrier VVM และเติมข้อความเสียงพร้อมภาพภายใน Android Open Source Project (AOSP) Dialer ไคลเอนต์ VVM:
- จัดการข้อความ SMS ที่ใช้ในการเปิด/ปิดใช้งาน/สอบถามสถานะของบริการและข้อความ SMS ที่ใช้ในการแจ้งอุปกรณ์เกี่ยวกับเหตุการณ์ในกล่องจดหมายของสมาชิก
- ซิงค์กล่องจดหมายกับเซิร์ฟเวอร์ IMAP
- ดาวน์โหลดข้อความเสียงเมื่อผู้ใช้เลือกที่จะฟัง
- ดึงข้อมูลการถอดข้อความเสียง
- ดึงรายละเอียดโควต้าวอยซ์เมล (ขนาดกล่องจดหมายรวมและขนาดที่ใช้งาน)
- รวมเข้ากับ Dialer เพื่อฟังก์ชันการทำงานของผู้ใช้ เช่น การโทรกลับ การดูข้อความที่ยังไม่ได้อ่าน การลบข้อความ เป็นต้น
บูรณาการกับไคลเอนต์ VVM
การนำไปปฏิบัติ
ผู้ให้บริการจะต้องจัดเตรียมเซิร์ฟเวอร์ข้อความเสียงพร้อมภาพที่ใช้ ข้อกำหนด OMTP VVM การใช้งานไคลเอ็นต์ AOSP VVM ในปัจจุบันรองรับคุณสมบัติหลัก (อ่าน/ลบข้อความเสียง ดาวน์โหลด/ซิงค์/ฟัง) แต่ไม่ได้นำคุณสมบัติ TUI เพิ่มเติม (การเปลี่ยนรหัสผ่าน คำทักทายข้อความเสียง ภาษา) มาใช้ ในขณะนี้ เราสนับสนุนเฉพาะ OMTP เวอร์ชัน 1.1 และไม่ใช้การเข้ารหัสสำหรับการตรวจสอบสิทธิ์ IMAP
เพื่อรองรับการถอดเสียง ผู้ให้บริการจะต้องรองรับรูปแบบไฟล์แนบการถอดเสียง (ประเภท MIME ธรรมดา/ข้อความ) ที่ระบุในข้อมูลจำเพาะ OMTP 1.3 รายการ 2.1.3
หมายเหตุ : ข้อความ SMS ที่มาจากเซิร์ฟเวอร์ไปยังอุปกรณ์ (เช่น สถานะหรือ SYNC) จะต้องเป็นข้อความ SMS ข้อมูล
การกำหนดค่า
เพื่อให้ผู้ให้บริการรวมเข้ากับบริการ VVM ผู้ให้บริการจะต้องจัดเตรียมรายละเอียดการกำหนดค่าให้กับแพลตฟอร์มที่ไคลเอ็นต์ OMTP สามารถใช้ได้ พารามิเตอร์เหล่านี้คือ:
- หมายเลขปลายทางและหมายเลขพอร์ตสำหรับ SMS
- ชื่อแพ็กเกจของแอปข้อความเสียงพร้อมภาพที่ผู้ให้บริการให้ไว้ (หากมีให้) เพื่อให้สามารถปิดใช้งานการใช้งานแพลตฟอร์มได้หากติดตั้งแพ็คเกจนั้น
ค่าเหล่านี้มีให้ผ่าน Carrier Config API ฟังก์ชันการทำงานนี้เปิดตัวใน Android 6.0 ช่วยให้แอปพลิเคชันสามารถจัดเตรียมการกำหนดค่าที่เกี่ยวข้องกับระบบโทรศัพท์แบบไดนามิกให้กับส่วนประกอบแพลตฟอร์มต่างๆ ที่ต้องการ โดยเฉพาะคีย์ต่อไปนี้จะต้องมีการกำหนดค่า:
-
KEY_VVM_DESTINATION_NUMBER_STRING
-
KEY_VVM_PORT_NUMBER_INT
-
KEY_VVM_TYPE_STRING
-
KEY_CARRIER_VVM_PACKAGE_NAME_STRING
-
KEY_VVM_PREFETCH_BOOLEAN
-
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
โปรดดูบทความ การกำหนดค่าผู้ให้บริการ สำหรับรายละเอียดเพิ่มเติม
การนำไปปฏิบัติ
ไคลเอนต์ OMTP VVM ถูกนำไปใช้ภายใน packages/services/Telephony
โดยเฉพาะภายใน src/com/android/phone/vvm/
ติดตั้ง
- ไคลเอ็นต์ VVM รับฟัง
TelephonyIntents#ACTION_SIM_STATE_CHANGED
หรือCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
- เมื่อมีการเพิ่ม SIM ที่มีค่า Carrier Config ที่ถูกต้อง (ตั้ง
KEY_VVM_TYPE_STRING
เป็นTelephonyManager.VVM_TYPE_OMTP
หรือTelephonyManager.VVM_TYPE_CVVM
) ไคลเอ็นต์ VVM จะส่ง ACTIVATE SMS ไปยังค่าที่ระบุในKEY_VVM_DESTINATION_NUMBER_STRING
- เซิร์ฟเวอร์เปิดใช้งานบริการข้อความเสียงพร้อมภาพและส่งข้อมูลรับรอง OMTP ผ่านทาง SMS สถานะ เมื่อไคลเอ็นต์ VVM ได้รับ SMS สถานะ ไคลเอ็นต์จะลงทะเบียนแหล่งข้อความเสียงและแสดงแท็บข้อความเสียงบนอุปกรณ์
- ข้อมูลประจำตัว OMTP จะถูกบันทึกไว้ในเครื่อง และอุปกรณ์จะเริ่มการซิงค์แบบเต็มตามที่อธิบายไว้ด้านล่าง
กำลังซิงค์
มีหลายวิธีที่ไคลเอนต์ VVM สามารถซิงค์กับเซิร์ฟเวอร์ผู้ให้บริการและในทางกลับกัน
- การซิงค์แบบเต็ม เกิดขึ้นเมื่อดาวน์โหลดครั้งแรก ไคลเอนต์ VVM ดึงข้อมูลเมตาวอยซ์เมล เช่น วันที่และเวลา หมายเลขต้นทาง ระยะเวลา; การถอดเสียงข้อความเสียง (ถ้ามี) และข้อมูลเสียงหาก
KEY_VVM_PREFETCH_BOOLEAN
เป็น True การซิงค์แบบเต็มสามารถทริกเกอร์ได้โดย:- การใส่ซิมใหม่
- กำลังรีบูตอุปกรณ์
- กลับมาให้บริการแล้ว
- กำลังรับ
VoicemailContract.ACTION_SYNC_VOICEMAIL
ออกอากาศ ACTION_SYNC_VOICEMAIL
- การซิงค์การอัปโหลด เกิดขึ้นเมื่อผู้ใช้โต้ตอบกับข้อความเสียงเพื่ออ่านหรือลบ การอัปโหลดการซิงค์ส่งผลให้เซิร์ฟเวอร์เปลี่ยนข้อมูลให้ตรงกับข้อมูลบนอุปกรณ์ ตัวอย่างเช่น หากผู้ใช้อ่านข้อความเสียง ระบบจะทำเครื่องหมายว่าอ่านแล้วบนเซิร์ฟเวอร์ หากผู้ใช้ลบข้อความเสียง ข้อความนั้นจะถูกลบบนเซิร์ฟเวอร์
- ดาวน์โหลดการซิงค์ เกิดขึ้นเมื่อไคลเอ็นต์ VVM ได้รับ SMS "MBU" (อัปเดตกล่องจดหมาย) SYNC จากผู้ให้บริการ ข้อความ SYNC มีข้อมูลเมตาสำหรับข้อความใหม่เพื่อให้สามารถจัดเก็บไว้ในผู้ให้บริการเนื้อหาข้อความเสียงได้
หมายเหตุ : ค่าโควต้ากล่องจดหมายข้อความเสียงจะถูกดึงข้อมูลในระหว่างการซิงค์ทุกครั้ง
ดาวน์โหลดข้อความเสียง
เมื่อผู้ใช้กดเล่นเพื่อฟังข้อความเสียง ระบบจะดาวน์โหลดไฟล์เสียงที่เกี่ยวข้อง หากผู้ใช้เลือกที่จะฟังข้อความเสียง Dialer สามารถออกอากาศ VoicemailContract.ACTION_FETCH_VOICEMAIL
ซึ่งไคลเอ็นต์ข้อความเสียงจะได้รับ เริ่มการดาวน์โหลดเนื้อหา และอัปเดตบันทึกในผู้ให้บริการเนื้อหาข้อความเสียงของแพลตฟอร์ม
ปิดการใช้งาน VVM
บริการ VVM สามารถปิดหรือปิดใช้งานได้โดยการโต้ตอบของผู้ใช้ การลบ SIM ที่ถูกต้องออก หรือการเปลี่ยนโดยแอป VVM ของผู้ให้บริการ ปิดใช้งาน หมายความว่าอุปกรณ์ภายในเครื่องไม่แสดงข้อความเสียงพร้อมภาพอีกต่อไป ปิดการใช้งาน หมายความว่าบริการถูกปิดสำหรับผู้สมัครสมาชิก การโต้ตอบของผู้ใช้สามารถปิดใช้งานบริการได้ การนำ SIM ออกจะปิดใช้งานบริการชั่วคราวเนื่องจากไม่มีอยู่อีกต่อไป และการแทนที่ VVM ของผู้ให้บริการจะปิดใช้งานไคลเอ็นต์ AOSP VVM
ปฏิสัมพันธ์ของผู้ใช้
ผู้ใช้อาจเปิดหรือปิดใช้งานข้อความเสียงพร้อมภาพด้วยตนเอง หากผู้ใช้ปิดใช้งานข้อความเสียงพร้อมภาพ แสดงว่าพวกเขากำลังปิดใช้งานบริการของตนด้วย เมื่อปิดใช้งานข้อความเสียงพร้อมภาพ ระบบจะส่ง SMS ปิดการใช้งาน แหล่งที่มาของข้อความเสียงจะไม่ถูกลงทะเบียนในเครื่อง และแท็บข้อความเสียงจะหายไป หากเปิดใช้งานข้อความเสียงพร้อมภาพอีกครั้ง บริการของพวกเขาจะถูกเปิดใช้งานอีกครั้งเช่นกัน
การถอดซิม
หากมีการเปลี่ยนแปลงสถานะ SIM ของอุปกรณ์ ( ACTION_SIM_STATE_CHANGED
) หรือค่าการกำหนดค่าผู้ให้บริการ ( ACTION_CARRIER_CONFIG_CHANGED
) และการกำหนดค่าที่ถูกต้องสำหรับ SIM ที่กำหนดไม่มีอยู่อีกต่อไป แหล่งที่มาของข้อความเสียงจะถูกยกเลิกการลงทะเบียนในเครื่องและแท็บข้อความเสียงจะหายไป หากเปลี่ยนซิมแล้ว VVM จะถูกเปิดใช้งานอีกครั้ง
แทนที่ด้วยผู้ให้บริการ VVM
หากติดตั้งแอปข้อความเสียงพร้อมภาพจากผู้ให้บริการไว้ในอุปกรณ์ จะสามารถปิดใช้งานไคลเอ็นต์ AOSP VVM ได้ ซึ่งทำได้โดยการตรวจสอบว่ามีการติดตั้งแพ็กเกจที่มีชื่อตรงกับพารามิเตอร์ KEY_CARRIER_VVM_PACKAGE_NAME_STRING
หรือไม่
ไคลเอ็นต์ VVM ยังคงสามารถเปิดใช้งานได้ผ่านการโต้ตอบกับผู้ใช้
การทดสอบ
มีชุดการทดสอบ CTS ที่มีอยู่ (ตั้งแต่ Android 4.0) สำหรับ VoicemailProvider API ที่อนุญาตให้แอปแทรก/สอบถาม/ลบข้อความเสียงลงในแพลตฟอร์ม เหล่านี้เป็น API เดียวกับที่ VVM ใช้เพื่อเพิ่ม/ลบข้อความเสียง เพื่อให้แอป Dialer สามารถแสดงใน UI ได้
หากต้องการทดสอบแอปพลิเคชันการกำหนดค่าของคุณผ่านการกำหนดค่า OMTP อย่างถูกต้อง คุณสามารถทดสอบโค้ดของคุณด้วย:
- ซิมที่มีลายเซ็นใบรับรองที่ถูกต้อง
- อุปกรณ์ที่ใช้ Android 6.0 พร้อมเฟรมเวิร์กโทรศัพท์ AOSP เวอร์ชันที่ยังไม่ได้แก้ไข