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.
232 lines
7.5 KiB
232 lines
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:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
TS1=91,92;TS2=235
|
|
```
|
|
|
|
Default dial-a-TG on slot 2:
|
|
|
|
```text
|
|
DEFAULT_DIAL_TS2=2350
|
|
```
|
|
|
|
Default dial-a-TG on both slots:
|
|
|
|
```text
|
|
DEFAULT_DIAL_TS1=4400;DEFAULT_DIAL_TS2=2350
|
|
```
|
|
|
|
Set slot 2 to no default dial-a-TG connection:
|
|
|
|
```text
|
|
DEFAULT_DIAL_TS2=0
|
|
```
|
|
|
|
or, using the legacy alias:
|
|
|
|
```text
|
|
DIAL=
|
|
```
|
|
|
|
Disable dial-a-TG private-call control:
|
|
|
|
```text
|
|
DIALTG=0
|
|
```
|
|
|
|
Disable automatic dynamic conventional TG routing:
|
|
|
|
```text
|
|
DYNAMIC=0
|
|
```
|
|
|
|
Use a user API key:
|
|
|
|
```text
|
|
KEY=my-secret-key
|
|
```
|
|
|
|
Allow network users to direct-dial this repeater/hotspot ID onto local TG9:
|
|
|
|
```text
|
|
NDD_SLOT=1
|
|
```
|
|
|
|
For DMO/simplex hotspots, use slot 2:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
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 `0`
|
|
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:
|
|
|
|
```text
|
|
TS1=;TS2=;DEFAULT_DIAL_TS2=2350;TIMER=15
|
|
```
|
|
|
|
Repeater with static national TGs and dial-a-TG on both slots:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
KEY=my-secret-key;TS1=91;TS2=235;DIALTG=1;DYNAMIC=0;TIMER=15
|
|
```
|
|
|
|
Separate conventional TG and dial-a-TG timers:
|
|
|
|
```text
|
|
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.
|