ID
|
Origin
|
Name
|
Foodgroup
|
Service
|
Status
|
Version
|
0x0004, 0x0002
|
Client
|
ICBM__ADD_PARAMETERS
|
Unspecified
|
BOS
|
Active
|
1.25
|
This SNAC is typically sent prior to sending the OSERVICE__CLIENT_ONLINE so that the host is properly initialized with the clients' preferences.
Although it can be sent at any time to update the situation. The default flag settings allow everything and have missed call notifications turned on. The default values for the other values may be obtained from the server by issuing a PARAMETER_QUERY.
Foodgroup
|
uint16 (word)
|
00 04
|
Subgroup
|
uint16 (word)
|
00 02
|
Flags
|
uint16 (word)
|
00 00
|
Request ID
|
uint32 (dword)
|
00 00 00 00
|
SNAC Data
The minInterICBMInterval is the minimum spacing the server will allow between ICBMs sent to the client. This is used in conjunction with maxIncomingICBMLen to limit the impact that incoming ICBMs can have on the client's total available bandwidth. The "channel" field specifies to which channel these parameters apply. There are a maximum number of channel "slots" available to a client.
The exact number can be obtained via a ICBM__PARAMETER_QUERY. A channel number of 0 (zero) is the reserved channel number to be used to set the default parameters for all channels. Therefore, the channel 0 parameters will be applied to all channels unless channel specific parameters are supplied via the ICBM__ADD_PARAMETERS call which overrides the defaults. The maximum number of slots does not apply to channel 0.
Name
|
Type
|
Notes
|
channel
|
uint16 (word)
|
[Class: ICBM__CHANNELS] To which channel these parameters apply, or 0 for the defaults
|
icbmFlags
|
uint32 (dword)
|
[Class: ICBM__PARAMETER_FLAGS] Controlling flags
|
maxIncomingICBMLen
|
uint16 (word)
|
Maximum size of an ICBM the client wants to receive; the range is from 80 to 8000
|
maxSourceEvil
|
uint16 (word)
|
When receiving an ICBM, the maximum evil level of the sender; the range is from 0 to 999
|
maxDestinationEvil
|
uint16 (word)
|
When sending an ICBM, the maximum evil level of destination; the range is from 0 to 999
|
minInterICBMInterval
|
uint32 (dword)
|
How often the client wants to receive ICBMs in milliseconds
|
From Aleksandr Shutko: SNAC(04,02) client set icbm parameters request
SNAC(04,02) |
ICBM__ADD_PARAMETERS
|
|
|
Client use this snac to set its icbm parameters like max_msgsize, max sender_evil...
You can request these parameters from server using
SNAC(04,04). Server will reply via
SNAC(04,05). See also
SNAC(04,01) for more information.
Message flags used to indicate specific client abilities:
bit1: messages allowed for specified channel
bit2: missed calls notifications enabled for specified channel
bit4: client supports typing notifications
00 04 |
|
word |
|
SNAC family |
00 02 |
|
word |
|
SNAC subtype |
00 00 |
|
word |
|
SNAC flags |
xx xx xx xx |
|
dword |
|
SNAC request-id |
|
xx xx |
|
word |
|
channel to setup |
xx xx xx xx |
|
dword |
|
message flags |
xx xx |
|
word |
|
max message snac size |
xx xx |
|
word |
|
max sender warning level |
xx xx |
|
word |
|
max receiver warning level |
xx xx |
|
word |
|
minimum message interval (sec) |
00 00 |
|
word |
|
unknown parameter (also seen 03 E8) |
|
|
|
Example SNAC dump with flap header:
2A 02 33 73 00 1A 00 04 00 02 00 00 00 00 00 02 *.3s............
00 00 00 00 00 03 1F 40 03 E7 03 E7 00 00 00 00 .......@........
|
|
ICBM SNACs
SNAC List
Subgroup
|
Origin
|
Name
|
0x0001
|
Any
|
ICBM__ERR
|
This is the error SNAC for the ICBM foodgroup.
|
0x0002
|
Client
|
ICBM__ADD_PARAMETERS
|
This SNAC is typically sent prior to sending the OSERVICE__CLIENT_ONLINE so that the host is properly initialized with the clients' preferences.
|
0x0003
|
Client
|
ICBM__DEL_PARAMETERS
|
These are the delete all parameters for a given channel.
|
0x0004
|
Client
|
ICBM__PARAMETER_QUERY
|
This SNAC requests ICBM parameters from the host.
|
0x0005
|
Host
|
ICBM__PARAMETER_REPLY
|
This SNAC is sent by the host in response to a ICBM__PARAMETER_QUERY.
|
0x0006
|
Client
|
ICBM__CHANNEL_MSG_TOHOST
|
This is the basic inter-client message after which the group was named (Inter-Client Basic Messages).
|
0x0007
|
Host
|
ICBM__CHANNEL_MSG_TOCLIENT
|
This is the ICBM__CHANNEL_MSG_TOHOST after it has been reformatted by the host and sent to the destination client.
|
0x0008
|
Client
|
ICBM__EVIL_REQUEST
|
This requests that the specified user is sent an EVIL notification.
|
0x0009
|
Host
|
ICBM__EVIL_REPLY
|
The reply tells the requester, the sender of an ICBM__EVIL_REQUEST SNAC, how much EVIL, if any, was applied to the recipient.
|
0x000A
|
Host
|
ICBM__MISSED_CALLS
|
When the host is unable to send one or more messages to the client, the host sends this SNAC to the client to let it know that it missed some messages ("calls").
|
0x000B
|
Any
|
ICBM__CLIENT_ERR
|
This error notice is one of the few SNACs that can be sent to the host and received by a client.
|
0x000C
|
Host
|
ICBM__HOST_ACK
|
This SNAC is sent by the host upon receipt of any ICBM__CHANNEL_MSG_TOHOST which includes the optional ICBM__TLV_TAGS_REQUEST_HOST_ACK TLV.
|
0x000D
|
NCD
|
ICBM__SIN_STORED
|
This is not currently documented. Want to contribute?
|
0x000E
|
NCD
|
ICBM__SIN_LIST_QUERY
|
This is not currently documented. Want to contribute?
|
0x000F
|
NCD
|
ICBM__SIN_LIST_REPLY
|
This is not currently documented. Want to contribute?
|
0x0010
|
Client
|
ICBM__SIN_RETRIEVE
|
This requests ICBM__CHANNEL_MSG_TOCLIENT messages be generated for each of the stored ICBMs. Any message retrieved is deleted.
|
0x0011
|
NCD
|
ICBM__SIN_DELETE
|
This is not currently documented. Want to contribute?
|
0x0012
|
NCD
|
ICBM__NOTIFY_REQUEST
|
This is not currently documented. Want to contribute?
|
0x0013
|
NCD
|
ICBM__NOTIFY_REPLY
|
This is not currently documented. Want to contribute?
|
0x0014
|
Any
|
ICBM__CLIENT_EVENT
|
This SNAC is sent as a control message, sent by a client to inform the recipient of an event, or by the host informing of an event.
|
0x0017
|
Host
|
ICBM__SIN_REPLY
|
The host successfully processed the request to retrieve all the offline messages.
|
|