Hello,<br><br>I want use QDBus invoke some function of Telepathy-sofiasip, the code as below:<br><br>[CODE]<br><div id=":5x" class="ii gt">#include &lt;QApplication&gt;<br>
#include &lt;QFont&gt;<br>
#include &lt;QPushButton&gt;<br>
#include &lt;QtCore/QDebug&gt;<br>
#include &lt;QtDBus&gt;<br>
<br>
const QString CONNECTION_MANAGER_SERVICE_NAME = &quot;org.freedesktop.Telepathy.ConnectionManager.&quot;;<br>
const QString CONNECTION_MANAGER_PATH_NAME = &quot;/org/freedesktop/Telepathy/ConnectionManager/&quot;;<br>
const QString CONNECTION_MANAGER_INTERFACE_NAME = &quot;org.freedesktop.Telepathy.ConnectionManager&quot;;<br>
<br>
class ParameterDefinition<br>
{<br>
public:<br>
    QString name;<br>
    uint flags;<br>
    QString signature;<br>
    QDBusVariant defaultValue;<br>
};<br>
typedef QList&lt;ParameterDefinition&gt; ParameterDefinitionList;<br>Q_DECLARE_METATYPE(ParameterDefinition)<br>
Q_DECLARE_METATYPE(ParameterDefinitionList)<br>
<br>
void dbus_init()<br>
{<br>
    qDebug() &lt;&lt; &quot;dbus init in&quot;;<br>
<br>
    QDBusConnection bus = QDBusConnection::sessionBus();<br>
    if( !bus.isConnected() )<br>
    {<br>
        qDebug() &lt;&lt; &quot;no connection&quot;;<br>
        return;<br>
    }<br>
<br>
    QDBusInterface dbus_iface( CONNECTION_MANAGER_SERVICE_NAME + &quot;sofiasip&quot;,<br>
                               CONNECTION_MANAGER_PATH_NAME + &quot;sofiasip&quot;,<br>
                               CONNECTION_MANAGER_INTERFACE_NAME, bus);<br>
    QDBusReply&lt;QStringList&gt; reply = dbus_iface.call( &quot;ListProtocols&quot; );<br>
    qDebug() &lt;&lt; &quot;reply count = &quot; &lt;&lt; reply.value().count();<br>
    foreach( QString name, reply.value() )<br>
    {<br>
        qDebug() &lt;&lt; &quot;protocols = &quot; &lt;&lt; name;<br>
        QDBusReply&lt;ParameterDefinitionList&gt; parameters = dbus_iface.call( &quot;GetParameters&quot;, &quot;sip&quot; );<br>
        if( parameters.isValid() )<br>
            qDebug() &lt;&lt; &quot;parameters is valid&quot;;<br>
        else<br>
            qDebug() &lt;&lt; &quot;parameters is invalid&quot;;<br>
        qDebug() &lt;&lt; &quot;parameters count = &quot; &lt;&lt; parameters.value().count();<br>
        foreach( ParameterDefinition para, parameters.value() )<br>
        {<br>
            qDebug() &lt;&lt; &quot;parameter = &quot; &lt;&lt; <a href="http://para.name/" target="_blank">para.name</a>;<br>
        }<br>
    }<br>
<br>
    qDebug() &lt;&lt; &quot;dbus init out&quot;;<br>
}<br>
<br>
int main(int argc, char* argv[])<br>
{<br>
    QApplication app(argc, argv);<br>
<br>
    QPushButton quit(&quot;Quit&quot;);<br>
<br>
    quit.resize(75, 30);<br>
    quit.setFont(QFont(&quot;Times&quot;, 18, QFont::Bold));<br>
<br>
    QObject::connect(&amp;quit, SIGNAL(clicked()), &amp;app, SLOT(quit()));<br>
<br>
    quit.show();<br>
<br>
    dbus_init();<br>
<br>
    return app.exec();<br>
}<br>[/CODE]<br><br>print out as below:<br><br>tom@tom-desktop:~/Templates/qt_demo/qt4cb/debug$ ./qt4cb <br>
dbus init in <br>
reply count =  1 <br>
protocols =  &quot;sip&quot; <br>
parameters is invalid <br>
parameters count =  0 <br>
dbus init out <br>
tom@tom-desktop:~/Templates/qt_demo/qt4cb/debug$ <br><br>why can&#39;t got valid return value when i invoke &quot;GetParameters&quot; of Telepathy-sofiasip ?<br><br>Br<br>Tom<br></div>