You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FreeDMR/docs/options-cheatsheet.md

7.6 KiB

FreeDMR OPTIONS Cheat Sheet

OPTIONS lets a connected repeater/hotspot request session settings from a FreeDMR master. These settings last for the current client session. When the client disconnects or times out, FreeDMR resets the session back to the server configuration defaults.

Format

Use semicolon-separated KEY=VALUE fields:

KEY=secret;TS1=91,92;TS2=235;DEFAULT_DIAL_TS1=4400;DEFAULT_DIAL_TS2=2350;TIMER=15

Keep key names exact. Avoid spaces around key names. Commas inside TG lists may have simple whitespace.

FreeDMR accepts OPTIONS strings up to 255 bytes. Longer strings are rejected and the current/default session settings remain in use. Use the compact aliases below where possible on embedded clients.

Common Examples

Static TGs on both slots:

TS1=91,92;TS2=235

Default dial-a-TG on slot 2:

DEFAULT_DIAL_TS2=2350

Default dial-a-TG on both slots:

DEFAULT_DIAL_TS1=4400;DEFAULT_DIAL_TS2=2350

Set slot 2 to no default dial-a-TG connection:

DEFAULT_DIAL_TS2=0

or, using the legacy alias:

DIAL=

Disable dial-a-TG private-call control:

DIALTG=0

Disable automatic dynamic conventional TG routing:

DYNAMIC=0

Use a user API key:

KEY=my-secret-key

Allow network users to direct-dial this repeater/hotspot ID onto local TG9:

NDD_SLOT=1

For DMO/simplex hotspots, use slot 2:

NDD_SLOT=2

Supported Fields

Field Meaning
KEY User/session API key. If a key is already set for the session, later OPTIONS must include the same key.
TS1 Comma-separated static TG list for slot 1. Empty means no static TGs.
TS2 Comma-separated static TG list for slot 2. Empty means no static TGs.
DEFAULT_DIAL_TS1 Default dial-a-TG target for slot 1. 0 or empty means not connected to any default TG.
DEFAULT_DIAL_TS2 Default dial-a-TG target for slot 2. 0 or empty means not connected to any default TG.
TIMER Legacy/default user-activated timeout in minutes. 0 means effectively unlimited.
TG_TIMER Conventional TG dynamic/static timeout in minutes. Falls back to TIMER.
DIAL_TIMER Dial-a-TG timeout in minutes. Falls back to TIMER.
TS1_TIMER Slot 1 timeout in minutes. Overrides TG_TIMER/DIAL_TIMER for slot 1 unless a more specific timer is set.
TS2_TIMER Slot 2 timeout in minutes. Overrides TG_TIMER/DIAL_TIMER for slot 2 unless a more specific timer is set.
TS1_TG_TIMER Slot 1 conventional TG timeout in minutes.
TS2_TG_TIMER Slot 2 conventional TG timeout in minutes.
TS1_DIAL_TIMER Slot 1 dial-a-TG timeout in minutes.
TS2_DIAL_TIMER Slot 2 dial-a-TG timeout in minutes.
NETWORK_DIRECT_DIAL_SLOT Network direct dial slot. Default is 1. 0 disables it, 1 presents on TG9 TS1, 2 presents on TG9 TS2.
DIALTG Enable/disable dial-a-TG private-call control. Use 1 or 0.
DYNAMIC Enable/disable automatic dynamic conventional TG routing. Use 1 or 0.
VOICE Enable/disable voice ident. Use 1 or 0.
SINGLE Enable/disable single-TG mode. Use 1 or 0.
IDENTTG Override voice ident TG. Integer TG value.
VOICETG Alias for IDENTTG.
LANG Announcement language, if installed on the server. Example: en_GB.

Legacy Aliases

These are still accepted for compatibility:

Legacy field Current meaning
DIAL Alias for DEFAULT_DIAL_TS2. Empty means slot 2 is not connected to any default TG.
DEFAULT_REFLECTOR Alias for DEFAULT_DIAL_TS2. Deprecated.
StartRef DMR+ style alias for DEFAULT_DIAL_TS2.
RelinkTime DMR+ style alias for TIMER.
TGTimer DMR+ style alias for TG_TIMER.
DialTimer DMR+ style alias for DIAL_TIMER.
TS1Timer DMR+ style alias for TS1_TIMER.
TS2Timer DMR+ style alias for TS2_TIMER.
IDENT Alias for VOICE.
TS1_1 ... TS1_9 DMR+ style slot-1 static TG fields. Combined into TS1.
TS2_1 ... TS2_9 DMR+ style slot-2 static TG fields. Combined into TS2.
UserLink Accepted and ignored.

