- A channel may store additional user preferences and parameters. Where the channel requires a value to be explicitly a &xep0004; form will be returned in response to the join request with mandatory and optional fields. If parameters are optional, the user may request to set them.
+ A channel MAY store user preferences and parameters with each user. There are two preference options.
+
- A user may set their JID visibility preference to one of the following values:
+ A user JID visibility preference have the following values:
- 'Use Channel Default'. In this setting, the channel default value will be used. This value is used if another value is not explicitly set.
- 'Never Show JID'. If this is set, JID will never be shared and user will be removed from the channel if its mode changes to JID-visible-mandatory.
- - 'Prefer Not Show JID. If this is set, JID will only be shared if mode is JID-visible-mandatory.
+ - 'Prefer Not Show JID'. If this is set, JID will only be shared if mode is JID-visible-mandatory.
- AUTHOR'S NOTE AND QUESTION: Dave Cridland (+1) has suggested. I would prefer:
-
- a) User options be sent in the initial join/>.
- b) Unknown options are ignored.
- c) User options can be requested (as a form). If clients require an option to
- be supported, they should request the form.
-
-
+ The user may specify that no Private Messages are to be sent from the channel, and allow vCard retrieval.
- AUTHOR'S NOTE AND QUESTION: Add protocol specifications and examples. Are there any other specific per user values that should be listed here?
+
+ The following table sets out the standardized user preference values. A MIX implementation may use other values.
+
+
+ Option | Values | Default |
+
+ 'JID Visibility' | 'Use Channel Default', 'Never Show JID', 'Prefer Not Show JID' | 'Use Channel Default' |
+
+ 'Private Messages' | 'Allow', 'Block' | 'Allow' |
+
+ 'vCard' | 'Allow', 'Block' | 'Block' |
+
+
+ When joining a channel, the client may specify one or more preference options. In the response, the server MUST specify all of the user preferences supported by the server, with default values if the user has not requested a different value. The following example shows joining a channel and setting a preference.
+
+
+
+
+
+
+
+
+]]>
+ The following example shows a successful join, which also reports all the user preferences.
+
+
+
+
+
+
+
+
+
+]]>
+
+