<?xml version="1.0" ?>
<node name="/Connection_Interface_Cellular"
  xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">

  <tp:copyright>Copyright © 2008-2010 Nokia Corporation</tp:copyright>
  <tp:copyright>Copyright © 2010 Collabora Ltd.</tp:copyright>
  <tp:license xmlns="http://www.w3.org/1999/xhtml">
    <p>This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Lesser General Public
      License as published by the Free Software Foundation; either
      version 2.1 of the License, or (at your option) any later version.</p>

    <p>This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Lesser General Public License for more details.</p>

    <p>You should have received a copy of the GNU Lesser General Public
      License along with this library; if not, write to the Free Software
      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
      02110-1301, USA.</p>
  </tp:license>

  <interface name="org.freedesktop.Telepathy.Connection.Interface.Cellular">
    <tp:added version="0.19.8">(as stable API)</tp:added>

    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>This interface is for various cellular things (GSM and/or CDMA) that
        aren't really applicable to other protocols.</p>
    </tp:docstring>

    <property name="MessageValidityPeriod" tp:name-for-bindings="Message_Validity_Period"
      type="u" access="readwrite"
      tp:is-connection-parameter='yup'>
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>Define how long should the service centre try message delivery before
          giving up, failing delivery and deleting the message. A value of 0
          means to use the service centre's default period.</p>

        <p>The value specified is in seconds. Note that various protocols or
          implementations may round the value up (eg. to a minute or hour
          precision). The maximum validity period may vary depending on
          protocol or provider.</p>
      </tp:docstring>
    </property>

    <property name="OverrideMessageServiceCentre"
        tp:name-for-bindings="Override_Message_Service_Centre"
        type="b" access="readwrite"
        tp:is-connection-parameter='can i get a hell yeah?'>
      <tp:added version='0.19.12'>Previously, as an undocumented
        feature, setting <tp:member-ref>MessageServiceCentre</tp:member-ref>
        to the empty string caused the SIM's default SMSC to be used.</tp:added>
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>If <code>True</code>, SMSes will be sent via the service centre
          specified by <tp:member-ref>MessageServiceCentre</tp:member-ref>. If
          <code>False</code>, the SIM's default SMSC will be used, ignoring the
          value of MessageServiceCentre.</p>

        <tp:rationale>
          <p>It could be desirable for a configuration interface to remember
            the user's previous choice of custom SMSC, even if it's not in use.
            This boolean allows that choice to be saved as an account parameter
            by Mission Control, rather than the UI needing to save it elsewhere
            to be restored if the user wants to reactivate it.</p>
        </tp:rationale>
      </tp:docstring>
    </property>

    <property name="MessageServiceCentre" tp:name-for-bindings="Message_Service_Centre"
      type="s" access="readwrite"
      tp:is-connection-parameter='HELL YEAH!!!'>
      <tp:changed version='0.19.12'>This property's value is now
        ignored unless
        <tp:member-ref>OverrideMessageServiceCentre</tp:member-ref> is
        <code>True</code>.</tp:changed>

      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">

        <p>Address for the messaging service centre. Typically (as is the case
          for GSM's SMSC), it's the ISDN / telephony address (ie. a phone
          number). If
          <tp:member-ref>OverrideMessageServiceCentre</tp:member-ref> is
          <code>False</code>, this property's value should be ignored by the CM
          in favour of the SIM's default SMSC.</p>
      </tp:docstring>
    </property>

    <property name="IMSI" tp:name-for-bindings="IMSI" type="s" access="read">
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>The International Mobile Subscriber Identifier, if it exists. This
          would originate from a SIM card.  If the IMSI is unknown, this will
          contain an empty string ("").</p>
      </tp:docstring>
    </property>

    <signal name="IMSIChanged" tp:name-for-bindings="IMSI_Changed">
      <tp:docstring>
        Emitted when the IMSI for the connection changes.  This sort of thing
        is rare, but could happen on cellular phones that allow hot-swapping
        of SIM cards.  In the case of SIM swapping, this signal would be
        emitted twice; the first time while the SIM is being ejected (with an
        empty string), and the second time after a new SIM has been inserted
        (assuming that the IMSI can be determined from the new SIM).
      </tp:docstring>

      <arg name="IMSI" type="s">
        <tp:docstring>
          The new IMSI value.  This may be an empty string in the case where
          the IMSI is being reset or removed.
        </tp:docstring>
      </arg>
    </signal>

    <property name="MessageReducedCharacterSet"
      tp:name-for-bindings="Message_Reduced_Character_Set"
      type="b" access="readwrite"
      tp:is-connection-parameter='no... just kidding! yes!'>
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>Determines how to encode SMSes containing characters that do not
          fit into a non-Unicode character set.
          If <code>False</code> (which SHOULD be the default), messages will
          be encoded as UCS-2 and sent with no loss of fidelity (at the
          potential financial cost of using twice as many SMSes); if
          <code>True</code>, the message will be recoded in an
          implementation‐specific way to fit into a GSM reduced character
          set.</p>
      </tp:docstring>
    </property>

    <property name="MessageNationalCharacterSet"
      tp:name-for-bindings="Message_National_Character_Set"
      type="s" access="readwrite"
      tp:is-connection-parameter='affirmative'>
      <tp:added version="0.21.12"/>
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>Hint for the connection manager for the GSM character set that
          should be used to send SMSes. The connection manager SHOULD follow
          this hint unless it has other ways to determine a better encoding.
          If the value is <code>"gsm"</code> (which SHOULD be the default),
          SMSes will be encoded in the normal 7-bit GSM character set,
          eventually falling back to UCS-2; see the
          <tp:member-ref>MessageReducedCharacterSet</tp:member-ref> property
          for details.
          Other valid character sets are specified in the
          <a href="http://www.3gpp.org/ftp/specs/archive/23_series/23.038/"
            >GSM standard</a> and are, for instance, <code>"turkey"</code>,
          <code>"spain"</code> or <code>"portugal"</code>.
          If the SMS cannot be encoded using the requested character set the
          behaviour is implementation-specific, but it is RECOMMENDED that
          the connection manager should behave as if this property was set
          to <code>"gsm"</code>.</p>
      </tp:docstring>
    </property>
  </interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
