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