diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..554ed5c --- /dev/null +++ b/.github/workflows/pages.yml @@ -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 diff --git a/README.md b/README.md index 4c59b43..c9d14bd 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ The D-Modem suite's website, : 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. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..46142cd --- /dev/null +++ b/docs/index.md @@ -0,0 +1,90 @@ +--- +title: D-Modem +hide: + - navigation + - toc +--- + +
+ +
+ +# 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. + +
+
+ +## The suite + +
+ +- **[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. + +
+ +## 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 } diff --git a/docs/suite.md b/docs/suite.md new file mode 100644 index 0000000..2eefd6b --- /dev/null +++ b/docs/suite.md @@ -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. diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..7c3469d --- /dev/null +++ b/mkdocs.yml @@ -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