WebAPI/WebTelephony: Difference between revisions

Jump to navigation Jump to search
m
Reformat the interface block.
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 {
interface Telephony : EventTarget {
TelephonyCall dial(DOMString number); // Returns a object in "dialing" state
  TelephonyCall dial(DOMString number); // Returns a object in "dialing" state
attribute boolean muted;          // Should these live on the call/group?
  attribute boolean muted;          // Should these live on the call/group?
attribute boolean speakerEnabled;
  attribute boolean speakerEnabled;
 
attribute any active; // Active call, for now. Could be a group in the future.
  attribute any active; // Active call, for now. Could be a group in the future.
 
readonly attribute TelephonyCall[] calls;
  readonly attribute TelephonyCall[] calls;
 
void startTone(DOMString tone);
  void startTone(DOMString tone);
void stopTone();
  void stopTone();
 
attribute Function onincoming;
  attribute Function onincoming;
attribute Function oncallschanged;
  attribute Function oncallschanged;
  }
  }
 
  interface TelephonyCall : EventTarget {
  interface TelephonyCall : EventTarget {
readonly attribute DOMString number;
  readonly attribute DOMString number;
 
readonly attribute DOMString state;
  readonly attribute DOMString state;
// "dialing", "ringing", "busy", "connecting", "connected", "disconnecting", "disconnected", "incoming"
  // "dialing", "ringing", "busy", "connecting", "connected", "disconnecting", "disconnected", "incoming"
 
attribute Function onstatechange;
  attribute Function onstatechange;
attribute Function onringing;
  attribute Function onringing;
attribute Function onbusy;
  attribute Function onbusy;
attribute Function onconnecting;
  attribute Function onconnecting;
attribute Function onconnected;
  attribute Function onconnected;
attribute Function ondisconnecting;
  attribute Function ondisconnecting;
attribute Function ondisconnected;
  attribute Function ondisconnected;
 
void answer(); // Should this make the call the active one?
  void answer(); // Should this make the call the active one?
void hangUp();
  void hangUp();
  }
  }
 
  interface CallEvent : Event {
  interface CallEvent : Event {
readonly attribute TelephonyCall call;
  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:Proposal_TelephonyCallStates.png]]
[[Image:Proposal TelephonyCallStates.png]] <br>  
<br>
 
=== Proposal: Enhance WebTelephony API to hold a call  ===
=== Proposal: Enhance WebTelephony API to hold a call  ===


interface nsIDOMTelephony&nbsp;: nsIDOMEventTarget<br>{<br> nsIDOMTelephonyCall dial(in DOMString number);  
  interface nsIDOMTelephony : nsIDOMEventTarget
 
  {
attribute boolean muted;<br> attribute boolean speakerEnabled;  
    nsIDOMTelephonyCall dial(in DOMString number);
 
 
// The call that is "active", i.e. receives microphone input and tones<br> // generated via startTone.<br> readonly attribute jsval active;  
    attribute boolean muted;
 
    attribute boolean speakerEnabled;
// Array of all calls that are currently connected.<br> readonly attribute jsval calls;  
 
 
    // The call that is "active", i.e. receives microphone input and tones
void startTone(in DOMString tone);<br> void stopTone();  
    // generated via startTone.
 
    readonly attribute jsval active;
attribute nsIDOMEventListener onincoming;<br> attribute nsIDOMEventListener onwaiting; //new<br> attribute nsIDOMEventListener oncallschanged;<br>};  
 
 
    // Array of all calls that are currently connected.
interface nsIDOMTelephonyCall&nbsp;: nsIDOMEventTarget<br>{<br> readonly attribute DOMString number;<br> readonly attribute DOMString state;<br> // "dialing", "ringing", "busy", "connecting", "connected", "disconnecting", "disconnected", "incoming",<br> // Add new states: "waiting", "holding", "held", "resuming"  
    readonly attribute jsval calls;
 
 
void answer(); //make an incoming call or a waiting call into <br> //"connected"<br> void hangUp(); <br> void holdCal(); //change a connected call into "held"<br> void resumeCall(); //change a "held" call into connected  
    void startTone(in DOMString tone);
 
    void stopTone();
attribute nsIDOMEventListener onstatechange;  
 
 
    attribute nsIDOMEventListener onincoming;
attribute nsIDOMEventListener ondialing;<br> attribute nsIDOMEventListener onringing;<br> attribute nsIDOMEventListener onbusy;<br> attribute nsIDOMEventListener onconnecting;<br> attribute nsIDOMEventListener onconnected;<br> attribute nsIDOMEventListener ondisconnecting;<br> attribute nsIDOMEventListener ondisconnected;<br> <br> // attribute nsIDOMEventListener onincoming;<br> attribute nsIDOMEventListener onholding; //new<br> attribute nsIDOMEventListener onheld; //new<br> attribute nsIDOMEventListener onresuming; //new<br>}; <br>
    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
  };
Confirmed users
346

edits

Navigation menu