modemulator is small golang server that emulates a small subset of the Hayes AT command set. The server can be configured to connect to other backend services via the telnet protocol when a user dials specific numbers.
The server is intended to be used with a serial terminal or via a virtual serial port in a virtual machine to emulate a modem connection to a remote server.
Port | BAUD | Port | BAUD | Port | BAUD |
---|---|---|---|---|---|
10003 | 300 | 10012 | 1200 | 10024 | 2400 |
10048 | 4800 | 10096 | 9600 | 10144 | 14400 |
10192 | 19200 | 10288 | 28800 | 10336 | 33600 |
10560 | 56000 | 11150 | 115000 |
Example on how to connect to the shell server using socat and minicom at 2400 baud
$ socat -d -d pty,rawer tcp:dialup.burble.dn42:10024 &
...
... socat[xxx] N PTY is /dev/pts/2
...
$ minicom -D /dev/pts/2
Within minicom type ATDT54311 to dial the shell server.
Welcome to minicom 2.8
OPTIONS: I18n
Port /dev/pts/2, 14:01:58
Press CTRL-A Z for help on special keys
ATDT54311
CONNECT 2400
Ubuntu 22.04.1 LTS
shell-fr-par1 login:
Add a virtual serial port to QEMU using -chardev
and -device
.
e.g.
-chardev socket,id=bdn42,port=11150,host=dialup.burble.dn42,server=off -device pci-serial,chardev=bdn42