<?xml version="1.0" ?>
<node name="/Channel_Interface_Service_Point" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
  <tp:copyright> Copyright © 2005-2010 Nokia Corporation </tp:copyright>
  <tp:copyright> Copyright © 2005-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.Channel.Interface.ServicePoint">
    <tp:added version="0.19.7">(as stable API)</tp:added>

    <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
      <p>An interface for channels
        that can indicate when/if they are connected to some form
        of service point.  For example, when
        dialing 9-1-1 in the US, a GSM modem/network will recognize that as
        an emergency call, and inform higher levels of the stack that the
        call is being handled by an emergency service.  In this example,
        the call is handled by a Public Safety Answering Point (PSAP) which is labeled
        as "urn:service:sos".  Other networks and protocols may handle this
        differently while still using this interface.</p>

      <p>Note that while the majority of examples given in this
        documentation are for GSM calls, they could just as easily be
        SIP calls, GSM SMS's, etc.</p>
    </tp:docstring>

    <property name="InitialServicePoint" tp:name-for-bindings="Initial_Service_Point"
      type="(us)" tp:type="Service_Point" access="read">
      <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
        <p>This property is used to indicate that the channel target is a
        well-known service point.  Please note that the CM (or lower layers
        of the stack or network) may forward the connection to other other
        service points, which the CM SHOULD indicate via
        <tp:member-ref>ServicePointChanged</tp:member-ref>
        signal.</p>

        <p>This property SHOULD be set for channel requests that are
        specifically targeting service points.</p>
      </tp:docstring>
    </property>

    <property name="CurrentServicePoint" tp:name-for-bindings="Current_Service_Point"
      type="(us)" tp:type="Service_Point" access="read">
      <tp:docstring>
        The service point that the channel is connected to. If the channel is
        not connected to a service point, the CM MUST set the
        <tp:type>Service_Point_Type</tp:type> field to None; for instance,
        this will be the case for ordinary calls.
      </tp:docstring>
    </property>

    <signal name="ServicePointChanged" tp:name-for-bindings="Service_Point_Changed">
      <tp:docstring>
        <p>Emitted when a channel changes the service point that it's connected to.  This
        might be a new call being connected to a service, a call connected to
        a service being routed to a different service
        (ie, an emergency call being routed from a generic emergency PSAP to
        a poison control PSAP), or any number of other things.</p>

        <p>Note that this should be emitted as soon as the CM has been notified
        of the switch, and has updated its internal state.  The CM MAY still
        be in the process of connecting to the new service point.</p>
      </tp:docstring>

      <arg name="Service_Point" type="(us)" tp:type="Service_Point">
        <tp:docstring>
          The new service point that is being used.
        </tp:docstring>
      </arg>
    </signal>

  </interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
