blob: ed246732d8e1f641ced6b82d4896b1f6ab52f7b9 [file] [log] [blame]
<?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="getIp2IpDetails" tp:name-for-bindings="getIp2IpDetails">
<tp:docstring>
Get configuration settings of the IP2IP_PROFILE. They are sligthly different from account settings since no VoIP accounts are involved.
</tp:docstring>
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
<tp:docstring>
Available parameters are:
<ul>
<li>ACCOUNT_ID</li>
<li>SRTP_KEY_EXCHANGE</li>
<li>SRTP_ENABLE</li>
<li>SRTP_RTP_FALLBACK</li>
<li>ZRTP_DISPLAY_SAS</li>
<li>ZRTP_HELLO_HASH</li>
<li>ZRTP_NOT_SUPP_WARNING</li>
<li>ZRTP_DISPLAY_SAS_ONCE</li>
<li>LOCAL_INTERFACE</li>
<li>LOCAL_PORT</li>
<li>TLS_LISTENER_PORT</li>
<li>TLS_CA_LIST_FILE</li>
<li>TLS_CERTIFICATE_FILE</li>
<li>TLS_PRIVATE_KEY_FILE</li>
<li>TLS_PASSWORD</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="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="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">
<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="s" name="accountID" direction="in">
</arg>
<arg type="s" name="to" direction="in">
</arg>
<arg type="s" name="message" direction="in">
</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>
<arg type="s" name="from">
</arg>
<arg type="s" name="message">
</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>
<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="stunStatusSuccess" tp:name-for_bindings="stunStatusSuccess">
<arg type="s" name="message">
</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="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>
<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="validateCertificateRaw" tp:name-for-bindings="validateCertificateRaw">
<arg type="s" name="accountId" direction="in"></arg>
<arg type="ay" name="certificateRaw" direction="in">
<tp:docstring>
<p>A certificate path</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="certificatePath" direction="in">
<tp:docstring>
<p>A certificate path</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="getCertificateDetailsRaw" tp:name-for-bindings="getCertificateDetailsRaw">
<arg type="ay" name="certificateRaw" direction="in">
<tp:docstring>
<p>A raw certificate</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="String"/>
<arg type="s" name="certId" direction="out">
<tp:docstring>
<p>ID of the pinned certificate 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="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>
</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>
</interface>
</node>