WebAPI/WebTelephony
< WebAPI
Jump to navigation
Jump to search
Proposed API
(lkcl29dec11: remember also to include data calls as well as voice calls, so that internet access can be initiated)
navigator.telephony would return an object with the following interface
interface Telephony : EventTarget {
TelephonyCall dial(DOMString number); // Returns a object in "dialing" state
attribute boolean muted; // Should these live on the call/group?
attribute boolean speakerOn;
attribute double speakerVolume;
attribute boolean doNotDisturb; // Automatically drops calls. Not sure if needed. Only seems needed
// if supported as a network feature.
attribute any active; // Either a call or a group
readonly attribute TelephonyCall[] liveCalls;
readonly attribute CallGroup[] liveGroups;
void startTone(DOMString tone);
void stopTone();
void sendTones(DOMString tones,
[optional] unsigned long toneDuration,
[optional] unsigned long intervalDuration);
attribute Function onincoming;
}
interface TelephonyCall : EventTarget {
readonly attribute DOMString number;
readonly attribute DOMString readyState;
// "dialing", "ringing", "busy", "connecting", "connected", "disconnecting", "disconnected", "incoming"
attribute Function onreadystatechange;
attribute Function onringing;
attribute Function onbusy;
attribute Function onconnecting;
attribute Function onconnected;
attribute Function ondisconnecting;
attribute Function ondisconnected;
void answer(); // Should this make the call the active one?
void disconnect();
// void hold(); These need to be made async. Also not sure if they are needed with a proper async 3-way API
// void resume();
}
interface CallEvent : Event {
readonly attribute TelephonyCall call;
}