Leggi la segreteria

Android 6.0 (Marshmallow) ha introdotto un'implementazione del supporto della posta vocale visuale (VVM) integrata in Telefono, consentendo ai servizi VVM dell'operatore compatibili di collegarsi a Telefono con una configurazione minima. La lettura della segreteria consente agli utenti di controllare facilmente la segreteria senza effettuare chiamate. Gli utenti possono visualizzare un elenco di messaggi in un'interfaccia simile alla Posta in arrivo, ascoltarli in qualsiasi ordine ed eliminarli come preferiscono.

Android 7.0 ha aggiunto i seguenti parametri di configurazione alla posta vocale visiva:

  • Precaricamento dei messaggi vocali controllato da KEY_VVM_PREFETCH_BOOLEAN
  • Controllo dell'eventuale necessità di una connessione dati su rete mobile da parte di KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
  • Recupero delle trascrizioni dei messaggi vocali
  • Recupero della quota di messaggi vocali

Questa pagina fornisce una panoramica di ciò che viene fornito, di come gli operatori possono integrarsi e di alcuni dettagli sull'implementazione.

Client di lettura della segreteria (VVM)

Android 6.0 e versioni successive includono un client VVM OMTP che, se fornito con la configurazione corretta, si connette ai server VVM dell'operatore e compila i messaggi VVM all'interno del Dialer del progetto open source Android (AOSP). Il client VVM:

  • Gestisce i messaggi SMS utilizzati per attivare/disattivare/eseguire query sullo stato del servizio e i messaggi SMS utilizzati per notificare al dispositivo gli eventi nella casella di posta dell'abbonato
  • Sincronizza la casella di posta con il server IMAP
  • Scarica i messaggi vocali quando l'utente sceglie di ascoltarli
  • Recupera le trascrizioni dei messaggi vocali
  • Recupera i dettagli della quota della posta vocale (dimensioni totali della casella di posta e dimensioni occupate)
  • Si integra con la funzionalità Chiama per consentire all'utente di richiamare, visualizzare i messaggi non letti, eliminare i messaggi e così via.

Eseguire l'integrazione con il client VVM

Implementazione

L'operatore deve fornire un server di lettura della segreteria che implementi le specifiche VVM OMTP. L'attuale implementazione del client VVM AOSP supporta le funzionalità di base (lettura/eliminazione di messaggi vocali, download/sincronizzazione/ascolto), ma le funzionalità aggiuntive della UI (modifica della password, messaggio di benvenuto per la posta vocale, lingue) non sono implementate. Al momento supportiamo solo la versione 1.1 di OMTP e non utilizziamo la crittografia per l'autenticazione IMAP.

Per supportare le trascrizioni, gli operatori devono supportare il formato dell'allegato della trascrizione (tipo MIME testo/semplice) specificato nella specifica OMTP 1.3, elemento 2.1.3.

Nota: i messaggi SMS inviati dal server al dispositivo (ad es. STATUS o SYNC) devono essere messaggi SMS di dati.

Configurazione

Affinché un operatore possa integrarsi con il servizio VVM, deve fornire alla piattaforma i dettagli di configurazione che il client OMTP può utilizzare. Questi parametri sono:

  • Numero di destinazione e numero di porta per gli SMS
  • Il nome del pacchetto dell'app di lettura della segreteria fornita dall'operatore (se fornita), in modo che l'implementazione della piattaforma possa essere disattivata se il pacchetto è installato

Questi valori vengono forniti tramite l'API Carrier Config. Questa funzionalità, lanciata in Android 6.0, consente a un'app di fornire dinamicamente la configurazione relativa alla telefonia ai vari componenti della piattaforma che ne hanno bisogno. In particolare, per le seguenti chiavi devono essere definiti valori:

  • 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

Per maggiori dettagli, consulta Configurazione dell'operatore.

Implementazione

Il client VVM OMTP è implementato in packages/services/Telephony, in particolare in src/com/android/phone/vvm/

Configura

  1. Il client VVM ascolta TelephonyIntents#ACTION_SIM_STATE_CHANGED o CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED.
  2. Quando viene aggiunta una SIM con i valori di Carrier Config corretti (KEY_VVM_TYPE_STRING impostato su TelephonyManager.VVM_TYPE_OMTP o TelephonyManager.VVM_TYPE_CVVM), il client VVM invia un SMS di ATTIVAZIONE al valore specificato in KEY_VVM_DESTINATION_NUMBER_STRING.
  3. Il server attiva il servizio di voicemail visiva e invia le credenziali OMTP tramite STATUS SMA. Quando il client VVM riceve l'SMS STATUS, registra l'origine della posta vocale e mostra la scheda della posta vocale sul dispositivo.
  4. Le credenziali OMTP vengono salvate localmente e il dispositivo avvia una sincronizzazione completa, come описано di seguito.

