Skip to content
Snippets Groups Projects
Unverified Commit a63b165b authored by aviau's avatar aviau
Browse files

Remove duplicated D-Bus interface files

Now that D-Bus interface files are installed by the Ring daemon,
there is no need to duplicate them in this repository.

This patch introduces a new cmake flag: -DRING_XML_INTERFACES_DIR,
which can be used to specify the directory containing the D-Bus
interface files.

If the flag is not specified, we look for the following directories,
in order:
 - ${RING_BUILD_DIR}/../bin/dbus
   This should work in most cases, where we are building against the
   project directory.

 - ${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces
   This is where D-Bus interface files should be installed, as per the
   freedesktop website[1].

1. https://dbus.freedesktop.org/doc/dbus-api-design.html#interface-files

Change-Id: I8e8476c1276a1dbb0af2197a2d2d8efff2724f4e
Tuleap: #688
parent cf8970ac
Branches
Tags
No related merge requests found
...@@ -204,7 +204,13 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src) ...@@ -204,7 +204,13 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_BINARY_DIR}) INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_BINARY_DIR})
# Build dbus interfaces # Build dbus interfaces
SET ( dbus_xml_introspecs_path ${CMAKE_CURRENT_SOURCE_DIR}/xml/) IF(DEFINED RING_XML_INTERFACES_DIR)
SET (dbus_xml_introspecs_path ${RING_XML_INTERFACES_DIR})
ELSEIF(EXISTS "${RING_BUILD_DIR}/../bin/dbus")
SET (dbus_xml_introspecs_path ${RING_BUILD_DIR}/../bin/dbus)
ELSE()
SET (dbus_xml_introspecs_path ${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces)
ENDIF()
#File to compile #File to compile
SET( libringclient_LIB_SRCS SET( libringclient_LIB_SRCS
...@@ -485,7 +491,7 @@ IF(${ENABLE_LIBWRAP} MATCHES true) ...@@ -485,7 +491,7 @@ IF(${ENABLE_LIBWRAP} MATCHES true)
# (not necessary in 3.0+) # (not necessary in 3.0+)
ELSE() ELSE()
# presence manager interface # presence manager interface
SET ( presencemanager_xml ${dbus_xml_introspecs_path}/presencemanager-introspec.xml ) SET ( presencemanager_xml ${dbus_xml_introspecs_path}/cx.ring.Ring.PresenceManager.xml )
SET( dbus_metatype_path "${CMAKE_CURRENT_SOURCE_DIR}/src/dbus/metatypes.h") SET( dbus_metatype_path "${CMAKE_CURRENT_SOURCE_DIR}/src/dbus/metatypes.h")
...@@ -503,7 +509,7 @@ ELSE() ...@@ -503,7 +509,7 @@ ELSE()
) )
# configuration manager interface # configuration manager interface
SET ( configurationmanager_xml ${dbus_xml_introspecs_path}/configurationmanager-introspec.xml ) SET ( configurationmanager_xml ${dbus_xml_introspecs_path}/cx.ring.Ring.ConfigurationManager.xml )
SET_SOURCE_FILES_PROPERTIES( SET_SOURCE_FILES_PROPERTIES(
${configurationmanager_xml} ${configurationmanager_xml}
...@@ -519,7 +525,7 @@ ELSE() ...@@ -519,7 +525,7 @@ ELSE()
) )
# call manager interface # call manager interface
SET ( callmanager_xml ${dbus_xml_introspecs_path}/callmanager-introspec.xml ) SET ( callmanager_xml ${dbus_xml_introspecs_path}/cx.ring.Ring.CallManager.xml )
SET_SOURCE_FILES_PROPERTIES( SET_SOURCE_FILES_PROPERTIES(
${callmanager_xml} ${callmanager_xml}
...@@ -535,7 +541,7 @@ ELSE() ...@@ -535,7 +541,7 @@ ELSE()
) )
# video manager interface # video manager interface
SET ( video_xml ${dbus_xml_introspecs_path}/videomanager-introspec.xml ) SET ( video_xml ${dbus_xml_introspecs_path}/cx.ring.Ring.VideoManager.xml )
SET_SOURCE_FILES_PROPERTIES( SET_SOURCE_FILES_PROPERTIES(
${video_xml} ${video_xml}
...@@ -552,7 +558,7 @@ ELSE() ...@@ -552,7 +558,7 @@ ELSE()
# instance interface # instance interface
SET ( instance_xml ${dbus_xml_introspecs_path}/instance-introspec.xml ) SET ( instance_xml ${dbus_xml_introspecs_path}/cx.ring.Ring.Instance.xml )
SET_SOURCE_FILES_PROPERTIES( SET_SOURCE_FILES_PROPERTIES(
${instance_xml} ${instance_xml}
......
...@@ -19,6 +19,7 @@ To install the appplication, type the following commands in a console, while in ...@@ -19,6 +19,7 @@ To install the appplication, type the following commands in a console, while in
cmake .. cmake ..
The following options are often usefull to append to the cmake line: The following options are often usefull to append to the cmake line:
-DRING_BUILD_DIR=<daemon install location> -DRING_BUILD_DIR=<daemon install location>
-DRING_XML_INTERFACES_DIR=<daemon dbus interface definitions directory>
-DCMAKE_INSTALL_PREFIX=<install location> -DCMAKE_INSTALL_PREFIX=<install location>
-DCMAKE_BUILD_TYPE=<Debug to compile with debug symbols> -DCMAKE_BUILD_TYPE=<Debug to compile with debug symbols>
-DENABLE_VIDEO=<False to disable video support> -DENABLE_VIDEO=<False to disable video support>
......
<?xml version="1.0" encoding="UTF-8" ?>
<node name="/callmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="cx.ring.Ring.CallManager">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>The CallManager interface is used to manage call and conference related actions.</p>
<p>Since Ring-daemon supports multiple incoming/outgoing calls, any actions involving a specific call must address the method by the means of a unique callID.
Ring-daemon will generate a unique callID for outgoing and incoming calls.</p>
</tp:docstring>
<method name="placeCall" tp:name-for-bindings="placeCall">
<tp:docstring>
<p>This is the main method in order to place a new call. The call is registered with the daemon using this method.</p>
</tp:docstring>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
The ID of the account with which you want to make a call. If the call is to be placed without any account by means of a SIP URI (i.e. sip:num@server), the "IP2IP_PROFILE" is passed as the accountID. For more details on accounts see the configuration manager interface.
</tp:docstring>
</arg>
<arg type="s" name="to" direction="in">
<tp:docstring>
If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified.
</tp:docstring>
</arg>
<arg type="s" name="callID" direction="out"/>
</method>
<method name="refuse" tp:name-for-bindings="refuse">
<tp:docstring>
Refuse an incoming call.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The callID.
</tp:docstring>
</arg>
<arg type="b" name="refuseSucceeded" direction="out"/>
</method>
<method name="accept" tp:name-for-bindings="accept">
<tp:docstring>
Answer an incoming call. Automatically puts the current call on HOLD.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The callID.
</tp:docstring>
</arg>
<arg type="b" name="acceptSucceeded" direction="out"/>
</method>
<method name="hangUp" tp:name-for-bindings="hangUp">
<tp:docstring>
Hangup a call in state "CURRENT" or "HOLD".
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The callID.
</tp:docstring>
</arg>
<arg type="b" name="hangupSucceeded" direction="out"/>
</method>
<method name="hangUpConference" tp:name-for-bindings="hangUpConference">
<tp:added version="0.9.7"/>
<tp:docstring>
Hangup a conference, and every call participating to the conference.
</tp:docstring>
<arg type="s" name="confID" direction="in">
<tp:docstring>
The unique conference ID.
</tp:docstring>
</arg>
<arg type="b" name="hangupSucceeded" direction="out"/>
</method>
<method name="hold" tp:name-for-bindings="hold">
<tp:docstring>
Place a call on hold.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The callID.
</tp:docstring>
</arg>
<arg type="b" name="holdSucceeded" direction="out"/>
</method>
<method name="unhold" tp:name-for-bindings="unhold">
<tp:docstring>
Take a call off hold, and place this call in state CURRENT.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The callID.
</tp:docstring>
</arg>
<arg type="b" name="unHoldSucceeded" direction="out"/>
</method>
<method name="muteLocalMedia" tp:name-for-bindings="muteLocalMedia">
<arg type="s" name="callid" direction="in">
<tp:docstring>
The callid to mute
</tp:docstring>
</arg>
<arg type="s" name="mediaType" direction="in">
<tp:docstring>
The type of media (AUDIO or VIDEO)
</tp:docstring>
</arg>
<arg type="b" name="mute" direction="in">
<tp:docstring>
True to mute audio capture, false to unmute.
</tp:docstring>
</arg>
<arg type="b" name="res" direction="out">
<tp:docstring>
True if mute succeed. False otherwise
</tp:docstring>
</arg>
</method>
<method name="transfer" tp:name-for-bindings="transfer">
<tp:docstring>
Transfer a call to the given phone number.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The callID.
</tp:docstring>
</arg>
<arg type="s" name="to" direction="in">
<tp:docstring>
The phone number to which the call will be transferred.
</tp:docstring>
</arg>
<arg type="b" name="transferSucceeded" direction="out"/>
</method>
<method name="attendedTransfer" tp:name-for-bindings="attendedTransfer">
<tp:docstring>
Perform an attended transfer on two calls.
</tp:docstring>
<arg type="s" name="transferID" direction="in">
<tp:docstring>
The callID of the call to be transfered.
</tp:docstring>
</arg>
<arg type="s" name="targetID" direction="in">
<tp:docstring>
The callID of the target call.
</tp:docstring>
</arg>
<arg type="b" name="transferSucceeded" direction="out"/>
</method>
<method name="playDTMF" tp:name-for-bindings="playDTMF">
<tp:docstring>
Dual-Tone multi-frequency. Tell the core to play dialtones. A SIP INFO message is sent to notify the server.
</tp:docstring>
<arg type="s" name="key" direction="in">
<tp:docstring>
Unicode character for pressed key.
</tp:docstring>
</arg>
</method>
<method name="startTone" tp:name-for-bindings="startTone">
<tp:docstring>
Start audio stream and play tone.
</tp:docstring>
<arg type="i" name="start" direction="in"/>
<arg type="i" name="type" direction="in"/>
</method>
<method name="joinParticipant" tp:name-for-bindings="joinParticipant">
<tp:added version="0.9.7"/>
<tp:docstring>
<p>Join two participants together to create a 3-way conference including the current client.</p>
<tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale>
</tp:docstring>
<arg type="s" name="sel_callID" direction="in"/>
<arg type="s" name="drag_callID" direction="in"/>
<arg type="b" name="joinSucceeded" direction="out"/>
</method>
<method name="createConfFromParticipantList" tp:name-for-bindings="createConfFromParticipantList">
<tp:added version="0.9.14"/>
<tp:docstring>
<p>Create a conference from a list of participants</p>
<tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale>
</tp:docstring>
<arg type="as" name="participants" direction="in"/>
</method>
<method name="isConferenceParticipant" tp:name-for-bindings="isConferenceParticipant">
<arg type="s" name="callID" direction="in"/>
<arg type="b" name="isParticipant" direction="out"/>
</method>
<method name="addParticipant" tp:name-for-bindings="addParticipant">
<tp:added version="0.9.7"/>
<tp:docstring>
<p>Join a new particiant to an existing conference.</p>
<tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale>
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The ID of the call to add to the conference
</tp:docstring>
</arg>
<arg type="s" name="confID" direction="in">
<tp:docstring>
An existing conference ID
</tp:docstring>
</arg>
<arg type="b" name="addSucceeded" direction="out"/>
</method>
<method name="addMainParticipant" tp:name-for-bindings="addMainParticipant">
<tp:added version="0.9.7"/>
<tp:docstring>
<p>As the core can handle multiple calls and conferences, it may happen that the client's user leaves a conference to answer an incoming call or to start new calls. This method is used to reintroduce Ring-client's user into the conference.</p>
<p>Its put the current call on HOLD or detaches Ring-client's user from the another conference.</p>
</tp:docstring>
<arg type="s" name="confID" direction="in">
<tp:docstring>
An existing conference ID
</tp:docstring>
</arg>
<arg type="b" name="addSucceeded" direction="out"/>
</method>
<method name="detachParticipant" tp:name-for-bindings="detachParticipant">
<tp:added version="0.9.7"/>
<tp:docstring>
Detach the given call from the conference. If only one participant is left, the conference is deleted and the signal <tp:member-ref>conferenceRemoved</tp:member-ref> is emited.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The call ID
</tp:docstring>
</arg>
<arg type="b" name="detachSucceeded" direction="out"/>
</method>
<method name="joinConference" tp:name-for-bindings="joinConference">
<tp:added version="0.9.7"/>
<tp:docstring>
Join two conferences together.
</tp:docstring>
<arg type="s" name="sel_confID" direction="in"/>
<arg type="s" name="drag_confID" direction="in"/>
<arg type="b" name="joinSucceeded" direction="out"/>
</method>
<method name="getConferenceDetails" tp:name-for-bindings="getConferenceDetails">
<tp:added version="0.9.7"/>
<tp:docstring>
Returns a hashtable containing conference details.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The conference ID
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="infos" direction="out">
<tp:docstring>
A map containing the ID of the conferences
and their states:
<ul>
<li>ACTIVE_ATTACHED</li>
<li>ACTIVE_DETACHED</li>
<li>HOLD</li>
</ul>
</tp:docstring>
</arg>
</method>
<method name="getConferenceList" tp:name-for-bindings="getConferenceList">
<tp:added version="0.9.7"/>
<tp:docstring>
Returns a list containing all active
conferences.
<tp:rationale>To update client status, one should
use <tp:member-ref>getParticipantList</tp:member-ref>
with provided conference IDs.</tp:rationale>
</tp:docstring>
<arg type="as" name="list" direction="out">
<tp:docstring>
The list of conferences.
</tp:docstring>
</arg>
</method>
<method name="getConferenceId" tp:name-for-bindings="getConferenceId">
<tp:added version="1.1.0"/>
<tp:docstring>
If thsi call participate to a conference, return the conference id.
Return an empty string elsewhere.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The call id.
</tp:docstring>
</arg>
<arg type="s" name="confID" direction="out">
<tp:docstring>
A string containing the conference ID, or an empty string.
</tp:docstring>
</arg>
</method>
<method name="toggleRecording" tp:name-for-bindings="toggleRecording">
<tp:docstring>
Toggle recording for a call.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The ID of the call to start/stop recording.
</tp:docstring>
</arg>
<arg type="b" name="isRecording" direction="out">
<tp:docstring>
Returns true is the call is being recorded. False otherwise.
</tp:docstring>
</arg>
</method>
<method name="setRecording" tp:name-for-bindings="setRecording">
<annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
<tp:docstring>
Start recording a call.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The ID of the call to record.
</tp:docstring>
</arg>
</method>
<method name="getIsRecording" tp:name-for-bindings="getIsRecording">
<tp:docstring>
Tells whether or not a call is being recorded.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The call ID.
</tp:docstring>
</arg>
<arg type="b" name="isRecording" direction="out">
<tp:docstring>
Returns true is the call is being recorded. False otherwise.
</tp:docstring>
</arg>
</method>
<method name="recordPlaybackSeek" tp:name-for-bindings="recordPlaybackSeek">
<tp:docstring>
<p>Sets the playback position using a linear scale [0,100].</p>
</tp:docstring>
<arg type="d" name="value" direction="in"/>
</method>
<signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath">
<tp:docstring>
Once after starting recording for the first time, this signal is emited to
provide the recorded file path to client application.
</tp:docstring>
<arg type="s" name="callID" />
<arg type="s" name="filepath"/>
</signal>
<signal name="recordPlaybackStopped" tp:name-for-bindings="recordPlaybackStopped">
<tp:docstring/>
<arg type="s" name="filepath" />
</signal>
<signal name="updatePlaybackScale" tp:name-for-bindings="updatePlaybackScale">
<tp:docstring/>
<arg type="s" name="filepath" />
<arg type="i" name="position" />
<arg type="i" name="size" />
</signal>
<method name="getCallDetails" tp:name-for-bindings="getCallDetails">
<tp:docstring>
Get all the details about a specific call.
</tp:docstring>
<arg type="s" name="callID" direction="in">
<tp:docstring>
The call ID.
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="infos" direction="out" tp:type="String_String_Map">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>A map containing the call details: </p>
<ul>
<li>ACCOUNTID</li>
<li>PEER_NUMBER</li>
<li>PEER_NAME</li>
<li>DISPLAY_NAME</li>
<li>CALL_STATE</li>
<li>CALL_TYPE</li>
<li>CONF_ID</li>
</ul>
</tp:docstring>
</arg>
</method>
<method name="getCallList" tp:name-for-bindings="getCallList">
<tp:docstring>
Get the list of active calls.
<tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale>
</tp:docstring>
<arg type="as" name="list" direction="out">
<tp:docstring>
A list of call IDs.
</tp:docstring>
</arg>
</method>
<method name="getCurrentAudioCodecName" tp:name-for-bindings="getCurrentAudioCodecName">
<annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
<arg type="s" name="callID" direction="in"/>
<arg type="s" name="codecName" direction="out"/>
</method>
<method name="switchInput" tp:name-for-bindings="switchInput">
<tp:docstring>
Switch input for the specified call
</tp:docstring>
<arg type="s" name="callID" direction="in"/>
<arg type="s" name="input" direction="in"/>
</method>
<method name="sendTextMessage" tp:name-for-bindings="sendTextMessage">
<tp:docstring>
Send a text message to the specified call
</tp:docstring>
<arg type="s" name="callID" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="MapStringString"/>
<arg type="a{ss}" name="payloads" direction="in"/>
<arg type="b" name="isMixed" direction="in"/>
</method>
<signal name="newCallCreated" tp:name-for-bindings="newCallCreated">
<tp:docstring>
<p>Notify that a call has been created.</p>
<p>The callID generated by the daemon must be stored by the clients in order to address other actions for
this call. This signal is emitted when call haves been created by the daemon itself.</p>
<tp:rationale>The client must subscribe to this signal to handle calls created by other clients</tp:rationale>
</tp:docstring>
<arg type="s" name="accountID">
<tp:docstring>
The account ID of the call. Clients must notify the right account when receiving this signal.
</tp:docstring>
</arg>
<arg type="s" name="callID">
<tp:docstring>
A new call ID.
</tp:docstring>
</arg>
<arg type="s" name="to">
<tp:docstring>
The SIP URI this call is trying to reach.
</tp:docstring>
</arg>
</signal>
<signal name="incomingCall" tp:name-for-bindings="incomingCall">
<tp:docstring>
<p>Notify an incoming call.</p>
<p>The callID generated by the daemon must be stored by the clients in order to address other action for
this call. This signal is emitted when we receive a call from a remote peer</p>
<tp:rationale>The client must subscribe to this signal to handle incoming calls.</tp:rationale>
</tp:docstring>
<arg type="s" name="accountID">
<tp:docstring>
The account ID of the callee. Clients must notify the right account when receiving this signal.
</tp:docstring>
</arg>
<arg type="s" name="callID">
<tp:docstring>
A new call ID.
</tp:docstring>
</arg>
<arg type="s" name="from">
<tp:docstring>
The caller phone number.
</tp:docstring>
</arg>
</signal>
<signal name="incomingMessage" tp:name-for-bindings="incomingMessage">
<tp:docstring>
Notify clients that new messages have been received. The key is
the mime type and the value the mime payload.
</tp:docstring>
<arg type="s" name="callID" />
<arg type="s" name="from" />
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="MapStringString"/>
<arg type="a{ss}" name="messages" />
</signal>
<signal name="callStateChanged" tp:name-for-bindings="callStateChanged">
<tp:docstring>
<p>Notify of a change in a call state.</p>
<p>The client must subscribe to this signal.</p>
</tp:docstring>
<arg type="s" name="callID">
<tp:docstring>
The call ID.
</tp:docstring>
</arg>
<arg type="s" name="state" >
<tp:docstring>
The acceptable states are:
<ul>
<li>INCOMING: Initial state of incoming calls</li>
<li>CONNECTING: Peer found, contacting him</li>
<li>RINGING: Initial state of received outgoing call</li>
<li>CURRENT: The normal active state of an answered call</li>
<li>HUNGUP: Notify that the call has been hungup by peer</li>
<li>BUSY</li>
<li>FAILURE: Error when processing a call</li>
<li>HOLD</li>
<li>UNHOLD</li>
</ul>
</tp:docstring>
</arg>
<arg type="i" name="code">
<tp:docstring>
The optional account-type specific message code. 0 if not set.
</tp:docstring>
<tp:added version="2.0.0" />
</arg>
</signal>
<signal name="conferenceChanged" tp:name-for-bindings="conferenceChanged">
<tp:added version="0.9.7"/>
<tp:docstring>
Notify of a change in the conferences state
</tp:docstring>
<arg type="s" name="confID">
<tp:docstring>
The conference ID.
</tp:docstring>
</arg>
<arg type="s" name="state">
<tp:docstring>
The acceptable states are:
<ul>
<li>ACTIVE_ATTACHED: Ring user is
participating to this conference</li>
<li>ACTIVE_DETACHED: This situation can
occur if a call is received while
Ring user is participating to a
conference. In this case, one can leave
the conference by answering the
call. Other participants may continue
conferencing normally.</li>
<li>HOLD: Each call in this conference
is on state HOLD</li>
</ul>
</tp:docstring>
</arg>
</signal>
<method name="getDisplayNames" tp:name-for-bindings="getDisplayNames">
<tp:added version="1.3.0"/>
<tp:docstring>
Get the display name of every participant in a given conference, or their number as a fallback.
</tp:docstring>
<arg type="s" name="confID" direction="in">
<tp:docstring>
The conference ID.
</tp:docstring>
</arg>
<arg type="as" name="list" direction="out">
<tp:docstring>
The list of the display names.
</tp:docstring>
</arg>
</method>
<method name="getParticipantList" tp:name-for-bindings="getParticipantList">
<tp:added version="0.9.7"/>
<tp:docstring>
Get the call IDs of every participant to a given conference. The client should keep and update the list of participants.
</tp:docstring>
<arg type="s" name="confID" direction="in">
<tp:docstring>
The conference ID.
</tp:docstring>
</arg>
<arg type="as" name="list" direction="out">
<tp:docstring>
The list of the call IDs.
</tp:docstring>
</arg>
</method>
<signal name="conferenceCreated" tp:name-for-bindings="conferenceCreated">
<tp:added version="0.9.7"/>
<tp:docstring>
Emited when a new conference is created. Ring-client is reponsible for storing the confID and call <tp:member-ref>getParticipantList</tp:member-ref> to update the display.
</tp:docstring>
<arg type="s" name="confID">
<tp:docstring>
A new conference ID.
</tp:docstring>
</arg>
</signal>
<signal name="conferenceRemoved" tp:name-for-bindings="conferenceRemoved">
<tp:added version="0.9.7"/>
<tp:docstring>
Emited when a new conference is remove. Ring-client should have kept a list of current participant in order to display modification.
</tp:docstring>
<arg type="s" name="confID">
<tp:docstring>
The conference ID.
</tp:docstring>
</arg>
</signal>
<method name="holdConference" tp:name-for-bindings="holdConference">
<tp:added version="0.9.7"/>
<tp:docstring>
Hold every call which is participating in this conference.
</tp:docstring>
<arg type="s" name="confID" direction="in">
<tp:docstring>
The conference ID.
</tp:docstring>
</arg>
<arg type="b" name="holdSucceeded" direction="out"/>
</method>
<method name="unholdConference" tp:name-for-bindings="unholdConference">
<tp:added version="0.9.7"/>
<tp:docstring>
Hold off every call participating in this conference.
</tp:docstring>
<arg type="s" name="confID" direction="in">
<tp:docstring>
The conference ID.
</tp:docstring>
</arg>
<arg type="b" name="unholdSucceeded" direction="out"/>
</method>
<method name="startRecordedFilePlayback" tp:name-for-bindings="startRecordedFilePlayback">
<tp:added version="0.9.14"/>
<arg type="s" name="filepath" direction="in"/>
<arg type="b" name="result" direction="out"/>
</method>
<method name="stopRecordedFilePlayback" tp:name-for-bindings="stopRecordedFilePlayback">
<tp:added version="0.9.14"/>
<tp:docstring/>
<arg type="s" name="filepath" direction="in"/>
</method>
<signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify">
<tp:docstring>
Notify the clients of the voicemail number for a specific account, if applicable.
</tp:docstring>
<arg type="s" name="accountID">
<tp:docstring>
The account ID.
</tp:docstring>
</arg>
<arg type="i" name="count">
<tp:docstring>
The number of waiting messages.
</tp:docstring>
</arg>
</signal>
<signal name="transferSucceeded" tp:name-for-bindings="transferSucceeded">
<tp:docstring>
<p>Transfer has been successfully
processed. Client should remove transfered
call from call list as it is no longer
accessible in Ring-daemon (dring).</p>
</tp:docstring>
</signal>
<signal name="transferFailed" tp:name-for-bindings="transferFailed">
<tp:docstring>
<p>Transfer operation failed. Corresponding
call is no longer accessible in
Ring-daemon (dring).</p>
</tp:docstring>
</signal>
<signal name="secureSdesOn" tp:name-for-bindings="secureSdesOn">
<tp:added version="0.9.7"/>
<tp:docstring>
<p>Signal sent on SDES session success. Media transmission is encripted
for this call only. It does not apply for a conference.</p>
<p>A conference can be considered to be secured if and only if each
participant is secured.</p>
</tp:docstring>
<arg type="s" name="callID"/>
</signal>
<signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff">
<tp:added version="0.9.7"/>
<tp:docstring>
<p>Sinal sent to notify that SDES session failed.</p>
<p>Media transmission is not encrypted.</p>
</tp:docstring>
<arg type="s" name="callID" />
</signal>
<!-- ZRTP Methods and Signals -->
<signal name="secureZrtpOn" tp:name-for-bindings="secureZrtpOn">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" />
<arg type="s" name="cipher" />
</signal>
<signal name="secureZrtpOff" tp:name-for-bindings="secureZrtpOff">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" />
</signal>
<signal name="confirmGoClear" tp:name-for-bindings="confirmGoClear">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" />
</signal>
<signal name="recordingStateChanged" tp:name-for-bindings="recordingStateChange">
<tp:added version="1.3.0"/>
<arg type="s" name="callID" />
<arg type="b" name="recordingState"/>
</signal>
<signal name="zrtpNegotiationFailed" tp:name-for-bindings="zrtpNegotiationFailed">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" />
<arg type="s" name="reason" />
<arg type="s" name="severity" />
</signal>
<signal name="zrtpNotSuppOther" tp:name-for-bindings="zrtpNotSuppOther">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" />
</signal>
<signal name="showSAS" tp:name-for-bindings="showSAS">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" />
<arg type="s" name="sas" />
<arg type="b" name="verified"/>
</signal>
<method name="setSASVerified" tp:name-for-bindings="setSASVerified">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" direction="in"/>
</method>
<method name="resetSASVerified" tp:name-for-bindings="resetSASVerified">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" direction="in"/>
</method>
<method name="setConfirmGoClear" tp:name-for-bindings="setConfirmGoClear">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" direction="in"/>
</method>
<method name="requestGoClear" tp:name-for-bindings="requestGoClear">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" direction="in"/>
</method>
<method name="acceptEnrollment" tp:name-for-bindings="acceptEnrollment">
<tp:added version="0.9.7"/>
<arg type="s" name="callID" direction="in"/>
<arg type="b" name="accepted" direction="in"/>
</method>
<signal name="onRtcpReportReceived" tp:name-for-bindings="onRtcpReportReceived">
<tp:added version="1.3.0"/>
<tp:docstring>
<p>Signal sent adter a RTCP report has been received and computed.</p>
</tp:docstring>
<arg type="s" name="callID" />
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="MapStringInt"/>
<arg type="a{si}" name="report" direction="out" tp:type="String_Integer_Map">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>A map containing RTCP stats: </p>
<ul>
<li>PACKET_LOSS</li>
<li>CUMULATIVE_LOSS</li>
<li>ROUND_TRIP_DELAY</li>
<li>LATENCY</li>
</ul>
</tp:docstring>
</arg>
</signal>
<signal name="peerHold" tp:name-for-bindings="peerHold">
<tp:added version="2.0.0"/>
<arg type="s" name="callID" />
<arg type="b" name="peerHolding" />
</signal>
<signal name="audioMuted" tp:name-for-bindings="audioMuted">
<tp:added version="2.1.0"/>
<arg type="s" name="callID" />
<arg type="b" name="audioMuted" />
</signal>
<signal name="videoMuted" tp:name-for-bindings="videoMuted">
<tp:added version="2.1.0"/>
<arg type="s" name="callID" />
<arg type="b" name="videoMuted" />
</signal>
</interface>
</node>
<?xml version="1.0" ?>
<node name="/configurationmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="cx.ring.Ring.ConfigurationManager">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
Used to handle the configuration stuff: accounts settings, user preferences, ...
TODO: move runtime account stuff in accountmanager
</tp:docstring>
<method name="getAccountTemplate" tp:name-for-bindings="getAccountTemplate">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="s" name="accountType" direction="in" tp:type="String">
</arg>
<arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
</arg>
</method>
<method name="getAccountDetails" tp:name-for-bindings="getAccountDetails">
<tp:docstring>
Get all parameters of the specified account.
</tp:docstring>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
The account ID
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
<tp:docstring>
The available keys / parameters are:
<ul>
<li>CONFIG_ACCOUNT_ENABLE: True or False (Default: True)</li>
<li>CONFIG_ACCOUNT_RESOLVE_ONCE</li>
<li>CONFIG_ACCOUNT_TYPE: SIP or IAX2 (Default: SIP)</li>
<li>HOSTNAME: The IP adress or hostname of the registrar</li>
<li>USERNAME: The username (or extension) of the account</li>
<li>PASSWORD: The password associated to the account</li>
<li>REALM</li>
<li>CONFIG_ACCOUNT_MAILBOX: Number to dial to access the voicemail box</li>
<li>CONFIG_ACCOUNT_REGISTRATION_EXPIRE: SIP header expiration value (Default: 1600)</li>
<li>LOCAL_INTERFACE: The network interface (Default: eth0)</li>
<li>PUBLISHED_SAMEAS_LOCAL: If False, the published address equals the local address. This is the default.</li>
<li>PUBLISHED_ADDRESS: The SIP published address</li>
<li>LOCAL_PORT: The SIP listening port (Default: 5060)</li>
<li>PUBLISHED_PORT: The SIP published port</li>
<li>DISPLAY_NAMEL: The display name</li>
<li>STUN_ENABLE: True or False (Default: False)</li>
<li>STUN_SERVER: The STUN server address</li>
<li>ACCOUNT_REGISTRATION_STATUS: The account registration status. Should be Registered to make calls.</li>
<li>ACCOUNT_REGISTRATION_STATE_CODE</li>
<li>ACCOUNT_REGISTRATION_STATE_DESC</li>
<li>CONFIG_DEFAULT_PRESENCE_ENABLED: enable/disable presence support - true or false</li>
<li>SRTP_KEY_EXCHANGE</li>
<li>SRTP_ENABLE: Whether or not voice communication are encrypted - True or False (Default: False)</li>
<li>SRTP_RTP_FALLBACK</li>
<li>ZRTP_DISPLAY_SAS</li>
<li>ZRTP_DISPLAY_SAS_ONCE</li>
<li>ZRTP_HELLO_HASH</li>
<li>ZRTP_NOT_SUPP_WARNING</li>
<li>TLS_LISTENER_PORT: TLS listening port (Default: 5061)</li>
<li>TLS_ENABLE: Whether or not signalling is encrypted - True or False (Default: False)</li>
<li>TLS_CA_LIST_FILE</li>
<li>TLS_CERTIFICATE_FILE</li>
<li>TLS_PRIVATE_KEY_FILE</li>
<li>TLS_METHOD</li>
<li>TLS_CIPHERS</li>
<li>TLS_SERVER_NAME</li>
<li>TLS_VERIFY_SERVER</li>
<li>TLS_VERIFY_CLIENT</li>
<li>TLS_REQUIRE_CLIENT_CERTIFICATE</li>
<li>TLS_NEGOTIATION_TIMEOUT_SEC</li>
</ul>
</tp:docstring>
</arg>
</method>
<method name="getVolatileAccountDetails" tp:name-for-bindings="getVolatileAccountDetails">
<arg type="s" name="accountID" direction="in">
<tp:docstring>
The account ID
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" tp:type="String_String_Map" direction="out">
<tp:docstring>
Account.registrationCoarseStatus ( Coarse status like, UNREGISTERED or TRYING )
Account.registrationStatus ( Error code, like 200 (OK) or 408 (Timeout) )
Account.registrationStatusDescription ( A technical error message (from PJSIP) )
Account.lastSuccessfulRegister ( Timestamp of the last "REGISTERED" event )
Account.presenceStatus ( Published presence status )
Account.presenceNote ( Published presence note (status string) )
</tp:docstring>
</arg>
</method>
<method name="setAccountDetails" tp:name-for-bindings="setAccountDetails">
<tp:docstring>
Send new account parameters, or account parameters changes, to the core. The hash table is not required to be complete, only the updated parameters may be specified.
<tp:rationale>Account settings are written to the configuration file when ring properly quits.</tp:rationale>
<tp:rationale>After calling this method, the core will emit the signal <tp:member-ref>accountsChanged</tp:member-ref> with the updated data. The client must subscribe to this signal and use it to update its internal data structure.</tp:rationale>
</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="MapStringString"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map">
</arg>
</method>
<method name="setCredentials" tp:name-for-bindings="setCredentials">
<arg type="s" name="accountID" direction="in">
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="VectorMapStringString"/>
<arg type="aa{ss}" name="credentialInformation" direction="in" tp:type="String_String_Map">
</arg>
</method>
<method name="getCredentials" tp:name-for-bindings="getCredentials">
<arg type="s" name="accountID" direction="in">
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/>
<arg type="aa{ss}" name="credentialInformation" direction="out">
</arg>
</method>
<method name="addAccount" tp:name-for-bindings="addAccount">
<tp:docstring>
Add a new account. When created, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure.
<tp:rationale>If no details are specified, the default parameters are used.</tp:rationale>
<tp:rationale>The core tries to register the account as soon it is created.</tp:rationale>
</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map">
<tp:docstring>
The new account settings
</tp:docstring>
</arg>
<arg type="s" name="createdAccountId" direction="out">
<tp:docstring>
A new account ID
</tp:docstring>
</arg>
</method>
<method name="setAccountsOrder" tp:name-for-bindings="setAccountsOrder">
<tp:docstring>
Update the accounts order.
<tp:rationale>When placing a call, the first registered account in the list is used.</tp:rationale>
</tp:docstring>
<arg type="s" name="order" direction="in">
<tp:docstring>
An ordered list of account IDs, delimited by '/'
</tp:docstring>
</arg>
</method>
<method name="removeAccount" tp:name-for-bindings="removeAccount">
<tp:docstring>
Remove an existing account. When removed, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure.
</tp:docstring>
<arg type="s" name="accoundID" direction="in">
<tp:docstring>
The account to remove, identified by its ID
</tp:docstring>
</arg>
</method>
<method name="getAccountList" tp:name-for-bindings="getAccountList">
<tp:docstring>
Get a list of all created accounts, as stored by the core.
</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
A list of account IDs
</tp:docstring>
</arg>
</method>
<method name="importAccounts" tp:name-for-bindings="importAccounts">
<tp:docstring>
Import previously exported accounts
</tp:docstring>
<arg type="s" name="path" direction="in">
<tp:docstring>
Path of the file to import
</tp:docstring>
</arg>
<arg type="s" name="password" direction="in">
<tp:docstring>
Decryption password
</tp:docstring>
</arg>
<arg type="i" direction="out">
<tp:docstring>
<p>Return code, 0 for success.</p>
</tp:docstring>
</arg>
</method>
<method name="exportAccounts" tp:name-for-bindings="exportAccounts">
<tp:docstring>
Export account configuration to an encrypted file.
</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="VectorString"/>
<arg type="as" name="accountIDs" direction="in">
<tp:docstring>
A list of account IDs
</tp:docstring>
</arg>
<arg type="s" name="filepath" direction="in">
<tp:docstring>
Where to export the account
</tp:docstring>
</arg>
<arg type="s" name="password" direction="in">
<tp:docstring>
File encryption password
</tp:docstring>
</arg>
<arg type="i" direction="out">
<tp:docstring>
<p>Return code, 0 for success.</p>
</tp:docstring>
</arg>
</method>
<method name="registerAllAccounts" tp:name-for-bindings="registerAllAccounts">
<tp:docstring>
Send account registration (REGISTER) for all accounts, even if they are not enabled.
</tp:docstring>
</method>
<method name="sendRegister" tp:name-for-bindings="sendRegister">
<tp:docstring>
Send account registration (REGISTER) to the registrar.
Register the account if enable=true, unregister if enable=false.
</tp:docstring>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
The account ID
</tp:docstring>
</arg>
<arg type="b" name="enable" direction="in">
<tp:docstring>
<p>To register, enable must be true.</p>
<p>To un-register, enable must be false.</p>
</tp:docstring>
</arg>
</method>
<method name="sendTextMessage" tp:name-for-bindings="sendTextMessage">
<arg type="s" name="accountID" direction="in"/>
<arg type="s" name="to" direction="in"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="MapStringString"/>
<arg type="a{ss}" name="payloads" direction="in"/>
<arg type="t" name="id" direction="out">
<tp:docstring>
The message ID. An ID of 0 means that the message was not sent,
likely because one of the parameters was invalid.
</tp:docstring>
</arg>
</method>
<method name="getMessageStatus" tp:name-for-bindings="getMessageStatus">
<arg type="t" name="id" direction="in"/>
<arg type="i" name="status" direction="out">
<tp:docstring>
The message status.
<ul>
<li>UNKNOWN = 0 unknown message or message status</li>
<li>SENDING = 1 message is being sent or waiting for peer confirmation.</li>
<li>SENT = 2 message have been received from the other end.</li>
<li>READ = 3 message have been read by the peer.</li>
<li>FAILURE = 4 the message coudn't be delivered.</li>
</ul>
</tp:docstring>
</arg>
</method>
<signal name="incomingAccountMessage" tp:name-for-bindings="incomingAccountMessage">
<tp:added version="2.2.0"/>
<tp:docstring>
Notify clients that a new text message has been received at the account level.
</tp:docstring>
<arg type="s" name="accountID"/>
<arg type="s" name="from"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="MapStringString"/>
<arg type="a{ss}" name="payloads"/>
</signal>
<signal name="accountMessageStatusChanged" tp:name-for-bindings="accountMessageStatusChanged">
<tp:added version="2.3.0"/>
<tp:docstring>
Notify clients that a sent text message status have changed
</tp:docstring>
<arg type="s" name="accountID"/>
<arg type="t" name="id"/>
<arg type="s" name="to"/>
<arg type="i" name="status">
<tp:docstring>The new status of the message, see getMessageStatus for possible values.</tp:docstring>
</arg>
</signal>
<method name="setVolume" tp:name-for-bindings="setVolume">
<tp:docstring>
<p>Sets the volume using a linear scale [0,100].</p>
<tp:rationale>Pulseaudio has its own mechanism to modify application volume. This method is enabled only if the ALSA API is used.</tp:rationale>
</tp:docstring>
<arg type="s" name="device" direction="in">
<tp:docstring>
The device: mic or speaker
</tp:docstring>
</arg>
<arg type="d" name="value" direction="in">
<tp:docstring>
The volume value (between 0 and 100)
</tp:docstring>
</arg>
</method>
<method name="getVolume" tp:name-for-bindings="getVolume">
<tp:docstring>
<p>Return the volume value of the given device on a linear scale [0,100].</p>
<tp:rationale>Only enabled if the ALSA API is used, Pulseaudio has its own mechanism to modify application volume.</tp:rationale>
</tp:docstring>
<arg type="s" name="device" direction="in">
<tp:docstring>
The device: mic or speaker
</tp:docstring>
</arg>
<arg type="d" name="value" direction="out">
<tp:docstring>
The volume value (between 0 and 100)
</tp:docstring>
</arg>
</method>
<signal name="volumeChanged" tp:name-for-bindings="volumeChanged">
<tp:docstring>
<p>Notify clients of a volume level change.</p>
<p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p>
</tp:docstring>
<arg type="s" name="device">
<tp:docstring>
The device: mic or speaker
</tp:docstring>
</arg>
<arg type="d" name="value">
<tp:docstring>
The new volume value
</tp:docstring>
</arg>
</signal>
<!-- For now only expose these two options to clients -->
<method name="muteDtmf" tp:name-for-bindings="muteDtmf">
<arg type="b" name="mute" direction="in"/>
</method>
<method name="isDtmfMuted" tp:name-for-bindings="isDtmfMuted">
<arg type="b" name="muted" direction="out"/>
</method>
<method name="muteCapture" tp:name-for-bindings="muteCapture">
<arg type="b" name="mute" direction="in">
<tp:docstring>
True to mute audio capture, false to unmute.
</tp:docstring>
</arg>
</method>
<method name="isCaptureMuted" tp:name-for-bindings="isCaptureMuted">
<arg type="b" name="muted" direction="out">
<tp:docstring>
Returns true if audio capture is muted, false otherwise.
</tp:docstring>
</arg>
</method>
<method name="mutePlayback" tp:name-for-bindings="mutePlayback">
<arg type="b" name="mute" direction="in">
<tp:docstring>
True to mute audio playback, false otherwise.
</tp:docstring>
</arg>
</method>
<method name="isPlaybackMuted" tp:name-for-bindings="isPlaybackMuted">
<arg type="b" name="muted" direction="out">
<tp:docstring>
Returns true if audio playback is muted, false otherwise.
</tp:docstring>
</arg>
</method>
<method name="getAudioManager" tp:name-for-bindings="getAudioManager">
<arg type="s" name="api" direction="out">
</arg>
</method>
<method name="setAudioManager" tp:name-for-bindings="setAudioManager">
<arg type="s" name="api" direction="in">
</arg>
<arg type="b" name="successful" direction="out">
</arg>
</method>
<method name="getSupportedAudioManagers" tp:name-for-bindings="getSupportedAudioManagers">
<tp:docstring>
Returns a list of compiled audio backends.
</tp:docstring>
<arg type="as" name="api" direction="out">
</arg>
</method>
<method name="getRecordPath" tp:name-for-bindings="getRecordPath">
<arg type="s" name="rec" direction="out">
</arg>
</method>
<method name="setRecordPath" tp:name-for-bindings="setRecordPath">
<arg type="s" name="rec" direction="in">
</arg>
</method>
<method name="getIsAlwaysRecording" tp:name-for-bindings="getIsAlwaysRecording">
<arg type="b" name="res" direction="out">
</arg>
</method>
<method name="setIsAlwaysRecording" tp:name-for-bindings="setIsAlwaysRecording">
<arg type="b" name="enabled" direction="in">
</arg>
</method>
<!-- /////////////////////// -->
<!-- Codecs-related methods -->
<method name="getCodecList" tp:name-for-bindings="getCodecList">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorUInt"/>
<arg type="au" name="list" direction="out">
</arg>
</method>
<method name="getCodecDetails" tp:name-for-bindings="getCodecDetails">
<arg type="s" name="accountID" direction="in"></arg>
<arg type="u" name="codecId" direction="in"></arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
</arg>
</method>
<method name="setCodecDetails" tp:name-for-bindings="setCodecDetails">
<arg type="b" name="result" direction="out"></arg>
<arg type="s" name="accountID" direction="in"></arg>
<arg type="u" name="codecId" direction="in"></arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map">
</arg>
</method>
<method name="getActiveCodecList" tp:name-for-bindings="getActiveCodecList">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorUInt"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="au" name="list" direction="out">
</arg>
</method>
<method name="setActiveCodecList" tp:name-for-bindings="setActiveCodecList">
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="VectorUInt"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="au" name="list" direction="in">
</arg>
</method>
<!-- Audio devices methods -->
<method name="getAudioPluginList" tp:name-for-bindings="getAudioPluginList">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="setAudioPlugin" tp:name-for-bindings="setAudioPlugin">
<arg type="s" name="audioPlugin" direction="in">
</arg>
</method>
<signal name="audioDeviceEvent" tp:name-for-bindings="audioDeviceEvent">
<tp:docstring>Signal triggered by changes in the detected audio devices, e.g. a headset being unplugged.</tp:docstring>
</signal>
<method name="getAudioOutputDeviceList" tp:name-for-bindings="getAudioOutputDeviceList">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="setAudioOutputDevice" tp:name-for-bindings="setAudioOutputDevice">
<arg type="i" name="index" direction="in">
</arg>
</method>
<method name="setAudioInputDevice" tp:name-for-bindings="setAudioInputDevice">
<arg type="i" name="index" direction="in">
</arg>
</method>
<method name="setAudioRingtoneDevice" tp:name-for-bindings="setAudioRingtoneDevice">
<arg type="i" name="index" direction="in">
</arg>
</method>
<method name="getAudioInputDeviceList" tp:name-for-bindings="getAudioInputDeviceList">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="getCurrentAudioDevicesIndex" tp:name-for-bindings="getCurrentAudioDevicesIndex">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="getAudioInputDeviceIndex" tp:name-for-bindings="getAudioInputDeviceIndex">
<arg type="s" name="devname" direction="in">
</arg>
<arg type="i" name="index" direction="out">
</arg>
</method>
<method name="getAudioOutputDeviceIndex" tp:name-for-bindings="getAudioOutputDeviceIndex">
<arg type="s" name="devname" direction="in">
</arg>
<arg type="i" name="index" direction="out">
</arg>
</method>
<method name="getCurrentAudioOutputPlugin" tp:name-for-bindings="getCurrentAudioOutputPlugin">
<arg type="s" name="plugin" direction="out">
</arg>
</method>
<!-- General Settings Panel -->
<method name="getNoiseSuppressState" tp:name-for-bindings="getNoiseSuppressState">
<arg type="b" name="state" direction="out">
</arg>
</method>
<method name="setNoiseSuppressState" tp:name-for-bindings="setNoiseSuppressState">
<arg type="b" name="state" direction="in">
</arg>
</method>
<method name="isAgcEnabled" tp:name-for-bindings="isAgcEnabled">
<arg type="b" name="enabled" direction="out">
</arg>
</method>
<method name="setAgcState" tp:name-for-bindings="setAgcState">
<arg type="b" name="enabled" direction="in">
</arg>
</method>
<!-- General Settings Panel -->
<method name="isIax2Enabled" tp:name-for-bindings="isIax2Enabled">
<arg type="i" name="res" direction="out">
</arg>
</method>
<method name="getHistoryLimit" tp:name-for-bindings="getHistoryLimit">
<arg type="i" name="days" direction="out">
</arg>
</method>
<method name="setHistoryLimit" tp:name-for-bindings="setHistoryLimit">
<arg type="i" name="days" direction="in">
</arg>
</method>
<!-- Hook configuration -->
<method name="getHookSettings" tp:name-for-bindings="getHookSettings">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="settings" direction="out">
</arg>
</method>
<method name="setHookSettings" tp:name-for-bindings="setHookSettings">
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="MapStringString"/>
<arg type="a{ss}" name="settings" direction="in">
</arg>
</method>
<signal name="accountsChanged" tp:name-for-bindings="accountsChanged">
</signal>
<signal name="registrationStateChanged" tp:name-for-bindings="registrationStateChanged">
<arg type="s" name="accountID"/>
<arg type="s" name="registrationState"/>
<arg type="i" name="registrationDetail">
<tp:docstring>
The optional account-type specific message code. 0 when not available.
</tp:docstring>
</arg>
<arg type="s" name="registrationDetailStr">
<tp:docstring>
The optional account-type specific message string. Empty string when not available.
</tp:docstring>
</arg>
</signal>
<signal name="volatileAccountDetailsChanged" tp:name-for-bindings="volatileAccountDetailsChanged">
<arg type="s" name="accountID">
<tp:docstring>
The account ID
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="MapStringString"/>
<arg type="a{ss}" name="details" tp:type="String_String_Map">
<tp:docstring>
Account.registrationCoarseStatus ( Coarse status like, UNREGISTERED or TRYING )
Account.registrationStatus ( Error code, like 200 (OK) or 408 (Timeout) )
Account.registrationStatusDescription ( A technical error message (from PJSIP) )
Account.lastSuccessfulRegister ( Timestamp of the last "REGISTERED" event )
Account.presenceStatus ( Published presence status )
Account.presenceNote ( Published presence note (status string) )
</tp:docstring>
</arg>
</signal>
<signal name="stunStatusFailure" tp:name-for_bindings="stunStatusFailure">
<arg type="s" name="reason">
</arg>
</signal>
<signal name="errorAlert" tp:name-for-bindings="errorAlert">
<arg type="i" name="code">
</arg>
</signal>
<!-- TLS Methods -->
<method name="getSupportedTlsMethod" tp:name-for-bindings="getSupportedTlsMethod">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="getSupportedCiphers" tp:name-for-bindings="getSupportedCiphers">
<tp:added version="2.0.0"/>
<tp:docstring>
Returns a list of supported encryption ciphers used to encrypt SIP messages. The list depends on the TLS library being used.
Only registered SIP accounts currently support setting custom ciphers. This method returns an empty list if TLS support is disabled in either pjproject or Ring.
</tp:docstring>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
A SIP account id, other account IDs will be rejected.
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
A list of randomly sorted cipher names. The order may or may
not be significant depending on the SSL library being used.
</tp:docstring>
</arg>
</method>
<method name="getTlsDefaultSettings" tp:name-for-bindings="getTlsDefaultSettings">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out">
</arg>
</method>
<method name="validateCertificate" tp:name-for-bindings="validateCertificate">
<arg type="s" name="accountId" direction="in"></arg>
<arg type="s" name="certificate" direction="in">
<tp:docstring>
<p>A certificate ID</p>
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out">
<tp:docstring>
<p>A key-value list of all certificate validation</p>
The constants used as keys are defined in the "security.h" constants header file
</tp:docstring>
</arg>
</method>
<method name="validateCertificatePath" tp:name-for-bindings="validateCertificate">
<arg type="s" name="accountId" direction="in"></arg>
<arg type="s" name="certificatePath" direction="in">
<tp:docstring>
<p>A certificate path.</p>
</tp:docstring>
</arg>
<arg type="s" name="privateKeyPath" direction="in">
<tp:docstring>
<p>An optional path a the private key for the certificate</p>
</tp:docstring>
</arg>
<arg type="s" name="privateKeyPasswd" direction="in">
<tp:docstring>
<p>An optional private key password</p>
</tp:docstring>
</arg>
<arg type="s" name="caListPath" direction="in">
<tp:docstring>
<p>An optional path to an assumed valid ca list</p>
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out">
<tp:docstring>
<p>A key-value list of all certificate validation</p>
The constants used as keys are defined in the "security.h" constants header file
</tp:docstring>
</arg>
</method>
<method name="getCertificateDetails" tp:name-for-bindings="getCertificateDetails">
<arg type="s" name="certificate" direction="in">
<tp:docstring>
<p>A certificate ID</p>
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out">
<tp:docstring>
<p>A key-value list of all certificate details</p>
The constants used as keys are defined in the "security.h" constants header file
</tp:docstring>
</arg>
</method>
<method name="getCertificateDetailsPath" tp:name-for-bindings="getCertificateDetails">
<arg type="s" name="certificatePath" direction="in">
<tp:docstring>
<p>A certificate path</p>
</tp:docstring>
</arg>
<arg type="s" name="privateKeyPath" direction="in">
<tp:docstring>
<p>An optional path a the private key for the certificate</p>
</tp:docstring>
</arg>
<arg type="s" name="privateKeyPasswd" direction="in">
<tp:docstring>
<p>An optional private key password</p>
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out">
<tp:docstring>
<p>A key-value list of all certificate details</p>
The constants used as keys are defined in the "security.h" constants header file
</tp:docstring>
</arg>
</method>
<method name="getPinnedCertificates" tp:name-for-bindings="getPinnedCertificates">
<tp:added version="2.2.0"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="certIds" direction="out">
<tp:docstring>
<p>A list of all known certificate IDs</p>
</tp:docstring>
</arg>
</method>
<method name="pinCertificate" tp:name-for-bindings="pinCertificate">
<tp:added version="2.2.0"/>
<arg type="ay" name="certificateRaw" direction="in">
<tp:docstring>
<p>A raw certificate (PEM or DER encoded) to be pinned.</p>
</tp:docstring>
</arg>
<arg type="b" name="local" direction="in">
<tp:docstring>
<p>True to save the certificate in the daemon local store.</p>
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="certId" direction="out">
<tp:docstring>
<p>IDs of the pinned certificate chain (from subject to issuer) or empty string on failure.</p>
</tp:docstring>
</arg>
</method>
<method name="unpinCertificate" tp:name-for-bindings="unpinCertificate">
<tp:added version="2.2.0"/>
<arg type="s" name="certId" direction="in">
<tp:docstring>
<p>A certificate ID to unpin.</p>
</tp:docstring>
</arg>
<arg type="b" name="success" direction="out">
<tp:docstring>
<p>True if a certificate was unpinned.</p>
</tp:docstring>
</arg>
</method>
<method name="pinCertificatePath" tp:name-for-bindings="pinCertificatePath">
<tp:added version="2.2.0"/>
<arg type="s" name="certPath" direction="in">
<tp:docstring>
<p>A certificate path to be pinned (assumed non-local).</p>
</tp:docstring>
</arg>
</method>
<method name="unpinCertificatePath" tp:name-for-bindings="unpinCertificatePath">
<tp:added version="2.2.0"/>
<arg type="s" name="certPath" direction="in">
<tp:docstring>
<p>Certificates path.</p>
</tp:docstring>
</arg>
<arg type="u" name="unpinned" direction="out">
<tp:docstring>
<p>Number of unpinned certificates.</p>
</tp:docstring>
</arg>
</method>
<method name="pinRemoteCertificate" tp:name-for-bindings="pinRemoteCertificate">
<tp:added version="2.2.0"/>
<arg type="s" name="accountId" direction="in">
<tp:docstring>
<p>An account ID</p>
</tp:docstring>
</arg>
<arg type="s" name="certId" direction="in">
<tp:docstring>
<p>A certificate public key ID</p>
</tp:docstring>
</arg>
<arg type="b" name="success" direction="out">
<tp:docstring>
<p>True if the search started</p>
</tp:docstring>
</arg>
</method>
<method name="setCertificateStatus" tp:name-for-bindings="setCertificateStatus">
<tp:added version="2.2.0"/>
<arg type="s" name="accountId" direction="in">
<tp:docstring>
<p>An account ID</p>
</tp:docstring>
</arg>
<arg type="s" name="certId" direction="in">
<tp:docstring>
<p>A certificate ID</p>
</tp:docstring>
</arg>
<arg type="s" name="status" direction="in">
<tp:docstring>
The new status of the certificate for the specified account.
UNDEFINED : forget any previous certificate state for this account.
ALLOWED : consider the certificate as trusted for this account.
BANNED : consider the certificate as banned for this account.
</tp:docstring>
</arg>
<arg type="b" name="success" direction="out">
<tp:docstring>
<p>True if the certificate state was succesfully set.</p>
</tp:docstring>
</arg>
</method>
<method name="getCertificatesByStatus" tp:name-for-bindings="getCertificatesByStatus">
<tp:added version="2.2.0"/>
<arg type="s" name="accountId" direction="in">
<tp:docstring>
<p>An account ID</p>
</tp:docstring>
</arg>
<arg type="s" name="status" direction="in">
<tp:docstring>
The queried certificate status.
ALLOWED : trusted certificate for this account.
BANNED : banned certificate for this account.
</tp:docstring>
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
A list of certificate ids with the provided status
</tp:docstring>
</arg>
</method>
<signal name="certificateStateChanged" tp:name-for-bindings="certificateStateChanged">
<tp:added version="2.2.0"/>
<tp:docstring>
Notify clients that a certificate status have changed.
</tp:docstring>
<arg type="s" name="accountId">
</arg>
<arg type="s" name="certId">
</arg>
<arg type="s" name="state">
</arg>
</signal>
<signal name="certificatePinned" tp:name-for-bindings="certificatePinned">
<tp:added version="2.2.0"/>
<tp:docstring>
Notify clients that a certificate have been added to the store.
</tp:docstring>
<arg type="s" name="certId">
</arg>
</signal>
<signal name="certificatePathPinned" tp:name-for-bindings="certificatePathPinned">
<tp:added version="2.2.0"/>
<tp:docstring>
Notify clients that a certificate path have been added to the store.
</tp:docstring>
<arg type="s" name="path">
<tp:docstring>
Pinned path.
</tp:docstring>
</arg>
<arg type="as" name="certIds">
<tp:docstring>
A list of certificate ids.
</tp:docstring>
</arg>
</signal>
<signal name="certificateExpired" tp:name-for-bindings="certificateExpired">
<tp:added version="2.2.0"/>
<tp:docstring>
Notify clients that a certificate expired.
</tp:docstring>
<arg type="s" name="certId">
<tp:docstring>
A certificate id.
</tp:docstring>
</arg>
</signal>
<method name="getTrustRequests" tp:name-for-bindings="getTrustRequests">
<tp:added version="2.2.0"/>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
<tp:docstring>
A list of contact request details.
</tp:docstring>
</arg>
</method>
<method name="acceptTrustRequest" tp:name-for-bindings="acceptTrustRequest">
<tp:added version="2.2.0"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="s" name="from" direction="in">
</arg>
<arg type="b" name="success" direction="out" tp:type="Boolean">
<tp:docstring>
True if the operation succeeded.
</tp:docstring>
</arg>
</method>
<method name="discardTrustRequest" tp:name-for-bindings="discardTrustRequest">
<tp:added version="2.2.0"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="s" name="from" direction="in">
</arg>
<arg type="b" name="success" direction="out" tp:type="Boolean">
<tp:docstring>
True if the operation succeeded.
</tp:docstring>
</arg>
</method>
<signal name="incomingTrustRequest" tp:name-for-bindings="incomingTrustRequest">
<tp:added version="2.2.0"/>
<tp:docstring>
Notify clients that a new contact request has been received.
</tp:docstring>
<arg type="s" name="accountID">
</arg>
<arg type="s" name="from">
</arg>
<arg type="ay" name="payload">
</arg>
<arg type="t" name="receiveTime">
</arg>
</signal>
<method name="sendTrustRequest" tp:name-for-bindings="sendTrustRequest">
<tp:added version="2.2.0"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="s" name="to" direction="in">
</arg>
<arg type="ay" name="payload" direction="in">
</arg>
</method>
<method name="getAddrFromInterfaceName" tp:name-for-bindings="getAddrFromInterfaceName">
<arg type="s" name="interface" direction="in">
</arg>
<arg type="s" name="address" direction="out">
</arg>
</method>
<method name="getAllIpInterface" tp:name-for-bindings="getAllIpInterface">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="getAllIpInterfaceByName" tp:name-for-bindings="getAllIpInterfaceByName">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="getShortcuts" tp:name-for-bindings="getShortcuts">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="shortcutsMap" direction="out">
</arg>
</method>
<method name="setShortcuts" tp:name-for-bindings="setShortcuts">
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="MapStringString"/>
<arg type="a{ss}" name="shortcutsMap" direction="in">
</arg>
</method>
<signal name="mediaParametersChanged" tp:name-for-bindings="mediaParametersChanged">
<tp:added version="2.3.0"/>
<tp:docstring>
Notify clients that a media parameter changed.
</tp:docstring>
<arg type="s" name="accountID">
<tp:docstring>
An account id.
</tp:docstring>
</arg>
</signal>
</interface>
</node>
<?xml version="1.0" ?>
<node name="/instance-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="cx.ring.Ring.Instance">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Count the number of clients actually registered to the core. When initializing your client, you need to register it against the core by using this interface.</p>
</tp:docstring>
<method name="Register" tp:name-for-bindings="Register">
<tp:docstring>
Register a new client to the core. Increments the registration count.
</tp:docstring>
<arg type="i" name="pid" direction="in">
<tp:docstring>
The pid of the client process
</tp:docstring>
</arg>
<arg type="s" name="name" direction="in">
<tp:docstring>
The name of the client
</tp:docstring>
</arg>
</method>
<method name="Unregister" tp:name-for-bindings="Unregister">
<tp:docstring>
Unregister a connected client from the core. Decrements the registration count. If no more clients are connected, ie the registration count equals 0, the core properly quits.
</tp:docstring>
<arg type="i" name="pid" direction="in">
<tp:docstring>
The pid of the client process
</tp:docstring>
</arg>
</method>
<signal name="started" tp:name-for-bindings="started">
<tp:docstring>Notify clients that daemon has started</tp:docstring>
</signal>
</interface>
</node>
<?xml version="1.0" encoding="UTF-8" ?>
<node name="/presencemanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="cx.ring.Ring.PresenceManager">
<!-- METHODS !-->
<method name="publish" tp:name-for-bindings="publish">
<tp:added version="1.3.0"/>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
The account from which the presence will be emitted
</tp:docstring>
</arg>
<arg type="b" name="status" direction="in">
<tp:docstring>
Is this account present or not
</tp:docstring>
</arg>
<arg type="s" name="note" direction="in">
<tp:docstring>
A message transmitted by the server to other users
</tp:docstring>
</arg>
</method>
<method name="answerServerRequest" tp:name-for-bindings="answerServerRequest">
<tp:docstring>
Answer a presence request from the server
</tp:docstring>
<tp:added version="1.3.0"/>
<arg type="s" name="uri" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<arg type="b" name="flag" direction="in">
<tp:docstring>
Is the request granted or denied
</tp:docstring>
</arg>
</method>
<method name="subscribeBuddy" tp:name-for-bindings="subscribeBuddy">
<tp:docstring>
Ask be be notified when 'uri' presence change
</tp:docstring>
<tp:added version="1.3.0"/>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
An account from which get request presence informations
</tp:docstring>
</arg>
<arg type="s" name="uri" direction="in">
<tp:docstring>
A SIP uri to watch
</tp:docstring>
</arg>
<arg type="b" name="flag" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getSubscriptions" tp:name-for-bindings="getSubscriptions">
<tp:added version="1.3.0"/>
<tp:rationale>
New clients connecting to existing daemon need to be aware of active
subscriptions.
</tp:rationale>
<annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="VectorMapStringString">
While there is more status than "Online" or "Offline", only those
</annotation>
<arg type="s" name="accountID" direction="in">
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/>
<arg type="aa{ss}" name="credentialInformation" direction="out" tp:type="String_String_Map">
<tp:docstring>
List of hashes map with the following key-value pairs:
* Status: "Online" or "Offline"
* LineStatus: String
</tp:docstring>
</arg>
</method>
<method name="setSubscriptions" tp:name-for-bindings="setSubscriptions">
<tp:added version="1.3.0"/>
<tp:rationale>Calling "subscribeClient" in a loop is too slow</tp:rationale>
<arg type="s" name="accountID" direction="in">
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="VectorString"/>
<arg type="as" name="uriList" direction="in">
<tp:docstring>
A list of SIP URIs
</tp:docstring>
</arg>
<!--TODO<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="invalidUris" direction="out">
<tp:docstring>
List of invalid URIs. An URI must be a valid SIP URI. Clients should purge
the list from all invalid URIs
</tp:docstring>
</arg>-->
</method>
<!-- SIGNALS !-->
<signal name="newBuddyNotification" tp:name-for-bindings="newBuddyNotification">
<tp:added version="1.3.0"/>
<tp:docstring>
Notify when a registered presence uri presence informations changes
</tp:docstring>
<arg type="s" name="accountID">
<tp:docstring>
The associated account
</tp:docstring>
</arg>
<arg type="s" name="buddyUri">
<tp:docstring>
The registered URI
</tp:docstring>
</arg>
<arg type="b" name="status">
<tp:docstring>
Is the URI present or not
</tp:docstring>
</arg>
<arg type="s" name="lineStatus">
<tp:docstring>
A string containing informations from the user (human readable)
</tp:docstring>
</arg>
</signal>
<signal name="subscriptionStateChanged" tp:name-for-bindings="subscriptionStateChanged">
<tp:added version="1.3.0"/>
<tp:docstring>
Notify when a the server changes the state of a subscription.
</tp:docstring>
<arg type="s" name="accountID">
<tp:docstring>
The associated account
</tp:docstring>
</arg>
<arg type="s" name="buddyUri">
<tp:docstring>
The registered URI
</tp:docstring>
</arg>
<arg type="b" name="state">
<tp:docstring>
True/ false when the subscription is active/termintated.
</tp:docstring>
</arg>
</signal>
<signal name="newServerSubscriptionRequest" tp:name-for-bindings="newServerSubscriptionRequest">
<tp:added version="1.3.0"/>
<arg type="s" name="buddyUri">
<tp:docstring>
Notify when an other user (or the server) request your presence informations
</tp:docstring>
</arg>
</signal>
<signal name="serverError" tp:name-for-bindings="serverError">
<tp:added version="1.3.0"/>
<arg type="s" name="accountID">
<tp:docstring>
Associated account
</tp:docstring>
</arg>
<arg type="s" name="error">
<tp:docstring>
Code returned by the server
</tp:docstring>
</arg>
<arg type="s" name="msg">
<tp:docstring>
Error explain
</tp:docstring>
</arg>
</signal>
</interface>
</node>
<?xml version="1.0" ?>
<node name="/videomanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="cx.ring.Ring.VideoManager">
<!-- Video device methods -->
<method name="getDeviceList" tp:name-for-bindings="getDeviceList">
<tp:docstring>Returns a list of the detected v4l2 devices</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
</arg>
</method>
<method name="getCapabilities" tp:name-for-bindings="getCapabilities">
<tp:docstring>Returns a map of map of array of strings, containing the capabilities (channel, size, rate) of a device</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringMapStringVectorString"/>
<arg type="s" name="name" direction="in">
</arg>
<arg type="a{sa{sas}}" name="cap" direction="out">
</arg>
</method>
<method name="getSettings" tp:name-for-bindings="getSettings">
<tp:docstring>Returns a map of settings for the given device name</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="s" name="device" direction="in">
</arg>
<arg type="a{ss}" name="map" direction="out">
</arg>
</method>
<method name="applySettings" tp:name-for-bindings="applySettings">
<tp:docstring>Set the preferred settings for a given device name</tp:docstring>
<arg type="s" name="name" direction="in">
</arg>
<annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="MapStringString"/>
<arg type="a{ss}" name="settings" direction="in">
</arg>
</method>
<method name="getDefaultDevice" tp:name-for-bindings="getDefaultDevice">
<arg type="s" name="name" direction="out">
</arg>
</method>
<method name="setDefaultDevice" tp:name-for-bindings="setDefaultDevice">
<arg type="s" name="name" direction="in">
</arg>
</method>
<method name="startCamera" tp:name-for-bindings="startCamera">
<tp:docstring> Starts the video camera, which renders the active v4l2 device's video to shared memory. Useful for testing/debugging camera settings</tp:docstring>
</method>
<method name="stopCamera" tp:name-for-bindings="stopCamera">
</method>
<method name="switchInput" tp:name-for-bindings="switchInput">
<arg type="s" name="resource" direction="in">
<tp:docstring>
A media resource locator (MRL).
Currently, the following are supported:
<ul>
<li>camera://DEVICE</li>
<li>display://DISPLAY_NAME[ WIDTHxHEIGHT]</li>
<li>file://IMAGE_PATH</li>
</ul>
</tp:docstring>
</arg>
<arg type="b" name="switched" direction="out">
<tp:docstring>Returns true if the input stream was successfully changed, false otherwise</tp:docstring>
</arg>
</method>
<method name="hasCameraStarted" tp:name-for-bindings="hasCameraStarted">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="Bool"/>
<arg type="b" name="started" direction="out">
<tp:docstring>Returns true if the camera has already started, false otherwise</tp:docstring>
</arg>
</method>
<signal name="deviceEvent" tp:name-for-bindings="deviceEvent">
<tp:docstring>Signal triggered by changes in the detected v4l2 devices, e.g. a camera being unplugged.</tp:docstring>
</signal>
<signal name="startedDecoding" tp:name-for-bindings="startedDecoding">
<tp:docstring>Signal triggered when video is available in a shared memory buffer.</tp:docstring>
<arg type="s" name="id">
<tp:docstring>The ID of the call associated with the video, or "local" in the case of local video</tp:docstring>
</arg>
<arg type="s" name="shmPath">
<tp:docstring>The path of the newly created shared memory</tp:docstring>
</arg>
<arg type="i" name="width">
<tp:docstring>The width of the video in the shared memory</tp:docstring>
</arg>
<arg type="i" name="height">
<tp:docstring>The height of the video in the shared memory</tp:docstring>
</arg>
<arg type="b" name="isMixer">
<tp:docstring>Whether or not this texture belongs to a video mixer or is a single texture</tp:docstring>
</arg>
</signal>
<signal name="stoppedDecoding" tp:name-for-bindings="stoppedDecoding">
<tp:docstring>Signal triggered when video is no longer available in a shared memory buffer.</tp:docstring>
<arg type="s" name="id">
<tp:docstring>The ID of the call associated with the video, or "local" in the case of local video</tp:docstring>
</arg>
<arg type="s" name="shmPath">
<tp:docstring>The path of the newly created shared memory</tp:docstring>
</arg>
<arg type="b" name="isMixer">
<tp:docstring>Whether or not this texture belongs to a video mixer or is a single texture</tp:docstring>
</arg>
</signal>
</interface>
</node>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment