WebAPI/WebVoicemail/Multi-SIM: Difference between revisions
< WebAPI | WebVoicemail
Jump to navigation
Jump to search
(Add MozVoicemail API for multisim) |
No edit summary |
||
| (3 intermediate revisions by one other user not shown) | |||
| Line 33: | Line 33: | ||
attribute EventHandler onstatuschanged; | 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; | |||
}; | |||
=== Use Case === | |||
*Current B2G: | |||
var voicemail = navigator.mozVoicemail; | |||
var number = voicemail.number; | |||
var name = voicemail.displayName; | |||
var status = voicemail.status; | |||
*Multi-SIM: | |||
var voicemail = navigator.mozVoicemail; // Same as current usage. | |||
var serviceId = 1; | |||
var number = voicemail.getNumber(serviceId); | |||
var name = voicemail.getDisplayName(serviceId); | |||
var status = voicemail.getStatus(serviceId); | |||
// User can use the default id. | |||
number = voicemail.getNumber(); | |||
name = voicemail.getDisplayName(); | |||
status = voicemail.getStatus(); | |||
[[Category:Web APIs]] | |||
Latest revision as of 23:28, 1 October 2014
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; };
Use Case
- Current B2G:
var voicemail = navigator.mozVoicemail; var number = voicemail.number; var name = voicemail.displayName; var status = voicemail.status;
- Multi-SIM:
var voicemail = navigator.mozVoicemail; // Same as current usage. var serviceId = 1; var number = voicemail.getNumber(serviceId); var name = voicemail.getDisplayName(serviceId); var status = voicemail.getStatus(serviceId); // User can use the default id. number = voicemail.getNumber(); name = voicemail.getDisplayName(); status = voicemail.getStatus();