Pesan Suara Visual

Android 6.0 (Marshmallow) menghadirkan implementasi dukungan pesan suara visual (VVM) yang terintegrasi ke dalam Dialer, memungkinkan layanan Carrier VVM yang kompatibel untuk terhubung ke Dialer dengan konfigurasi minimal. Pesan suara visual memungkinkan pengguna memeriksa pesan suara dengan mudah tanpa melakukan panggilan telepon apa pun. Pengguna dapat melihat daftar pesan dalam antarmuka seperti kotak masuk, mendengarkannya dalam urutan apa pun, dan dapat menghapusnya sesuai keinginan.

Android 7.0 menambahkan parameter konfigurasi berikut ke pesan suara visual:

  • Pengambilan pesan suara yang dikontrol oleh KEY_VVM_PREFETCH_BOOLEAN
  • Kontrol apakah koneksi data seluler diperlukan oleh KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
  • Mengambil transkripsi pesan suara
  • Pengambilan kuota pesan suara

Artikel ini memberikan gambaran umum tentang apa yang disediakan, bagaimana operator dapat berintegrasi dengannya, dan beberapa detail penerapannya.

Klien pesan suara visual (VVM).

Android 6.0 dan yang lebih baru menyertakan klien OMTP VVM, yang (bila dilengkapi dengan konfigurasi yang benar) akan terhubung ke server Carrier VVM dan mengisi pesan pesan suara visual dalam Android Open Source Project (AOSP) Dialer. Klien VVM:

  • Menangani pesan SMS yang digunakan untuk mengaktifkan/menonaktifkan/menanyakan status layanan dan pesan SMS yang digunakan untuk memberi tahu perangkat tentang kejadian di kotak surat pelanggan
  • Menyinkronkan kotak surat dengan server IMAP
  • Mengunduh pesan suara saat pengguna memilih untuk mendengarkannya
  • Mengambil transkripsi pesan suara
  • Mengambil detail kuota pesan suara (total ukuran kotak surat dan ukuran yang terisi)
  • Terintegrasi ke dalam Dialer untuk fungsionalitas pengguna seperti menelepon kembali, melihat pesan yang belum dibaca, menghapus pesan, dll.

Integrasikan dengan klien VVM

Penerapan

Operator harus menyediakan server pesan suara visual yang mengimplementasikan spesifikasi OMTP VVM . Implementasi klien AOSP VVM saat ini mendukung fitur inti (baca/hapus pesan suara, unduh/sinkronisasi/dengarkan) tetapi fitur TUI tambahan (perubahan kata sandi, salam pesan suara, bahasa) tidak diterapkan. Saat ini, kami hanya mendukung OMTP versi 1.1 dan tidak menggunakan enkripsi untuk otentikasi IMAP.

Untuk mendukung transkripsi, operator harus mendukung format lampiran transkripsi (tipe MIME polos/teks) yang ditentukan dalam spesifikasi OMTP 1.3, item 2.1.3.

Catatan : Pesan SMS yang berasal dari server ke perangkat (misalnya STATUS atau SYNC) harus berupa pesan SMS data.

Konfigurasi

Agar operator dapat berintegrasi dengan layanan VVM, operator harus memberikan rincian konfigurasi ke platform yang dapat digunakan klien OMTP. Parameter ini adalah:

  • Nomor tujuan dan nomor port untuk SMS
  • Nama paket aplikasi pesan suara visual yang disediakan operator (jika disediakan), sehingga penerapan platform dapat dinonaktifkan jika paket tersebut diinstal

Nilai-nilai ini diberikan melalui Carrier Config API . Fungsionalitas ini, yang diluncurkan pada Android 6.0, memungkinkan aplikasi menyediakan konfigurasi terkait telepon secara dinamis ke berbagai komponen platform yang memerlukannya. Secara khusus, kunci berikut harus memiliki nilai yang ditentukan:

  • 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

Silakan lihat artikel Konfigurasi Operator untuk lebih detail.

Penerapan

Klien OMTP VVM diimplementasikan dalam packages/services/Telephony , khususnya dalam src/com/android/phone/vvm/

Mempersiapkan

  1. Klien VVM mendengarkan TelephonyIntents#ACTION_SIM_STATE_CHANGED atau CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED .
  2. Ketika SIM ditambahkan yang memiliki nilai Konfigurasi Operator yang tepat ( KEY_VVM_TYPE_STRING diatur ke TelephonyManager.VVM_TYPE_OMTP atau TelephonyManager.VVM_TYPE_CVVM ), klien VVM mengirimkan SMS ACTIVATE ke nilai yang ditentukan dalam KEY_VVM_DESTINATION_NUMBER_STRING .
  3. Server mengaktifkan layanan pesan suara visual dan mengirimkan kredensial OMTP melalui sms STATUS. Ketika klien VVM menerima sms STATUS, ia mendaftarkan sumber pesan suara dan menampilkan tab pesan suara pada perangkat.
  4. Kredensial OMTP disimpan secara lokal dan perangkat memulai sinkronisasi penuh, seperti dijelaskan di bawah.

