Message 0x4C
0x4C Structure
| Type | Description | Offset
|
| uint32_t | type | 0
|
| uint16_t | sub-type | 4
|
| uint16_t | property | 6
|
| uint16_t | acknowledge | 8
|
| uint16_t | unknown | 10 | See Note
|
| VentriloNetString | value | 12
|
The unknown value appears to be a random uint16_t as the transaction identifier. It is set by the client on the first packet of send or retrieve transactions, and all packets where not explicitly noted as 0x00 in the flow explanations below use the same value for unknown as the very first packet used, until the end of the transaction. The next transaction uses a new seemingly random value.
Subtypes
| Sub-Type | Description
|
| 0x00 | Retrieving Setting
|
| 0x01 | Sending Setting
|
| 0x02 | Set Client Setting
|
| 0x03 | Send Complete
|
| 0x04 | All Done
|
Settings and Values
| Setting | Name | Size | Values | Value Special | Notes
|
| 0x01 | Retrieving | | | | See Notes (1)
|
| 0x02 | Chat Filter | 0x01 | "0" or "1" | 0=Global Chat 1=Channel | Sent to all clients at join, or after updating, via subtype 0x02
|
| 0x03 | Channel Order | 0x01 | "0" or "1" | 0=Alphabetic 1=Manual | Sent to all clients at join, or after updating, via subtype 0x02
|
| 0x05 | MOTD Display | 0x01 | "0" or "1" | 0=Skippable 1=Always Show | Sent to all clients at join, or after updating, via subtype 0x02
|
| 0x07 | Chat Spam Filter | Variable | X,Y,Z | See Notes (2) | Spam Filter Group
|
| 0x08 | Comment Spam Filter | Variable | X,Y,Z | See Notes (2) | Spam Filter Group
|
| 0x09 | Wave Spam Filter | Variable | X,Y,Z | See Notes (2) | Spam Filter Group
|
| 0x0A | TTS Spam Filter | Variable | X,Y,Z | See Notes (2) | Spam Filter Group
|
| 0x0B | User Inactivity Timeout | Variable | number | Number in minutes, 0=None | Inactivity Group
|
| 0x0C | Inactivity Action | 0x01 | "0" or "1" | 0=Disconnect 1=Move Channel | Inactivity Group
|
| 0x0D | Inactive Channel | Variable | path | Name of channel to move to | Inactivity Group - Path/To/Channel (does not include lobby)
|
| 0x0E | Remote Server Comment | 0x01 | "0" or "1" | checkbox false/true | Remote Status Returns Group
|
| 0x0F | Remote Channel Names | 0x01 | "0" or "1" | checkbox false/true | Remote Status Returns Group - False disables channel comments check
|
| 0x10 | Remote Channel Comments | 0x01 | "0" or "1" | checkbox false/true | Remote Status Returns Group - Returns active state, disabled or not
|
| 0x11 | Remote User Names | 0x01 | "0" or "1" | checkbox false/true | Remote Status Returns Group - False disables user comments check
|
| 0x12 | Remote User Comments | 0x01 | "0" "1" | checkbox false/true | Remote Status Returns Group - Returns active state, disabled or not
|
| 0x13 | Check point? | 0x00 | | | Size is 0, and value isn't sent, regardless of settings
|
| 0x14 | Wave Bind Filter | 0x01 | "0" or "1" | checkbox false/true | Bind Filter Group
|
| 0x15 | TTS Bind Filter | 0x01 | "0" or "1" | checkbox false/true | Bind Filter Group
|
| 0x16 | Channel Spam Filter | Variable | X,Y,Z | See Notes (2) | Spam Filter Group
|
| 0x18 | Remote Show Login Names | 0x01 | "0" or "1" | checkbox false/true | Remote Status Requires Group
|
| 0x19 | Maximum Guest Logins | Variable | number | Number of allowed guests | Guest Logins Group
|
| 0x1A | Autokick for X minutes | Variable | number | Autokick duration | Guest Logins Group
|
| 0x1B | Autoban for X minutes | Variable | number | Autoban duration | Guest Logins Group
|
| 0x1C | Retrieval done | | | | Sent as final packet of retrieval process only
|
Notes:
1 : Setting 0x01 is ONLY sent when starting a retrieval transaction. It is never sent with the other setting when sending changes.
2 : The 3 numbers in X,Y,Z are limited to choices from drop downs in a dialog in the Ventrilo Client
X = Action: 0 = Do Nothing, 1 = Kick, 2 = Ban
Y = Interval: 500, 750, 1000, 1500, 2000, 5000, 10000, 15000, 30000, 45000, 60000
Z = Times: 1, 2, 3, 4
Packet flow for Retrieving
-Transaction Begins-
Client Sends:
Type 0x4C - Subtype 0x00 - Setting 0x00 - Acknowledge 0x00 - Unknown
Server Responds:
Type 0x4C - Subtype 0x00 - Setting 0x00 - Acknowledge 0x01 - Unknown
Client Sends:
Type 0x4C - Subtype 0x00 - Setting 0x01 - Acknowledge 0x00 - Unknown
Server Responds:
Type 0x4C - Subtype 0x00 - Setting 0x01 - Acknowledge 0x01 - Unknown
Client Sends:
Type 0x4C - Subtype 0x00 - Setting 0x02 - Acknowledge 0x00 - Unknown
Server Responds:
Type 0x4C - Subtype 0x00 - Setting 0x02 - Acknowledge 0x00 - Unknown - Value
..repeat through settings 0x03 to 0x1B, changing only Setting number, then...
Client Sends
Type 0x4C - Subtype 0x00 - Setting 0x1C - Acknowledge 0x00 - Unknown 0x00
Server Responds
Type 0x4C - Subtype 0x00 - Setting 0x1C - Acknowledge 0x00 - Unknown 0x00
-Transaction Complete-
Packet flow for Sending
-Transaction Begins-
Client Sends:
Type 0x4C - Subtype 0x01 - Setting 0x02 - Acknowledge 0x00 - Unknown - Value
Server Responds:
Type 0x4C - Subtype 0x01 - Setting 0x02 - Acknowledge 0x00 - Unknown
..repeat through settings 0x03 to 0x1B, changing only Setting number, then...
Client Sends
Type 0x4C - Subtype 0x03 - Setting 0x00 - Acknowledge 0x00 - Unknown 0x00
Server Responds
Type 0x4C - Subtype 0x03 - Setting 0x00 - Acknowledge 0x00 - Unknown 0x00
Server Sends (to all users online)
Type 0x4C - Subtype 0x02 - Setting 0x02 - Acknowledge 0x00 - Unknown 0x00 - Value
Type 0x4C - Subtype 0x02 - Setting 0x03 - Acknowledge 0x00 - Unknown 0x00 - Value
Type 0x4C - Subtype 0x02 - Setting 0x05 - Acknowledge 0x00 - Unknown 0x00 - Value
Client Replies
Type 0x4C - Subtype 0x04 - Setting 0x00 - Acknowledge 0x00 - Unknown 0x00
-Transaction Complete-
Packet flow for Joining / Other users on server when they are updated
Type 0x4C - Subtype 0x02 - Setting 0x02 - Acknowledge 0x00 - Unknown 0x00 - Value
Type 0x4C - Subtype 0x02 - Setting 0x03 - Acknowledge 0x00 - Unknown 0x00 - Value
Type 0x4C - Subtype 0x02 - Setting 0x05 - Acknowledge 0x00 - Unknown 0x00 - Value