Confirmed users
346
edits
No edit summary |
m (Reformat the interface block.) |
||
| Line 5: | Line 5: | ||
navigator.telephony would return an object with the following interface | 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 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 | 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 | interface CallEvent : Event { | ||
readonly attribute TelephonyCall call; | |||
} | } | ||
=== Proposal: Enhance telephony call states to hold a call === | === Proposal: Enhance telephony call states to hold a call === | ||
| Line 57: | Line 56: | ||
*Scenario #3: User wants to hold a call when there's no waiting call<br>User can |HoldCall()| to change the call state from CALL_STATE_CONNECTED to CALL_STATE_HELD. User can |ResumeCall()| to make a call from CALL_STATE_HELD back to <br>CALL_STATE_CONNECTED. | *Scenario #3: User wants to hold a call when there's no waiting call<br>User can |HoldCall()| to change the call state from CALL_STATE_CONNECTED to CALL_STATE_HELD. User can |ResumeCall()| to make a call from CALL_STATE_HELD back to <br>CALL_STATE_CONNECTED. | ||
[[Image: | [[Image:Proposal TelephonyCallStates.png]] <br> | ||
<br> | |||
=== Proposal: Enhance WebTelephony API to hold a call === | === Proposal: Enhance WebTelephony API to hold a call === | ||
interface nsIDOMTelephony | interface nsIDOMTelephony : nsIDOMEventTarget | ||
{ | |||
attribute boolean muted; | nsIDOMTelephonyCall dial(in DOMString number); | ||
// The call that is "active", i.e. receives microphone input and tones | attribute boolean muted; | ||
attribute boolean speakerEnabled; | |||
// Array of all calls that are currently connected. | |||
// The call that is "active", i.e. receives microphone input and tones | |||
void startTone(in DOMString tone); | // generated via startTone. | ||
readonly attribute jsval active; | |||
attribute nsIDOMEventListener onincoming; | |||
// Array of all calls that are currently connected. | |||
interface nsIDOMTelephonyCall | readonly attribute jsval calls; | ||
void answer(); //make an incoming call or a waiting call into | void startTone(in DOMString tone); | ||
void stopTone(); | |||
attribute nsIDOMEventListener onstatechange; | |||
attribute nsIDOMEventListener onincoming; | |||
attribute nsIDOMEventListener ondialing; | attribute nsIDOMEventListener onwaiting; //new | ||
attribute nsIDOMEventListener oncallschanged; | |||
}; | |||
interface nsIDOMTelephonyCall : nsIDOMEventTarget | |||
{ | |||
readonly attribute DOMString number; | |||
readonly attribute DOMString state; | |||
// "dialing", "ringing", "busy", "connecting", "connected", "disconnecting", "disconnected", "incoming", | |||
// Add new states: "waiting", "holding", "held", "resuming" | |||
void answer(); //make an incoming call or a waiting call into | |||
//"connected" | |||
void hangUp(); | |||
void holdCal(); //change a connected call into "held" | |||
void resumeCall(); //change a "held" call into connected | |||
attribute nsIDOMEventListener onstatechange; | |||
attribute nsIDOMEventListener ondialing; | |||
attribute nsIDOMEventListener onringing; | |||
attribute nsIDOMEventListener onbusy; | |||
attribute nsIDOMEventListener onconnecting; | |||
attribute nsIDOMEventListener onconnected; | |||
attribute nsIDOMEventListener ondisconnecting; | |||
attribute nsIDOMEventListener ondisconnected; | |||
// attribute nsIDOMEventListener onincoming; | |||
attribute nsIDOMEventListener onholding; //new | |||
attribute nsIDOMEventListener onheld; //new | |||
attribute nsIDOMEventListener onresuming; //new | |||
}; | |||