Sinkronisasi

Ada berbagai cara agar klien VVM dapat melakukan sinkronisasi dengan server operator dan sebaliknya.

  • Sinkronisasi penuh terjadi pada pengunduhan awal. Klien VVM mengambil metadata pesan suara seperti tanggal dan waktu; nomor asal; durasi; transkripsi pesan suara, jika tersedia; dan data audio jika KEY_VVM_PREFETCH_BOOLEAN Benar. Sinkronisasi penuh dapat dipicu oleh:
    • Memasukkan SIM baru
    • Mem-boot ulang perangkat
    • Kembali dalam pelayanan
    • Menerima siaran VoicemailContract.ACTION_SYNC_VOICEMAIL
  • Sinkronisasi unggahan terjadi saat pengguna berinteraksi dengan pesan suara untuk membaca atau menghapusnya. Sinkronisasi unggahan mengakibatkan server mengubah datanya agar sesuai dengan data di perangkat. Misalnya, jika pengguna membaca pesan suara, pesan tersebut ditandai sebagai telah dibaca di server; jika pengguna menghapus pesan suara, pesan tersebut akan terhapus di server.
  • Sinkronisasi pengunduhan terjadi ketika klien VVM menerima sms SYNC "MBU" (pembaruan kotak surat) dari operator. Pesan SYNC berisi metadata untuk pesan baru sehingga dapat disimpan di penyedia konten pesan suara.

Catatan : Nilai kuota kotak masuk pesan suara diambil setiap kali sinkronisasi.

Pengunduhan pesan suara

Saat pengguna menekan putar untuk mendengarkan pesan suara, file audio yang sesuai akan diunduh. Jika pengguna memilih untuk mendengarkan pesan suara, Dialer dapat menyiarkan VoicemailContract.ACTION_FETCH_VOICEMAIL , yang akan diterima klien pesan suara, memulai pengunduhan konten, dan memperbarui catatan di platform penyedia konten pesan suara.

Menonaktifkan VVM

Layanan VVM dapat dinonaktifkan atau dinonaktifkan melalui interaksi pengguna, penghapusan SIM yang valid, atau penggantian oleh aplikasi VVM operator. Dinonaktifkan berarti perangkat lokal tidak lagi menampilkan pesan suara visual. Dinonaktifkan berarti layanan dimatikan untuk pelanggan. Interaksi pengguna dapat menonaktifkan layanan, penghapusan SIM untuk sementara menonaktifkan layanan karena tidak ada lagi, dan penggantian VVM operator menonaktifkan klien AOSP VVM.

Interaksi pengguna

Pengguna dapat mengaktifkan atau menonaktifkan pesan suara visual secara manual. Jika pengguna menonaktifkan pesan suara visual, mereka juga menonaktifkan layanannya. Ketika mereka menonaktifkan pesan suara visual, sms NONAKTIFKAN dikirim, sumber pesan suara tidak terdaftar secara lokal, dan tab pesan suara menghilang. Jika mereka mengaktifkan kembali pesan suara visual, layanan mereka juga akan diaktifkan kembali.

penghapusan SIM

Jika ada perubahan pada status SIM perangkat ( ACTION_SIM_STATE_CHANGED ) atau nilai Konfigurasi Operator ( ACTION_CARRIER_CONFIG_CHANGED ), dan konfigurasi yang valid untuk SIM yang diberikan tidak ada lagi, sumber pesan suara akan dibatalkan pendaftarannya secara lokal dan tab pesan suara akan hilang. Jika SIM diganti, VVM akan diaktifkan kembali.

Digantikan oleh operator VVM

Aplikasi pesan suara visual operator, jika diinstal pada perangkat, dapat menonaktifkan klien AOSP VVM. Hal ini dicapai dengan memeriksa apakah paket dengan nama yang cocok dengan parameter KEY_CARRIER_VVM_PACKAGE_NAME_STRING telah diinstal.

Klien VVM masih dapat diaktifkan melalui interaksi pengguna.

Pengujian

Terdapat serangkaian pengujian CTS (sejak Android 4.0) untuk API VoicemailProvider yang memungkinkan aplikasi menyisipkan/meminta/menghapus pesan suara ke dalam platform. Ini adalah API yang sama yang digunakan VVM untuk menambah/menghapus pesan suara sehingga aplikasi Dialer mana pun dapat menampilkannya di UI.

Untuk menguji apakah aplikasi konfigurasi Anda meneruskan konfigurasi OMTP dengan benar, Anda dapat menguji kode Anda dengan:

  • SIM berisi tanda tangan sertifikat yang sah
  • Perangkat yang menjalankan Android 6.0 dengan versi kerangka telepon AOSP yang tidak dimodifikasi