diff --git a/github_docs/de-Benutzeroberflaeche.md b/github_docs/de-Benutzeroberflaeche.md index efd77e35..fd5c9a3a 100644 --- a/github_docs/de-Benutzeroberflaeche.md +++ b/github_docs/de-Benutzeroberflaeche.md @@ -56,9 +56,16 @@ Beide Hinweise blinken ungefähr zwölf Sekunden und verschwinden anschließend Das PM-Fenster zeigt die an die eigenen Chat-Logins gerichteten Privatnachrichten und die zugehörigen ausgehenden Antworten. +Öffentliche Nachrichten erscheinen dort zusätzlich, wenn ihr Text ohne Beachtung der Groß- und Kleinschreibung das konfigurierte eigene Login-Rufzeichen enthält. Dieses PM-Catching – flapsig auch **„Lästererkennung“** – verändert weder den öffentlichen Empfänger `ALL` noch Nachrichtentext, Chat-Kategorie oder Routing. + Ist das [QSO-Monitoring](de-Funktionen#qso-monitoring-ab-v131) aktiviert, erscheinen dort zusätzlich die erfassten Nachrichten der überwachten Basisrufzeichen. Diese Einträge erhalten eine `Sniffed:`-Kennzeichnung mit dem vollständigen sichtbaren Absender und Empfänger. -Neue Nachrichten werden zunächst auffällig dargestellt und wechseln anschließend schrittweise zur normalen Tabellenfarbe. Die farbliche Hervorhebung dient nur als zeitlicher Hinweis; sie verändert weder Inhalt noch Routing der Nachricht. +Neue, nicht selbst gesendete Zeilen durchlaufen sechs grüne Altersstufen und kehren nach fünf Minuten zur normalen Tabellenfarbe zurück. Eigene Nachrichten behalten ihre separate Hervorhebung. Die farbliche Darstellung ist nur ein zeitlicher Hinweis; sie verändert weder Inhalt noch Routing der Nachricht. + +Die Auswahl einer eingehenden Zeile bereitet eine Antwort an den Absender vor. Bei einer eigenen ausgehenden Nachricht wird stattdessen der ursprüngliche Empfänger als Nachrichtenziel wiederhergestellt. Caught- und Monitoring-Zeilen lösen keine PM-Audioausgabe aus. + +Altersstufen: [Farbige PM-Zeilen](de-Funktionen#farbige-pm-zeilen-ab-v125). Erkennung und Grenzen: [PM-Abfang](de-Funktionen#pm-abfang-catching-personal-messages-ab-v11). + ### Benutzerliste (Chat Members) Die zentrale Tabelle aller aktuell aktiven Chat-Nutzer. Spalten (je nach Konfiguration): diff --git a/github_docs/de-Funktionen.md b/github_docs/de-Funktionen.md index 861b562d..2d66c7f2 100644 --- a/github_docs/de-Funktionen.md +++ b/github_docs/de-Funktionen.md @@ -263,7 +263,7 @@ Eigene Nachrichten erhalten weiterhin eine separate Hervorhebung und verwenden n --- -## PM-Abfang (Catching Personal Messages) +## PM-Abfang (Catching Personal Messages, ab v1.1) Manche Nutzer senden Direktnachrichten versehentlich öffentlich, z. B.: @@ -271,7 +271,15 @@ Manche Nutzer senden Direktnachrichten versehentlich öffentlich, z. B.: (DM5M) pse ur qrg ``` -KST4Contest erkennt solche Nachrichten, die das eigene Rufzeichen enthalten, und sortiert sie automatisch in die **Privatnachrichten-Tabelle** ein. So gehen keine Nachrichten verloren. +KST4Contest sucht im Nachrichtentext ohne Beachtung der Groß- und Kleinschreibung nach dem konfigurierten eigenen Login-Rufzeichen. Enthält eine öffentliche Nachricht diesen Text, erscheint sie zusätzlich in der **Privatnachrichten-Tabelle**. Etwas flapsig lässt sich das als **„Lästererkennung“** bezeichnen. Das ist eine Nebenbezeichnung, kein formaler Funktionsname. + +Die ursprüngliche Nachricht bleibt unverändert: Sie ist weiterhin öffentlich, behält ihren Empfänger `ALL`, ihren Text und ihre Chat-Kategorie. PM-Catching ergänzt nur eine weitere Ansicht derselben Nachricht. + +Die Textsuche versteht keine Absicht. Ein Schreibfehler oder ein verkürztes Rufzeichen wird nicht erkannt. Umgekehrt kann eine bloße Erwähnung des vollständig geschriebenen Rufzeichens einen Treffer erzeugen, obwohl keine Antwort erwartet wird. + +Wird eine eingehende Zeile in der PM-Tabelle ausgewählt, bereitet KST4Contest eine Antwort an ihren Absender vor. Bei einer eigenen ausgehenden Nachricht wird stattdessen der ursprüngliche Empfänger als Ziel wiederhergestellt. Die Auswahl versendet noch keine Nachricht. + +Auch abgefangene Zeilen verwenden die normale Altersanzeige der PM-Tabelle. Sie lösen jedoch weder den einfachen PM-Hinweiston noch die CW- oder Sprachausgabe für ein eingehendes Rufzeichen aus. Dasselbe gilt für Nachrichten, die durch das QSO-Monitoring zusätzlich in der PM-Tabelle erscheinen. --- diff --git a/github_docs/de-Konfiguration.md b/github_docs/de-Konfiguration.md index b7590dcb..8ddaae71 100644 --- a/github_docs/de-Konfiguration.md +++ b/github_docs/de-Konfiguration.md @@ -332,6 +332,8 @@ Die drei Audiofunktionen arbeiten unabhängig voneinander: CW- und Sprachausgabe können gleichzeitig aktiviert werden. Das ist technisch möglich, im Contest aber nicht zwingend hilfreich. In der Praxis sollte nur die Ausgabe eingeschaltet werden, die im eigenen Stationsbetrieb tatsächlich wahrgenommen werden kann, ohne den Operator dauerhaft zu beschäftigen. +Die PM-bezogenen Audioausgaben reagieren nur auf Nachrichten, die tatsächlich an das eigene Login-Rufzeichen gerichtet sind. Öffentliche Nachrichten, die durch PM-Catching zusätzlich in der PM-Tabelle erscheinen, und dort eingeblendete Monitoring-Nachrichten bleiben akustisch still. + ### Fallback-Band für relative QRG-Erkennung Das Dropdown **Fallback band for relative QRG detection** legt fest, welches Band KST4Contest verwendet, wenn eine relative QRG keinem aktuellen Stationskontext zugeordnet werden kann. diff --git a/github_docs/en-Configuration.md b/github_docs/en-Configuration.md index bff6ada7..e6242923 100644 --- a/github_docs/en-Configuration.md +++ b/github_docs/en-Configuration.md @@ -379,6 +379,8 @@ Three notification types are available: 2. **CW announcement**: The callsign of a station sending a private message is output as a CW signal. 3. **Phonetic announcement**: The callsign is pronounced phonetically. +PM-related audio output is triggered only by messages actually directed to the local login callsign. Public messages shown additionally through PM Catching and messages added through QSO Monitoring remain silent. + ### Fallback Band for Relative QRG Detection The **Fallback band for relative QRG detection** dropdown selects the band used when a relative QRG cannot be assigned to a recent station-specific band context. diff --git a/github_docs/en-Features.md b/github_docs/en-Features.md index a6ffaff9..5e02af0d 100644 --- a/github_docs/en-Features.md +++ b/github_docs/en-Features.md @@ -262,7 +262,7 @@ Messages sent by the local station retain their separate highlight and do not us --- -## PM Catching +## PM Catching (from v1.1) Some users accidentally post direct messages publicly, e.g.: @@ -270,7 +270,15 @@ Some users accidentally post direct messages publicly, e.g.: (DM5M) pse ur qrg ``` -KST4Contest detects such messages that contain your own callsign and automatically sorts them into the **private messages table**. No messages are missed this way. +KST4Contest searches the message text for the configured local login callsign without distinguishing upper- and lower-case letters. When a public message contains that text, it also appears in the **private messages table**. A slightly flippant description is **“gossip detection”**. This is a nickname, not the formal name of the function. + +The original message remains unchanged: it is still public and retains its `ALL` receiver, text and chat category. PM Catching merely adds another view of the same message. + +The text search cannot infer intention. A typing error or shortened callsign is not recognised. Conversely, a simple mention of the complete callsign can produce a match even when no reply was expected. + +Selecting an incoming row in the PM table prepares a reply to its sender. For an outgoing message from the local station, the original receiver is restored as the target instead. Selecting the row does not send the message. + +Caught rows use the normal PM-table age display. They do not trigger the simple PM sound, CW callsign output or phonetic callsign output. The same applies to messages shown additionally through QSO Monitoring. --- diff --git a/github_docs/en-User-Interface.md b/github_docs/en-User-Interface.md index ff91c37f..e6acc20d 100644 --- a/github_docs/en-User-Interface.md +++ b/github_docs/en-User-Interface.md @@ -56,9 +56,15 @@ Both indicators flash for approximately twelve seconds and then disappear. Their The PM window shows private messages addressed to the local chat logins and the corresponding outgoing replies. +Public messages are also shown when their text contains the configured local login callsign, ignoring letter case. This PM Catching mechanism – informally, **“gossip detection”** – changes neither the public `ALL` receiver nor the message text, chat category or routing. + If [QSO Monitoring](en-Features#qso-sniffer-from-v131) is enabled, it additionally shows captured messages involving the monitored base callsigns. These entries receive a `Sniffed:` prefix containing the complete visible sender and receiver callsigns. -New messages are initially highlighted and then gradually return to the normal table colour. This highlighting only indicates the age of the message; it does not change its content or routing. +New rows not sent by the local station pass through six green age levels and return to the normal table colour after five minutes. Messages sent by the local station retain their separate highlight. The colour only indicates message age; it does not change content or routing. + +Selecting an incoming row prepares a reply to the sender. For an outgoing message from the local station, the original receiver is restored as the message target instead. Caught and monitored rows do not trigger PM audio output. + +Age levels: [Coloured PM Rows](en-Features#coloured-pm-rows-from-v125). Recognition and limitations: [PM Catching](en-Features#pm-catching-from-v11). ### User List (Chat Members) diff --git a/website/src/features/automatic-replies.md b/website/src/features/automatic-replies.md index 1f020530..a4b94cf1 100644 --- a/website/src/features/automatic-replies.md +++ b/website/src/features/automatic-replies.md @@ -13,6 +13,7 @@ tagsList: - sked request - dual chat related: + - private-message-handling - trx-qrg-synchronisation - dual-chat - macros diff --git a/website/src/features/dual-chat.md b/website/src/features/dual-chat.md index 88789fd1..1558003d 100644 --- a/website/src/features/dual-chat.md +++ b/website/src/features/dual-chat.md @@ -15,6 +15,7 @@ tagsList: - SHF - microwave contest related: + - private-message-handling - trx-qrg-synchronisation - band-recognition - priority-score diff --git a/website/src/features/global-message-views.md b/website/src/features/global-message-views.md index fa5ba98f..06d091f4 100644 --- a/website/src/features/global-message-views.md +++ b/website/src/features/global-message-views.md @@ -13,6 +13,7 @@ tagsList: - chat activity - contest coordination related: + - private-message-handling - qso-monitoring - directional-opportunities - dx-cluster diff --git a/website/src/features/private-message-handling.md b/website/src/features/private-message-handling.md new file mode 100644 index 00000000..e1c9e86a --- /dev/null +++ b/website/src/features/private-message-handling.md @@ -0,0 +1,94 @@ +--- +title: Private Message Handling +icon: ✉️ +category: ON4KST Chat +since: "1.1" +summary: Catch public mentions of the configured login callsign in the PM table and use six green age levels to keep recent messages visible without changing their routing. +description: KST4Contest combines PM Catching, age-based row highlighting and reply preparation so that direct messages and relevant public mentions remain practical to handle during a busy contest. +tagsList: + - ON4KST + - private messages + - PM Catching + - message age + - callsign mention + - contest workflow +related: + - automatic-replies + - qso-monitoring + - global-message-views + - dual-chat +--- + +## Why catch more than direct PMs? + +Not every message intended for one station is sent as a directed ON4KST message. An operator may accidentally post something like this publicly: + +```text +(DM5M) pse ur qrg +``` + +Without an additional view, that line remains among CQ calls, beacons and the rest of the public chat. KST4Contest therefore also shows a public message in the PM table when its text contains the configured local login callsign. + +PM Catching has existed since version 1.1. A slightly flippant description is **“gossip detection”**. It is a nickname, not the formal name of the function. + +## How is a mention recognised? + +The check searches the message text for the complete configured login callsign without distinguishing upper- and lower-case letters. A login of `DM5M` therefore matches both: + +```text +(DM5M) pse ur qrg +dm5m are you qrv? +``` + +This is a text search, not a linguistic interpretation. A spelling error or shortened callsign does not match. Conversely, a sentence which merely mentions the callsign can appear in the PM table even when no reply was expected. + +In plain terms: PM Catching finds visible callsign text. It cannot know what the author meant. + +## The original message remains unchanged + +Catching adds the message to the PM view. It does not turn the public line into a private message, change its receiver, rewrite its text or move it to another chat category. + +The same principle applies to [QSO Monitoring](/features/qso-monitoring/): a monitored message may be shown additionally in the PM table, but its original routing remains intact. The two mechanisms use different criteria: + +- PM Catching looks for the local login callsign in the message text. +- QSO Monitoring checks whether a configured station is actually the sender or receiver. + +## Selecting a row prepares the reply + +Selecting an incoming PM-table row prepares a `/cq` reply to its sender. If the selected row contains an outgoing message from the local station, KST4Contest instead restores the original receiver as the reply target. + +The selection prepares the target and input context. It does not send a message automatically. + +## Six green age levels + +Age-based row highlighting is included from version 1.25 onwards. New non-local rows in the PM table pass through six green stages: + +| Message age | Display | +|---|---| +| up to and including 30 seconds | first green level | +| 31 to 60 seconds | second green level | +| 61 to 90 seconds | third green level | +| 91 to 120 seconds | fourth green level | +| 121 to 180 seconds | fifth green level | +| 181 to 300 seconds | sixth green level | +| from 301 seconds | normal table colour | + +The table refreshes the age display every five seconds. A colour boundary may therefore become visible during the next refresh rather than at the exact second. + +After five minutes, the row returns to the normal table colour. Messages sent by the local station retain their separate highlight and do not use the green age scale. + +## What produces a PM notification sound? + +PM audio is reserved for messages actually directed to the local login. A public message shown through PM Catching does not trigger the simple PM sound, CW callsign output or phonetic callsign output. + +Messages added through QSO Monitoring likewise remain silent. Their appearance in the PM table is a visual aid, not evidence that the local station received a new private message. + +In practical terms: the PM table brings the relevant lines together, the age colours show what is fresh, and selecting a row prepares the likely reply target. The operator still decides whether the message was really intended for the station and whether it needs an answer. + +[Read the PM Catching recognition and its limits in the manual.](/manual/en/features/#pm-catching-from-v11) + +[Read the exact six age levels.](/manual/en/features/#coloured-pm-rows-from-v125) + +[Open the PM-window controls and selection behaviour.](/manual/en/user-interface/#pm-window-top-left) + +[Read which incoming messages produce audio notifications.](/manual/en/configuration/#notification-settings) diff --git a/website/src/features/qso-monitoring.md b/website/src/features/qso-monitoring.md index 90452b60..daab02c5 100644 --- a/website/src/features/qso-monitoring.md +++ b/website/src/features/qso-monitoring.md @@ -14,6 +14,7 @@ tagsList: - contest team - dual chat related: + - private-message-handling - global-message-views - dual-chat - sked-reminder