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

<!--
 ModemManager 1.0 Interface Specification

   Copyright (C) 2015 Marco Bascetta <marco.bascetta@sadel.it>
   Copyright (C) 2015 Riccardo Vangelisti <riccardo.vangelisti@sadel.it>
-->

<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">

  <!--
      org.freedesktop.ModemManager1.Modem.Voice:
      @short_description: The ModemManager Voice interface.

      The Voice interface handles Calls.

      This interface will only be available once the modem is ready to be
      registered in the cellular network. 3GPP devices will require a valid
      unlocked SIM card before any of the features in the interface can be
      used.
  -->
  <interface name="org.freedesktop.ModemManager1.Modem.Voice">

    <!--
        ListCalls:
        @result: The list of call object paths.

        Retrieve all Calls.

        This method should only be used once and subsequent information
        retrieved either by listening for the
        #org.freedesktop.ModemManager1.Modem.Voice::Added signal,
        or by querying the specific Call object of interest.
    -->
    <method name="ListCalls">
      <arg name="result" type="ao" direction="out" />
    </method>

    <!--
        DeleteCall:
        @path: The object path of the Call to delete.

        Delete a Call from the list of calls.

        The call will be hangup if it is still active.
    -->
    <method name="DeleteCall">
      <arg name="path" type="o" direction="in" />
    </method>

    <!--
        CreateCall:
        @properties: Call properties from the <link linkend="gdbus-org.freedesktop.ModemManager1.Call">Call D-Bus interface</link>.
        @path: The object path of the new call object.

        Creates a new call object.

        The '<link linkend="gdbus-property-org-freedesktop-ModemManager1-Call.Number">Number</link>' is mandatory
    -->
    <method name="CreateCall">
      <arg name="properties" type="a{sv}" direction="in" />
      <arg name="path" type="o" direction="out" />
    </method>

    <!--
        CallAdded:
        @path: Object path of the new call.

        Emitted when any part of a Call has been received or added.
    -->
    <signal name="CallAdded">
      <arg name="path" type="o" />
    </signal>

    <!--
        CallDeleted:
        @path: Object path of the now deleted Call.

        Emitted when a call has been deleted.
    -->
    <signal name="CallDeleted">
      <arg name="path" type="o" />
    </signal>

    <!--
        Calls:

        The list of calls object paths.
    -->
    <property name="Calls" type="ao" access="read" />

  </interface>
</node>
