Wizualna poczta głosowa

W systemie Android 6.0 (Marshmallow) wprowadzono obsługę wizualnej poczty głosowej (VVM) zintegrowaną z Dialerem, umożliwiając kompatybilnym usługom Carrier VVM podłączenie się do Dialera przy minimalnej konfiguracji. Wizualna poczta głosowa umożliwia użytkownikom łatwe sprawdzanie poczty głosowej bez wykonywania połączeń telefonicznych. Użytkownicy mogą przeglądać listę wiadomości w interfejsie przypominającym skrzynkę odbiorczą, odsłuchiwać je w dowolnej kolejności i usuwać je według potrzeb.

W systemie Android 7.0 do wizualnej poczty głosowej dodano następujące parametry konfiguracyjne:

  • Wstępne pobieranie wiadomości głosowych kontrolowane przez KEY_VVM_PREFETCH_BOOLEAN
  • Kontrola, czy wymagane jest komórkowe połączenie danych przez KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
  • Pobieranie transkrypcji poczty głosowej
  • Pobieranie limitu poczty głosowej

W tym artykule omówiono, co jest zapewniane, w jaki sposób przewoźnicy mogą się z nim zintegrować, a także niektóre szczegóły wdrożenia.

Klient wizualnej poczty głosowej (VVM).

Android 6.0 i nowsze wersje zawierają klienta OMTP VVM, który (jeśli zostanie dostarczony z odpowiednią konfiguracją) będzie łączyć się z serwerami Carrier VVM i wyświetlać wizualne wiadomości poczty głosowej w Dialerze Android Open Source Project (AOSP). Klient VVM:

  • Obsługuje wiadomości SMS służące do aktywacji/dezaktywacji/zapytania o stan usługi oraz wiadomości SMS służące do powiadamiania urządzenia o zdarzeniach w skrzynce abonenckiej
  • Synchronizuje skrzynkę pocztową z serwerem IMAP
  • Pobiera wiadomości głosowe, gdy użytkownik zdecyduje się je odsłuchać
  • Pobiera transkrypcje poczty głosowej
  • Pobiera szczegóły dotyczące limitu poczty głosowej (całkowity rozmiar skrzynki pocztowej i zajęty rozmiar)
  • Integruje się z Dialerem w celu zapewnienia funkcjonalności użytkownika, takich jak oddzwanianie, przeglądanie nieprzeczytanych wiadomości, usuwanie wiadomości itp.

Zintegruj z klientem VVM

Realizacja

Przewoźnik musi zapewnić serwer wizualnej poczty głosowej realizujący specyfikacje OMTP VVM . Obecna implementacja klienta AOSP VVM obsługuje podstawowe funkcje (odczyt/usuwanie wiadomości głosowych, pobieranie/synchronizacja/odsłuchiwanie), ale dodatkowe funkcje TUI (zmiana hasła, powitanie w poczcie głosowej, języki) nie są zaimplementowane. Obecnie obsługujemy tylko protokół OMTP w wersji 1.1 i nie używamy szyfrowania do uwierzytelniania IMAP.

Aby obsługiwać transkrypcje, przewoźnicy muszą obsługiwać format załącznika transkrypcji (zwykły/tekst typu MIME) określony w specyfikacji OMTP 1.3, punkt 2.1.3.

Uwaga : Wiadomości SMS wysyłane do urządzenia z serwera (np. STATUS lub SYNC) muszą być wiadomościami SMS z danymi.

Konfiguracja

Aby operator mógł zintegrować się z usługą VVM, operator musi udostępnić platformie szczegóły konfiguracyjne, z których może korzystać klient OMTP. Te parametry to:

  • Numer docelowy i numer portu dla wiadomości SMS
  • Nazwa pakietu aplikacji wizualnej poczty głosowej dostarczanej przez operatora (jeśli jest dostępna), aby można było wyłączyć implementację platformy, jeśli ten pakiet jest zainstalowany

Wartości te są udostępniane poprzez interfejs API konfiguracji operatora . Ta funkcjonalność, uruchomiona w systemie Android 6.0, umożliwia aplikacji dynamiczne dostarczanie konfiguracji związanej z telefonią różnym komponentom platformy, które tego potrzebują. W szczególności następujące klucze muszą mieć zdefiniowane wartości:

  • 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

Więcej szczegółów można znaleźć w artykule dotyczącym konfiguracji operatora .

Realizacja

Klient OMTP VVM jest zaimplementowany w ramach packages/services/Telephony , w szczególności w ramach src/com/android/phone/vvm/

Organizować coś

  1. Klient VVM nasłuchuje TelephonyIntents#ACTION_SIM_STATE_CHANGED lub CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED .
  2. Po dodaniu karty SIM, która ma odpowiednie wartości Carrier Config ( KEY_VVM_TYPE_STRING ustawione na TelephonyManager.VVM_TYPE_OMTP lub TelephonyManager.VVM_TYPE_CVVM ), klient VVM wysyła SMS ACTIVATE na wartość określoną w KEY_VVM_DESTINATION_NUMBER_STRING .
  3. Serwer aktywuje usługę wizualnej poczty głosowej i wysyła dane uwierzytelniające OMTP SMS-em STATUS. Gdy klient VVM odbierze wiadomość SMS STATUS, zarejestruje źródło poczty głosowej i wyświetli kartę poczty głosowej na urządzeniu.
  4. Poświadczenia OMTP są zapisywane lokalnie, a urządzenie rozpoczyna pełną synchronizację, jak opisano poniżej.

