Android 6.0 (Marshmallow) menghadirkan implementasi dukungan pesan suara visual (VVM) yang terintegrasi ke dalam Telepon, sehingga layanan VVM operator yang kompatibel dapat terhubung ke Telepon dengan konfigurasi minimal. Pesan suara visual memungkinkan pengguna memeriksa pesan suara dengan mudah tanpa melakukan panggilan telepon. Pengguna dapat melihat daftar pesan di 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 sebelumnya yang dikontrol oleh
KEY_VVM_PREFETCH_BOOLEAN
- Kontrol apakah koneksi data seluler diperlukan oleh
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
- Pengambilan transkripsi pesan suara
- Pengambilan kuota pesan suara
Halaman ini memberikan ringkasan tentang apa yang disediakan, cara operator dapat berintegrasi dengannya, dan beberapa detail penerapan.
Klien pesan suara visual (VVM)
Android 6.0 dan yang lebih baru menyertakan klien VVM OMTP, yang (jika diberikan dengan konfigurasi yang benar) terhubung ke server VVM operator dan mengisi pesan VVM dalam Project Open Source Android (AOSP) Dialer. Klien VVM:
- Menangani pesan SMS yang digunakan untuk mengaktifkan/menonaktifkan/mengkueri status layanan dan pesan SMS yang digunakan untuk memberi tahu perangkat tentang peristiwa di kotak surat pelanggan
- Menyinkronkan kotak surat dengan server IMAP
- Mendownload pesan suara saat pengguna memilih untuk mendengarkannya
- Mengambil transkrip pesan suara
- Mengambil detail kuota pesan suara (total ukuran kotak surat dan ukuran yang terisi)
- Berintegrasi ke Telepon untuk fungsi pengguna seperti menelepon balik, melihat pesan yang belum dibaca, menghapus pesan, dll.
Mengintegrasikan dengan klien VVM
Implementasi
Operator harus menyediakan server pesan suara visual yang menerapkan spesifikasi VVM OMTP. Implementasi klien VVM AOSP saat ini mendukung fitur inti (membaca/menghapus pesan suara, mendownload/menyinkronkan/mendengarkan), tetapi fitur TUI tambahan (perubahan sandi, ucapan pesan suara, bahasa) tidak diterapkan. Saat ini, kami hanya mendukung OMTP versi 1.1 dan tidak menggunakan enkripsi untuk autentikasi IMAP.
Untuk mendukung transkripsi, operator harus mendukung format lampiran transkripsi (jenis MIME biasa/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 detail 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 ada yang disediakan), sehingga implementasi platform dapat dinonaktifkan jika paket tersebut diinstal
Nilai ini diberikan melalui Carrier Config API. Fungsi ini, yang diluncurkan di Android 6.0, memungkinkan aplikasi menyediakan konfigurasi terkait telefoni secara dinamis ke berbagai komponen platform yang membutuhkannya. 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
Lihat Konfigurasi operator untuk mengetahui detailnya.
Implementasi
Klien VVM OMTP diimplementasikan dalam packages/services/Telephony
,
khususnya dalam src/com/android/phone/vvm/
Penyiapan
- Klien VVM memproses
TelephonyIntents#ACTION_SIM_STATE_CHANGED
atauCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
. - Saat SIM ditambahkan yang memiliki nilai Konfigurasi Operator yang tepat
(
KEY_VVM_TYPE_STRING
ditetapkan keTelephonyManager.VVM_TYPE_OMTP
atauTelephonyManager.VVM_TYPE_CVVM
), klien VVM akan mengirim SMS AKTIFKAN ke nilai yang ditentukan diKEY_VVM_DESTINATION_NUMBER_STRING
. - Server mengaktifkan layanan pesan suara visual dan mengirimkan kredensial OMTP melalui STATUS SMA. Saat klien VVM menerima SMS STATUS, klien tersebut akan mendaftarkan sumber pesan suara dan menampilkan tab pesan suara di perangkat.
- Kredensial OMTP disimpan secara lokal dan perangkat memulai sinkronisasi penuh, seperti yang dijelaskan di bawah.
Sinkronisasi
Ada berbagai cara klien VVM dapat menyinkronkan dengan server operator dan sebaliknya.
- Sinkronisasi penuh terjadi setelah download 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
adalah Benar. Sinkronisasi penuh dapat dipicu oleh:- Memasukkan SIM baru
- Memulai ulang perangkat
- Kembali beroperasi
- Menerima siaran
VoicemailContract.ACTION_SYNC_VOICEMAIL
- Sinkronisasi upload terjadi saat pengguna berinteraksi dengan pesan suara untuk membaca atau menghapusnya. Sinkronisasi upload menyebabkan server mengubah datanya agar cocok dengan data di perangkat. Misalnya, jika pengguna membaca pesan suara, pesan tersebut akan ditandai sebagai telah dibaca di server; jika pengguna menghapus pesan suara, pesan tersebut akan dihapus di server.
- Sinkronisasi download terjadi saat 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 selama setiap sinkronisasi.
Download pesan suara
Saat pengguna menekan putar untuk mendengarkan pesan suara, file audio yang sesuai
akan didownload. Jika pengguna memilih untuk mendengarkan pesan suara, Telepon dapat
menyiarkan VoicemailContract.ACTION_FETCH_VOICEMAIL
, yang
diterima klien pesan suara, memulai download
konten, dan memperbarui data di penyedia konten pesan suara platform.
Menonaktifkan VVM
Layanan VVM dapat dinonaktifkan atau dideaktifkan oleh interaksi pengguna, penghapusan SIM yang valid, atau penggantian oleh aplikasi VVM operator. Nonaktif berarti perangkat lokal tidak lagi menampilkan pesan suara visual. Dinonaktifkan berarti layanan dinonaktifkan untuk pelanggan. Interaksi pengguna dapat menonaktifkan layanan, penghapusan SIM akan menonaktifkan layanan untuk sementara karena layanan tidak ada lagi, dan penggantian VVM operator akan menonaktifkan klien VVM AOSP.
Interaksi pengguna
Pengguna dapat mengaktifkan atau menonaktifkan pesan suara visual secara manual. Jika pengguna menonaktifkan pesan suara visual, mereka juga menonaktifkan layanan mereka. Saat pengguna menonaktifkan pesan suara visual, SMS DEACTIVATE akan dikirim, sumber pesan suara tidak terdaftar secara lokal, dan tab pesan suara akan hilang. 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 tertentu tidak ada lagi, maka
sumber pesan suara tidak terdaftar secara lokal dan tab pesan suara akan hilang. Jika
SIM diganti, VVM akan diaktifkan kembali.
Diganti dengan VVM operator
Aplikasi pesan suara visual operator, jika diinstal di perangkat, dapat menonaktifkan
klien VVM AOSP. Hal ini dicapai dengan memeriksa apakah paket dengan nama
yang cocok dengan parameter KEY_CARRIER_VVM_PACKAGE_NAME_STRING
diinstal.
Klien VVM masih dapat diaktifkan melalui interaksi pengguna.
Pengujian
Ada serangkaian pengujian CTS yang ada (sejak Android 4.0) untuk VoicemailProvider API yang memungkinkan aplikasi menyisipkan/mengkueri/menghapus pesan suara ke platform. Ini adalah API yang sama dengan yang digunakan VVM untuk menambahkan/menghapus pesan suara sehingga aplikasi Telepon apa pun dapat menampilkannya di UI.
Untuk menguji apakah aplikasi konfigurasi Anda meneruskan konfigurasi OMTP dengan benar, Anda dapat menguji kode dengan:
- Kartu SIM yang berisi tanda tangan sertifikat yang valid
- Perangkat yang menjalankan Android 6.0 dengan framework ponsel AOSP versi yang tidak dimodifikasi