/* 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/. */

#include "nsISupports.idl"

[scriptable, uuid(3ea2d155-8ea2-42be-85d7-bd8ede8afc40)]
interface nsITelephonyCallInfo : nsISupports
{
  /**
   * Indicate the RIL client, 0 ~ (number of client - 1).
   */
  readonly attribute unsigned long clientId;

  /**
   * Call identifier assigned by the RIL.
   */
  readonly attribute unsigned long callIndex;

  /**
   * One of the nsITelephonyService::CALL_STATE_* values.
   */
  readonly attribute unsigned short callState;

  /**
   * Number of the other party.
   */
  readonly attribute DOMString number;

  /**
   * Presentation of the call number.
   * One of the nsITelephonyService::CALL_PRESENTATION_* values.
   */
  readonly attribute unsigned short numberPresentation;

  /**
   * Name of the other party.
   */
  readonly attribute DOMString name;

  /**
   * Presentation of the call name.
   * One of the nsITelephonyService::CALL_PRESENTATION_* values.
   */
  readonly attribute unsigned short namePresentation;

  /**
   * Indicates whether this call is outgoing or incoming.
   */
  readonly attribute boolean isOutgoing;

  /**
   * Indicates whether this call is an emergency call.
   */
  readonly attribute boolean isEmergency;

  /**
   * Indicates whether this call is a conference call.
   */
  readonly attribute boolean isConference;

  /**
   * Indicates whether this call can be switched between states of
   * nsITelephonyService::CALL_STATE_CONNECTED and
   * nsITelephonyService::CALL_STATE_HELD.
   */
  readonly attribute boolean isSwitchable;

  /**
   * Indicates whether this call be be added into a conference.
   */
  readonly attribute boolean isMergeable;
};
