วอยซ์เมลแบบภาพ

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/

ติดตั้ง

  1. ไคลเอ็นต์ VVM รับฟัง TelephonyIntents#ACTION_SIM_STATE_CHANGED หรือ CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
  2. เมื่อมีการเพิ่ม SIM ที่มีค่า Carrier Config ที่ถูกต้อง (ตั้ง KEY_VVM_TYPE_STRING เป็น TelephonyManager.VVM_TYPE_OMTP หรือ TelephonyManager.VVM_TYPE_CVVM ) ไคลเอ็นต์ VVM จะส่ง ACTIVATE SMS ไปยังค่าที่ระบุใน KEY_VVM_DESTINATION_NUMBER_STRING
  3. เซิร์ฟเวอร์เปิดใช้งานบริการข้อความเสียงพร้อมภาพและส่งข้อมูลรับรอง OMTP ผ่านทาง SMS สถานะ เมื่อไคลเอ็นต์ VVM ได้รับ SMS สถานะ ไคลเอ็นต์จะลงทะเบียนแหล่งข้อความเสียงและแสดงแท็บข้อความเสียงบนอุปกรณ์
  4. ข้อมูลประจำตัว 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 เวอร์ชันที่ยังไม่ได้แก้ไข