Web Telephony API

This feature is not on a current W3C standards track, but it is supported on the Firefox OS platform. Although implementations may change in the future and it is not supported widely across browsers, it is suitable for use in code dedicated to Firefox OS apps.

This API is available on Firefox OS for internal applications only.

Web Telephony is an API that makes it possible for web content to handle voice phone calls using JavaScript.

Concepts and usage

The Web Telephony API was created by Mozilla to satisfy the requirements for an API to control Firefox OS telephony capabilities. It is an internal-only API, because allowing 3rd party developers to gain conrtol over such a critical device function is a major security concern.

The API's entry point is via the Navigator.mozTelephony property. This returns a Telephony object that provides access to the device's telephony system, with methods and properties for controlling the microphone and speakerphone, generating dial tones (DTMF), starting and receiving calls, and more.

When a call is initiated, either started by the device using Telephony.dial(), or received from elsewhere via the Telephony.onincoming handler, a TelephonyCall object is created to represent the call. This can be manipulated via its properties and methods to allow programmatic answering, hanging up, and putting on hold of calls, responding to different call states, and much more.

The TelephonyCallGroup interface is also available, for representing and controlling multi-person calls.

Note: For sample code showing how to get started with Web Telephony API, see Using the Web Telephony API.

Manifest permissions

To use this API in a Firefox OS app, the manifest.webapp file needs to contain the following:

"type": "certified",
"permissions": {
  "telephony": {
    "description": "Required to control telephony functions"

Web telephony interfaces

The entry point for the Web Telephony API; allows access to the Telephony object.
Provides control over device telephony functions.
Represents a telephone call, allowing control over functions such as answering and hanging up the call.
Represents a multi-person call, providing functions to allow callers to be added and removed from the conference call, hanging up of the entire call, and more.
Represents events related to telephone calls.


Specification Status Comment
Web Telephony Draft Draft

Browser compatibility

For obvious reasons, support is primarily expected on mobile browsers.

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support Not supported Not supported Not supported Not supported Not supported
Feature Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support Not supported 12.0 (12.0) 1.0.1 Not supported Not supported Not supported

See also

Using the Web Telephony API

Document Tags and Contributors

Contributors to this page: chrisdavidmills, Sheppy, ethertank, dbruant, fscholz
Last updated by: chrisdavidmills,