Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# The suite's site at https://d-modem.github.io/, built with brand's shared
# theme and workflow (brand's docs/sites.md).
name: Pages
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages-${{ github.ref }}
cancel-in-progress: true
jobs:
site:
uses: D-Modem/brand/.github/workflows/site.yml@main
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
The D-Modem suite's website, <https://d-modem.github.io/>: what the
suite is and where each of its repositories' sites lives.

The pages are under `docs/`. They're built with MkDocs and the shared
The pages are under `docs/`. They're built with Zensical and the shared
theme from [brand](https://github.com/D-Modem/brand) (its
[docs/sites.md](https://github.com/D-Modem/brand/blob/main/docs/sites.md)),
and deployed by `.github/workflows/pages.yml` on every push to main.
Expand Down
90 changes: 90 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
title: D-Modem
hide:
- navigation
- toc
---

<div class="suite-hero" markdown>
<img src="assets/suite/mark.svg" alt="">
<div markdown>

# D-Modem

**An open V.92 softmodem, and the app, boards and servers built around it.**

Dial a BBS, a fax machine or an ISP from a SIP call, a phone, or a real
phone line, with no modem hardware. Or run the other end: answer modem
callers on a PBX and give them a login, a menu and a bulletin board.

</div>
</div>

## The suite

<div class="grid cards" markdown>

- **[D-Modem](https://github.com/D-Modem/D-Modem)**

---

The softmodem: V.92 down to Bell 103, class 1, 2 and 2.0 fax, V.42 and
V.44. `dmodemd` puts it on a SIP line; modules put it in Asterisk,
FreeSWITCH and FreePBX. Linux, Windows, macOS and Haiku.

- **[app](https://github.com/D-Modem/app)**

---

The D-Modem app for Android and iOS: a modem whose phone line is a SIP
call, with a terminal, a dialling directory, fax and dial-up internet.

- **[hardware](https://github.com/D-Modem/hardware)**

---

pico-serial: open RP2040 boards that connect D-Modem to vintage serial
ports and to real telephone lines.

- **[menu](https://github.com/D-Modem/menu)**

---

modemmenu: the login and menu dial-up callers see first, with PPP, a
shell, the BBS or any program behind it.

- **[bbs](https://github.com/D-Modem/bbs)**

---

A bulletin board in Go for telnet, SSH, TN3270 and modem callers, with
message areas, FidoNet, doors and file transfers.

- **[go3270](https://github.com/D-Modem/go3270)**

---

A Go library for TN3270 servers, the suite's fork of
racingmars/go3270. bbs draws its 3270 screens with it.

- **[brand](https://github.com/D-Modem/brand)**

---

The mark, the Rainbow Book colours, type, the naming guide, and the
theme every D-Modem site shares.

</div>

## Start here

- **Dial out from a computer:** build [D-Modem](https://github.com/D-Modem/D-Modem)
and run `dmodemd` with a SIP account, then dial from any terminal program.
- **Dial out from a phone:** install the [D-Modem app](https://github.com/D-Modem/app).
- **Use a real phone line or serial port:** see the
[pico-serial boards](https://github.com/D-Modem/hardware).
- **Answer callers:** put D-Modem in Asterisk, then
[modemmenu](https://github.com/D-Modem/menu) and the
[bbs](https://github.com/D-Modem/bbs) behind it.

[How the pieces fit together](suite.md){ .md-button }
48 changes: 48 additions & 0 deletions docs/suite.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# How the pieces fit together

D-Modem's modem core is the centre of the suite. Everything else either
carries it somewhere or answers the calls it makes.

```
caller's side answering side
───────────── ──────────────
terminal, fax, PPP Asterisk / FreeSWITCH / FreePBX
│ │
dmodemd (D-Modem) ── SIP call ──▶ PBX ──▶ app_dmodem (D-Modem)
or the app │
or a pico-serial stick on a phone line modemmenu (menu)
│
bbs, PPP, a shell
```

## Calling out

- **On a computer**, [D-Modem](https://github.com/D-Modem/D-Modem)'s
`dmodemd` places a SIP call and gives the computer a serial port (a pty,
a COM port or a socket). Terminal programs, fax software and `pppd` dial
from it with AT commands, as they would a hardware modem.
- **On a phone**, the [D-Modem app](https://github.com/D-Modem/app) runs
the same core on Android or iOS, with its own terminal, fax and dial-up
internet.
- **On a real phone line**, a [pico-serial](https://github.com/D-Modem/hardware)
Line stick is the line's interface, and D-Modem is the modem behind it.
The serial adapters connect vintage computers to D-Modem as if it were
a modem on their serial port.

## Answering

- **D-Modem's PBX modules** (`app_dmodem` for Asterisk and FreePBX,
`mod_dmodem` for FreeSWITCH, `dmodem-ari`) answer a modem call on a
phone number.
- **[modemmenu](https://github.com/D-Modem/menu)** is what the caller
meets once the modems connect: a login, the message of the day and a
menu of what they may do.
- **[bbs](https://github.com/D-Modem/bbs)** is one of those things: a
bulletin board that also takes telnet, SSH and TN3270 callers, with
[go3270](https://github.com/D-Modem/go3270) drawing its 3270 screens.

## Licences

D-Modem, the app, menu, bbs and brand are under the GNU AGPL 3.0; go3270
keeps its upstream MIT licence. Each repository's README says which
licence it has and whether a commercial licence is available.
12 changes: 12 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
INHERIT: .site/mkdocs-base.yml
site_name: D-Modem
site_description: An open V.92 softmodem and the apps, boards and servers built around it
site_url: https://d-modem.github.io/
repo_url: https://github.com/D-Modem
repo_name: D-Modem
edit_uri: https://github.com/D-Modem/D-Modem.github.io/edit/main/docs/
extra:
repo: D-Modem.github.io
nav:
- Home: index.md
- How it fits together: suite.md
Loading