[[domainFilterPolicy]]
= domain-filter-policy
:author: not known
:version: v2.0, August 2017: Reformatted for Kernel/DSL

*Default value:* `ALL`

*Example:* `domain-filter-policy' = 'LOCAL`

*Possible values:* `ALL|LOCAL|OWN|BLOCK|LIST=domain1;domain2|BLACKLIST=domain1;domain2`

*Description:* The `domain-filter-policy` property is a global setting for setting communication filtering for vhosts. This function is kind of an extension of the same property which could be set on a single user level. However, in many cases it is desired to control users communication not on per user-level but on the domain level. Domain filtering (communication filtering) allows you to specify with whom users can communicate for a particular domain. It enables restriction of communications for a selected domain or for the entire installation. A default value `ALL` renders users for the domain (by default for all domains) able to communicate with any user on any other domains. Other possible values are:

. `ALL` a default value allowing users to communicate with anybody on any other domain, including external servers.
. `LOCAL` allows users to communicate with all users on the same installation on any domain. It only blocks communication with external servers.
. `OWN` allows users to communicate with all other users on the same domain. Plus it allows users to communicate with subdomains such as *muc.domain*, *pubsub.domain*, etc…
. `BLOCK` value completely blocks communication for the domain or for the user with anybody else. This could be used as a means to temporarily disable account or domain.
. `LIST` property allows to set a list of domains (users' JIDs) with which users on the domain can communicate (i.e. _whitelist_).
. `BLACKLIST` - user can communicate with everybody (like `ALL`), except contacts on listed domains.

This is a global property which is overridden by settings for particular vhosts.

[source,dsl]
-----
`'virtual-hosts' = [ 'domain2:domain-filter-policy=OWN' ],
-----

A default settings for all virtual hosts for which the configuration is not defined. This settings is useful mostly for installations with many virtual hosts listed in the init.property file for which there is no individual settings specified. It allows default value for all of servers, instead of having to provide individual configuration for each vhost.

`ALL` is also applied as a default value for all new vhosts added at run-time.

*Available since:* 5.2.0
