Android 6.0 (Marshmallow), Dialer'a entegre görsel sesli posta (VVM) desteği uygulamasını getirerek, uyumlu Carrier VVM hizmetlerinin Dialer'a minimum yapılandırmayla bağlanmasına olanak tanıdı. Görsel sesli posta, kullanıcıların herhangi bir telefon görüşmesi yapmadan sesli postayı kolayca kontrol etmelerini sağlar. Kullanıcılar gelen kutusu benzeri bir arayüzde mesajların listesini görüntüleyebilir, istedikleri sırayla dinleyebilir ve istedikleri gibi silebilirler.
Android 7.0, görsel sesli postaya aşağıdaki yapılandırma parametrelerini ekledi:
-
KEY_VVM_PREFETCH_BOOLEAN
tarafından kontrol edilen sesli mesajların önceden getirilmesi -
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
tarafından hücresel veri bağlantısının gerekli olup olmadığının kontrolü - Sesli posta transkripsiyonlarının getirilmesi
- Sesli mesaj kotası getiriliyor
Bu makalede sunulanlar, operatörlerin bununla nasıl entegre olabileceği ve uygulamaya ilişkin bazı ayrıntılar hakkında genel bir bakış sunulmaktadır.
Görsel sesli posta (VVM) istemcisi
Android 6.0 ve üzeri, (doğru yapılandırma sağlandığında) Carrier VVM sunucularına bağlanacak ve görsel sesli posta mesajlarını Android Açık Kaynak Projesi (AOSP) Çevirici içine yerleştirecek bir OMTP VVM istemcisi içerir. VVM istemcisi:
- Hizmeti etkinleştirmek/devre dışı bırakmak/sorgulamak için kullanılan SMS mesajlarını ve abonenin posta kutusundaki olayları cihaza bildirmek için kullanılan SMS mesajlarını yönetir
- Posta kutusunu IMAP sunucusuyla senkronize eder
- Kullanıcı dinlemeyi seçtiğinde sesli mesajları indirir
- Sesli mesajın transkripsiyonlarını getirir
- Sesli posta kotasının ayrıntılarını getirir (toplam posta kutusu boyutu ve kullanılan boyut)
- Geri arama, okunmamış mesajları görüntüleme, mesajları silme vb. gibi kullanıcı işlevleri için Çeviriciye entegre olur.
VVM istemcisiyle entegrasyon
Uygulama
Taşıyıcı, OMTP VVM spesifikasyonlarını uygulayan görsel bir sesli posta sunucusu sağlamalıdır. AOSP VVM istemcisinin mevcut uygulaması temel özellikleri (sesli postaları okuma/silme, indirme/senkronize etme/dinleme) desteklemektedir ancak ek TUI özellikleri (şifre değiştirme, sesli posta karşılama, diller) uygulanmamaktadır. Şu anda yalnızca OMTP sürüm 1.1'i destekliyoruz ve IMAP kimlik doğrulaması için şifreleme kullanmıyoruz.
Transkripsiyonları desteklemek için operatörlerin, OMTP 1.3 spesifikasyonu, madde 2.1.3'te belirtilen transkripsiyon eki formatını (MIME türü düz/metin) desteklemesi gerekir.
Not : Cihaza gönderilen sunucu kaynaklı SMS mesajları (örn. STATUS veya SYNC) veri SMS mesajları olmalıdır.
Yapılandırma
Bir operatörün VVM hizmetiyle entegre olabilmesi için operatörün, OMTP istemcisinin kullanabileceği platforma yapılandırma ayrıntılarını sağlaması gerekir. Bu parametreler şunlardır:
- SMS için hedef numarası ve port numarası
- Operatör tarafından sağlanan görsel sesli posta uygulamasının paket adı (varsa), böylece bu paket kurulursa platform uygulaması devre dışı bırakılabilir
Bu değerler Carrier Config API aracılığıyla sağlanır. Android 6.0'da başlatılan bu işlevsellik, bir uygulamanın, ihtiyaç duyan çeşitli platform bileşenlerine telefonla ilgili yapılandırmayı dinamik olarak sağlamasına olanak tanır. Özellikle aşağıdaki anahtarların tanımlanmış değerleri olmalıdır:
-
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
Daha ayrıntılı bilgi için lütfen Taşıyıcı Yapılandırması makalesine bakın.
Uygulama
OMTP VVM istemcisi packages/services/Telephony
içinde, özellikle de src/com/android/phone/vvm/
içinde uygulanır.
Kurmak
- VVM istemcisi
TelephonyIntents#ACTION_SIM_STATE_CHANGED
veyaCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
öğesini dinler. - Doğru Taşıyıcı Yapılandırma değerlerine sahip bir SIM eklendiğinde (
KEY_VVM_TYPE_STRING
,TelephonyManager.VVM_TYPE_OMTP
veyaTelephonyManager.VVM_TYPE_CVVM
olarak ayarlanmıştır), VVM istemcisiKEY_VVM_DESTINATION_NUMBER_STRING
içinde belirtilen değere bir ETKİNLEŞTİR SMS'i gönderir. - Sunucu, görsel sesli posta hizmetini etkinleştirir ve OMTP kimlik bilgilerini STATUS sms yoluyla gönderir. VVM istemcisi DURUM sms'ini aldığında sesli posta kaynağını kaydeder ve cihazda sesli posta sekmesini görüntüler.
- OMTP kimlik bilgileri yerel olarak kaydedilir ve aşağıda açıklandığı gibi cihaz tam senkronizasyona başlar.
Senkronizasyon
VVM istemcisinin taşıyıcı sunucuyla (ve bunun tersi) senkronize edilebilmesinin çeşitli yolları vardır.
- İlk indirme sırasında tam senkronizasyon gerçekleşir. VVM istemcisi tarih ve saat gibi sesli posta meta verilerini getirir; menşe numarası; süre; varsa sesli posta transkripsiyonları; ve
KEY_VVM_PREFETCH_BOOLEAN
Doğru ise ses verileri. Tam senkronizasyonlar şu şekilde tetiklenebilir:- Yeni bir SIM takma
- Cihazı yeniden başlatma
- Hizmete geri dönüyoruz
-
VoicemailContract.ACTION_SYNC_VOICEMAIL
yayını alınıyor
- Yükleme senkronizasyonu, bir kullanıcı bir sesli mesajı okumak veya silmek için etkileşimde bulunduğunda gerçekleşir. Yükleme senkronizasyonları, sunucunun verilerini cihazdaki verilerle eşleşecek şekilde değiştirmesine neden olur. Örneğin, kullanıcı bir sesli mesajı okursa bu mesaj sunucuda okundu olarak işaretlenir; kullanıcı bir sesli mesajı silerse, mesaj sunucuda da silinir.
- İndirme senkronizasyonu, VVM istemcisi operatörden bir "MBU" (posta kutusu güncellemesi) SYNC sms'i aldığında gerçekleşir. Bir SYNC mesajı, sesli posta içerik sağlayıcısında saklanabilmesi için yeni bir mesajın meta verilerini içerir.
Not : Sesli posta gelen kutusu kota değerleri her senkronizasyon sırasında alınır.
Sesli mesaj indirme
Kullanıcı bir sesli mesajı dinlemek için oynat tuşuna bastığında ilgili ses dosyası indirilir. Kullanıcı sesli postayı dinlemeyi seçerse Çevirici, sesli posta istemcisinin alacağı VoicemailContract.ACTION_FETCH_VOICEMAIL
yayınlayabilir, içeriğin indirilmesini başlatabilir ve platformun sesli posta içerik sağlayıcısındaki kaydı güncelleyebilir.
VVM'yi devre dışı bırakma
VVM hizmeti, kullanıcı etkileşimi, geçerli bir SIM'in çıkarılması veya operatörün VVM uygulamasıyla değiştirilmesi yoluyla devre dışı bırakılabilir veya devre dışı bırakılabilir. Devre dışı , yerel cihazın artık görsel sesli posta görüntülemediği anlamına gelir. Devre Dışı, abone için hizmetin kapalı olduğu anlamına gelir. Kullanıcı etkileşimi hizmeti devre dışı bırakabilir, SIM'in çıkarılması hizmeti artık mevcut olmadığından geçici olarak devre dışı bırakır ve operatör VVM'nin değiştirilmesi AOSP VVM istemcisini devre dışı bırakır.
Kullanıcı etkileşimi
Kullanıcı görsel sesli postayı manuel olarak etkinleştirebilir veya devre dışı bırakabilir. Bir kullanıcı görsel sesli postayı devre dışı bırakırsa hizmetlerini de devre dışı bırakmış olur. Görsel sesli postayı devre dışı bıraktıklarında, DEVRE DIŞI BIRAKMA sms'i gönderilir, sesli posta kaynağının yerel kaydı kaldırılır ve sesli posta sekmesi kaybolur. Görsel sesli mesajı yeniden etkinleştirirlerse hizmetleri de yeniden etkinleştirilir.
SIM çıkarma
Cihazın SIM durumunda ( ACTION_SIM_STATE_CHANGED
) veya Operatör Yapılandırması değerlerinde ( ACTION_CARRIER_CONFIG_CHANGED
) değişiklikler varsa ve verilen SIM için geçerli bir yapılandırma artık mevcut değilse, sesli posta kaynağının yerel olarak kaydı silinir ve sesli posta sekmesi kaybolur. SIM değiştirilirse VVM yeniden etkinleştirilecektir.
Taşıyıcı VVM tarafından değiştirildi
Cihaza yüklenmişse operatör görsel sesli posta uygulaması AOSP VVM istemcisini devre dışı bırakabilir. Bu, KEY_CARRIER_VVM_PACKAGE_NAME_STRING
parametresiyle eşleşen ada sahip bir paketin kurulu olup olmadığı kontrol edilerek gerçekleştirilir.
VVM istemcisi yine de kullanıcı etkileşimi yoluyla etkinleştirilebilir.
Test yapmak
Bir uygulamanın platforma sesli posta eklemesine/sorgulamasına/silmesine olanak tanıyan VoicemailProvider API'leri için mevcut (Android 4.0'dan beri) bir dizi CTS testi bulunmaktadır. Bunlar, herhangi bir Dialer uygulamasının bunları kullanıcı arayüzünde görüntüleyebilmesi için VVM'nin sesli posta eklemek/silmek için kullandığı API'lerin aynısıdır.
Yapılandırma uygulamanızın OMTP yapılandırmasını doğru bir şekilde aktardığını test etmek için kodunuzu aşağıdakilerle test edebilirsiniz:
- Geçerli bir sertifika imzası içeren bir SIM
- AOSP telefon çerçevesinin değiştirilmemiş bir sürümüne sahip, Android 6.0 çalıştıran bir cihaz