Görsel Sesli Posta

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

  1. VVM istemcisi TelephonyIntents#ACTION_SIM_STATE_CHANGED veya CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED öğesini dinler.
  2. Doğru Taşıyıcı Yapılandırma değerlerine sahip bir SIM eklendiğinde ( KEY_VVM_TYPE_STRING , TelephonyManager.VVM_TYPE_OMTP veya TelephonyManager.VVM_TYPE_CVVM olarak ayarlanmıştır), VVM istemcisi KEY_VVM_DESTINATION_NUMBER_STRING içinde belirtilen değere bir ETKİNLEŞTİR SMS'i gönderir.
  3. 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.
  4. 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