Synchronizowanie

Istnieje wiele sposobów synchronizacji klienta VVM z serwerem operatora i odwrotnie.

  • Pełna synchronizacja następuje po pierwszym pobraniu. Klient VVM pobiera metadane poczty głosowej, takie jak data i godzina; numer pochodzenia; czas trwania; transkrypcje poczty głosowej, jeśli są dostępne; i dane audio, jeśli KEY_VVM_PREFETCH_BOOLEAN ma wartość True. Pełną synchronizację można wywołać poprzez:
    • Wkładanie nowej karty SIM
    • Ponowne uruchomienie urządzenia
    • Wracam do służby
    • Odbieranie transmisji VoicemailContract.ACTION_SYNC_VOICEMAIL
  • Synchronizacja przesyłania ma miejsce, gdy użytkownik wchodzi w interakcję z pocztą głosową, aby ją przeczytać lub usunąć. Synchronizacja przesyłania powoduje, że serwer zmienia swoje dane, aby dopasować je do danych na urządzeniu. Na przykład, jeśli użytkownik przeczyta wiadomość głosową, zostanie ona oznaczona na serwerze jako przeczytana; jeśli użytkownik usunie wiadomość głosową, zostanie ona usunięta z serwera.
  • Synchronizacja pobierania ma miejsce, gdy klient VVM odbierze od operatora wiadomość SMS „MBU” (aktualizacja skrzynki pocztowej) SYNC. Wiadomość SYNC zawiera metadane nowej wiadomości, dzięki czemu można ją zapisać u dostawcy treści poczty głosowej.

Uwaga : Wartości limitu skrzynki odbiorczej poczty głosowej są pobierane podczas każdej synchronizacji.

Pobieranie poczty głosowej

Gdy użytkownik naciśnie przycisk odtwarzania, aby odsłuchać pocztę głosową, zostanie pobrany odpowiedni plik audio. Jeśli użytkownik zdecyduje się odsłuchać pocztę głosową, Dialer może rozgłosić VoicemailContract.ACTION_FETCH_VOICEMAIL , który odbierze klient poczty głosowej, zainicjować pobieranie treści i zaktualizować zapis na platformie dostawcy treści poczty głosowej.

Wyłączanie VVM

Usługę VVM można wyłączyć lub dezaktywować poprzez interakcję z użytkownikiem, usunięcie ważnej karty SIM lub wymianę na aplikację VVM operatora. Wyłączone oznacza, że ​​urządzenie lokalne nie wyświetla już wizualnej poczty głosowej. Dezaktywowana oznacza, że ​​usługa jest wyłączona dla abonenta. Interakcja użytkownika może dezaktywować usługę, usunięcie karty SIM tymczasowo wyłącza usługę, ponieważ nie jest już dostępna, a wymiana VVM operatora powoduje wyłączenie klienta AOSP VVM.

Interakcja z użytkownikiem

Użytkownik może ręcznie włączyć lub wyłączyć wizualną pocztę głosową. Jeśli użytkownik wyłączy wizualną pocztę głosową, dezaktywuje także swoją usługę. Kiedy wyłączą wizualną pocztę głosową, zostanie wysłany SMS DEAKTYWUJĄCY, źródło poczty głosowej zostanie wyrejestrowane lokalnie, a zakładka poczty głosowej zniknie. Jeśli ponownie włączą wizualną pocztę głosową, ich usługa również zostanie ponownie aktywowana.

Usunięcie karty SIM

Jeżeli nastąpi zmiana stanu karty SIM urządzenia ( ACTION_SIM_STATE_CHANGED ) lub wartości konfiguracji operatora ( ACTION_CARRIER_CONFIG_CHANGED ), a prawidłowa konfiguracja dla danej karty SIM już nie istnieje, wówczas źródło poczty głosowej zostanie wyrejestrowane lokalnie i zakładka poczty głosowej zniknie. Jeśli karta SIM zostanie wymieniona, VVM zostanie ponownie włączony.

Zastąpiony przez przewoźnika VVM

Aplikacja wizualnej poczty głosowej operatora, jeśli jest zainstalowana na urządzeniu, może wyłączyć klienta AOSP VVM. Osiąga się to poprzez sprawdzenie, czy zainstalowany jest pakiet o nazwie zgodnej z parametrem KEY_CARRIER_VVM_PACKAGE_NAME_STRING .

Klienta VVM nadal można włączyć poprzez interakcję z użytkownikiem.

Testowanie

Istnieje (od wersji Androida 4.0) zestaw testów CTS dla interfejsów API VoicemailProvider, które umożliwiają aplikacji wstawianie/odpytywanie/usuwanie wiadomości głosowych na platformie. Są to te same interfejsy API, których VVM używa do dodawania/usuwania poczty głosowej, dzięki czemu dowolna aplikacja Dialer może wyświetlać je w interfejsie użytkownika.

Aby przetestować, czy aplikacja konfiguracyjna poprawnie przechodzi konfigurację OMTP, możesz przetestować swój kod za pomocą:

  • Karta SIM zawierająca ważny podpis certyfikatu
  • Urządzenie z systemem Android 6.0 z niezmodyfikowaną wersją frameworka telefonicznego AOSP