具有畫面的語音信箱

Android 6.0 (Marshmallow) 推出了視覺語音信箱 (VVM) 支援功能,並整合至撥號程式,讓相容的電信業者 VVM 服務可透過最少的設定連結至撥號程式。視覺化語音信箱可讓使用者在不撥打電話的情況下,輕鬆查看語音信箱。使用者可以在類似收件匣的介面中查看訊息清單,以任何順序聆聽訊息,並視需要刪除訊息。

Android 7.0 已在視覺語音信箱中新增下列設定參數:

  • 語音留言預先載入功能由 KEY_VVM_PREFETCH_BOOLEAN 控制
  • 控制 KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN 是否需要行動數據連線
  • 擷取語音信箱語音轉錄稿
  • 擷取語音留言配額

本頁面將概略說明提供的內容、電信業者如何整合,以及實作方式的部分細節。

視覺化語音信箱 (VVM) 用戶端

Android 6.0 以上版本包含 OMTP VVM 用戶端,在提供正確設定的情況下,可連線至電信業者 VVM 伺服器,並在 Android 開放原始碼計畫 (AOSP) 撥號應用程式中填入 VVM 訊息。VVM 用戶端:

  • 處理用於啟用/停用/查詢服務狀態的簡訊,以及用於通知裝置訂閱者信箱中的事件的簡訊。
  • 將信箱與 IMAP 伺服器同步
  • 在使用者選擇聽取語音留言時下載語音留言
  • 擷取語音留言轉錄內容
  • 擷取語音信箱配額的詳細資料 (信箱總大小和已用大小)
  • 整合至撥號應用程式,提供使用者功能,例如回撥、查看未讀訊息、刪除訊息等。

與 VVM 用戶端整合

實作

電信業者必須提供視覺化語音信箱伺服器,並導入 OMTP VVM 規格。AOSP VVM 用戶端目前的實作內容支援核心功能 (讀取/刪除語音信箱、下載/同步/聆聽),但未實作其他 TUI 功能 (變更密碼、語音信箱問候語、語言)。目前我們僅支援 OMTP 1.1 版,且不會為 IMAP 驗證使用加密功能。

如要支援轉錄稿,電信業者必須支援 OMTP 1.3 規格第 2.1.3 項所指定的轉錄稿附件格式 (MIME 類型為 plain/text)。

注意:伺服器傳送至裝置的簡訊 (例如 STATUS 或 SYNC) 必須是資料簡訊。

設定

如要讓電信業者整合 VVM 服務,電信業者必須向 OMTP 用戶端可用的平台提供設定詳細資料。這些參數如下:

  • SMS 的目的地號碼和通訊埠號碼
  • 電信業者提供的視覺化語音信箱應用程式套件名稱 (如果有提供),這樣一來,如果安裝該套件,就能停用平台實作

這些值會透過 Carrier Config API 提供。這項功能已在 Android 6.0 推出,可讓應用程式為需要的各種平台元件,動態提供與電話相關的設定。特別是下列鍵必須定義值:

  • 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

詳情請參閱「電信業者設定」。

實作

OMTP VVM 用戶端是在 packages/services/Telephony 中實作,特別是在 src/com/android/phone/vvm/

設定

  1. VVM 用戶端會監聽 TelephonyIntents#ACTION_SIM_STATE_CHANGEDCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
  2. 新增含有正確電信業者設定值的 SIM 卡時 (KEY_VVM_TYPE_STRING 設為 TelephonyManager.VVM_TYPE_OMTPTelephonyManager.VVM_TYPE_CVVM),VVM 用戶端會傳送啟用簡訊至 KEY_VVM_DESTINATION_NUMBER_STRING 中指定的值。
  3. 伺服器會啟用視覺語音信箱服務,並透過 STATUS SMA 傳送 OMTP 憑證。VVM 用戶端收到 STATUS SMS 後,會註冊語音信箱來源,並在裝置上顯示語音信箱分頁。
  4. OMTP 憑證會儲存在本機,裝置會開始進行完整同步處理,如下所述。

