WebAPI/WebTelephony: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
(mention that data calls also need to be included as well as voice calls)
Line 1: Line 1:
== Proposed API ==
== 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
navigator.telephony would return an object with the following interface

Revision as of 09:10, 29 December 2011

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;
 }