پست صوتی تصویری

در Android 6.0 (Marshmallow) پشتیبانی از پست صوتی تصویری (VVM) پیاده‌سازی شد که در «شماره‌گیر» ادغام شده است و به خدمات VVM شرکت مخابراتی سازگار امکان می‌دهد با حداقل پیکربندی به «شماره‌گیر» متصل شوند. پست صوتی تصویری به کاربران امکان می‌دهد به‌راحتی و بدون نیاز به تماس تلفنی پست صوتی را بررسی کنند. کاربران می‌توانند فهرستی از پیام‌ها را در میانایی شبیه صندوق ورودی مشاهده کنند، به آن‌ها به هر ترتیبی گوش دهند، و درصورت تمایل آن‌ها را حذف کنند.

‫Android 7.0 پارامترهای پیکربندی زیر را به پست صوتی تصویری اضافه کرد:

  • پیش‌دریافت پست‌های صوتی را KEY_VVM_PREFETCH_BOOLEAN کنترل می‌کند
  • کنترل اینکه آیا اتصال داده تلفن همراه توسط KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN لازم است یا نه
  • واکشی ترانویسی‌های پست صوتی
  • درحال واکشی سهمیه پست صوتی

این صفحه نمای کلی از آنچه ارائه می‌شود، نحوه ادغام شرکت‌های مخابراتی با آن، و برخی جزئیات پیاده‌سازی را ارائه می‌دهد.

کارخواه پست صوتی تصویری (VVM)

‫Android نسخه ۶.۰ و بالاتر شامل کارخواه OMTP VVM است که (درصورت ارائه پیکربندی صحیح) به سرورهای VVM شرکت مخابراتی متصل می‌شود و پیام‌های VVM را در «شماره‌گیر پروژه متن‌باز Android» (AOSP) درج می‌کند. کارخواه VVM:

  • پیامک‌های استفاده‌شده برای فعال‌سازی/غیرفعال‌سازی/وضعیت درخواست سرویس و پیامک‌های استفاده‌شده برای اطلاع‌رسانی به دستگاه درباره رویدادهای صندوق پستی مشترک را مدیریت می‌کند
  • صندوق پست را با سرور IMAP همگام‌سازی می‌کند
  • وقتی کاربر انتخاب می‌کند به پیام‌های صوتی گوش دهد، آن‌ها را بارگیری می‌کند
  • ترانویسی‌های پست صوتی را واکشی می‌کند
  • جزئیات سهمیه پست صوتی (اندازه کل صندوق پست و اندازه اشغال‌شده) را واکشی می‌کند
  • با «شماره‌گیر» برای عملکرد کاربر مثل تماس برگشتی، مشاهده پیام‌های خوانده‌نشده، حذف پیام‌ها، و غیره ادغام می‌شود.

ادغام با کارخواه VVM

پیاده‌سازی

شرکت مخابراتی باید سرور پست صوتی تصویری‌ای ارائه دهد که مشخصات OMTP VVM را پیاده‌سازی کند. پیاده‌سازی فعلی کارخواه AOSP VVM از ویژگی‌های اصلی (خواندن/حذف پیام‌های صوتی، بارگیری/همگام‌سازی/گوش دادن) پشتیبانی می‌کند، اما ویژگی‌های اضافی TUI (تغییر گذرواژه، پیام صوتی خوشامدگویی، زبان‌ها) پیاده‌سازی نشده است. درحال‌حاضر، فقط از OMTP نسخه ۱.۱ پشتیبانی می‌کنیم و از رمزگذاری برای اصالت‌سنجی IMAP استفاده نمی‌کنیم.

برای پشتیبانی از ترانویسی، شرکت‌های مخابراتی باید از قالب پیوست ترانویسی (نوع MIME ساده/متن) که در مشخصات OMTP 1.3، مورد ۲.۱.۳ مشخص شده است پشتیبانی کنند.

توجه: پیامک‌های سرور به دستگاه (برای نمونه، «وضعیت» یا «همگام‌سازی») باید پیامک‌های داده باشند.

پیکربندی