正在同步處理

VVM 用戶端可以透過多種方式與電信業者伺服器同步,反之亦然。

  • 系統會在初次下載時執行完整同步處理作業。VVM 用戶端會擷取語音信箱中繼資料,例如日期和時間、來源號碼、持續時間、語音信箱轉錄內容 (如有),以及音訊資料 (如果 KEY_VVM_PREFETCH_BOOLEAN 為 True)。完整同步處理作業可由下列項目觸發:
    • 插入新的 SIM 卡
    • 重新啟動裝置
    • 恢復服務
    • 接收 VoicemailContract.ACTION_SYNC_VOICEMAIL 廣播
  • 使用者與語音信箱互動 (讀取或刪除) 時,系統會執行上傳同步處理。上傳同步處理結果會導致伺服器變更資料,以便與裝置上的資料相符。舉例來說,如果使用者讀取語音留言,系統會在伺服器上將其標示為已讀;如果使用者刪除語音留言,系統會在伺服器上刪除該留言。
  • 當 VVM 用戶端收到電信業者傳送的「MBU」(信箱更新) SYNC 簡訊時,就會發生下載同步處理。SYNC 訊息包含新訊息的中繼資料,可儲存在語音信箱內容提供者中。

注意:系統會在每次同步處理期間擷取語音信箱配額值。

下載語音留言

當使用者按下播放鍵來聽取語音留言時,系統會下載對應的音訊檔案。如果使用者選擇聆聽語音留言,撥號程式可以廣播 VoicemailContract.ACTION_FETCH_VOICEMAIL,讓語音留言用戶端接收,並啟動內容下載作業,以及更新平台語音留言內容供應器中的記錄。

停用 VVM

視覺化語音信箱服務可透過使用者互動、移除有效的 SIM 卡,或由電信業者的視覺化語音信箱應用程式取代而停用或停用。停用表示本機裝置不再顯示視覺化語音信箱。「已停用」表示已為訂閱者關閉這項服務。使用者互動可停用服務,SIM 卡移除會暫時停用服務,因為該服務已不存在;電信業者 VVM 替換作業會停用 AOSP VVM 用戶端。

使用者互動

使用者可以手動啟用或停用視覺化語音信箱。如果使用者停用 Visual Voicemail,也表示他們已停用這項服務。使用者停用 Visual Voicemail 時,系統會傳送 DEACTIVATE 簡訊,語音信箱來源會在本機取消註冊,語音信箱分頁也會消失。如果他們重新啟用視訊語音信箱,服務也會重新啟用。

移除 SIM 卡

如果裝置的 SIM 狀態 (ACTION_SIM_STATE_CHANGED) 或電信業者設定值 (ACTION_CARRIER_CONFIG_CHANGED) 有所變更,且指定 SIM 卡的有效設定不再存在,則語音信箱來源會在本機取消註冊,語音信箱分頁也會消失。如果更換 SIM 卡,系統會重新啟用 VVM。

已由電信業者 VVM 取代

如果裝置上安裝了電信業者的視覺化語音信箱應用程式,即可停用 AOSP VVM 用戶端。這可透過檢查是否已安裝名稱與 KEY_CARRIER_VVM_PACKAGE_NAME_STRING 參數相符的套件來達成。

使用者仍可透過互動啟用 VVM 用戶端。

測試

自 Android 4.0 以來,VoicemailProvider API 就已針對這類 API 建立一組 CTS 測試,可讓應用程式將語音信件插入/查詢/刪除至平台。這些 API 與 VVM 用來新增/刪除語音信箱的 API 相同,因此任何撥號應用程式都能在 UI 中顯示語音信箱。

如要測試設定應用程式是否正確傳遞 OMTP 設定,您可以使用以下方式測試程式碼:

  • 內含有效憑證簽名的 SIM 卡
  • 搭載 Android 6.0 的裝置,且使用未經修改的 AOSP 手機架構