Skip to content

D-Modem/D-Modem: V.92 softmodem over SIP

D-Modem

An open V.92 softmodem: connect to dial-up modems over a SIP call, with no modem hardware.

D-Modem's data pumps, error correction and AT command set are open source. dmodemd puts the modem on a SIP line and gives the computer a serial port (a pty, a COM port or a socket) to dial from. It can also drive real phone-line hardware: an old laptop's softmodem, Smart Link and Agere USB modems, and the pico-serial sticks. On a PBX it answers calls through Asterisk, FreeSWITCH or FreePBX.

  • V.92, V.90 and V.91 (up to 62667 bit/s between digital modems), V.34 and every older standard down to Bell 103
  • Class 1, 2 and 2.0 fax with a built-in fax machine and T.38
  • V.42 error correction with V.44, V.42bis and MNP 5 compression; V.80 for H.324
  • Text telephones (V.18), alarm reports, fixed-line SMS, card-terminal fast connect, leased lines and ISDN data calls
  • Voice and data together (V.70 DSVD, V.61) and V.150.1 modem relay
  • Linux, Windows, macOS and Haiku; the D-Modem app for Android and iOS is built on it

Quick start

On Linux, with CMake, git and a C++17 compiler:

cmake -B build && cmake --build build
export SIP_LOGIN=username:password@sip.example.com
./build/dmodemd/dmodemd

then open /dev/ttyDM0 in a terminal program at 115200 bit/s, type ATX3 (there is no dial tone on SIP) and dial with ATDT.

Documentation

The documentation is also a website, d-modem.github.io/D-Modem, with reference pages made from the code.

D-Modem began at Aon's Cyber Labs in 2021 (acknowledgements).

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
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

License

D-Modem is copyright the D-Modem Authors, under the GNU Affero General Public License version 3 only (COPYING), or under a commercial licence from the D-Modem Authors. See LICENSING.md for the parts under other licences: the Asterisk module (GPL-2.0) and the interop test binaries in dsp/test/, which belong to their owners and are not subject to this repository's terms (dsp/test/NOTICE.md). Contributions come with a contributor agreement (CONTRIBUTING.md).