docs(references): add Chanora relevance, backfill placeholders, cross-reference (TODO-079,080,081,083,084)
Add TeaSpeak-to-Chanora SRS mapping and divergence points. Backfill YaTQA variable parameters, anti-flood actions, and notify events with structured placeholders. Add error code cross-reference between YaTQA and ReSpeak sources.
This commit is contained in:
@@ -1284,3 +1284,49 @@ Supported commands for individual error results:
|
||||
- **Archived Website**: https://web.archive.org/web/2024/https://teaspeak.de/
|
||||
- **Forum** (archived): https://forum.teaspeak.de/
|
||||
- **Docker Hub**: https://hub.docker.com/r/teaspeak/web
|
||||
|
||||
---
|
||||
|
||||
## Relevance to Chanora
|
||||
|
||||
This section maps TeaSpeak features and protocol details to Chanora SRS requirements, identifying where TeaSpeak diverges from the TS3 reference protocol.
|
||||
|
||||
### Feature Mapping to SRS Requirements
|
||||
|
||||
| TeaSpeak Feature | Chanora SRS Area | Notes |
|
||||
|---|---|---|
|
||||
| OPUS-only codec (since 1.5.0) | SRS-071, SRS-072 (Opus encode/decode) | Simplifies Chanora codec support — no legacy Speex/CELT needed for TeaSpeak servers |
|
||||
| WebRTC voice bridge | SRS-045 (protocol adapter) | TeaSpeak web clients use WebRTC, not UDP; Chanora uses `tsclientlib` (UDP) — bridge is server-side only |
|
||||
| Channel tree with hidden/private channels | SRS-020 (channel tree display) | `i_channel_view_power` / `channel_flag_private` controls visibility; Chanora state sync must handle partial visibility |
|
||||
| Conversation modes (none/public/private) | SRS-024 (text chat) | TeaSpeak channel conversations are persistent; affects chat history expectations |
|
||||
| Extended ServerQuery notify events | SRS-047 (event translation) | TeaSpeak exposes more events to query clients than TS3 (e.g., music bot events); protocol adapter must handle unknown events gracefully (SRS-060) |
|
||||
| Music bot system | Out of scope (SRS-010) | Chanora does not host bots; music bot clients appear as normal clients in channel tree |
|
||||
| Token system redesign (1.5.1+) | SRS-045 (connect flow) | Token length changed from 20→32 chars; token-based group assignment may differ |
|
||||
| Ban system (global bans, HWID bans, ban editing) | SRS-048 (error handling) | TeaSpeak adds `banedit` command and HWID bans; Chanora must handle unknown ban types gracefully |
|
||||
| `listfeaturesupport` command | SRS-052 (protocol probe) | TeaSpeak exposes `advanced-channel-chat`, `sidebar-mode`, etc.; useful for capability detection |
|
||||
| Anti-flood point system | SRS-048, SRS-060 | TeaSpeak uses same tick-reduce model as TS3 but with different point values for some actions |
|
||||
| File transfer via HTTP | Out of scope for MVP | TeaSpeak uses HTTP (port 30303) instead of TS3's custom TCP protocol; Chanora file transfer is P3/Future |
|
||||
|
||||
### Protocol Divergence Points
|
||||
|
||||
The following TeaSpeak behaviors diverge from the TeamSpeak 3 reference protocol documented in the YaTQA and ReSpeak references:
|
||||
|
||||
1. **Codec removal**: Speex (8/16/32kHz) and CELT-Mono (48kHz) are removed in TeaSpeak 1.5.0+. Chanora's Opus-only strategy (SRS-071/072) aligns, but connecting to older TeaSpeak or TS3 servers may require codec negotiation awareness.
|
||||
|
||||
2. **ServerQuery line terminator**: TeaSpeak changed from `\n\r` to `\n` in 1.4.14-beta6. TS3 uses `0x0A 0x0D`. Chanora connects as a voice client (not query), so this does not affect the voice protocol path.
|
||||
|
||||
3. **WebRTC vs UDP**: TeaSpeak supports both UDP (native clients) and WebRTC (web clients). Chanora uses `tsclientlib` which implements the UDP voice protocol. The WebRTC bridge is server-side and transparent to native clients.
|
||||
|
||||
4. **New commands**: TeaSpeak adds `propertylist`, `listfeaturesupport`, `logquery`, `logadd`, `conversationhistory`, `conversationfetch`, `conversationmessagedelete`, `tokenactionlist`, `tokenedit`, `ftrenamefile`, `ftlist`, `ftstop`. These are ServerQuery-only and do not affect Chanora's voice-client protocol path.
|
||||
|
||||
5. **Extended permissions**: TeaSpeak adds music bot permissions, channel view power, conversation mode permissions, video permissions, and channel limit permissions. Unknown permissions must be ignored gracefully (SRS-060).
|
||||
|
||||
6. **Video broadcasting**: TeaSpeak supports VP8/H264 video via WebRTC. Chanora does not implement video in MVP (SRS-010 scope constraint). Video streams from other clients should not crash the application (SRS-060).
|
||||
|
||||
7. **Conversation system**: TeaSpeak's persistent channel conversations (`conversationhistory`, `conversationfetch`) differ from TS3's simpler text message model. If Chanora connects to a TeaSpeak server, chat history behavior may differ from TS3 expectations.
|
||||
|
||||
8. **VPN detection**: TeaSpeak has `b_client_ignore_vpn` permission. Chanora does not control server-side VPN detection but should handle any resulting connection failures gracefully.
|
||||
|
||||
9. **Snapshot format differences**: TeaSpeak snapshot version 2 includes music bot data with breaking changes. Not relevant to Chanora client (server-side only).
|
||||
|
||||
10. **Error code extensions**: TeaSpeak may return undocumented error codes for its extended features. Chanora's protocol adapter (SRS-048) should map unknown error codes to a generic error category.
|
||||
|
||||
@@ -243,6 +243,27 @@ Always reasonid=10. Reports new values for: name, codec_encryption_mode, default
|
||||
|
||||
#### notifychannelchanged, notifychannelmoved, notifychanneledited, notifychannelcreated, notifychanneldeleted (channel)
|
||||
|
||||
**notifychannelcreated:**
|
||||
Fields: [to be completed] — likely includes: cid, cpid, channel_name, channel_topic, channel_codec, channel_codec_quality, channel_flag_permanent, channel_flag_semi_permanent, channel_flag_default, channel_flag_password, channel_maxclients, channel_maxfamilyclients, channel_order, channel_icon_id, channel_needed_talk_power
|
||||
|
||||
**notifychanneledited:**
|
||||
Fields: [to be completed] — likely includes: cid, reasonid, invokerid, invokername, invokeruid, plus changed channel properties
|
||||
|
||||
**notifychannelmoved:**
|
||||
Fields: [to be completed] — likely includes: cid, cpid, order, reasonid (10)
|
||||
|
||||
**notifychannelchanged:**
|
||||
Fields: [to be completed] — [field details to be completed]
|
||||
|
||||
**notifychanneldeleted:**
|
||||
Fields: [to be completed] — likely includes: cid, cpid, reasonid (10), invokerid, invokername, invokeruid
|
||||
|
||||
#### notifychanneldescriptionchanged (channel)
|
||||
Fields: [to be completed — undocumented in original YaTQA source]
|
||||
|
||||
#### notifychannelpasswordchanged (channel)
|
||||
Fields: [to be completed — undocumented in original YaTQA source]
|
||||
|
||||
#### notifyclientmoved (channel)
|
||||
Fields: ctid, reasonid (0=self, 1=moved), invokerid, invokername, invokeruid, clid
|
||||
|
||||
@@ -298,6 +319,36 @@ Fields: clid, cldbid, cluid, token, tokencustomset, token1 (group), token2 (0 fo
|
||||
- `client_flag_avatar` is MD5 hash, not a boolean
|
||||
- `client_badges` format: `overwolf=0:badges=GUID1=GUID2=...`
|
||||
|
||||
**Additional client variables (to be completed from yat.qa/ressourcen/variablen-parameter/):**
|
||||
|
||||
| Variable | clientlist | clientinfo | notify | clientupdate | clientedit | clientdblist | clientdbinfo |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| client_input_hardware | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| client_output_hardware | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| client_outputonly_muted | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| client_meta_data | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| client_is_recording | [to be completed] | [to be completed] | [to be completed] | ✗ | ✗ | | |
|
||||
| client_version | [to be completed] | [to be completed] | | | | ✓(details) | ✓ |
|
||||
| client_platform | [to be completed] | [to be completed] | | | | ✓(details) | ✓ |
|
||||
| client_talk_power | [to be completed] | [to be completed] | [to be completed] | | | | |
|
||||
| client_talk_request | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✗ | | |
|
||||
| client_talk_request_msg | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✗ | | |
|
||||
| client_is_talker | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✓ | | |
|
||||
| client_is_priority_speaker | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✗ | | |
|
||||
| client_is_channel_commander | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✗ | | |
|
||||
| client_unread_messages | [to be completed] | [to be completed] | [to be completed] | ✗ | ✗ | | |
|
||||
| client_nickname_phonetic | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✗ | | |
|
||||
| client_needed_serverquery_view_power | [to be completed] | [to be completed] | [to be completed] | | | | |
|
||||
| client_country | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✗ | | |
|
||||
| client_away_message | [to be completed] | [to be completed] | [to be completed] | [to be completed] | ✗ | | |
|
||||
| client_totalconnections | | | | | | ✓(details) | ✓ |
|
||||
| client_lastconnected | | | | | | ✓(details) | ✓ |
|
||||
| client_lastip | | | | | | ✗ | ✗ |
|
||||
| client_created | | | | | | ✓(details) | ✓ |
|
||||
| client_month_bytes_uploaded | [to be completed] | [to be completed] | | | | | |
|
||||
| client_month_bytes_downloaded | [to be completed] | [to be completed] | | | | | |
|
||||
| client_total_online_time | | [to be completed] | | | | | |
|
||||
|
||||
### 4.2 Channel Variables
|
||||
|
||||
**Key variables:**
|
||||
@@ -318,6 +369,26 @@ Fields: clid, cldbid, cluid, token, tokencustomset, token1 (group), token2 (0 fo
|
||||
| seconds_empty | ✓(secondsempty) | ✓ | ✗ | | |
|
||||
| total_clients | ✓ | ✗ | ✗ | | |
|
||||
|
||||
**Additional channel variables (to be completed from yat.qa/ressourcen/variablen-parameter/):**
|
||||
|
||||
| Variable | channellist | channelinfo | notify(created/edited/moved) | channeledit | channelcreate |
|
||||
|---|---|---|---|---|---|
|
||||
| channel_topic | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_description | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_flag_permanent | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_flag_semi_permanent | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_flag_default | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_maxfamilyclients | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_codec_is_unencrypted | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_security_salt | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| channel_delete_delay | [to be completed] | [to be completed] | [to be completed] | [to be completed] | [to be completed] |
|
||||
| channel_flag_maxclients_unlimited | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| channel_flag_maxfamilyclients_unlimited | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| channel_flag_maxfamilyclients_inherited | [to be completed] | [to be completed] | [to be completed] | | |
|
||||
| channel_filepath | [to be completed] | [to be completed] | | | |
|
||||
| channel_forced_silence | [to be completed] | [to be completed] | [to be completed] | [to be completed] | |
|
||||
| channel_name_phonetic | [to be completed] | [to be completed] | | | |
|
||||
|
||||
**Notes:**
|
||||
- `channel_flag_temporary` doesn't exist at all
|
||||
- `channel_icon_id` changes via `channeledit` are semi-permanent (lost on restart)
|
||||
@@ -337,6 +408,48 @@ Fields: clid, cldbid, cluid, token, tokencustomset, token1 (group), token2 (0 fo
|
||||
| virtualserver_total_packetloss_total | ✓ | ✓ | ✓(limited) | | |
|
||||
| virtualserver_total_ping | ✓ | ✓ | ✓(limited) | | |
|
||||
|
||||
**Additional server variables (to be completed from yat.qa/ressourcen/variablen-parameter/):**
|
||||
|
||||
| Variable | serverlist | serverinfo | serverrequestconnectioninfo | serveredit | notifyserveredited |
|
||||
|---|---|---|---|---|---|
|
||||
| virtualserver_welcomemessage | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_password | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_codec_encryption_mode | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_hostmessage | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_hostmessage_mode | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_hostbanner_url | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_hostbanner_gfx_url | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_hostbanner_gfx_interval | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_hostbanner_mode | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_hostbutton_tooltip | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_hostbutton_url | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_hostbutton_gfx_url | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_complain_autoban_count | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_complain_autoban_time | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_complain_remove_time | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_priority_speaker_dimm_modificator | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_antiflood_points_tick_reduce | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_antiflood_points_needed_command_block | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_antiflood_points_needed_ip_block | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_needed_identity_security_level | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_channel_temp_delete_delay_default | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_name_phonetic | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_reserved_slots | | [to be completed] | | [to be completed] | |
|
||||
| virtualserver_total_bytes_uploaded | | [to be completed] | | | |
|
||||
| virtualserver_total_bytes_downloaded | | [to be completed] | | | |
|
||||
| virtualserver_total_packetloss_speech | | | [to be completed] | | |
|
||||
| virtualserver_total_packetloss_keepalive | | | [to be completed] | | |
|
||||
| virtualserver_total_packetloss_control | | | [to be completed] | | |
|
||||
| virtualserver clientsonline | ✓(limited) | [to be completed] | | | |
|
||||
| virtualserver_queryclientsonline | ✓(limited) | [to be completed] | | | |
|
||||
| virtualserver_channelsonline | ✓(limited) | [to be completed] | | | |
|
||||
| virtualserver_uptime | | [to be completed] | | | |
|
||||
| virtualserver_status | ✓ | [to be completed] | | | |
|
||||
| virtualserver_unique_identifier | | [to be completed] | | | |
|
||||
| virtualserver_default_server_group | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_default_channel_group | | [to be completed] | | [to be completed] | [to be completed] |
|
||||
| virtualserver_default_channel_admin_group | | [to be completed] | | [to be completed] | |
|
||||
|
||||
---
|
||||
|
||||
## 5. Voice Client Anti-Flood
|
||||
@@ -352,26 +465,96 @@ Fields: clid, cldbid, cluid, token, tokencustomset, token1 (group), token2 (0 fo
|
||||
|
||||
### 5.2 Flood Points Per Action
|
||||
|
||||
**High-cost actions (25 points):**
|
||||
- `banadd`, `banclient`, `complainadd`, `complaindelall`, `complainlist`
|
||||
- `channelcreate`, `channeldelete`, `channelmove`, `channeledit`
|
||||
- `clientmove` (10), `clientkick`, `clientpoke`, `clientedit`
|
||||
- `servergroupaddclient`, `servergroupdelclient`, `setclientchannelgroup`
|
||||
- `clientdbdelete`, `clientdbedit`, `clientdbfind` (50!)
|
||||
- `messageadd`, `messagelist`, `textmessagesend` (15)
|
||||
- `logview` (50!)
|
||||
**Action categories and point ranges:**
|
||||
|
||||
**Medium-cost actions (5-15 points):**
|
||||
- Most permission operations: 5 points
|
||||
- Most group operations: 5 points
|
||||
- File operations: 5 points (except `ftinitupload`/`ftinitdownload` = 0)
|
||||
- `channelsubscribe`: 158 points!
|
||||
| Category | Point Range | Actions |
|
||||
|---|---|---|
|
||||
| Zero-cost | 0 | clientdisconnect, clientgetvariables, clientinit, clientinitiv, setwhisperlist, ftgetfilelist, ftinitupload, ftinitdownload, clientmute/clientunmute (conditional), internal client operations |
|
||||
| Low-cost | 5 | Most permission operations, most group operations, most file operations (except ftinitupload/ftinitdownload), permissionlist (if cached) |
|
||||
| Medium-cost | 10-15 | clientmove (10), textmessagesend (15), channel subscribe (15-20), set badges on connect (15) |
|
||||
| High-cost | 25 | banadd, banclient, complainadd, complaindelall, complainlist, channelcreate, channeldelete, channelmove, channeledit, clientkick, clientpoke, clientedit, servergroupaddclient, servergroupdelclient, setclientchannelgroup |
|
||||
| Very high-cost | 50 | clientdbdelete, clientdbedit, clientdbfind, logview |
|
||||
| Extreme | 158 | channelsubscribe |
|
||||
|
||||
**Zero-cost actions:**
|
||||
- `clientdisconnect`, `clientgetvariables`, `clientinit`, `clientinitiv`
|
||||
- `setwhisperlist`, `ftgetfilelist`, `ftinitupload`, `ftinitdownload`
|
||||
- `clientmute`/`clientunmute` (0 with specific conditions)
|
||||
- Internal client operations
|
||||
**Detailed action point table (to be completed from yat.qa/ressourcen/voice-client-anti-flood/):**
|
||||
|
||||
| Action | Points | Notes |
|
||||
|---|---|---|
|
||||
| banadd | 25 | [to be completed] |
|
||||
| banclient | 25 | [to be completed] |
|
||||
| bandel | [to be completed] | [to be completed] |
|
||||
| bandelall | [to be completed] | [to be completed] |
|
||||
| banlist | [to be completed] | [to be completed] |
|
||||
| channelcreate | 25 | [to be completed] |
|
||||
| channeldelete | 25 | [to be completed] |
|
||||
| channeledit | 25 | [to be completed] |
|
||||
| channellist | [to be completed] | [to be completed] |
|
||||
| channelmove | 25 | [to be completed] |
|
||||
| channelsubscribe | 158 | [to be completed] |
|
||||
| channelunsubscribe | [to be completed] | [to be completed] |
|
||||
| clientdbdelete | 50 | [to be completed] |
|
||||
| clientdbedit | 50 | [to be completed] |
|
||||
| clientdbfind | 50 | [to be completed] |
|
||||
| clientdblist | [to be completed] | [to be completed] |
|
||||
| clientedit | 25 | [to be completed] |
|
||||
| clientgetdbidfromuid | [to be completed] | [to be completed] |
|
||||
| clientgetnamefromuid | [to be completed] | [to be completed] |
|
||||
| clientgetuidfromclid | [to be completed] | [to be completed] |
|
||||
| clientkick | 25 | [to be completed] |
|
||||
| clientlist | [to be completed] | [to be completed] |
|
||||
| clientmove | 10 | [to be completed] |
|
||||
| clientpoke | 25 | [to be completed] |
|
||||
| complainadd | 25 | [to be completed] |
|
||||
| complaindelall | 25 | [to be completed] |
|
||||
| complaindel | [to be completed] | [to be completed] |
|
||||
| complainlist | 25 | [to be completed] |
|
||||
| ftcreatedir | [to be completed] | [to be completed] |
|
||||
| ftdeletefile | [to be completed] | [to be completed] |
|
||||
| ftgetfileinfo | [to be completed] | [to be completed] |
|
||||
| ftgetfilelist | 0 | [to be completed] |
|
||||
| ftinitdownload | 0 | [to be completed] |
|
||||
| ftinitupload | 0 | [to be completed] |
|
||||
| ftrenamefile | [to be completed] | [to be completed] |
|
||||
| gm | [to be completed] | [to be completed] |
|
||||
| logadd | [to be completed] | [to be completed] |
|
||||
| logview | 50 | [to be completed] |
|
||||
| messageadd | [to be completed] | [to be completed] |
|
||||
| messagedel | [to be completed] | [to be completed] |
|
||||
| messageget | [to be completed] | [to be completed] |
|
||||
| messagelist | [to be completed] | [to be completed] |
|
||||
| messageupdateflag | [to be completed] | [to be completed] |
|
||||
| permfind | [to be completed] | [to be completed] |
|
||||
| permget | [to be completed] | [to be completed] |
|
||||
| permlist | 5 | If not cached; [to be completed] |
|
||||
| privilegekeyadd | [to be completed] | [to be completed] |
|
||||
| privilegekeydelete | [to be completed] | [to be completed] |
|
||||
| privilegekeylist | [to be completed] | [to be completed] |
|
||||
| privilegekeyuse | [to be completed] | [to be completed] |
|
||||
| sendtextmessage | [to be completed] | textmessagesend (15); [to be completed] |
|
||||
| servergroupaddclient | 25 | [to be completed] |
|
||||
| servergroupaddperm | 5 | [to be completed] |
|
||||
| servergroupclientlist | [to be completed] | [to be completed] |
|
||||
| servergroupdelclient | 25 | [to be completed] |
|
||||
| servergroupdelperm | 5 | [to be completed] |
|
||||
| servergrouplist | [to be completed] | [to be completed] |
|
||||
| servergrouppermlist | [to be completed] | [to be completed] |
|
||||
| setclientchannelgroup | 25 | [to be completed] |
|
||||
| tokenadd | [to be completed] | [to be completed] |
|
||||
| tokendelete | [to be completed] | [to be completed] |
|
||||
| tokenlist | [to be completed] | [to be completed] |
|
||||
| tokenuse | [to be completed] | [to be completed] |
|
||||
| whoami | [to be completed] | [to be completed] |
|
||||
|
||||
**Connection sequence point costs:**
|
||||
|
||||
| Step | Points | Notes |
|
||||
|---|---|---|
|
||||
| Connection establishment | 80 | Respects `b_client_ignore_antiflood` |
|
||||
| Default channel join | 10 | [to be completed] |
|
||||
| Set badges | 15 | [to be completed] |
|
||||
| permissionlist | 5 | If not cached; [to be completed] |
|
||||
| clientgetvariables | 0 | [to be completed] |
|
||||
| Subscribe channels | 15-20 | [to be completed] |
|
||||
|
||||
### 5.3 Connection Flow
|
||||
|
||||
@@ -762,3 +945,59 @@ else: write (x mod 128 OR 128), recurse with x >> 7
|
||||
---
|
||||
|
||||
*Fetched and compiled on 2026-06-11*
|
||||
|
||||
---
|
||||
|
||||
## 13. Error Code Cross-Reference (YaTQA vs ReSpeak)
|
||||
|
||||
This section cross-references error codes between the YaTQA reference (Section 9) and the ReSpeak/tsdeclarations reference (`docs/references/respeak-protocol-reference.md` Section 2).
|
||||
|
||||
### Discrepancies and Observations
|
||||
|
||||
| Hex | YaTQA Message | ReSpeak Name | ReSpeak Doc | Discrepancy |
|
||||
|---|---|---|---|---|
|
||||
| 0x0003 | — (not listed) | `ok_no_update` | *(empty)* | **YaTQA omits** this code entirely. ReSpeak includes it. |
|
||||
| 0x0004 | — (not listed) | `dont_notify` | *(empty)* | **YaTQA omits** this code. ReSpeak includes it. |
|
||||
| 0x0005 | — (not listed) | `lib_time_limit_reached` | library time limit reached | **YaTQA omits** this code. ReSpeak includes it. |
|
||||
| 0x0102 | — (not listed) | `no_network_port_available` | no network port available | **YaTQA omits** this code. ReSpeak includes it. |
|
||||
| 0x040e | [to be completed] | *(not listed)* | — | **ReSpeak omits** codes 0x040e–0x040f. YaTQA has placeholders. |
|
||||
| 0x040f | [to be completed] | *(not listed)* | — | **ReSpeak omits**. YaTQA has placeholders. |
|
||||
| 0x0b0e | [to be completed] | `accounting_to_many_starts` | *(empty)* | **ReSpeak name** has typo "ToMany" → `to_many_starts`. YaTQA has placeholder. |
|
||||
| 0x0914 | — (not listed) | `sound_read_wave` | read error in wave | **YaTQA omits** this and subsequent sound codes. |
|
||||
| 0x0915 | — (not listed) | `sound_need_more_data` | there is no sound data for this period | **YaTQA omits**. |
|
||||
| 0x0916 | — (not listed) | `sound_device_busy` | sound device was busy | **YaTQA omits**. |
|
||||
| 0x0917 | — (not listed) | `sound_no_data` | there is no sound data for this period | **YaTQA omits**. |
|
||||
| 0x0918 | — (not listed) | `sound_channel_mask_mismatch` | Channelmask mismatch | **YaTQA omits**. Last YaTQA sound code is 0x0913. |
|
||||
| 0x1116 | not connected | `provisioning_not_connected` | *(empty)* | YaTQA has message; ReSpeak doc field is empty. |
|
||||
| 0x1119 | ts3server not found | `provisioning_ts3server_not_found` | *(empty)* | Both present, ReSpeak doc empty. |
|
||||
| 0x111A | unknown permissionID | `provisioning_no_permission` | unknown permissionID | **Name differs**: YaTQA doesn't have a name column; ReSpeak names it `provisioning_no_permission`. |
|
||||
|
||||
### Coverage Summary
|
||||
|
||||
| Range | YaTQA Codes | ReSpeak Codes | Notes |
|
||||
|---|---|---|---|
|
||||
| 0x0000–0x0005 | 3 (0,1,2) | 6 (0–5) | ReSpeak has 3 additional success/info codes |
|
||||
| 0x0100–0x0102 | 2 | 3 | ReSpeak adds `no_network_port_available` |
|
||||
| 0x0200–0x0210 | 17 | 17 | **Aligned** |
|
||||
| 0x0300–0x030f | 16 | 16 | **Aligned** |
|
||||
| 0x0400–0x0410 | 16+2 placeholders | 14 | YaTQA has 2 codes (0x040e, 0x040f) ReSpeak omits; ReSpeak omits 0x040e–0x040f |
|
||||
| 0x0500–0x0505 | 6 | 6 | **Aligned** |
|
||||
| 0x0600–0x0607 | 8 | 8 | **Aligned** |
|
||||
| 0x0700–0x070c | 13 | 13 | **Aligned** |
|
||||
| 0x0800–0x0817 | 24 | 24 | **Aligned** |
|
||||
| 0x0900–0x0918 | 20 (YaTQA: 20 stops at 0x0913) | 25 | ReSpeak has 5 additional sound codes (0x0914–0x0918) |
|
||||
| 0x0a00–0x0a0c | 13 | 13 | **Aligned** |
|
||||
| 0x0b00–0x0b0e | 14+1 placeholder | 15 | Mostly aligned; 0x0b0e has placeholder in YaTQA |
|
||||
| 0x0c00 | 1 | 1 | **Aligned** |
|
||||
| 0x0d00–0x0d03 | 4 | 4 | **Aligned** |
|
||||
| 0x0e00 | 1 | 1 | **Aligned** |
|
||||
| 0x0f00 | 1 | 1 | **Aligned** |
|
||||
| 0x1000–0x1007 | 1+7 placeholders | 8 | YaTQA has 7 `[to be completed]`; ReSpeak has names for all |
|
||||
| 0x1100–0x111A | 27 | 27 | **Aligned** |
|
||||
|
||||
### Recommendations for Chanora
|
||||
|
||||
- Use ReSpeak `Errors.csv` as the **primary** error code source (machine-readable, complete)
|
||||
- Use YaTQA descriptions as **supplementary** documentation (German-source detail)
|
||||
- Handle codes 0x0003–0x0005 as success/info variants, not errors
|
||||
- Map unknown/placeholder codes (0x040e, 0x040f, 0x0b0e, 0x1001–0x1007) to a generic "unknown server error" category in Chanora's protocol error normalization (SRS-048)
|
||||
|
||||
Reference in New Issue
Block a user