WebAPI/WebTelephony/Multi-SIM

< WebAPI‎ | WebTelephony
Revision as of 09:46, 22 October 2012 by Hsinyi (talk | contribs) (webtelephony api for multisim)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Proposal: WebTelephony API for Multi-SIM

interface nsIDOMTelephonyManager : nsIDOMEventTarget
{
  attribute boolean muted; 
  attribute boolean speakerEnabled;
  
  readonly attribute jsval active;
  readonly attribute jsval calls;
  readonly attribute phoneState;  /* Ringing, Offhook, Idel */
  readonly attribute jsval phones;
  readonly attribute nsIDOMTelephony defaultPhone;
  
  [implicit_jscontext] attribute jsval onincoming;
  [implicit_jscontext] attribute jsval oncallschanged;
};
interface nsIDOMTelephony: nsIDOMEventTarget
{
  nsIDOMTelephonyCall dial(in DOMString number);
  
  // The call that is "active", i.e. receives microphone input and tones
  // generated via startTone.
  readonly attribute jsval active;

  // Array of all calls that are currently connected.
  readonly attribute jsval calls;

  void startTone(in DOMString tone);
  void stopTone();

  attribute nsIDOMEventListener onincoming;
  attribute nsIDOMEventListener oncallschanged;
};
interface nsIDOMTelephonyCall: nsIDOMEventTarget
{
  readonly attribute DOMString number;

  // "dialing", "alerting", "busy", "connecting", "connected", "disconnecting", 
  // "disconnected", "incoming", "holding", "held", "resuming"
  readonly attribute DOMString state;
  
  readonly attribute nsIDOMDOMError error;
  readonly attribute nsIDOMTelephony phone;

  // functions to mediate a call.
  void answer();  
  void hangUp();
  void hold(); 
  // Resuming a group automatically holds any other groups/calls
  void resume(); 

  attribute nsIDOMEventListener onstatechange;

  attribute nsIDOMEventListener ondialing;
  attribute nsIDOMEventListener onalerting;
  attribute nsIDOMEventListener onbusy;
  attribute nsIDOMEventListener onconnecting;
  attribute nsIDOMEventListener onconnected;
  attribute nsIDOMEventListener ondisconnecting;
  attribute nsIDOMEventListener ondisconnected;
  attribute nsIDOMEventListener onincoming;
  attribute nsIDOMEventListener onholding; 
  attribute nsIDOMEventListener onheld; 
  attribute nsIDOMEventListener onresuming; 
 };