برای اینکه شرکت مخابراتی بتواند با سرویس VVM ادغام شود، شرکت مخابراتی باید جزئیات پیکربندی را به پلاتفرمی که کارخواه OMTP می‌تواند استفاده کند ارائه دهد. این پارامترها عبارت‌اند از:

  • شماره مقصد و شماره درگاه برای پیامک
  • نام بسته برنامه پست صوتی تصویری ارائه‌شده توسط شرکت مخابراتی (درصورت ارائه)، تا اگر آن بسته نصب شده باشد، پیاده‌سازی پلاتفرم غیرفعال شود

این مقادیر ازطریق 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_CHANGED یا CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED گوش می‌دهد.
  2. وقتی سیم‌کارتی اضافه می‌شود که مقادیر «پیکربندی شرکت مخابراتی» صحیح را دارد (KEY_VVM_TYPE_STRING روی TelephonyManager.VVM_TYPE_OMTP یا TelephonyManager.VVM_TYPE_CVVM تنظیم شده است)، کارخواه VVM پیامک «فعال‌سازی» را به مقدار مشخص‌شده در KEY_VVM_DESTINATION_NUMBER_STRING ارسال می‌کند.
  3. سرور سرویس پست صوتی تصویری را فعال می‌کند و اعتبارنامه OMTP را ازطریق STATUS SMA ارسال می‌کند. وقتی کارخواه VVM پیامک «وضعیت» را دریافت می‌کند، منبع پست صوتی را ثبت می‌کند و برگه پست صوتی را در دستگاه نمایش می‌دهد.
  4. اعتبارنامه OMTP به‌صورت محلی ذخیره می‌شود و دستگاه همگام‌سازی کامل را شروع می‌کند، همان‌طور که در زیر شرح داده شده است.

همگام‌سازی

روش‌های مختلفی وجود دارد که ازطریق آن‌ها کارخواه VVM می‌تواند با سرور شرکت مخابراتی همگام‌سازی کند و بالعکس.

  • همگام‌سازی کامل هنگام بارگیری اولیه انجام می‌شود. کارخواه VVM فراداده پست صوتی را مانند تاریخ و زمان، شماره مبدأ، مدت، ترانویسی‌های پست صوتی (درصورت دردسترس بودن)، و داده‌های صوتی را درصورتی‌که KEY_VVM_PREFETCH_BOOLEAN درست باشد واکشی می‌کند. همگام‌سازی‌های کامل می‌تواند توسط موارد زیر راه‌اندازی شود:
    • وارد کردن سیم‌کارت جدید
    • درحال بازراه‌اندازی دستگاه
    • دوباره دردسترس قرار می‌گیرد
    • درحال دریافت پخش VoicemailContract.ACTION_SYNC_VOICEMAIL
  • همگام‌سازی بارگذاری زمانی اتفاق می‌افتد که کاربر با پست صوتی تعامل برقرار می‌کند تا آن را بخواند یا حذف کند. همگام‌سازی بارگذاری باعث می‌شود سرور داده‌هایش را تغییر دهد تا با داده‌های دستگاه مطابقت داشته باشد. برای مثال، اگر کاربر پست صوتی را بخواند، در سرور به‌عنوان خوانده‌شده علامت‌گذاری می‌شود؛ اگر کاربر پست صوتی را حذف کند، در سرور حذف می‌شود.
  • همگام‌سازی بارگیری زمانی رخ می‌دهد که کارخواه «صندوق پستی تصویری» پیامک همگام‌سازی «MBU» (به‌روزرسانی صندوق پستی) را از شرکت مخابراتی دریافت می‌کند. پیام SYNC حاوی فراداده‌های پیام جدید است تا بتواند در ارائه‌دهنده محتوای پیام‌گیر صوتی ذخیره شود.

توجه: مقادیر سهمیه صندوق ورودی پست صوتی درطول هر همگام‌سازی بازیابی می‌شود.

بارگیری پست صوتی

