Select Git revision
configurationmanager-introspec.xml
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
configurationmanager-introspec.xml 23.69 KiB
<?xml version="1.0" ?>
<node name="/configurationmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="org.sflphone.SFLphone.ConfigurationManager">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
Used to handle the configuration stuff: accounts settings, account registration, user preferences, ...
</tp:docstring>
<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="com.trolltech.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>REGISTRATION_STATUS: The account registration status. Should be Registered to make calls.</li>
<li>REGISTRATION_STATE_CODE</li>
<li>REGISTRATION_STATE_DESCRIPTION</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>
<li>TLS_NEGOTIATION_TIMEOUT_MSEC</li>
</ul>
</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 sflphone 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="com.trolltech.QtDBus.QtTypeName.In1" value="MapStringString"/>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setCredentials" tp:name-for-bindings="setCredentials">
<tp:docstring>
</tp:docstring>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="VectorMapStringString"/>
<arg type="aa{ss}" name="credentialInformation" direction="in" tp:type="String_String_Map">
<tp:docstring>
</tp:docstring>
</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="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<!--<annotation name="com.trolltech.QtDBus.QtTypeName.In0" 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>
<li>TLS_NEGOTIATION_TIMEOUT_MSEC</li>
</ul>
</tp:docstring>
</arg>
</method>
<method name="getCredentials" tp:name-for-bindings="getCredentials">
<tp:docstring>
</tp:docstring>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/>
<arg type="aa{ss}" name="credentialInformation" direction="out">
<tp:docstring>
</tp:docstring>
</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="com.trolltech.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="com.trolltech.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="sendRegister" tp:name-for-bindings="sendRegister">
<tp:docstring>
Send account registration (REGISTER) to the registrar.
</tp:docstring>
the account if expire=1, unregister if expire=0.
@param[in] input accountID
-->
<arg type="s" name="accountID" direction="in">
<tp:docstring>
The account ID
</tp:docstring>
</arg>
<arg type="i" name="expire" direction="in">
<tp:docstring>
<p>To register, expire must be 1.</p>
<p>To un-register, expire must be 0.</p>
</tp:docstring>
</arg>
</method>
<method name="getAudioManager" tp:name-for-bindings="getAudioManager">
<tp:docstring>
</tp:docstring>
<arg type="s" name="api" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setAudioManager" tp:name-for-bindings="setAudioManager">
<tp:docstring>
</tp:docstring>
<arg type="s" name="api" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getRecordPath" tp:name-for-bindings="getRecordPath">
<tp:docstring>
</tp:docstring>
<arg type="s" name="rec" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setRecordPath" tp:name-for-bindings="setRecordPath">
<tp:docstring>
</tp:docstring>
<arg type="s" name="rec" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getIsAlwaysRecording" tp:name-for-bindings="getIsAlwaysRecording">
<tp:docstring>
</tp:docstring>
<arg type="b" name="res" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setIsAlwaysRecording" tp:name-for-bindings="setIsAlwaysRecording">
<tp:docstring>
</tp:docstring>
<arg type="b" name="enabled" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<!-- /////////////////////// -->
<!-- Codecs-related methods -->
<method name="getAudioCodecList" tp:name-for-bindings="getAudioCodecList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/>
<arg type="ai" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getAudioCodecDetails" tp:name-for-bindings="getAudioCodecDetails">
<tp:docstring>
</tp:docstring>
<arg type="i" name="payload" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="details" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getActiveAudioCodecList" tp:name-for-bindings="getActiveAudioCodecList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<arg type="ai" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setActiveAudioCodecList" tp:name-for-bindings="setActiveAudioCodecList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
<arg type="as" name="list" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<arg type="s" name="accountID" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<!-- Audio devices methods -->
<method name="getAudioPluginList" tp:name-for-bindings="getAudioPluginList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setAudioPlugin" tp:name-for-bindings="setAudioPlugin">
<tp:docstring>
</tp:docstring>
<arg type="s" name="audioPlugin" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getAudioOutputDeviceList" tp:name-for-bindings="getAudioOutputDeviceList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setAudioOutputDevice" tp:name-for-bindings="setAudioOutputDevice">
<tp:docstring>
</tp:docstring>
<arg type="i" name="index" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setAudioInputDevice" tp:name-for-bindings="setAudioInputDevice">
<tp:docstring>
</tp:docstring>
<arg type="i" name="index" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setAudioRingtoneDevice" tp:name-for-bindings="setAudioRingtoneDevice">
<tp:docstring>
</tp:docstring>
<arg type="i" name="index" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getAudioInputDeviceList" tp:name-for-bindings="getAudioInputDeviceList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getCurrentAudioDevicesIndex" tp:name-for-bindings="getCurrentAudioDevicesIndex">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getAudioDeviceIndex" tp:name-for-bindings="getAudioDeviceIndex">
<tp:docstring>
</tp:docstring>
<arg type="s" name="name" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<arg type="i" name="index" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getCurrentAudioOutputPlugin" tp:name-for-bindings="getCurrentAudioOutputPlugin">
<tp:docstring>
</tp:docstring>
<arg type="s" name="plugin" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getEchoCancelState" tp:name-for-bindings="getNoiseSuppressState">
<tp:docstring>
</tp:docstring>
<arg type="s" name="state" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setEchoCancelState" tp:name-for-bindings="setEchoCancelState">
<arg type="s" name="state" direction="in">
</arg>
</method>
<method name="setEchoCancelTailLength" tp:name-for-bindings="setEchoCancelTailLength">
<tp:docstring>
</tp:docstring>
<arg type="i" name="index" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getEchoCancelTailLength" tp:name-for-bindings="getEchoCancelTailLength">
<tp:docstring>
</tp:docstring>
<arg type="i" name="index" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setEchoCancelDelay" tp:name-for-bindings="setEchoCancelDelay">
<tp:docstring>
</tp:docstring>
<arg type="i" name="index" direction="in">
</arg>
</method>
<method name="getEchoCancelDelay" tp:name-for-bindings="getEchoCancelDelay">
<tp:docstring>
</tp:docstring>
<arg type="i" name="index" direction="out">
</arg>
</method>
<method name="getNoiseSuppressState" tp:name-for-bindings="getEchoCancelState">
<tp:docstring>
</tp:docstring>
<arg type="s" name="state" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setNoiseSuppressState" tp:name-for-bindings="setNoiseSuppressState">
<arg type="s" name="state" direction="in">
</arg>
</method>
<!-- General Settings Panel -->
<method name="isIax2Enabled" tp:name-for-bindings="isIax2Enabled">
<tp:docstring>
</tp:docstring>
<arg type="i" name="res" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setMailNotify" tp:name-for-bindings="setMailNotify">
<tp:docstring>
</tp:docstring>
</method>
<method name="getMailNotify" tp:name-for-bindings="getMailNotify">
<tp:docstring>
</tp:docstring>
<arg type="i" name="level" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getHistoryLimit" tp:name-for-bindings="getHistoryLimit">
<tp:docstring>
</tp:docstring>
<arg type="i" name="days" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setHistoryLimit" tp:name-for-bindings="setHistoryLimit">
<tp:docstring>
</tp:docstring>
<arg type="i" name="days" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<!-- Addressbook configuration -->
<method name="getAddressbookSettings" tp:name-for-bindings="getAddressbookSettings">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringInt"/>
<arg type="a{si}" name="settings" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setAddressbookSettings" tp:name-for-bindings="setAddressbookSettings">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringInt"/>
<arg type="a{si}" name="settings" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<!-- Addressbook list -->
<method name="getAddressbookList" tp:name-for-bindings="getAddressbookList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="settings" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setAddressbookList" tp:name-for-bindings="setAddressbookList">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
<arg type="as" name="settings" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<!-- Hook configuration -->
<method name="getHookSettings" tp:name-for-bindings="getHookSettings">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="settings" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setHookSettings" tp:name-for-bindings="setHookSettings">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
<arg type="a{ss}" name="settings" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getHistory" tp:name-for-bindings="getHistory">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/>
<!-- Return a List of type Dict<string, string> >...a List of Dicts -->
<arg type="aa{ss}" name="entries" direction="out"/>
</method>
<signal name="accountsChanged" tp:name-for-bindings="accountsChanged">
</signal>
<signal name="errorAlert" tp:name-for-bindings="errorAlert">
<arg type="i" name="code">
<tp:docstring>
</tp:docstring>
</arg>
</signal>
<!-- TLS Methods -->
<method name="getSupportedTlsMethod" tp:name-for-bindings="getSupportedTlsMethod">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getTlsSettingsDefault" tp:name-for-bindings="getTlsSettingsDefault">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<tp:docstring>
</tp:docstring>
<arg type="a{ss}" name="details" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getTlsSettings" tp:name-for-bindings="getTlsSettings">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setTlsSettings" tp:name-for-bindings="setTlsSettings">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
<arg type="a{ss}" name="details" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getAddrFromInterfaceName" tp:name-for-bindings="getAddrFromInterfaceName">
<tp:docstring>
</tp:docstring>
<arg type="s" name="interface" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
<arg type="s" name="address" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getAllIpInterface" tp:name-for-bindings="getAllIpInterface">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getAllIpInterfaceByName" tp:name-for-bindings="getAllIpInterfaceByName">
<tp:docstring>
</tp:docstring>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
<arg type="as" name="list" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="getShortcuts" tp:name-for-bindings="getShortcuts">
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<tp:docstring>
</tp:docstring>
<arg type="a{ss}" name="shortcutsMap" direction="out">
<tp:docstring>
</tp:docstring>
</arg>
</method>
<method name="setShortcuts" tp:name-for-bindings="setShortcuts">
<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
<tp:docstring>
</tp:docstring>
<arg type="a{ss}" name="shortcutsMap" direction="in">
<tp:docstring>
</tp:docstring>
</arg>
</method>
</interface>
</node>