CallKey support thread

Hi there, introducing CallKey - an app I made so that I can trigger predefined actions using a VoIP provider.

The purpose of this is to avoid dropping music when going home and calling my gate to open it and more importantly trying to click the correct number in the recent list while driving.

In this app you can configure VoIP targets which will be ringed for up to a configurable amount of time when you click a button, all while having your most important actions directly on the cover.

Open source, as usual: GitHub - RikudouSage/harbour-callkey ยท GitHub
Translations: CallKey localization | Transifex

8 Likes

I added support for D-Bus - you can now activate triggers using a D-Bus call, e.g. from Automagic or other automatization software.

The api is as follows:

  • cz.chrastecky.callkey.v1

    • listActions() โ†’ string[]
      Returns the names of all configured CallKey actions.
    • trigger(string actionName, bool synchronous) โ†’ bool
      Starts the named VoIP action. Returns false if it does not exist. With synchronous=true, waits for the action result before replying.
  • signals:

    • actionStarted(string actionName)
      Emitted when an action starts.
    • actionFinished(string actionName, bool success, string message)
      Emitted when CallKey reports the action as succeeded or failed.

C++ calling example:

QDBusInterface callKey(
    "cz.chrastecky.callkey",
    "/cz/chrastecky/callkey",
    "cz.chrastecky.callkey.v1",
    QDBusConnection::sessionBus());

QDBusReply<QStringList> actions = callKey.call("listActions");
if (actions.isValid()) {
    qDebug() << actions.value();
}

QDBusReply<bool> started = callKey.call("trigger", "Test", false);
if (!started.isValid()) {
    qWarning() << started.error().message();
} else {
    qDebug() << "Started:" << started.value();
}

And waiting for events:

QDBusConnection::sessionBus().connect(
    "cz.chrastecky.callkey",
    "/cz/chrastecky/callkey",
    "cz.chrastecky.callkey.v1",
    "actionFinished",
    &receiver,
    SLOT(actionFinished(QString,bool,QString)));

// example slot
void onActionFinished(const QString &name, bool success, const QString &message)
{
    if (!success) {
      qWarning() << "There was an error: " << message;
      return;
    }
    // todo handle success
}

1 Like

The app is in the Jolla Store now! The version supporting D-Bus is not there yet, coming whenever Jolla approves it.