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

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

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

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

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

سرویس گیرنده پست صوتی تصویری (VVM).

Android 6.0 و بالاتر شامل یک کلاینت OMTP VVM است که (در صورت ارائه با پیکربندی صحیح) به سرورهای Carrier VVM متصل می‌شود و پیام‌های پست صوتی تصویری را در شماره‌گیر پروژه منبع باز Android (AOSP) پر می‌کند. مشتری VVM:

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

با مشتری VVM یکپارچه شوید

پیاده سازی

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

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

توجه : پیام‌های پیام کوتاه سرور به دستگاه (مانند STATUS یا SYNC) باید پیامک داده‌ای باشند.

پیکربندی

برای اینکه یک اپراتور با سرویس 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 یک پیامک ACTIVATE به مقدار مشخص‌شده در KEY_VVM_DESTINATION_NUMBER_STRING ارسال می‌کند.
  3. سرور سرویس پست صوتی تصویری را فعال می کند و اعتبارنامه OMTP را از طریق پیامک STATUS ارسال می کند. هنگامی که مشتری VVM پیامک STATUS را دریافت می کند، منبع پست صوتی را ثبت می کند و برگه پست صوتی را روی دستگاه نمایش می دهد.
  4. اعتبارنامه OMTP به صورت محلی ذخیره می شود و دستگاه یک همگام سازی کامل را آغاز می کند، همانطور که در زیر توضیح داده شده است.

در حال همگام سازی

روش های مختلفی وجود دارد که کلاینت VVM می تواند با سرور حامل و بالعکس همگام شود.

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

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

دانلود پست صوتی

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

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

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

تعامل کاربر

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

حذف سیم کارت

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

جایگزین شده توسط حامل VVM

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

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

آزمایش کردن

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

برای آزمایش اینکه برنامه پیکربندی شما پیکربندی OMTP را به درستی انجام می دهد، می توانید کد خود را با موارد زیر تست کنید:

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