Görsel sesli mesaj

Android 6.0 (Marshmallow), Görsel Sesli Mesaj (GMS) desteğini Telefon uygulamasına entegre ederek uyumlu operatör GMS hizmetlerinin minimum yapılandırmayla Telefon uygulamasına bağlanmasına olanak tanıdı. Görsel sesli mesaj, kullanıcıların telefon araması yapmadan sesli mesajı kolayca kontrol etmesine olanak tanır. Kullanıcılar, gelen kutusu benzeri bir arayüzde iletilerin listesini görüntüleyebilir, bunları istedikleri sırada dinleyebilir ve istedikleri gibi silebilir.

Android 7.0, görsel sesli mesaja aşağıdaki yapılandırma parametrelerini ekledi:

  • KEY_VVM_PREFETCH_BOOLEAN tarafından kontrol edilen sesli mesajların önceden getirilmesi
  • Hücresel veri bağlantısının gerekli olup olmadığının kontrolü KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN tarafından
  • Sesli mesaj transkriptlerinin getirilmesi
  • Sesli mesaj kotasının getirilmesi

Bu sayfada, sunulan hizmetler, operatörlerin bu hizmetlerle nasıl entegrasyon sağlayabileceği ve uygulamayla ilgili bazı ayrıntılar hakkında genel bilgiler verilmektedir.

Görsel sesli mesaj (VVM) istemcisi

Android 6.0 ve sonraki sürümlerde, doğru yapılandırma sağlandığında operatör VVM sunucularına bağlanan ve Android Open Source Project (AOSP) Telefon uygulamasında VVM mesajlarını dolduran bir OMTP VVM istemcisi bulunur. VVM istemcisi:

  • Hizmetin durumunu etkinleştirmek/devre dışı bırakmak/sorgulamak için kullanılan SMS mesajlarını ve cihazı abonenin posta kutusunda gerçekleşen etkinlikler hakkında bilgilendirmek için kullanılan SMS mesajlarını işler.
  • Posta kutusunu IMAP sunucusuyla senkronize eder
  • Kullanıcı sesli mesajları dinlemeyi seçtiğinde sesli mesajları indirir
  • Sesli mesaj transkriptlerini getirir
  • Sesli mesaj kotasının ayrıntılarını (toplam posta kutusu boyutu ve dolu boyut) getirir.
  • Geri arama, okunmamış mesajları görüntüleme, mesajları silme gibi kullanıcı işlevleri için Telefon uygulamasına entegre edilir.

VVM istemciyle entegrasyon

Uygulama

Operatör, OMTP VVM spesifikasyonlarını uygulayan bir görsel sesli mesaj sunucusu sağlamalıdır. AOSP VVM istemcisinin mevcut uygulaması temel özellikleri (sesli mesajları okuma/silme, indirme/senkronize etme/dinleme) destekler ancak ek kullanıcı arayüzü özellikleri (şifre değiştirme, sesli mesaj karşılama sesi, diller) uygulanmamıştır. Şu anda yalnızca OMTP 1.1 sürümü desteklenmektedir ve IMAP kimlik doğrulaması için şifreleme kullanılmamaktadır.

Operatörler, transkriptleri desteklemek için OMTP 1.3 spesifikasyonunun 2.1.3 numaralı maddesinde belirtilen transkript eki biçimini (MIME türü düz/metin) desteklemelidir.

Not: Sunucudan cihaza gönderilen SMS mesajları (ör. STATUS veya SYNC) veri SMS'leri olmalıdır.

Yapılandırma

Bir operatörün VVM hizmetiyle entegrasyon yapabilmesi için OMTP istemcisinin kullanabileceği yapılandırma ayrıntılarını platforma sağlaması gerekir. Bu parametreler şunlardır:

  • SMS için hedef numara ve bağlantı noktası numarası
  • Operatör tarafından sağlanan görsel sesli mesaj uygulamasının paket adı (sağlandıysa). Böylece, bu paket yüklüyse platform uygulaması devre dışı bırakılabilir.

Bu değerler Carrier Config API aracılığıyla sağlanır. Android 6.0'ta kullanıma sunulan bu işlev, uygulamaları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 değerleri tanımlanmış 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

Ayrıntılar için Operatör yapılandırması başlıklı makaleyi inceleyin.

Uygulama

OMTP VVM istemcisi, packages/services/Telephony içinde, özellikle src/com/android/phone/vvm/ içinde uygulanır.

Kurulum

  1. VVM istemcisi TelephonyIntents#ACTION_SIM_STATE_CHANGED veya CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED değerini dinler.
  2. Doğru operatör yapılandırma değerlerine (KEY_VVM_TYPE_STRING, TelephonyManager.VVM_TYPE_OMTP veya TelephonyManager.VVM_TYPE_CVVM olarak ayarlanmış) sahip bir SIM eklendiğinde VVM istemcisi, KEY_VVM_DESTINATION_NUMBER_STRING içinde belirtilen değere bir ETKİNLİK SMS'si gönderir.
  3. Sunucu, görsel sesli mesaj hizmetini etkinleştirir ve OMTP kimlik bilgilerini STATUS SMA üzerinden gönderir. VVM istemcisi STATUS SMS'sini aldığında sesli mesaj kaynağını kaydeder ve cihazda sesli mesaj sekmesini gösterir.
  4. OMTP kimlik bilgileri yerel olarak kaydedilir ve cihaz aşağıda açıklandığı gibi tam senkronizasyona başlar.

