dom/webidl/TelephonyCall.webidl
author Mike de Boer <mdeboer@mozilla.com>
Fri, 10 Apr 2015 13:23:14 +0200
changeset 267072 719d7e41abeac7fee33b6d7ab4676ed6b537c3af
parent 265971 a391057b98933956ff8b6f54949dbf294e751a1d
child 301730 f891c4f77f678eb871252527f70a7a2f8705fda1
permissions -rw-r--r--
Bug 1132301 - Part 5: Add unit tests for the Social Sharing feature of Loop. r=Standard8, a=lizzard

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

[Pref="dom.telephony.enabled"]
interface TelephonyCall : EventTarget {
  // Indicate which service the call comes from.
  readonly attribute unsigned long serviceId;

  readonly attribute TelephonyCallId id;

  // In CDMA networks, the 2nd waiting call shares the connection with the 1st
  // call. We need an additional attribute for the CDMA waiting call.
  readonly attribute TelephonyCallId? secondId;

  readonly attribute DOMString state;

  // The property "emergency" indicates whether the call number is an emergency
  // number. Only the outgoing call could have a value with true and it is
  // available after dialing state.
  readonly attribute boolean emergency;

  // Indicate whether the call state can be switched between "connected" and
  // "held".
  readonly attribute boolean switchable;

  // Indicate whether the call can be added into TelephonyCallGroup.
  readonly attribute boolean mergeable;

  readonly attribute DOMError? error;

  readonly attribute TelephonyCallDisconnectedReason? disconnectedReason;

  readonly attribute TelephonyCallGroup? group;

  [NewObject]
  Promise<void> answer();
  [NewObject]
  Promise<void> hangUp();
  [NewObject]
  Promise<void> hold();
  [NewObject]
  Promise<void> resume();

  attribute EventHandler onstatechange;
  attribute EventHandler ondialing;
  attribute EventHandler onalerting;
  attribute EventHandler onconnected;
  attribute EventHandler ondisconnected;
  attribute EventHandler onheld;
  attribute EventHandler onerror;

  // Fired whenever the group attribute changes.
  attribute EventHandler ongroupchange;
};

enum TelephonyCallDisconnectedReason {
  "BadNumber",
  "NoRouteToDestination",
  "ChannelUnacceptable",
  "OperatorDeterminedBarring",
  "NormalCallClearing",
  "Busy",
  "NoUserResponding",
  "UserAlertingNoAnswer",
  "CallRejected",
  "NumberChanged",
  "CallRejectedDestinationFeature",
  "PreEmption",
  "DestinationOutOfOrder",
  "InvalidNumberFormat",
  "FacilityRejected",
  "ResponseToStatusEnquiry",
  "Congestion",
  "NetworkOutOfOrder",
  "NetworkTempFailure",
  "SwitchingEquipCongestion",
  "AccessInfoDiscarded",
  "RequestedChannelNotAvailable",
  "ResourceUnavailable",
  "QosUnavailable",
  "RequestedFacilityNotSubscribed",
  "IncomingCallsBarredWithinCug",
  "BearerCapabilityNotAuthorized",
  "BearerCapabilityNotAvailable",
  "BearerNotImplemented",
  "ServiceNotAvailable",
  "IncomingCallExceeded",
  "RequestedFacilityNotImplemented",
  "UnrestrictedBearerNotAvailable",
  "ServiceNotImplemented",
  "InvalidTransactionId",
  "NotCugMember",
  "IncompatibleDestination",
  "InvalidTransitNetworkSelection",
  "SemanticallyIncorrectMessage",
  "InvalidMandatoryInfo",
  "MessageTypeNotImplemented",
  "MessageTypeIncompatibleProtocolState",
  "InfoElementNotImplemented",
  "ConditionalIe",
  "MessageIncompatibleProtocolState",
  "RecoveryOnTimerExpiry",
  "Protocol",
  "Interworking",
  "Barred",
  "FDNBlocked",
  "SubscriberUnknown",
  "DeviceNotAccepted",
  "ModifiedDial",
  "CdmaLockedUntilPowerCycle",
  "CdmaDrop",
  "CdmaIntercept",
  "CdmaReorder",
  "CdmaSoReject",
  "CdmaRetryOrder",
  "CdmaAcess",
  "CdmaPreempted",
  "CdmaNotEmergency",
  "CdmaAccessBlocked",
  "Unspecified",
};