21#include "qekigadialer.h"
23#include "../dbusconnectionpool.h"
25#include <KLocalizedString>
27#include <QDBusConnectionInterface>
29#include <QtCore/QProcess>
30#include <QtDBus/QDBusConnection>
31#include <QtDBus/QDBusConnectionInterface>
32#include <QtDBus/QDBusInterface>
33#include <QtDBus/QDBusReply>
37static bool isEkigaServiceRegistered()
39 const QLatin1String service(
"org.ekiga.Ekiga");
41 QDBusConnectionInterface *
interface = QDBusConnection::sessionBus().interface();
42 if (interface->isServiceRegistered(service)) {
46 interface = Akonadi::DBusConnectionPool::threadConnection().interface();
47 if (interface->isServiceRegistered(service)) {
53static QDBusInterface *searchEkigaDBusInterface()
55 const QLatin1String service(
"org.ekiga.Ekiga");
56 const QLatin1String path(
"/org/ekiga/Ekiga");
58 QDBusInterface *
interface = new QDBusInterface(service, path, QString(), QDBusConnection::sessionBus());
59 if (!interface->isValid()) {
61 interface = new QDBusInterface(service, path, QString(),
Akonadi::DBusConnectionPool::threadConnection());
67QEkigaDialer::QEkigaDialer(const QString &applicationName)
68 : QDialer(applicationName), mInterface(0)
72QEkigaDialer::~QEkigaDialer()
77bool QEkigaDialer::initializeEkiga()
80 if (!isEkigaServiceRegistered()) {
83 if (!QProcess::startDetached(QLatin1String(
"ekiga"), QStringList())) {
84 mErrorMessage = i18n(
"Unable to start ekiga process, check that ekiga executable is in your PATH variable.");
89 for (
int i = 0; i < runs; ++i) {
90 if (!isEkigaServiceRegistered()) {
99 mInterface = searchEkigaDBusInterface();
101 if (!mInterface->isValid()) {
105 mErrorMessage = i18n(
"Ekiga Public API (D-Bus) seems to be disabled.");
112bool QEkigaDialer::dialNumber(
const QString &number)
114 if (!initializeEkiga()) {
117 QDBusReply<void> reply = mInterface->call(QLatin1String(
"Call"), number);
121bool QEkigaDialer::sendSms(
const QString &number,
const QString &text)
125 mErrorMessage = i18n(
"Sending an SMS is currently not supported on Ekiga.");
FreeBusyManager::Singleton.