Senkronize ediliyor

VVM istemcisinin operatör sunucusuyla senkronize olmasının ve bunun tam tersinin çeşitli yolları vardır.

  • Tam senkronizasyonlar ilk indirme işleminde gerçekleşir. VVM istemcisi, tarih ve saat, kaynak numara, süre, varsa sesli mesaj transkriptleri ve KEY_VVM_PREFETCH_BOOLEAN doğruysa ses verileri gibi sesli mesaj meta verilerini getirir. Tam senkronizasyonlar şu durumlarda tetiklenebilir:
    • Yeni SIM kart takma
    • Cihazı yeniden başlatma
    • Hizmete geri dönme
    • VoicemailContract.ACTION_SYNC_VOICEMAIL yayını alınıyor
  • Yükleme senkronizasyonu, bir kullanıcı sesli mesajı okumak veya silmek için sesli mesajla etkileşime geçtiğinde 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 bu mesaj sunucuda silinir.
  • İndirme senkronizasyonu, VVM istemcisi operatörden "MBU" (posta kutusu güncellemesi) SYNC SMS'si aldığında gerçekleşir. SYNC mesajı, sesli mesaj içerik sağlayıcısında depolanabilmesi için yeni bir mesajın meta verilerini içerir.

Not: Sesli mesaj 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 düğmesine bastığında ilgili ses dosyası indirilir. Kullanıcı sesli mesajı dinlemeyi seçerse Dialer, sesli mesaj istemcisinin aldığı VoicemailContract.ACTION_FETCH_VOICEMAIL mesajını yayınlayabilir, içeriğin indirilmesini başlatabilir ve platform sesli mesaj içeriği sağlayıcısında kaydı güncelleyebilir.

VVM'yi devre dışı bırakma

Görsel sesli mesaj hizmeti, kullanıcı etkileşimi, geçerli bir SIM'in çıkarılması veya operatör görsel sesli mesaj uygulamasıyla değiştirilmesi nedeniyle devre dışı bırakılabilir. Devre dışı, yerel cihazda artık görsel sesli mesajın gösterilmediği anlamına gelir. Devre dışı, abone için hizmetin devre dışı bırakıldığı anlamına gelir. Kullanıcı etkileşimi hizmeti devre dışı bırakabilir, SIM'in çıkarılması artık mevcut olmadığı için hizmeti geçici olarak devre dışı bırakır ve operatör VVM değişimi AOSP VVM istemcisini devre dışı bırakır.

Kullanıcı etkileşimi

Kullanıcı, görsel sesli mesajı manuel olarak etkinleştirebilir veya devre dışı bırakabilir. Bir kullanıcı görsel sesli mesajı devre dışı bıraktığında hizmetini de devre dışı bırakır. Kullanıcı görsel sesli mesajı devre dışı bıraktığında DEACTIVATE SMS'i gönderilir, sesli mesaj kaynağı yerel olarak kaydından silinir ve sesli mesaj sekmesi kaybolur. Kullanıcılar görsel sesli mesajı yeniden etkinleştirirse hizmetleri de yeniden etkinleştirilir.

SIM kartı çıkarma

Cihazın SIM durumunda (ACTION_SIM_STATE_CHANGED) veya Operatör Yapılandırması değerlerinde (ACTION_CARRIER_CONFIG_CHANGED) değişiklik olursa ve söz konusu SIM için geçerli bir yapılandırma artık mevcut değilse sesli mesaj kaynağı yerel olarak kaydedilmez ve sesli mesaj sekmesi kaybolur. SIM değiştirilirse görsel sesli mesaj yeniden etkinleştirilir.

Operatör VVM ile değiştirildi

Cihazınızda yüklü bir operatör görsel sesli mesaj uygulaması varsa AOSP VVM istemcisi devre dışı bırakılabilir. Bu, KEY_CARRIER_VVM_PACKAGE_NAME_STRING parametresiyle eşleşen bir paketin yüklü olup olmadığı kontrol edilerek yapılır.

VVM istemcisi, kullanıcı etkileşimi yoluyla etkinleştirilebilir.

Test

Bir uygulamanın platforma sesli mesaj eklemesine/sorgulamasına/silmesine olanak tanıyan VoicemailProvider API'leri için mevcut (Android 4.0'ten beri) bir CTS testi grubu vardır. Bunlar, herhangi bir Arama uygulamasının kullanıcı arayüzünde görüntüleyebilmesi için VVM'nin sesli mesaj eklemek/silmek amacıyla kullandığı API'lerle aynıdır.

Yapılandırmanızla ilgili uygulamanızın OMTP yapılandırmasını doğru şekilde iletip iletmediğini test etmek için kodunuzu şu yöntemlerle test edebilirsiniz:

  • Geçerli bir sertifika imzası içeren bir SIM kartı
  • AOSP telefon çerçevesinin değiştirilmemiş bir sürümüne sahip Android 6.0 çalıştıran bir cihaz