Sincronizzazione

Esistono diversi modi in cui il client VVM può sincronizzarsi con il server dell'operatore e viceversa.

  • Le sincronizzazioni complete vengono eseguite al download iniziale. Il client VVM recupera i metadati della posta vocale, come data e ora, numero di origine, durata, trascrizioni della posta vocale, se disponibili, e dati audio se KEY_VVM_PREFETCH_BOOLEAN è True. Le sincronizzazioni complete possono essere attivate da:
    • Inserimento di una nuova SIM
    • Riavvio del dispositivo
    • Ritorno in servizio
    • Ricezione della trasmissione VoicemailContract.ACTION_SYNC_VOICEMAIL
  • La sincronizzazione dei caricamenti avviene quando un utente interagisce con una registrazione vocale per leggerla o eliminarla. Le sincronizzazioni dei caricamenti comportano la modifica dei dati del server in modo che coincidano con quelli sul dispositivo. Ad esempio, se l'utente legge un messaggio vocale, questo viene contrassegnato come letto sul server; se un utente elimina un messaggio vocale, questo viene eliminato sul server.
  • La sincronizzazione dei download si verifica quando il client VVM riceve un SMS di sincronizzazione "MBU" (aggiornamento della cassetta postale) dall'operatore. Un messaggio SYNC contiene i metadati di un nuovo messaggio in modo che possano essere archiviati nel fornitore di contenuti della voicemail.

Nota: i valori della quota della posta in arrivo della segreteria vengono recuperati durante ogni sincronizzazione.

Download della segreteria

Quando un utente preme Riproduci per ascoltare un messaggio vocale, viene scaricato il file audio corrispondente. Se l'utente sceglie di ascoltare il messaggio vocale, Chiamata può trasmettere VoicemailContract.ACTION_FETCH_VOICEMAIL, che viene ricevuto dal client di posta vocale, avviare il download dei contenuti e aggiornare il record nel provider di contenuti di posta vocale della piattaforma.

Disattivare VVM

Il servizio VVM può essere disattivato o disattivato dall'interazione dell'utente, dalla rimozione di una SIM valida o dalla sostituzione con un'app VVM dell'operatore. Disattivato indica che il servizio non viene più visualizzato sul dispositivo locale. Disattivato indica che il servizio è disattivato per l'abbonato. L'interazione dell'utente può disattivare il servizio, la rimozione della SIM disattiva temporaneamente il servizio perché non è più presente e la sostituzione del VVM dell'operatore disattiva il client VVM AOSP.

Interazione utente

L'utente può attivare o disattivare manualmente la lettura della segreteria. Se un utente disattiva la voicemail visuale, disattiva anche il servizio. Quando disattiva la segreteria visiva, viene inviato un SMS di disattivazione, l'origine della segreteria viene annullata la registrazione localmente e la scheda della segreteria scompare. Se riattiva la lettura della segreteria, il servizio viene riattivato.

Rimozione della SIM.

Se vengono apportate modifiche allo stato della SIM del dispositivo (ACTION_SIM_STATE_CHANGED) o ai valori di Carrier Config (ACTION_CARRIER_CONFIG_CHANGED) e non esiste più una configurazione valida per la SIM in questione, l'origine della segreteria viene annullata localmente e la scheda della segreteria scompare. Se la SIM viene sostituita, la lettura della segreteria viene riattivata.

Sostituito da VVM dell'operatore

Un'app di segreteria trascritta dell'operatore, se installata sul dispositivo, può disattivare il client VVM AOSP. Ciò viene ottenuto controllando se è installato un pacchetto con un nome corrispondente al parametro KEY_CARRIER_VVM_PACKAGE_NAME_STRING.

Il client VVM può comunque essere attivato tramite l'interazione dell'utente.

Test

Esiste già (da Android 4.0) un insieme di test CTS per le API VoicemailProvider che consentono a un'app di inserire/eseguire query/eliminare le voci registrate nella piattaforma. Si tratta delle stesse API utilizzate da VVM per aggiungere/eliminare le voci registrate in modo che qualsiasi app Telefono possa visualizzarle nell'interfaccia utente.

Per verificare che l'app di configurazione stia passando correttamente la configurazione OMTP, puoi testare il codice con:

  • Una SIM contenente una firma del certificato valida
  • Un dispositivo con Android 6.0 con una versione non modificata del framework del telefono AOSP