/* 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(84045b7e-84fb-11e4-a94c-5ba58d0d5932)]
interface nsITelephonyMessenger : nsISupports
{
  /**
   * To broadcast 'telephony-new-call' system message
   */
  void notifyNewCall();

  /**
   * To broadcast 'telephony-call-ended' system message
   *
   * @param aServiceId
   *        The ID of Service where this info is notified from.
   * @param aNumber
   *        The phone number of the call to be ended.
   * @param aCdmaWaitingNumber
   *        The CDMA call waiting number to be ended if available.
   * @param aEmergency
   *        true if it's a emergency number.
   * @param aDuration
   *        The duration of this call.
   * @param aOutgoing
   *        true if it's an outgoing call.
   * @param aHangUpLocal
   *        true if this call was hung up by the user.
   */
  void notifyCallEnded(in unsigned long aServiceId,
                       in DOMString aNumber,
                       in DOMString aCdmaWaitingNumber,
                       in boolean aEmergency,
                       in unsigned long aDuration,
                       in boolean aOutgoing,
                       in boolean aHangUpLocal);

  /**
   * 'ussd-received' system message
   *
   * @param aServiceId
   *        The ID of Service where this info is notified from.
   * @param aMessage
   *        USSD Message to be displayed.
   * @param aSessionEnded
   *        True if USSD session is ended.
   */
  void notifyUssdReceived(in unsigned long aServiceId,
                          in DOMString aMessage,
                          in boolean aSessionEnded);
};