7.5 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. 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_SLOTvalues in server config fall back to0and are logged. InvalidNDD_SLOT/NETWORK_DIRECT_DIAL_SLOTvalues in clientOPTIONSare ignored and the current session value remains in use. DEFAULT_REFLECTOR,DIAL, andStartRefonly affect the slot-2 default. UseDEFAULT_DIAL_TS1for slot 1.
Timer Precedence
Timer fields are in minutes. 0 means effectively unlimited.
For each active route, FreeDMR uses the most specific configured timer:
TS1_TG_TIMER,TS2_TG_TIMER,TS1_DIAL_TIMER, orTS2_DIAL_TIMERTS1_TIMERorTS2_TIMERTG_TIMERorDIAL_TIMERTIMER
Examples:
TIMER=15gives all user-activated TG and dial-a-TG routes a 15 minute timer.TG_TIMER=10;DIAL_TIMER=30gives conventional TGs 10 minutes and dial-a-TG routes 30 minutes.TS1_DIAL_TIMER=5;TS2_DIAL_TIMER=30gives slot 1 and slot 2 dial-a-TG independent timers.
Valid Dial-a-TG Values
0or empty: not connected to any default TG.1to999999: valid range, except reserved/control targets.- Reserved/control targets such as
6,7,8, and the control range4001to4999are not accepted as default dial-a-TG values. 4000is disconnect control, not a default link target.5000is 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
0or an empty value when the slot should not connect to any default TG. - Use only
0or1for boolean fields such asDIALTG,DYNAMIC,VOICE, andSINGLE. - 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.