Multinode + NodeSpy

How nodes work

ANetBBS supports up to BBS_NODES (1–100, default 8) concurrent
terminal sessions across telnet/SSH/rlogin. Each connection claims a
slot 1..N at login. When all slots are full, new connections see
"all nodes are in use — try again later" and disconnect cleanly.

Multinode chat

Wire a menu item to action_type = multinode and your users get
real-time chat with every other terminal user.

Commands inside the chat:

input does
any text broadcast to all other nodes
/list show online nodes
/w <slot> <msg> private whisper to one node
/q quit chat, back to menu

Join/part are announced automatically. Web users do NOT appear in
multinode chat — they have IRC / MRC / shoutbox.

NodeSpy (sysop)

Admin → Control Panel → NodeSpy (/admin/control/).

Each terminal session writes a NodeActivity row that's updated on
every menu render and every action. The sysop panel polls this
every 4 seconds and shows:

  • Slot number
  • Username + protocol (telnet/ssh/rlogin)
  • Current page (main, boards, door:lord, ...)
  • Last action label
  • Idle seconds
  • Eye-icon link → per-node detail with last screen snapshot

Stale rows (>5 min) auto-hide.

Underlying tables

If you want to query directly:

  • node_activity — current sessions
  • caller_log — historical record (durable)
  • multinode chat queue — in-process, not persisted