<?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.Gsm.Card">
    <method name="GetImei">
      <tp:docstring>
	Get the IMEI of the card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_get_imei"/>
      <arg name="imei" type="s" direction="out">
	<tp:docstring>
	  The IMEI.
	</tp:docstring>
      </arg>
    </method>

    <method name="GetImsi">
      <tp:docstring>
	Get the IMSI of the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_get_imsi"/>
      <arg name="imsi" type="s" direction="out">
	<tp:docstring>
	  The IMSI.
	</tp:docstring>
      </arg>
    </method>

    <method name="GetOperatorId">
      <tp:docstring>
        Returns the ID of the network operator that issued the SIM card,
        formatted as a 5 or 6-digit MCC/MNC code (ex "310410").
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_get_operator_id"/>
      <arg name="imsi" type="s" direction="out">
	<tp:docstring>
	  The operator ID formatted as an MCC/MNC code.
	</tp:docstring>
      </arg>
    </method>

    <method name="GetSpn">
      <tp:docstring>
	Returns the SPN (Service Provider Name) from the SIM card,
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_get_spn"/>
      <arg name="spn" type="s" direction="out">
	<tp:docstring>
	  The Service Provider Name.
	</tp:docstring>
      </arg>
    </method>

    <method name="SendPuk">
      <tp:docstring>
	Send the PUK and a new PIN to unlock the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_send_puk"/>
      <arg name="puk" type="s" direction="in">
	<tp:docstring>
	  The PUK code.
	</tp:docstring>
      </arg>
      <arg name="pin" type="s" direction="in">
	<tp:docstring>
	  The PIN code.
	</tp:docstring>
      </arg>
    </method>
    
    <method name="SendPin">
      <tp:docstring>
	Send the PIN to unlock the SIM card.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_send_pin"/>
      <arg name="pin" type="s" direction="in">
	<tp:docstring>
	  The PIN code.
	</tp:docstring>
      </arg>
    </method>

    <method name="EnablePin">
      <tp:docstring>
	Enable or disable the PIN checking.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_enable_pin"/>
      <arg name="pin" type="s" direction="in">
	<tp:docstring>
	  The PIN code.
	</tp:docstring>
      </arg>
      <arg name="enabled" type="b" direction="in">
	<tp:docstring>
	  True to enable PIN checking.
	</tp:docstring>
      </arg>
    </method>

    <method name="ChangePin">
      <tp:docstring>
	Change the PIN code.
      </tp:docstring>
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
      <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_change_pin"/>
      <arg name="old_pin" type="s" direction="in">
	<tp:docstring>
	  The current PIN code.
	</tp:docstring>
      </arg>
      <arg name="new_pin" type="s" direction="in">
	<tp:docstring>
	  The new PIN code.
	</tp:docstring>
      </arg>
    </method>

    <property name="SimIdentifier" type="s" access="read">
      <tp:docstring>
	An obfuscated SIM identifier based on the IMSI or the ICCID.  This may
	be available before the PIN has been entered depending on the device
	itself.
      </tp:docstring>
    </property>

    <property name="SupportedBands" type="u" access="read" tp:type="MM_MODEM_GSM_BAND">
      <tp:docstring>
        Bands supported by the card.  (Note for plugin writers:
        returned value must not contain ANY)
      </tp:docstring>
    </property>

    <property name="SupportedModes" type="u" access="read" tp:type="MM_MODEM_GSM_MODE">
      <tp:docstring>
        Network selection modes supported by the card. (Note for plugin writers:
        returned value must not contain ANY)
      </tp:docstring>
    </property>

  </interface>
</node>
