Skip to content
D-ModemPublic

Repository files navigation

D-Modem/gui: D-Modem on the desktop

D-Modem desktop apps

Native apps for D-Modem on Windows, macOS and Linux.

Each app starts dmodemd (or reaches one that already runs), and shows the modem as a desktop program should: dial and answer from a window, change its settings without AT commands, and see how the last call went. All three are thin native shells over one small C library, libdmodemctl, so they behave the same.

  • Modem: the call's state, dial, answer and hang up, and the line it uses
  • Terminal: the AT console, and the modem's own setup screens (AT!CF, AT!CT)
  • Settings: every modem setting as a native control, from AT!M
  • Call Stats: the last call's rate, modulation, error control and line figures (AT#UD, ATI11)
  • Line settings: a SIP account, a USB modem, or a modem that already runs
  • Windows 95 and later: plain Win32, built with Open Watcom; on Windows 9x it reaches a modem over TCP or a COM port
Windows macOS Linux
Toolkit Win32, C++ SwiftUI GTK 4, libadwaita, VTE
Runs on Windows 95 and later macOS 13 and later GTK 4.10, libadwaita 1.5 and VTE 0.76 or later (Ubuntu 24.04, Fedora 40)

The Linux app's Settings page The Windows app's Terminal with the modem's setup screen

Quick start

Linux:

sudo apt install cmake libgtk-4-dev libadwaita-1-dev libvte-2.91-gtk4-dev
cmake -S . -B build && cmake --build build && ./build/linux/dmodem-gui

Windows: cmake -S . -B build -A Win32 && cmake --build build --config Release, or for Windows 95 and later, windows/build-watcom.sh with Open Watcom 2.0.

macOS: brew install xcodegen && cd macos && xcodegen && open DModem.xcodeproj.

The Settings page needs a dmodemd with AT!M (D-Modem's main branch since D-Modem/D-Modem#103); the other pages work with any D-Modem 1.0.

Documentation

  • Design: how the apps are built, what they share, and the Windows 9x notes
  • libdmodemctl: the library's API

The D-Modem suite

Repository What it is
D-Modem The open V.92 softmodem: dmodemd, libdmodem and the Asterisk, FreeSWITCH and ARI modules
app The D-Modem app for Android and iOS: a dial-up modem on a SIP call
gui D-Modem on the desktop: native apps for Windows, macOS and Linux
hardware pico-serial: RP2040 serial adapters and phone-line USB sticks
menu modemmenu: the login and menu dial-up callers reach
bbs A bulletin board for telnet, SSH, TN3270 and modem callers
go3270 A Go library for 3270 terminal servers, used by bbs
brand Logos, colours, type and the naming guide

Licence

AGPL-3.0-only (LICENSE), or a commercial licence from the D-Modem Authors (COMMERCIAL-LICENSE.md). Contributions come with a contributor agreement (CONTRIBUTING.md).

Releases

Contributors

Languages