Confirmed users
54
edits
(→Status) |
|||
| Line 30: | Line 30: | ||
We can access the phone functionality simply through navigator.mozTelephony. Once we have a reference to that object, we can start placing and recieving calls by the API below. | We can access the phone functionality simply through navigator.mozTelephony. Once we have a reference to that object, we can start placing and recieving calls by the API below. | ||
interface Telephony : EventTarget { | |||
/** | |||
* There are multiple telephony services in multi-sim architecture. We use | |||
* |serviceId| to indicate the target telephony service. If not specified, | |||
* the implementation MUST use the default service. | |||
* | |||
* Possible values of |serviceId| are 0 ~ (number of services - 1), which is | |||
* simply the index of a service. Get number of services by acquiring | |||
* |navigator.mozMobileConnections.length|. | |||
*/ | |||
// Promise<TelephonyCall> | |||
Promise dial(DOMString number, optional unsigned long serviceId); | |||
// Promise<TelephonyCall> | |||
Promise dialEmergency(DOMString number, optional unsigned long serviceId); | |||
[Throws] | |||
void startTone(DOMString tone, optional unsigned long serviceId); | |||
[Throws] | |||
void stopTone(optional unsigned long serviceId); | |||
[Throws] | |||
attribute boolean muted; | |||
[Throws] | |||
attribute boolean speakerEnabled; | |||
readonly attribute (TelephonyCall or TelephonyCallGroup)? active; | |||
// A call is contained either in Telephony or in TelephonyCallGroup. | |||
readonly attribute CallsList calls; | |||
readonly attribute TelephonyCallGroup conferenceGroup; | |||
attribute EventHandler onincoming; | |||
attribute EventHandler oncallschanged; | |||
attribute EventHandler onremoteheld; | |||
attribute EventHandler onremoteresumed; | |||
}; | |||
interface TelephonyCall : EventTarget { | |||
// Indicate which service the call comes from. | |||
readonly attribute unsigned long serviceId; | |||
readonly attribute DOMString number; | |||
// In CDMA networks, the 2nd waiting call shares the connection with the 1st | |||
// call. We need an additional attribute for the 2nd number. | |||
readonly attribute DOMString? secondNumber; | |||
readonly attribute DOMString state; | |||
// The property "emergency" indicates whether the call number is an emergency | |||
// number. Only the outgoing call could have a value with true and it is | |||
// available after dialing state. | |||
readonly attribute boolean emergency; | |||
// Indicate whether the call state can be switched between "connected" and | |||
// "held". | |||
readonly attribute boolean switchable; | |||
// Indicate whether the call can be added into TelephonyCallGroup. | |||
readonly attribute boolean mergeable; | |||
readonly attribute DOMError? error; | |||
readonly attribute TelephonyCallGroup? group; | |||
[Throws] | |||
void answer(); | |||
[Throws] | |||
void hangUp(); | |||
[Throws] | |||
void hold(); | |||
[Throws] | |||
void resume(); | |||
attribute EventHandler onstatechange; | |||
attribute EventHandler ondialing; | |||
attribute EventHandler onalerting; | |||
attribute EventHandler onconnecting; | |||
attribute EventHandler onconnected; | |||
attribute EventHandler ondisconnecting; | |||
attribute EventHandler ondisconnected; | |||
attribute EventHandler onholding; | |||
attribute EventHandler onheld; | |||
attribute EventHandler onresuming; | |||
attribute EventHandler onerror; | |||
// Fired whenever the group attribute changes. | |||
attribute EventHandler ongroupchange; | |||
}; | |||
interface TelephonyCallGroup : EventTarget { | |||
readonly attribute CallsList calls; | |||
[Throws] | |||
void add(TelephonyCall call); | |||
[Throws] | |||
void add(TelephonyCall call, TelephonyCall secondCall); | |||
[Throws] | |||
void remove(TelephonyCall call); | |||
[Throws] | |||
void hold(); | |||
[Throws] | |||
void resume(); | |||
readonly attribute DOMString state; | |||
attribute EventHandler onstatechange; | |||
attribute EventHandler onconnected; | |||
attribute EventHandler onholding; | |||
attribute EventHandler onheld; | |||
attribute EventHandler onresuming; | |||
attribute EventHandler oncallschanged; | |||
attribute EventHandler onerror; | |||
}; | |||
=== Example === | === Example === | ||