Documentation | Issues | Install
GOnnect is an opinionated, simple, easy to use VoIP client, designed for Linux / Flatpak based installations. It makes use of various Flatpak portals and is meant to integrate well into modern Desktop Environments like KDE or GNOME.
What is special about GOnnect is that is meant to be provisioned. For that reason it has no configuration wizard or settings dialog and requires a working configuration file in place.
Here's a short feature list:
- Call forwarding
- Conference calls with three parties
- LDAP/CardDAV address sources
- Busy state for supported sources
- Configurable identities for outgoing calls
- Configurable busy on active call
- Configurable Togglers (i.e. for call queues, CFNL, etc.)
- Custom audio device profiles or managed by your system
- System Tray integration for most common functions / favorites / most frequent calls
- mpris for stopping other audio sources on incoming calls
- GNOME Search-Provider support
- Support for various hardware headsets (i.e. Yealink, Jabra)
- KRunner search plugin (requires next generation flatpak)
- Desktop Actions / Autostart
- Global Keyboard Shortcuts (if supported by your Desktop environment)
- Keeping the screensaver from droppin' in while on the phone
- Mime-Type registration for
tel:
/sip:
URLs - Light/Dark mode
GOnnect supports some generic USB headset features to make your calls easier. Here is the current list in combination
Feature | Key |
---|---|
Answering the call via handset off-hook | A |
End call by hanging up the handset | E |
Mute control | M |
LED state visualization | S |
Busy light support (additional hardware) | L |
Open GOnnect via handset off-hook | O |
Ringing via headset base station | R |
In theory, Teams certified Headsets may work, but you never know... Here is a list of tested headsets. Please feel free to report any working combinations to make this list more complete by opening an issue.
Manufacturer | Model | Features |
---|---|---|
Jabra | EVOLVE LINK | AEMS |
Yealink | WH62 | AEMSLOR |
GOnnect is distributed via Flathub only. To install it, either visit the Flathub page, search for GOnnect in GNOME-Software or KDE's discover.
After you have installed GOnnect, either adjust the provided
sample.conf
and place it in ~/.var/app/de.gonicus.gonnect/config/gonnect/99-user.conf
,
or head over to the documentation.
Like every other software, GOnnect cannot be an all-purpose silver bullet. Here are some deliberately chosen non-goals, so things that will not be implemented into GOnnect:
- Full SIP configuration: Most SIP clients provide a plethora of options to configure every single bit of the SIP connection. That includes many audio codecs of which most are obsolete or rarely used. GOnnect strives to be simple and therefore allows only the most common and important options. This will exclude some exotic ones.
- PIM/contact management: This should be done via dedicated PIM services as opposed to implementing the nth place to store contacts.
- Speech-to-text transcription and audio recording: Apart from some technical insufficiencies this bears some critical questions about data privacy.
- Conferences with more than three participants: Ad-hoc conferences are implemented such that the initializing participant will be a router for the audio streams of the others. In our experience, having more than three endpoints will produce bad sound quality, delays and other performance issues. Bigger conferences would require a specific configuration on the SIP server or another platform (like Jitsi Meet).
GOnnect is based on Qt / C++ and requires a set of libraries to be buildable. There are may ways to achieve a build, but we'll describe just one of them in the following paragraphs.
As we use immutable desktops here at GONICUS and development takes place in a dedicated distrobox for each project, we also use this procedure for GOnnect.
Make sure to have distrobox installed. On Fedora for example run:
sudo dnf install distrobox
After distrobox is installed, create the distrobox for GOnnect development by running
distrobox assemble create
in the directory of your GOnnect checkout.
Assuming you're using the documented distrobox approach above, enter the distrobox and start the ordinary CMake build:
distrobox enter gonnect
mkdir build && cd build
cmake -GNinja ..
cmake --build . --parallel $(nproc --all)
Alternatively you can simply run qtcreator
inside the distrobox and open the
project as usual be selecting the CMakeLists.txt
.
As GOnnect is mainly developed for use in Flatpak, some features only work in this kind of environment. If you want to build the Flatpak locally, you can do this by the following commands on your host shell:
flatpak uninstall de.gonicus.gonnect
flatpak run --command=flatpak-builder org.flatpak.Builder build --user --install-deps-from=flathub --disable-rofiles-fuse --force-clean --repo=repo resources/flatpak/de.gonicus.gonnect.yml
flatpak --user remote-add --no-gpg-verify gonnect-repo repo
flatpak --user install gonnect-repo de.gonicus.gonnect
GOnnect is licensed unter the terms of the GNU GENERAL PUBLIC LICENSE Version 2, or at your opinion any later version.
See LICENSE for the full content of the license.