== <h2> Proposed API ==</h2><p>(lkcl29dec11: remember also to include data calls as well as voice calls, so that internet access can be initiated) </p><p>navigator.telephony would return an object with the following interface</p> <pre class="_fck_mw_lspace"> 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 speakerEnabled; attribute any active; // Active call, for now. Could be a group in the future. readonly attribute TelephonyCall[] calls; void startTone(DOMString tone); void stopTone(); attribute Function onincoming; attribute Function oncallschanged; } interface TelephonyCall  : EventTarget { readonly attribute DOMString number; readonly attribute DOMString state; // ""dialing"", ""ringing"", ""busy"", ""connecting"", ""connected"", ""disconnecting"", ""disconnected"", ""incoming"" attribute Function onstatechange; 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 hangUp(); } interface CallEvent  : Event { readonly attribute TelephonyCall call; }</pre>