ב-Android 6.0 (Marshmallow) הוספנו תמיכה בהודעות קוליות חזותיות (VVM) שמשולבת ב-Dialer, וכך אפשר להתחבר לשירותי VVM של ספקים תואמים ל-Dialer עם הגדרה מינימלית. דואר קולי ויזאולי מאפשר למשתמשים לבדוק בקלות את ההודעות הקוליות בלי לבצע שיחות טלפון. המשתמשים יכולים לראות רשימה של הודעות בממשק שנראה כמו תיבת דואר נכנס, להאזין להן בסדר כלשהו ולמחוק אותן לפי הצורך.
ב-Android 7.0 נוספו לדואר הקולי החזותי פרמטרים של הגדרה:
- אחזור מראש של הודעות קוליות בשליטת
KEY_VVM_PREFETCH_BOOLEAN
- שליטה בדרישה לחיבור לחבילת גלישה על ידי
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
- אחזור של תמלילים של הודעות קוליות
- אחזור המכסה של הדואר הקולי
בדף הזה מופיעה סקירה כללית של מה שאנחנו מספקים, איך ספקי הסלולר יכולים לשלב את השירות הזה ופרטי הטמעה מסוימים.
לקוח של תא קולי ויזואלי (VVM)
מערכת Android מגרסה 6.0 ואילך כוללת לקוח OMTP VVM, שמתחבר לשרתים של VVM של הספק (כשמגדירים אותו בצורה נכונה) ומאכלס את ההודעות מ-VVM בתוך Dialer של Android Open Source Project (AOSP). לקוח VVM:
- טיפול בהודעות ה-SMS שמשמשות להפעלה/להשבתה/לשליחת שאילתה לגבי סטטוס השירות, ובהודעות ה-SMS שמשמשות להתרעה במכשיר על אירועים בתיבת הדואר הנכנס של המנוי
- סנכרון תיבת הדואר עם שרת ה-IMAP
- הורדת ההודעות הקוליות כשהמשתמש בוחר להאזין להן
- אחזור תמלילים של הודעות קוליות
- אחזור פרטי המכסה של ההודעות הקוליות (הגודל הכולל של תיבת הדואר והגודל שנמצא בשימוש)
- משולבת במרכז החיוג כדי לספק למשתמשים פונקציונליות כמו חזרה לשיחה, הצגת הודעות שלא נקראו, מחיקת הודעות ועוד.
שילוב עם לקוח VVM
הטמעה
הספק צריך לספק שרת דואר קולי ויזואלי שמטמיע את המפרטים של OMTP VVM. ההטמעה הנוכחית של לקוח VVM ב-AOSP תומכת בתכונות הליבה (קריאה/מחיקה של הודעות קוליות, הורדה/סנכרון/האזנה), אבל התכונות הנוספות של ממשק המשתמש הטקסטואלי (שינוי סיסמה, הודעת פתיחה של הודעה קולית, שפות) לא מוטמעות. נכון לעכשיו, אנחנו תומכים רק ב-OMTP בגרסה 1.1 ולא משתמשים בהצפנה לאימות IMAP.
כדי לתמוך בתמלילים, הספקים חייבים לתמוך בפורמט הקובץ המצורף של התמליל (סוג MIME: טקסט פשוט/רגיל) שמפורט במפרט OMTP 1.3, בקטע 2.1.3.
הערה: הודעות SMS שמגיעות מהשרת למכשיר (למשל STATUS או SYNC) חייבות להיות הודעות SMS עם נתונים.
הגדרות אישיות
כדי שספק שירותי סלולר יוכל לשלב את השירות שלו עם 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/
הגדרה
- לקוח VVM מקשיב ל-
TelephonyIntents#ACTION_SIM_STATE_CHANGED
או ל-CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
. - כשמוסיפים כרטיס SIM עם הערכים הנכונים של Carrier Config (
KEY_VVM_TYPE_STRING
מוגדר ל-TelephonyManager.VVM_TYPE_OMTP
או ל-TelephonyManager.VVM_TYPE_CVVM
), לקוח VVM שולח הודעת SMS מסוג ACTIVATE לערך שצוין ב-KEY_VVM_DESTINATION_NUMBER_STRING
. - השרת מפעיל את שירות הדואר הקולי החזותי ושולח את פרטי הכניסה של OMTP דרך STATUS SMA. כשלקוח VVM מקבל את הודעת ה-SMS עם הסטטוס, הוא רושם את מקור ההודעות הקוליות ומציג את הכרטיסייה של ההודעות הקוליות במכשיר.
- פרטי הכניסה ל-OMTP נשמרים באופן מקומי והמכשיר מתחיל סנכרון מלא, כפי שמתואר בהמשך.
מתבצע סנכרון
יש מגוון דרכים שבהן לקוח VVM יכול לסנכרן עם שרת הספק ולהפך.
- סנכרון מלא מתבצע בזמן ההורדה הראשונית. לקוח VVM מאחזר מטא-נתונים של הודעות קוליות, כמו תאריך ושעה, מספר המקור, משך ההודעה, תמלילים של הודעות קוליות (אם זמינים) ונתוני אודיו אם הערך של
KEY_VVM_PREFETCH_BOOLEAN
הוא True. סנכרון מלא יכול להתבצע במקרים הבאים:- הכנסת כרטיס SIM חדש
- הפעלה מחדש של המכשיר
- השירות חוזר לפעול
- קבלת השידור של
VoicemailContract.ACTION_SYNC_VOICEMAIL
- סנכרון ההעלאה מתבצע כשמשתמש יוצר אינטראקציה עם הודעת הדואר הקולי כדי לקרוא אותה או למחוק אותה. סנכרון ההעלאות גורם לשינוי הנתונים בשרת כך שיתואמו לנתונים במכשיר. לדוגמה, אם המשתמש קורא הודעה קולית, היא מסומנת כהודעה שנקראה בשרת. אם המשתמש מחק הודעה קולית, היא נמחקת מהשרת.
- הורדת סנכרון מתרחשת כשלקוח VVM מקבל הודעת SMS מסוג 'MBU' (עדכון תיבת הדואר) מהספק. הודעת SYNC מכילה את המטא-נתונים של הודעה חדשה, כדי שניתן יהיה לאחסן אותה אצל ספק התוכן של הדואר הקולי.
הערה: ערכי המכסות של תיבת הדואר הנכנס של הודעות הקול מתאחזרים בכל סנכרון.
הורדת הודעות דואר קולי
כשמשתמש לוחץ על 'הפעלה' כדי להאזין להודעת דואר קולי, קובץ האודיו התואם יורד. אם המשתמש יבחר להאזין להודעה הקולית, האפליקציה 'חיוג' תוכל לשדר את ה-VoicemailContract.ACTION_FETCH_VOICEMAIL
, שתוכלו לקבל על ידי לקוח הדואר הקולי, להתחיל את ההורדה של התוכן ולעדכן את הרשומה אצל ספק התוכן של הדואר הקולי בפלטפורמה.
השבתת VVM
אפשר להשבית או להשבית באופן זמני את שירות ה-VVM באמצעות אינטראקציה של המשתמש, הסרת כרטיס SIM תקין או החלפה באפליקציית VVM של ספק. מושבת: לא מוצג יותר דואר קולי חזותי במכשיר המקומי. מושבת: השירות מושבת עבור המנוי. אינטראקציה של משתמש יכולה להשבית את השירות, הסרת כרטיס ה-SIM משביתה את השירות באופן זמני כי הוא כבר לא נמצא, והחלפת VVM של ספק משביתה את לקוח VVM של AOSP.
אינטראקציה של משתמשים
המשתמש יכול להפעיל או להשבית את הדואר הקולי החזותי באופן ידני. אם משתמש משבית את הדואר הקולי החזותי, הוא משבית גם את השירות. כשהם משביתים את הדואר הקולי החזותי, נשלחת הודעת SMS עם ההודעה DEACTIVATE, מקור הדואר הקולי לא נרשם באופן מקומי והכרטיסייה של הדואר הקולי נעלמת. אם הם מפעילים מחדש את הדואר הקולי הוויזואלי, השירות שלהם מופעל מחדש גם כן.
הסרת כרטיס ה-SIM
אם יש שינויים במצב ה-SIM של המכשיר (ACTION_SIM_STATE_CHANGED
) או בערכים של Carrier Config (ACTION_CARRIER_CONFIG_CHANGED
), וכבר אין הגדרה תקפה לכרטיס ה-SIM הנתון, מקור הדואר הקולי לא יירשם באופן מקומי והכרטיסייה של הדואר הקולי תיעלם. אם מחליפים את כרטיס ה-SIM, הדואר הקולי הוויזואלי מופעל מחדש.
הוחלף על ידי VVM של הספק
אם מותקנת במכשיר אפליקציה של ספק סלולר להודעות קוליות חזותיות, היא יכולה להשבית את לקוח ה-AOSP VVM. כדי לעשות זאת, בודקים אם מותקנת חבילה עם שם שתואם לפרמטר KEY_CARRIER_VVM_PACKAGE_NAME_STRING
.
עדיין אפשר להפעיל את לקוח VVM דרך אינטראקציה של משתמשים.
בדיקה
יש קבוצה קיימת (מ-Android 4.0) של בדיקות CTS לממשקי ה-API של VoicemailProvider שמאפשרים לאפליקציה להוסיף הודעות קוליות לפלטפורמה, לבצע שאילתות עליהן או למחוק אותן. אלה אותם ממשקי ה-API שבהם VVM משתמש כדי להוסיף או למחוק הודעות קוליות, כדי שכל אפליקציית חיוג תוכל להציג אותן בממשק המשתמש.
כדי לבדוק שאפליקציית ההגדרות מעבירה את הגדרות OMTP בצורה נכונה, אפשר לבדוק את הקוד באמצעות:
- כרטיס SIM שמכיל חתימה תקפה של אישור
- מכשיר עם Android 6.0 עם גרסה לא שונה של מסגרת הטלפון של AOSP