Skip to content

Caller Command Reference

This is the sysop-facing reference for caller commands. It documents the current runtime command surface and should be updated whenever a caller-visible command, menu action, prompt, or default screen changes.

Screen art is not authoritative. A command is available only when it is backed by configured menu routing or by an implemented runtime prompt.

Default Login Menu

The starter login menu is configured by [menus.login].

KeyLabelActionStatus
LLogonloginActive
NNew Usernew_userActive
GGoodbyelogoffActive

Default Main Menu

The starter main menu is configured by [menus.main].

KeyLabelActionStatus
DDoorsdoorsActive
MMessagesmessagesActive
FFilesfilesActive when file transfers and file areas are configured
SSysopsubmenu -> sysopActive for level 255 callers
GGoodbyelogoffActive

The default S item is gated by min_security_level = 255. Default new callers at level 10 receive an access-denied line and remain at the main menu.

Default Sysop Submenu

The starter sysop submenu is configured by [menus.sysop] and is reachable only through the gated main-menu S item.

KeyLabelActionStatus
NNode StatusnoopActive
RReturn to mainsubmenu -> mainActive
GGoodbyelogoffActive

The caller sysop submenu is intentionally non-mutating. It can show safe sysop-oriented information, but remote mutations remain outside the caller menu surface.

Door Menu

The doors action opens the live door selector for authenticated callers.

InputBehaviorStatus
Door keyLaunches the enabled configured door with that keyActive
Door numberLaunches the enabled configured door at that displayed list numberActive
Blank lineReturns to the main menuActive

Disabled doors and doors that fail runtime validation are not launchable by callers.

Message Menu

The messages action opens message area selection for authenticated callers.

InputBehaviorStatus
Area keyEnters the enabled message area with that keyActive
Blank lineReturns to the main menuActive

Inside a message area, callers use these prompt commands:

KeyLabelBehaviorStatus
RReadPrompts for a message number and displays itActive
PPostPrompts for subject and multi-line body, then posts a messageActive
YReplyPrompts for a message number and multi-line body, then posts a replyActive
BBackReturns to area selectionActive
Blank lineBackReturns to area selectionActive

Message subjects and bodies must be CP437-compatible before they are stored.

File Menu

The files action opens file-area selection for authenticated callers when [file_transfers].enabled = true.

InputBehaviorStatus
Area numberEnters the enabled file areaActive
Blank lineReturns to the main menuActive

Inside a file area, callers use these prompt commands:

KeyLabelBehaviorStatus
DDownloadPrompts for a file number and protocol, then sends the fileActive
UUploadPrompts for a protocol and receives a pending uploadActive
RReturnReturns to area selectionActive
Blank lineReturnReturns to area selectionActive

Supported caller transfer protocols are ZMODEM (Z) and XMODEM (X). Uploads are stored pending sysop review.

Supported Menu Actions

Menu items map single ASCII keys to safe internal actions. Keys route case-insensitively.

ActionRuntime behaviorStatus
loginRuns the login flowActive
new_userRuns new-user registration before loginActive
doorsOpens the door selectorActive
messagesOpens message area selectionActive
filesOpens file area selectionActive
logoffDisconnects with a goodbye messageActive
show_screenDisplays a configured screen and returns to the current menuActive
submenuMoves into the configured target menuActive
noopAccepts the key and performs no visible actionActive

Custom Or Future Commands

No caller key is globally reserved by the router. Future commands become real only when the config maps a key to an implemented action or prompt handler.

When changing caller commands on a board:

  1. Add or update the menu action or runtime prompt.
  2. Update the default config if the key is part of the starter command set.
  3. Update every starter screen asset that displays the command.
  4. Keep a local note of any board-specific keys so callers and co-sysops know what is available.
  5. Treat unconfigured keys as unavailable, even if an ANSI screen mentions them.

Source Of Truth

The active default menu keys live in config/oxidebbs.example.toml. The runtime routes configured menu keys through the menu router and handles door, message, and file prompt commands in the caller session flow.

Apache-2.0 licensed.