golang modem/telnet emulator
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Simon Marsh 0722fa1f17
continuous-integration/drone Build is passing Details
tidy up
8 months ago
.drone.yml tidy up 8 months ago
.gitignore initial release 8 months ago
README.md tidy up 8 months ago
go.mod initial release 8 months ago
go.sum initial release 8 months ago
modemulator.go tidy up 8 months ago

README.md

modemulator

Build Status

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

Connecting using socat and minicom

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: 

Connecting using qemu

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