WebAPI/WebVoicemail/Multi-SIM: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Web API: VoicemailStatus)
Line 34: Line 34:
  };
  };


  Compared to the single-SIM version, we add only one attribute to nsIDOMMozVoicemailStatus. The new  attribute is used to indicate of which service the voicemail status. In addition, we remove a numeric constant by following W3C WebAPI design style.
  Compared to the single-SIM version, we add only one attribute to nsIDOMMozVoicemailStatus.
The new  attribute is used to indicate of which service the voicemail status.
In addition, we remove a numeric constant by following W3C WebAPI design style.
   
   
  interface nsIDOMMozVoicemailStatus : nsISupports
  interface nsIDOMMozVoicemailStatus : nsISupports
  {
  {
  const unsigned long serviceId; /* New attribute */
  const unsigned long serviceId; /* New attribute */
 
  /**
    * Whether or not there are messages waiting in the voicemail box
    */
  readonly attribute boolean hasMessages;


  /**
  /**
  * Whether or not there are messages waiting in the voicemail box
    * The total message count. Some voicemail indicators will only specify that
  */
    * messages are waiting, but not the actual number. In that case, the value
   readonly attribute boolean hasMessages;
    * of messageCount will be MESSAGE_COUNT_UNKNOWN (-1).
    *
    * Logic for a voicemail notification might look something like:
    * if (status.hasMessages) {
    *  // show new voicemail notification
    *  if (status.messageCount > 0) {
    *     // add a label for the message count
    *  }
    * } else {
    *   // hide the voicemail notification
    * }
    */
  readonly attribute long messageCount;


  /**
  /**
  * The total message count. Some voicemail indicators will only specify that
    * Return call number received for this voicemail status, or null if one
  * messages are waiting, but not the actual number. In that case, the value
    * wasn't provided.
  * of messageCount will be MESSAGE_COUNT_UNKNOWN (-1).
     */
  *
   readonly attribute DOMString returnNumber;
  * Logic for a voicemail notification might look something like:
  * if (status.hasMessages) {
  *   // show new voicemail notification
  *  if (status.messageCount > 0) {
  *     // add a label for the message count
  *   }
  * } else {
  *  // hide the voicemail notification
  * }
   */
  readonly attribute long messageCount;


  /**
   /**
  * Return call number received for this voicemail status, or null if one
    * Displayable return call message received for this voicemail status, or null
   * wasn't provided.
    * if one wasn't provided.
  */
    */
  readonly attribute DOMString returnNumber;
  readonly attribute DOMString returnMessage;
 
  /**
  * Displayable return call message received for this voicemail status, or null
  * if one wasn't provided.
  */
  readonly attribute DOMString returnMessage;
  };
  };

Revision as of 08:05, 31 October 2013

Proposal: WebVoicemail API for Multi-SIM

Currently B2G supports a single SIM architecture. This proposal wants to extend MozVoicemail API to support multi-SIMs. The basic concept is the same as Telephony/MobileMessage API. I.e., we have a central object for dispatching events, so that API users could just listen to a single event source for different sim cards/services. User could get the voicemail status or voicemail number of a service by specifying the service Id. If user didn't apply a Id, the platform will just use the default Id.

Web API

interface MozVoicemail : EventTarget
{
  /**
   * The current voicemail status of a specified service, or null when the
   * status is unknown
   */
  [Throws]
  MozVoicemailStatus getStatus(optional unsigned long serviceId);

  /**
   * The voicemail box dialing number of a specified service, or null if one
   * wasn't found
   */
  [Throws]
  DOMString getNumber(optional unsigned long serviceId);

  /**
   * The display name of the voicemail box dialing number, or null if one
   * The display name of the voicemail box dialing number of a specified service,
   * or null if one wasn't found
   */
  [Throws]
  DOMString getDisplayName(optional unsigned long serviceId);

  /**
   * The current voicemail status has changed
   */
  attribute EventHandler onstatuschanged;
};
Compared to the single-SIM version, we add only one attribute to nsIDOMMozVoicemailStatus.
The new  attribute is used to indicate of which service the voicemail status.
In addition, we remove a numeric constant by following W3C WebAPI design style.

interface nsIDOMMozVoicemailStatus : nsISupports
{
  const unsigned long serviceId; /* New attribute */
  
  /**
   * Whether or not there are messages waiting in the voicemail box
   */
  readonly attribute boolean hasMessages;
  /**
   * The total message count. Some voicemail indicators will only specify that
   * messages are waiting, but not the actual number. In that case, the value
   * of messageCount will be MESSAGE_COUNT_UNKNOWN (-1).
   *
   * Logic for a voicemail notification might look something like:
   * if (status.hasMessages) {
   *   // show new voicemail notification
   *   if (status.messageCount > 0) {
   *     // add a label for the message count
   *   }
   * } else {
   *   // hide the voicemail notification
   * }
   */
  readonly attribute long messageCount;
  /**
   * Return call number received for this voicemail status, or null if one
   * wasn't provided.
   */
  readonly attribute DOMString returnNumber;
  /**
   * Displayable return call message received for this voicemail status, or null
   * if one wasn't provided.
   */
  readonly attribute DOMString returnMessage;
};