وقتی کاربر برای گوش دادن به پست صوتی دکمه پخش را فشار می‌دهد، فایل صوتی مربوطه بارگیری می‌شود. اگر کاربر انتخاب کند که به پست صوتی گوش دهد، «شماره‌گیر» می‌تواند VoicemailContract.ACTION_FETCH_VOICEMAIL را پخش کند، که کارخواه پست صوتی دریافت می‌کند، بارگیری محتوا را آغاز کند، و سابقه را در ارائه‌دهنده محتوای پست صوتی پلاتفرم به‌روز کند.

غیرفعال کردن VVM

سرویس VVM را می‌توان ازطریق تعامل کاربر، برداشتن سیم‌کارت معتبر، یا جایگزینی با برنامه VVM شرکت مخابراتی غیرفعال یا ازکار انداخت. غیرفعال یعنی دستگاه محلی دیگر پست صوتی دیداری را نمایش نمی‌دهد. غیرفعال یعنی اینکه سرویس برای مشترک خاموش است. تعامل کاربر می‌تواند سرویس را غیرفعال کند، برداشتن سیم‌کارت سرویس را موقتاً غیرفعال می‌کند زیرا دیگر وجود ندارد، و جایگزینی VVM شرکت مخابراتی کارخواه VVM در AOSP را غیرفعال می‌کند.

تعامل کاربر

کاربر می‌تواند پست صوتی تصویری را به‌صورت دستی فعال یا غیرفعال کند. اگر کاربری پست گفتاری دیداری را غیرفعال کند، سرویس خود را نیز غیرفعال می‌کند. وقتی کاربر پست صوتی دیداری را غیرفعال می‌کند، پیامک غیرفعال‌سازی ارسال می‌شود، منبع پست صوتی به‌صورت محلی لغو ثبت می‌شود، و برگه پست صوتی ناپدید می‌شود. اگر پست صوتی دیداری را دوباره فعال کند، سرویس او نیز دوباره فعال می‌شود.

برداشتن سیم‌کارت

اگر تغییراتی در وضعیت سیم‌کارت دستگاه (ACTION_SIM_STATE_CHANGED) یا مقادیر «پیکربندی شرکت مخابراتی» (ACTION_CARRIER_CONFIG_CHANGED) ایجاد شود، و پیکربندی معتبری برای سیم‌کارت داده‌شده دیگر وجود نداشته باشد، آنگاه منبع پست صوتی به‌صورت محلی لغو ثبت می‌شود و برگه پست صوتی ناپدید می‌شود. اگر سیم‌کارت تعویض شود، «پست صوتی دیداری» دوباره فعال می‌شود.

با «پیام‌صوتی تصویری» شرکت مخابراتی جایگزین شد

برنامه پست صوتی تصویری شرکت مخابراتی، درصورت نصب روی دستگاه، می‌تواند کاربر AOSP VVM را غیرفعال کند. این کار با بررسی اینکه آیا بسته‌ای با نامی مطابق با پارامتر KEY_CARRIER_VVM_PACKAGE_NAME_STRING نصب شده است یا نه انجام می‌شود.

کارخواه VVM همچنان می‌تواند ازطریق تعامل کاربر فعال شود.

آزمایش

مجموعه‌ای از آزمایش‌های CTS برای میاناهای برنامه‌سازی کاربردی VoicemailProvider وجود دارد (از Android 4.0) که به برنامه اجازه می‌دهد پیام‌های صوتی را در پلاتفرم درج/پُرسمان/حذف کند. این‌ها همان میاناهای برنامه‌سازی کاربردی هستند که VVM برای افزودن/حذف پیام‌های صوتی استفاده می‌کند تا هر برنامه «شماره‌گیر» بتواند آن‌ها را در واسط کاربر نمایش دهد.

برای آزمایش اینکه برنامه پیکربندی شما پیکربندی OMTP را به‌درستی منتقل می‌کند، می‌توانید کدتان را با موارد زیر آزمایش کنید:

  • سیم‌کارتی که حاوی امضای گواهی معتبر باشد
  • دستگاهی که Android 6.0 را با نسخه تغییرنیافته چارچوب تلفن AOSP اجرا می‌کند