Compact Aliases

These aliases are preferred in HBP OPTIONS strings where space is limited:

Alias Current meaning
DIAL1 Alias for DEFAULT_DIAL_TS1.
DIAL2 Alias for DEFAULT_DIAL_TS2.
TGTO1 Alias for TS1_TG_TIMER.
TGTO2 Alias for TS2_TG_TIMER.
DIALTO1 Alias for TS1_DIAL_TIMER.
DIALTO2 Alias for TS2_DIAL_TIMER.
NDD_SLOT Alias for NETWORK_DIRECT_DIAL_SLOT.

Example compact string:

KEY=secret;TS1=91,92;TS2=235;DIAL1=4400;DIAL2=2350;TGTO1=10;TGTO2=10;DIALTO1=30;DIALTO2=30;NDD_SLOT=1

Dial-a-TG Notes

  • Dial-a-TG uses RF-visible TG9 on the relevant slot.
  • Slot 1 and slot 2 dial-a-TG state are independent.
  • Private-call control on slot 1 controls slot 1.
  • Private-call control on slot 2 controls slot 2.
  • Voice prompts for dial-a-TG are sent on TG9 on the controlling slot.
  • Network direct dial is a narrow exception where network-originated group traffic to the repeater/hotspot's own ID may activate local TG9 on the configured slot. It does not enable general private voice routing.
  • Network direct dial does not override an active or hangtime user-selected dial-a-TG route.
  • Invalid NETWORK_DIRECT_DIAL_SLOT values in server config fall back to 1 and are logged. Invalid NDD_SLOT/NETWORK_DIRECT_DIAL_SLOT values in client OPTIONS are ignored and the current session value remains in use.
  • DEFAULT_REFLECTOR, DIAL, and StartRef only affect the slot-2 default. Use DEFAULT_DIAL_TS1 for slot 1.

Timer Precedence

Timer fields are in minutes. 0 means effectively unlimited.

For each active route, FreeDMR uses the most specific configured timer:

  1. TS1_TG_TIMER, TS2_TG_TIMER, TS1_DIAL_TIMER, or TS2_DIAL_TIMER
  2. TS1_TIMER or TS2_TIMER
  3. TG_TIMER or DIAL_TIMER
  4. TIMER

Examples:

  • TIMER=15 gives all user-activated TG and dial-a-TG routes a 15 minute timer.
  • TG_TIMER=10;DIAL_TIMER=30 gives conventional TGs 10 minutes and dial-a-TG routes 30 minutes.
  • TS1_DIAL_TIMER=5;TS2_DIAL_TIMER=30 gives slot 1 and slot 2 dial-a-TG independent timers.

Valid Dial-a-TG Values

  • 0 or empty: not connected to any default TG.
  • 1 to 999999: valid range, except reserved/control targets.
  • Reserved/control targets such as 6, 7, 8, and the control range 4001 to 4999 are not accepted as default dial-a-TG values.
  • 4000 is disconnect control, not a default link target.
  • 5000 is status control, not a default link target.

Practical Starter Strings

Simple hotspot, no static TGs, default dial-a-TG on TS2:

TS1=;TS2=;DEFAULT_DIAL_TS2=2350;TIMER=15

Repeater with static national TGs and dial-a-TG on both slots:

TS1=91,92;TS2=235;DEFAULT_DIAL_TS1=4400;DEFAULT_DIAL_TS2=2350;TIMER=15

Control-heavy setup with API key and no dynamic conventional TG routing:

KEY=my-secret-key;TS1=91;TS2=235;DIALTG=1;DYNAMIC=0;TIMER=15

Separate conventional TG and dial-a-TG timers:

TS1=91;TS2=235;DEFAULT_DIAL_TS1=4400;DEFAULT_DIAL_TS2=2350;TG_TIMER=10;DIAL_TIMER=30

Troubleshooting

  • Use 0 or an empty value when the slot should not connect to any default TG.
  • Use only 0 or 1 for boolean fields such as DIALTG, DYNAMIC, VOICE, and SINGLE.
  • Invalid fields are logged by the server. Valid fields in the same OPTIONS string may still be applied.
  • If settings do not appear to change, check that the correct KEY=... is being sent for the session.

Powered by TurnKey Linux.