<?xml version="1.0" encoding="UTF-8" ?>

<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <interface name="org.freedesktop.ModemManager.Modem.Cdma">

    <method name="Activate">
      <tp:docstring>
        Activates the modem for use with a given carrier.  In the
        event of immediate failure, returns an error value instead of
        setting a DBus error.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_cdma_activate"/>
      <arg name="carrier" type="s" direction="in">
        <tp:docstring>
          Name of carrier.
        </tp:docstring>
      </arg>
      <arg name="immediate_error" type="u" direction="out">
        <tp:docstring>
          An enum from MM_MODEM_CDMA_ACTIVATION_ERROR.  This is
          returned for immediate errors.  Delayed errors are returned
          via an ActivationStateChanged signal
        </tp:docstring>
      </arg>
    </method>

    <method name="ActivateManual">
      <tp:docstring>
        Sets modem configuration data.  Unlike regular Activate(),
        this does not contact the carrier.  Some modems will reboot
        after this call is made.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_cdma_activate_manual"/>
      <arg name="properties" type="a{sv}" direction="in">
        <tp:docstring>
          A dictionary of properties to set on the modem.  Keys include 'mdn', 'min'
        </tp:docstring>
      </arg>
    </method>

    <signal name="ActivationStateChanged">
      <tp:docstring>
	    The device activation state changed.
      </tp:docstring>
      <arg name="activation_state" type="u" tp:type="MM_MODEM_CDMA_ACTIVATION_STATE">
        <tp:docstring>Current activation state</tp:docstring>
      </arg>
      <arg name="activation_error" type="u" tp:type="MM_MODEM_CDMA_ACTIVATION_ERROR">
        <tp:docstring>Carrier-specific error code</tp:docstring>
      </arg>
      <arg name="status_changes" type="a{sv}">
        <tp:docstring>Selected Modem.Simple.GetStatus keys that have changed as a
          result of this activation state change.  Will include 'mdn'
          and 'min'.
        </tp:docstring>
      </arg>
    </signal>

    <method name="GetSignalQuality">
      <tp:docstring>
	Get the current signal quality.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_cdma_get_signal_quality"/>
      <arg name="quality" type="u" direction="out">
	<tp:docstring>
	  Signal quality (percent).
	</tp:docstring>
      </arg>
    </method>

    <method name="GetEsn">
      <tp:docstring>
        Get the Electronic Serial Number of the card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_cdma_get_esn"/>
      <arg name="esn" type="s" direction="out">
        <tp:docstring>
          The ESN.
        </tp:docstring>
      </arg>
    </method>

    <method name="GetServingSystem">
      <tp:docstring>
        Get the Service System details of the current network, if registered.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_cdma_get_serving_system"/>
      <arg name="info" type="(usu)" direction="out">
        <tp:docstring>
          A structure containing the Band Class (0 = unknown, 1 = 800 MHz, 2 = 1900 MHz), the Band ("A" - "F" as defined by IS707-A), and the System ID of the serving network.
        </tp:docstring>
      </arg>
    </method>

    <signal name="SignalQuality">
      <tp:docstring>
	The signal quality changed.
      </tp:docstring>
      <arg name="quality" type="u">
	<tp:docstring>
	  The new quality in percent, 0..100.
	</tp:docstring>
      </arg>
    </signal>

    <method name="GetRegistrationState">
      <tp:docstring>Get device registration state.</tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_modem_cdma_get_registration_state"/>
      <arg name="cdma_1x_state" type="u" direction="out" tp:type="MM_MODEM_CDMA_REGISTRATION_STATE">
        <tp:docstring>CDMA 1x registration state.</tp:docstring>
      </arg>
      <arg name="evdo_state" type="u" direction="out" tp:type="MM_MODEM_CDMA_REGISTRATION_STATE">
        <tp:docstring>EVDO registration state.</tp:docstring>
      </arg>
    </method>

    <property name="Meid" type="s" access="read">
      <tp:docstring>
        The modem's Mobile Equipment Identifier.
      </tp:docstring>
    </property>

    <signal name="RegistrationStateChanged">
      <tp:docstring>
	The device registration state changed.
      </tp:docstring>
      <arg name="cdma-1x-state" type="u" tp:type="MM_MODEM_CDMA_REGISTRATION_STATE">
        <tp:docstring>CDMA 1x registration state.</tp:docstring>
      </arg>
      <arg name="evdo-state" type="u" tp:type="MM_MODEM_CDMA_REGISTRATION_STATE">
        <tp:docstring>EVDO registration state.</tp:docstring>
      </arg>
    </signal>

    <tp:enum name="MM_MODEM_CDMA_REGISTRATION_STATE" type="u">
      <tp:enumvalue suffix="UNKNOWN" value="0">
        <tp:docstring>Registration status is unknown or the device is not registered.</tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="REGISTERED" value="1">
        <tp:docstring>Registered, but roaming status is unknown or cannot be provided by the device.  The device may or may not be roaming.</tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="HOME" value="2">
        <tp:docstring>Currently registered on the home network.</tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="ROAMING" value="3">
        <tp:docstring>Currently registered on a roaming network.</tp:docstring>
      </tp:enumvalue>
    </tp:enum>

    <tp:enum name="MM_MODEM_CDMA_ACTIVATION_STATE" type="u">
      <tp:enumvalue suffix="NOT_ACTIVATED" value="0">
        <tp:docstring>Device is not activated</tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="ACTIVATING" value="1">
        <tp:docstring>Device is activating</tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="PARTIALLY_ACTIVATED" value="2">
        <tp:docstring>Device is partially activated; carrier-specific steps required to continue.</tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="ACTIVATED" value="3">
        <tp:docstring>Device is ready for use.</tp:docstring>
      </tp:enumvalue>
    </tp:enum>

    <tp:enum name="MM_MODEM_CDMA_ACTIVATION_ERROR" type="u">
      <tp:enumvalue suffix="NO_ERROR" value="0"/>
      <tp:enumvalue suffix="ROAMING" value="1">
        <tp:docstring>
          Device cannot activate while roaming.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="WRONG_RADIO_INTERFACE" value="2">
        <tp:docstring>
          Device cannot activate on this network type (eg EVDO vs 1xRTT).
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="COULD_NOT_CONNECT" value="3">
        <tp:docstring>
          Device could not connect to the network for activation.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="SECURITY_AUTHENTICATION_FAILED" value="4">
        <tp:docstring>
          Device could not authenticate to the network for activation.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="PROVISIONING_FAILED" value="5">
        <tp:docstring>
          Later stages of device provisioning failed.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="NO_SIGNAL" value="6">
        <tp:docstring>
          No signal available.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="UNKNOWN" value="7">
        <tp:docstring>
          An error occurred.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="TIMED_OUT" value="8">
        <tp:docstring>
          Activation timed out.
        </tp:docstring>
      </tp:enumvalue>
      <tp:enumvalue suffix="START_FAILED" value="9">
        <tp:docstring>
          API call for initial activation failed.
        </tp:docstring>
      </tp:enumvalue>
    </tp:enum>
  </interface>
</node>
