diff --git a/ejabberd.doap b/ejabberd.doap index da8678d5e83..9644af2ccab 100644 --- a/ejabberd.doap +++ b/ejabberd.doap @@ -759,7 +759,7 @@ 0.3.0 - 24.xx + 24.06 mod_mam diff --git a/man/ejabberd.yml.5 b/man/ejabberd.yml.5 index a055935eb96..a4df3222601 100644 --- a/man/ejabberd.yml.5 +++ b/man/ejabberd.yml.5 @@ -2,12 +2,12 @@ .\" Title: ejabberd.yml .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 02/24/2024 +.\" Date: 06/27/2024 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "EJABBERD\&.YML" "5" "02/24/2024" "\ \&" "\ \&" +.TH "EJABBERD\&.YML" "5" "06/27/2024" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -82,17 +82,17 @@ All options can be changed in runtime by running \fIejabberdctl reload\-config\f .sp Some options can be specified for particular virtual host(s) only using \fIhost_config\fR or \fIappend_host_config\fR options\&. Such options are called \fIlocal\fR\&. Examples are \fImodules\fR, \fIauth_method\fR and \fIdefault_db\fR\&. The options that cannot be defined per virtual host are called \fIglobal\fR\&. Examples are \fIloglevel\fR, \fIcertfiles\fR and \fIlisten\fR\&. It is a configuration mistake to put \fIglobal\fR options under \fIhost_config\fR or \fIappend_host_config\fR section \- ejabberd will refuse to load such configuration\&. .sp -It is not recommended to write ejabberd\&.yml from scratch\&. Instead it is better to start from "default" configuration file available at https://github\&.com/processone/ejabberd/blob/24\&.02/ejabberd\&.yml\&.example\&. Once you get ejabberd running you can start changing configuration options to meet your requirements\&. +It is not recommended to write ejabberd\&.yml from scratch\&. Instead it is better to start from "default" configuration file available at https://github\&.com/processone/ejabberd/blob/24\&.06/ejabberd\&.yml\&.example\&. Once you get ejabberd running you can start changing configuration options to meet your requirements\&. .sp Note that this document is intended to provide comprehensive description of all configuration options that can be consulted to understand the meaning of a particular option, its format and possible values\&. It will be quite hard to understand how to configure ejabberd by reading this document only \- for this purpose the reader is recommended to read online Configuration Guide available at https://docs\&.ejabberd\&.im/admin/configuration\&. .SH "TOP LEVEL OPTIONS" .sp -This section describes top level options of ejabberd\&. +This section describes top level options of ejabberd 24\&.06\&. The options that changed in this version are marked with 🟤\&. .PP \fBaccess_rules\fR: \fI{AccessName: {allow|deny: ACLRules|ACLName}}\fR .RS 4 This option defines -Access Rules\&. Each access rule is assigned a name that can be referenced from other parts of the configuration file (mostly from +\fIbasic\&.md#access\-rules|Access Rules\fR\&. Each access rule is assigned a name that can be referenced from other parts of the configuration file (mostly from \fIaccess\fR options of ejabberd modules)\&. Each rule definition may contain arbitrary number of \fIallow\fR @@ -247,7 +247,7 @@ is in the form of "regexp", the rule matches any JID with node part matching reg .PP \fBacme\fR: \fIOptions\fR .RS 4 -ACME +\fIbasic\&.md#acme|ACME\fR configuration, to automatically obtain SSL certificates for the domains served by ejabberd, which means that certificate requests and renewals are performed to some CA server (aka "ACME server") in a fully automated mode\&. The \fIOptions\fR are: @@ -304,7 +304,7 @@ acme: \fBallow_contrib_modules\fR: \fItrue | false\fR .RS 4 Whether to allow installation of third\-party modules or not\&. See -ejabberd\-contrib +\fI\&.\&./\&.\&./developer/extending\-ejabberd/modules\&.md#ejabberd\-contrib|ejabberd\-contrib\fR documentation section\&. The default value is \fItrue\fR\&. .RE @@ -363,7 +363,7 @@ The default value is \fIsasl_anon\fR\&. \fBapi_permissions\fR: \fI[Permission, \&.\&.\&.]\fR .RS 4 Define the permissions for API access\&. Please consult the ejabberd Docs web → For Developers → ejabberd ReST API → -API Permissions\&. +\fI\&.\&./\&.\&./developer/ejabberd\-api/permissions\&.md|API Permissions\fR\&. .RE .PP \fBappend_host_config\fR: \fI{Host: Options}\fR @@ -398,12 +398,11 @@ Same as \fIcache_size\fR will be used\&. .RE -.sp -\fINote\fR about the next option: added in 23\&.10: .PP \fBauth_external_user_exists_check\fR: \fItrue | false\fR .RS 4 -Supplement check for user existence based on +\fINote\fR +about this option: added in 23\&.10\&. Supplement check for user existence based on \fImod_last\fR data, for authentication methods that don\(cqt have a way to reliably tell if a user exists (like is the case for \fIjwt\fR @@ -425,13 +424,12 @@ that can be installed from the ejabberd\-contrib Git repository\&. Please refer to that module\(cqs README file for details\&. .RE -.sp -\fINote\fR about the next option: improved in 20\&.01: .PP \fBauth_password_format\fR: \fIplain | scram\fR .RS 4 -The option defines in what format the users passwords are stored, plain text or in -SCRAM +\fINote\fR +about this option: improved in 20\&.01\&. The option defines in what format the users passwords are stored, plain text or in +\fIauthentication\&.md#scram|SCRAM\fR format: .sp .RS 4 @@ -464,7 +462,7 @@ The default value is \fIplain\fR\&. \fBauth_scram_hash\fR: \fIsha | sha256 | sha512\fR .RS 4 Hash algorithm that should be used to store password in -SCRAM +\fIauthentication\&.md#scram|SCRAM\fR format\&. You shouldn\(cqt change this if you already have passwords generated with a different algorithm \- users that have such passwords will not be able to authenticate\&. The default value is \fIsha\fR\&. .RE @@ -484,9 +482,9 @@ Full path to a file containing one or more CA certificates in PEM format\&. All field\&. There is no default value\&. .RE .sp -You can use host_config to specify this option per\-vhost\&. +You can use \fIhost_config\fR to specify this option per\-vhost\&. .sp -To set a specific file per listener, use the listener\(cqs cafile option\&. Please notice that \fIc2s_cafile\fR overrides the listener\(cqs \fIcafile\fR option\&. +To set a specific file per listener, use the listener\(cqs \fIlisten\-options\&.md#cafile|cafile\fR option\&. Please notice that \fIc2s_cafile\fR overrides the listener\(cqs \fIcafile\fR option\&. .PP \fBc2s_ciphers\fR: \fI[Cipher, \&.\&.\&.]\fR .RS 4 @@ -547,7 +545,7 @@ Whether to enable or disable TLS compression for c2s connections\&. The default Path to a file of CA root certificates\&. The default is to use system defined file if possible\&. .RE .sp -For server connections, this \fIca_file\fR option is overridden by the s2s_cafile option\&. +For server connections, this \fIca_file\fR option is overridden by the \fIs2s_cafile\fR option\&. .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 @@ -580,13 +578,12 @@ A maximum number of items (not memory!) in cache\&. The rule of thumb, for all t \fIrouter_cache_size\fR, and \fIsm_cache_size\fR\&. .RE -.sp -\fINote\fR about the next option: improved in 23\&.01: .PP \fBcaptcha_cmd\fR: \fIPath | ModuleName\fR .RS 4 -Full path to a script that generates -CAPTCHA +\fINote\fR +about this option: improved in 23\&.01\&. Full path to a script that generates +\fIbasic\&.md#captcha|CAPTCHA\fR images\&. \fI@VERSION@\fR is replaced with ejabberd version number in @@ -595,6 +592,8 @@ format\&. \fI@SEMVER@\fR is replaced with ejabberd version number in semver format when compiled with Elixir\(cqs mix, or XX\&.YY format otherwise\&. Alternatively, it can be the name of a module that implements ejabberd CAPTCHA support\&. There is no default value: when this option is not set, CAPTCHA functionality is completely disabled\&. .sp +\fBExamples\fR: +.sp When using the ejabberd installers or container image, the example captcha scripts can be used like this: .sp .if n \{\ @@ -618,17 +617,16 @@ instead\&. \fBcaptcha_limit\fR: \fIpos_integer() | infinity\fR .RS 4 Maximum number of -CAPTCHA +\fIbasic\&.md#captcha|CAPTCHA\fR generated images per minute for any given JID\&. The option is intended to protect the server from CAPTCHA DoS\&. The default value is \fIinfinity\fR\&. .RE -.sp -\fINote\fR about the next option: improved in 23\&.04: .PP \fBcaptcha_url\fR: \fIURL | auto | undefined\fR .RS 4 -An URL where -CAPTCHA +\fINote\fR +about this option: improved in 23\&.04\&. An URL where +\fIbasic\&.md#captcha|CAPTCHA\fR requests should be sent\&. NOTE: you need to configure \fIrequest_handlers\fR for @@ -652,6 +650,8 @@ and so on\&. NOTE: if you modify the certificate files or change the value of th \fIejabberdctl reload\-config\fR in order to rebuild and reload the certificate chains\&. .sp +\fBExamples\fR: +.sp If you use Let\(cqs Encrypt certificates for your domain "domain\&.tld", the configuration will look like this: @@ -910,13 +910,12 @@ Disallows the usage of those options in the included file \fIFilename\fR\&. The options that match this criteria are not accepted\&. The default value is an empty list\&. .RE .RE -.sp -\fINote\fR about the next option: added in 23\&.10: .PP \fBinstall_contrib_modules\fR: \fI[Module, \&.\&.\&.]\fR .RS 4 -Modules to install from -ejabberd\-contrib +\fINote\fR +about this option: added in 23\&.10\&. Modules to install from +\fI\&.\&./\&.\&./developer/extending\-ejabberd/modules\&.md#ejabberd\-contrib|ejabberd\-contrib\fR at start time\&. The default value is an empty list of modules: \fI[]\fR\&. .RE @@ -1071,31 +1070,28 @@ is assumed to be "%u"\&. \fBlisten\fR: \fI[Options, \&.\&.\&.]\fR .RS 4 The option for listeners configuration\&. See the -Listen Modules +\fIlisten\&.md|Listen Modules\fR section for details\&. .RE -.sp -\fINote\fR about the next option: added in 22\&.10: .PP \fBlog_burst_limit_count\fR: \fINumber\fR .RS 4 -The number of messages to accept in +\fINote\fR +about this option: added in 22\&.10\&. The number of messages to accept in log_burst_limit_window_time period before starting to drop them\&. Default 500 .RE -.sp -\fINote\fR about the next option: added in 22\&.10: .PP \fBlog_burst_limit_window_time\fR: \fINumber\fR .RS 4 -The time period to rate\-limit log messages by\&. Defaults to 1 second\&. +\fINote\fR +about this option: added in 22\&.10\&. The time period to rate\-limit log messages by\&. Defaults to 1 second\&. .RE -.sp -\fINote\fR about the next option: added in 23\&.01: .PP \fBlog_modules_fully\fR: \fI[Module, \&.\&.\&.]\fR .RS 4 -List of modules that will log everything independently from the general loglevel option\&. +\fINote\fR +about this option: added in 23\&.01\&. List of modules that will log everything independently from the general loglevel option\&. .RE .PP \fBlog_rotate_count\fR: \fINumber\fR @@ -1131,7 +1127,7 @@ This option specifies the maximum number of elements in the queue of the FSM (Fi \fBmodules\fR: \fI{Module: Options}\fR .RS 4 The option for modules configuration\&. See -Modules +\fImodules\&.md|Modules\fR section for details\&. .RE .PP @@ -1154,7 +1150,7 @@ This option can be used to tune tick time parameter of Whether to use \fInew\fR SQL schema\&. All schemas are located at -https://github\&.com/processone/ejabberd/tree/24\&.02/sql\&. There are two schemas available\&. The default legacy schema stores one XMPP domain into one ejabberd database\&. The +https://github\&.com/processone/ejabberd/tree/24\&.06/sql\&. There are two schemas available\&. The default legacy schema stores one XMPP domain into one ejabberd database\&. The \fInew\fR schema can handle several XMPP domains in a single ejabberd database\&. Using this \fInew\fR @@ -1187,12 +1183,11 @@ Same as \fIcache_missed\fR will be used\&. .RE -.sp -\fINote\fR about the next option: added in 21\&.01: .PP \fBoauth_cache_rest_failure_life_time\fR: \fItimeout()\fR .RS 4 -The time that a failure in OAuth ReST is cached\&. The default value is +\fINote\fR +about this option: added in 21\&.01\&. The time that a failure in OAuth ReST is cached\&. The default value is \fIinfinity\fR\&. .RE .PP @@ -1263,29 +1258,26 @@ option)\&. Later, when memory drops below this \fI80\fR percents\&. .RE -.sp -\fINote\fR about the next option: changed in 23\&.01: .PP \fBoutgoing_s2s_families\fR: \fI[ipv6 | ipv4, \&.\&.\&.]\fR .RS 4 -Specify which address families to try, in what order\&. The default is +\fINote\fR +about this option: changed in 23\&.01\&. Specify which address families to try, in what order\&. The default is \fI[ipv6, ipv4]\fR which means it first tries connecting with IPv6, if that fails it tries using IPv4\&. This option is obsolete and irrelevant when using ejabberd 23\&.01 and Erlang/OTP 22, or newer versions of them\&. .RE -.sp -\fINote\fR about the next option: added in 20\&.12: .PP \fBoutgoing_s2s_ipv4_address\fR: \fIAddress\fR .RS 4 -Specify the IPv4 address that will be used when establishing an outgoing S2S IPv4 connection, for example "127\&.0\&.0\&.1"\&. The default value is +\fINote\fR +about this option: added in 20\&.12\&. Specify the IPv4 address that will be used when establishing an outgoing S2S IPv4 connection, for example "127\&.0\&.0\&.1"\&. The default value is \fIundefined\fR\&. .RE -.sp -\fINote\fR about the next option: added in 20\&.12: .PP \fBoutgoing_s2s_ipv6_address\fR: \fIAddress\fR .RS 4 -Specify the IPv6 address that will be used when establishing an outgoing S2S IPv6 connection, for example "::FFFF:127\&.0\&.0\&.1"\&. The default value is +\fINote\fR +about this option: added in 20\&.12\&. Specify the IPv6 address that will be used when establishing an outgoing S2S IPv6 connection, for example "::FFFF:127\&.0\&.0\&.1"\&. The default value is \fIundefined\fR\&. .RE .PP @@ -1455,7 +1447,7 @@ seconds\&. \fBs2s_access\fR: \fIAccess\fR .RS 4 This -Access Rule +\fIbasic\&.md#access\-rules|Access Rule\fR defines to what remote servers can s2s connections be established\&. The default value is \fIall\fR; no restrictions are applied, it is allowed to connect s2s to/from all remote servers\&. .RE @@ -1463,11 +1455,11 @@ defines to what remote servers can s2s connections be established\&. The default \fBs2s_cafile\fR: \fIPath\fR .RS 4 A path to a file with CA root certificates that will be used to authenticate s2s connections\&. If not set, the value of -ca_file +\fIca_file\fR will be used\&. .RE .sp -You can use host_config to specify this option per\-vhost\&. +You can use \fIhost_config\fR to specify this option per\-vhost\&. .PP \fBs2s_ciphers\fR: \fI[Cipher, \&.\&.\&.]\fR .RS 4 @@ -1704,12 +1696,11 @@ seconds\&. An SQL database name\&. For SQLite this must be a full path to a database file\&. The default value is \fIejabberd\fR\&. .RE -.sp -\fINote\fR about the next option: added in 24\&.02: .PP \fBsql_flags\fR: \fI[mysql_alternative_upsert]\fR .RS 4 -This option accepts a list of SQL flags, and is empty by default\&. +\fINote\fR +about this option: added in 24\&.02\&. This option accepts a list of SQL flags, and is empty by default\&. \fImysql_alternative_upsert\fR forces the alternative upsert implementation in MySQL\&. .RE @@ -1718,12 +1709,11 @@ forces the alternative upsert implementation in MySQL\&. .RS 4 An interval to make a dummy SQL request to keep alive the connections to the database\&. There is no default value, so no keepalive requests are made\&. .RE -.sp -\fINote\fR about the next option: added in 20\&.12: .PP \fBsql_odbc_driver\fR: \fIPath\fR .RS 4 -Path to the ODBC driver to use to connect to a Microsoft SQL Server database\&. This option only applies if the +\fINote\fR +about this option: added in 20\&.12\&. Path to the ODBC driver to use to connect to a Microsoft SQL Server database\&. This option only applies if the \fIsql_type\fR option is set to \fImssql\fR @@ -1755,12 +1745,11 @@ for PostgreSQL and \fI1433\fR for MS SQL\&. The option has no effect for SQLite\&. .RE -.sp -\fINote\fR about the next option: added in 20\&.01: .PP \fBsql_prepared_statements\fR: \fItrue | false\fR .RS 4 -This option is +\fINote\fR +about this option: added in 20\&.01\&. This option is \fItrue\fR by default, and is useful to disable prepared statements\&. The option is valid for PostgreSQL and MySQL\&. .RE @@ -1783,22 +1772,27 @@ or if the latter is not set\&. .RE .PP -\fBsql_server\fR: \fIHost\fR +\fBsql_server 🟤\fR: \fIHost | IP Address | ODBC Connection String | Unix Socket Path\fR .RS 4 -The hostname or IP address of the SQL server\&. For +\fINote\fR +about this option: improved in 24\&.06\&. The hostname or IP address of the SQL server\&. For \fIsql_type\fR \fImssql\fR or \fIodbc\fR -this can also be an ODBC connection string\&. The default value is +this can also be an ODBC connection string\&. When +\fIsql_type\fR +is +\fImysql\fR +or +\fIpgsql\fR, this can be the path to a unix domain socket expressed like: "unix:/path/to/socket"\&.The default value is \fIlocalhost\fR\&. .RE -.sp -\fINote\fR about the next option: improved in 20\&.03: .PP \fBsql_ssl\fR: \fItrue | false\fR .RS 4 -Whether to use SSL encrypted connections to the SQL server\&. The option is only available for MySQL, MS SQL and PostgreSQL\&. The default value is +\fINote\fR +about this option: improved in 20\&.03\&. Whether to use SSL encrypted connections to the SQL server\&. The option is only available for MySQL, MS SQL and PostgreSQL\&. The default value is \fIfalse\fR\&. .RE .PP @@ -1861,9 +1855,10 @@ to allow all proxies, or specify a list of IPs, possibly with masks\&. The defau header if you enable this option as, otherwise, the client can set it itself and as a result the IP value cannot be trusted for security rules in ejabberd\&. .RE .PP -\fBupdate_sql_schema\fR: \fItrue | false\fR +\fBupdate_sql_schema 🟤\fR: \fItrue | false\fR .RS 4 -Allow ejabberd to update SQL schema\&. The default value is +\fINote\fR +about this option: updated in 24\&.06\&. Allow ejabberd to update SQL schema\&. This option was added in ejabberd 23\&.10, and enabled by default since 24\&.06\&. The default value is \fItrue\fR\&. .RE .PP @@ -1918,7 +1913,7 @@ seconds\&. .RE .SH "MODULES" .sp -This section describes options of all ejabberd modules\&. +This section describes modules options of ejabberd 24\&.06\&. The modules that changed in this version are marked with 🟤\&. .SS "mod_adhoc" .sp This module implements XEP\-0050: Ad\-Hoc Commands\&. It\(cqs an auxiliary module and is only needed by some of the other modules\&. @@ -1963,7 +1958,9 @@ Details for some commands: .IP \(bu 2.3 .\} \fIpushroster\fR: (and -\fIpushroster\-all\fR) The roster file must be placed, if using Windows, on the directory where you installed ejabberd: C:/Program Files/ejabberd or similar\&. If you use other Operating System, place the file on the same directory where the \&.beam files are installed\&. See below an example roster file\&. +\fIpushroster\-all\fR) The roster file must be placed, if using Windows, on the directory where you installed ejabberd: +C:/Program Files/ejabberd +or similar\&. If you use other Operating System, place the file on the same directory where the \&.beam files are installed\&. See below an example roster file\&. .RE .sp .RS 4 @@ -2048,7 +2045,7 @@ ejabberdctl srg\-create g1 example\&.org "\*(AqGroup number 1\*(Aq" this_is_g1 g .RE .SS "mod_admin_update_sql" .sp -This module can be used to update existing SQL database from the default to the new schema\&. Check the section Default and New Schemas for details\&. Please note that only MS SQL, MySQL, and PostgreSQL are supported\&. When the module is loaded use \fIupdate_sql\fR API\&. +This module can be used to update existing SQL database from the default to the new schema\&. Check the section \fIdatabase\&.md#default\-and\-new\-schemas|Default and New Schemas\fR for details\&. Please note that only MS SQL, MySQL, and PostgreSQL are supported\&. When the module is loaded use \fIupdate_sql\fR API\&. .sp The module has no options\&. .SS "mod_announce" @@ -2257,7 +2254,7 @@ and some server\(cqs JID is in user\(cqs roster, then messages from any user of \fBcaptcha\fR: \fItrue | false\fR .RS 4 Whether to generate CAPTCHA or not in response to messages from strangers\&. See also section -CAPTCHA +\fIbasic\&.md#captcha|CAPTCHA\fR of the Configuration Guide\&. The default value is \fIfalse\fR\&. .RE @@ -2482,18 +2479,18 @@ While a client is inactive, queue presence stanzas that indicate (un)availabilit .RE .SS "mod_configure" .sp -The module provides server configuration functionality via XEP\-0050: Ad\-Hoc Commands\&. This module requires \fImod_adhoc\fR to be loaded\&. +The module provides server configuration functionality via XEP\-0050: Ad\-Hoc Commands\&. Implements many commands as defined in XEP\-0133: Service Administration\&. This module requires \fImod_adhoc\fR to be loaded\&. .sp The module has no options\&. .SS "mod_conversejs" .sp -This module serves a simple page for the Converse XMPP web browser client\&. +\fINote\fR about this option: added in 21\&.12 and improved in 22\&.05\&. .sp -This module is available since ejabberd 21\&.12\&. Several options were improved in ejabberd 22\&.05\&. +This module serves a simple page for the Converse XMPP web browser client\&. .sp -To use this module, in addition to adding it to the \fImodules\fR section, you must also enable it in \fIlisten\fR → \fIejabberd_http\fR → request_handlers\&. +To use this module, in addition to adding it to the \fImodules\fR section, you must also enable it in \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR\&. .sp -Make sure either \fImod_bosh\fR or \fIejabberd_http_ws\fR request_handlers are enabled\&. +Make sure either \fImod_bosh\fR or \fIejabberd_http_ws\fR \fIlisten\-options\&.md#request_handlers|request_handlers\fR are enabled\&. .sp When \fIconversejs_css\fR and \fIconversejs_script\fR are \fIauto\fR, by default they point to the public Converse client\&. .sp @@ -2521,20 +2518,18 @@ Converse CSS URL\&. The keyword is replaced with the hostname\&. The default value is \fIauto\fR\&. .RE -.sp -\fINote\fR about the next option: added in 22\&.05: .PP \fBconversejs_options\fR: \fI{Name: Value}\fR .RS 4 -Specify additional options to be passed to Converse\&. See +\fINote\fR +about this option: added in 22\&.05\&. Specify additional options to be passed to Converse\&. See Converse configuration\&. Only boolean, integer and string values are supported; lists are not supported\&. .RE -.sp -\fINote\fR about the next option: added in 22\&.05: .PP \fBconversejs_resources\fR: \fIPath\fR .RS 4 -Local path to the Converse files\&. If not set, the public Converse client will be used instead\&. +\fINote\fR +about this option: added in 22\&.05\&. Local path to the Converse files\&. If not set, the public Converse client will be used instead\&. .RE .PP \fBconversejs_script\fR: \fIauto | URL\fR @@ -2727,7 +2722,6 @@ acl: server: sat\-pubsub\&.example\&.org modules: - \&.\&.\&. mod_delegation: namespaces: urn:xmpp:mam:1: @@ -2879,11 +2873,11 @@ The number of C2S authentication failures to trigger the IP ban\&. The default v .RE .SS "mod_host_meta" .sp -This module serves small \fIhost\-meta\fR files as described in XEP\-0156: Discovering Alternative XMPP Connection Methods\&. +\fINote\fR about this option: added in 22\&.05\&. .sp -This module is available since ejabberd 22\&.05\&. +This module serves small \fIhost\-meta\fR files as described in XEP\-0156: Discovering Alternative XMPP Connection Methods\&. .sp -To use this module, in addition to adding it to the \fImodules\fR section, you must also enable it in \fIlisten\fR → \fIejabberd_http\fR → request_handlers\&. +To use this module, in addition to adding it to the \fImodules\fR section, you must also enable it in \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR\&. .sp Notice it only works if ejabberd_http has tls enabled\&. .sp @@ -2949,9 +2943,9 @@ modules: .RE .SS "mod_http_api" .sp -This module provides a ReST interface to call ejabberd API commands using JSON data\&. +This module provides a ReST interface to call \fI\&.\&./\&.\&./developer/ejabberd\-api/index\&.md|ejabberd API\fR commands using JSON data\&. .sp -To use this module, in addition to adding it to the \fImodules\fR section, you must also enable it in \fIlisten\fR → \fIejabberd_http\fR → request_handlers\&. +To use this module, in addition to adding it to the \fImodules\fR section, you must also enable it in \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR\&. .sp To use a specific API version N, when defining the URL path in the request_handlers, add a \fIvN\fR\&. For example: \fI/api/v2: mod_http_api\fR .sp @@ -3077,18 +3071,13 @@ This example configuration will serve the files from the local directory \fI/var .\} .nf listen: - \&.\&.\&. \- port: 5280 module: ejabberd_http request_handlers: - \&.\&.\&. /pub/content: mod_http_fileserver - \&.\&.\&. - \&.\&.\&. modules: - \&.\&.\&. mod_http_fileserver: docroot: /var/www accesslog: /var/log/ejabberd/access\&.log @@ -3102,7 +3091,6 @@ modules: \&.ogg: audio/ogg \&.png: image/png default_content_type: text/html - \&.\&.\&. .fi .if n \{\ .RE @@ -3112,7 +3100,7 @@ modules: .sp This module allows for requesting permissions to upload a file via HTTP as described in XEP\-0363: HTTP File Upload\&. If the request is accepted, the client receives a URL for uploading the file and another URL from which that file can later be downloaded\&. .sp -In order to use this module, it must be enabled in \fIlisten\fR → \fIejabberd_http\fR → request_handlers\&. +In order to use this module, it must be enabled in \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -3245,30 +3233,22 @@ A custom vCard of the service that will be displayed by some XMPP clients in Ser \fIvCard\fR is a YAML map constructed from an XML representation of vCard\&. Since the representation has no attributes, the mapping is straightforward\&. .sp -For example, the following XML representation of vCard: -.sp -.if n \{\ -.RS 4 -.\} -.nf - - Conferences - - - Elm Street - - -.fi -.if n \{\ -.RE -.\} -.sp -will be translated to: +\fBExample\fR: .sp .if n \{\ .RS 4 .\} .nf +# This XML representation of vCard: +# +# Conferences +# +# +# Elm Street +# +# +# +# is translated to: vcard: fn: Conferences adr: @@ -3295,23 +3275,17 @@ vcard: .\} .nf listen: - \&.\&.\&. \- port: 5443 module: ejabberd_http tls: true request_handlers: - \&.\&.\&. /upload: mod_http_upload - \&.\&.\&. - \&.\&.\&. modules: - \&.\&.\&. mod_http_upload: docroot: /ejabberd/upload put_url: "https://@HOST@:5443/upload" - \&.\&.\&. .fi .if n \{\ .RE @@ -3370,19 +3344,15 @@ Please note that it\(cqs not necessary to specify the \fIaccess_hard_quota\fR an .\} .nf shaper_rules: - \&.\&.\&. soft_upload_quota: 1000: all # MiB hard_upload_quota: 1100: all # MiB - \&.\&.\&. modules: - \&.\&.\&. mod_http_upload: {} mod_http_upload_quota: max_days: 100 - \&.\&.\&. .fi .if n \{\ .RE @@ -3476,7 +3446,7 @@ This type of authentication was obsoleted in 2008 and you unlikely need this mod The module has no options\&. .SS "mod_mam" .sp -This module implements XEP\-0313: Message Archive Management\&. Compatible XMPP clients can use it to store their chat history on the server\&. +This module implements XEP\-0313: Message Archive Management and XEP\-0441: Message Archive Management Preferences\&. Compatible XMPP clients can use it to store their chat history on the server\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -3577,9 +3547,9 @@ When this option is disabled, for each individual subscriber a separa mucsub mes .RE .SS "mod_matrix_gw" .sp -Matrix gateway\&. +\fINote\fR about this option: added in 24\&.02\&. .sp -This module is available since ejabberd 24\&.02\&. +Matrix gateway\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -3792,9 +3762,11 @@ An internet port number at which the backend is listening for incoming connectio .RE .SS "mod_mix" .sp -This module is an experimental implementation of XEP\-0369: Mediated Information eXchange (MIX)\&. MIX support was added in ejabberd 16\&.03 as an experimental feature, updated in 19\&.02, and is not yet ready to use in production\&. It\(cqs asserted that the MIX protocol is going to replace the MUC protocol in the future (see \fImod_muc\fR)\&. +\fINote\fR about this option: added in 16\&.03 and improved in 19\&.02\&. .sp -To learn more about how to use that feature, you can refer to our tutorial: Getting started with XEP\-0369: Mediated Information eXchange (MIX) v0\&.1\&. +This module is an experimental implementation of XEP\-0369: Mediated Information eXchange (MIX)\&. It\(cqs asserted that the MIX protocol is going to replace the MUC protocol in the future (see \fImod_muc\fR)\&. +.sp +To learn more about how to use that feature, you can refer to our tutorial: \fI\&.\&./\&.\&./tutorials/mix\-010\&.md|Getting started with MIX\fR .sp The module depends on \fImod_mam\fR\&. .sp @@ -3906,7 +3878,7 @@ option, but applied to this module only\&. .RE .SS "mod_mqtt" .sp -This module adds support for the MQTT protocol version \fI3\&.1\&.1\fR and \fI5\&.0\fR\&. Remember to configure \fImod_mqtt\fR in \fImodules\fR and \fIlisten\fR sections\&. +This module adds \fI\&.\&./guide/mqtt/index\&.md|support for the MQTT\fR protocol version \fI3\&.1\&.1\fR and \fI5\&.0\fR\&. Remember to configure \fImod_mqtt\fR in \fImodules\fR and \fIlisten\fR sections\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -4050,7 +4022,6 @@ section with username/password field or certfile pointing to client certificate\ .\} .nf modules: - \&.\&.\&. mod_mqtt_bridge: servers: "mqtt://server\&.com": @@ -4062,7 +4033,6 @@ modules: authentication: certfile: "/etc/ejabberd/mqtt_server\&.pem" replication_user: "mqtt@xmpp\&.server\&.com" - \&.\&.\&. .fi .if n \{\ .RE @@ -4118,21 +4088,19 @@ To configure who is allowed to modify the room option\&. The default value is \fIall\fR, which means everyone is allowed to modify that option\&. .RE -.sp -\fINote\fR about the next option: improved in 23\&.10: .PP \fBaccess_register\fR: \fIAccessName\fR .RS 4 -This option specifies who is allowed to register nickname within the Multi\-User Chat service and rooms\&. The default is +\fINote\fR +about this option: improved in 23\&.10\&. This option specifies who is allowed to register nickname within the Multi\-User Chat service and rooms\&. The default is \fIall\fR for backward compatibility, which means that any user is allowed to register any free nick in the MUC service and in the rooms\&. .RE -.sp -\fINote\fR about the next option: added in 22\&.05: .PP \fBcleanup_affiliations_on_start\fR: \fItrue | false\fR .RS 4 -Remove affiliations for non\-existing local users on startup\&. The default value is +\fINote\fR +about this option: added in 22\&.05\&. Remove affiliations for non\-existing local users on startup\&. The default value is \fIfalse\fR\&. .RE .PP @@ -4142,8 +4110,6 @@ Same as top\-level \fIdefault_db\fR option, but applied to this module only\&. .RE -.sp -\fINote\fR about the next option: improved in 22\&.05: .PP \fBdefault_room_options\fR: \fIOptions\fR .RS 4 @@ -4173,7 +4139,7 @@ Occupants can send IQ queries to other occupants\&. The default value is \fBallow_subscription\fR: \fItrue | false\fR .RS 4 Allow users to subscribe to room events as described in -Multi\-User Chat Subscriptions\&. The default value is +\fI\&.\&./\&.\&./developer/xmpp\-clients\-bots/extensions/muc\-sub\&.md|Multi\-User Chat Subscriptions\fR\&. The default value is \fIfalse\fR\&. .RE .PP @@ -4216,7 +4182,7 @@ The room is anonymous: occupants don\(cqt see the real JIDs of other occupants\& \fBcaptcha_protected\fR: \fItrue | false\fR .RS 4 When a user tries to join a room where they have no affiliation (not owner, admin or member), the room requires them to fill a CAPTCHA challenge (see section -CAPTCHA +\fIbasic\&.md#captcha|CAPTCHA\fR in order to accept their join in the room\&. The default value is \fIfalse\fR\&. .RE @@ -4379,20 +4345,18 @@ option is not specified, the only Jabber ID will be the hostname of the virtual \fI@HOST@\fR is replaced with the real virtual host name\&. .RE -.sp -\fINote\fR about the next option: added in 21\&.01: .PP \fBmax_captcha_whitelist\fR: \fINumber\fR .RS 4 -This option defines the maximum number of characters that Captcha Whitelist can have when configuring the room\&. The default value is +\fINote\fR +about this option: added in 21\&.01\&. This option defines the maximum number of characters that Captcha Whitelist can have when configuring the room\&. The default value is \fIinfinity\fR\&. .RE -.sp -\fINote\fR about the next option: added in 21\&.01: .PP \fBmax_password\fR: \fINumber\fR .RS 4 -This option defines the maximum number of characters that Password can have when configuring the room\&. The default value is +\fINote\fR +about this option: added in 21\&.01\&. This option defines the maximum number of characters that Password can have when configuring the room\&. The default value is \fIinfinity\fR\&. .RE .PP @@ -4511,30 +4475,22 @@ A custom vCard of the service that will be displayed by some XMPP clients in Ser \fIvCard\fR is a YAML map constructed from an XML representation of vCard\&. Since the representation has no attributes, the mapping is straightforward\&. .sp -For example, the following XML representation of vCard: -.sp -.if n \{\ -.RS 4 -.\} -.nf - - Conferences - - - Elm Street - - -.fi -.if n \{\ -.RE -.\} -.sp -will be translated to: +\fBExample\fR: .sp .if n \{\ .RS 4 .\} .nf +# This XML representation of vCard: +# +# Conferences +# +# +# Elm Street +# +# +# +# is translated to: vcard: fn: Conferences adr: @@ -4560,12 +4516,11 @@ This module depends on \fImod_muc\fR\&. .ps +1 \fBAvailable options:\fR .RS 4 -.sp -\fINote\fR about the next option: added in 22\&.05: .PP \fBsubscribe_room_many_max_users\fR: \fINumber\fR .RS 4 -How many users can be subscribed to a room at once using the +\fINote\fR +about this option: added in 22\&.05\&. How many users can be subscribed to a room at once using the \fIsubscribe_room_many\fR command\&. The default value is \fI50\fR\&. @@ -4825,21 +4780,21 @@ otherwise\&. There is no default value\&. .RE .SS "mod_muc_occupantid" .sp +\fINote\fR about this option: added in 23\&.10\&. +.sp This module implements XEP\-0421: Anonymous unique occupant identifiers for MUCs\&. .sp When the module is enabled, the feature is enabled in all semi\-anonymous rooms\&. .sp -This module is available since ejabberd 23\&.10\&. -.sp The module has no options\&. .SS "mod_muc_rtbl" .sp +\fINote\fR about this option: added in 23\&.04\&. +.sp This module implement Real\-time blocklists for MUC rooms\&. .sp It works by observing remote pubsub node conforming with specification described in https://xmppbl\&.org/\&. .sp -This module is available since ejabberd 23\&.04\&. -.sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 @@ -5038,7 +4993,7 @@ This module implements XEP\-0160: Best Practices for Handling Offline Messages a .ps -1 .br .sp -\fIejabberdctl\fR has a command to delete expired messages (see chapter Managing an ejabberd server in online documentation\&. +\fIejabberdctl\fR has a command to delete expired messages (see chapter \fI\&.\&./guide/managing\&.md|Managing an ejabberd server\fR in online documentation\&. .sp .5v .RE .sp @@ -5225,12 +5180,10 @@ is loaded and stream management is enabled by a client, killing the client conne .\} .nf modules: - \&.\&.\&. mod_ping: send_pings: true ping_interval: 4 min timeout_action: kill - \&.\&.\&. .fi .if n \{\ .RE @@ -5279,11 +5232,9 @@ minute\&. .\} .nf modules: - \&.\&.\&. mod_pres_counter: count: 5 interval: 30 secs - \&.\&.\&. .fi .if n \{\ .RE @@ -5358,7 +5309,7 @@ This module adds support for XEP\-0049: Private XML Storage\&. .sp Using this method, XMPP entities can store private data on the server, retrieve it whenever necessary and share it between multiple connected clients of the same user\&. The data stored might be anything, as long as it is a valid XML\&. One typical usage is storing a bookmark of all user\(cqs conferences (XEP\-0048: Bookmarks)\&. .sp -It also implements the bookmark conversion described in XEP\-0402: PEP Native Bookmarks, see the command bookmarks_to_pep\&. +It also implements the bookmark conversion described in XEP\-0402: PEP Native Bookmarks, see the command \fIbookmarks_to_pep\fR API\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -5522,7 +5473,6 @@ Sets write access to a user\(cqs roster\&. The default value is .\} .nf modules: - \&.\&.\&. mod_privilege: roster: get: all @@ -5530,7 +5480,6 @@ modules: managed_entity: all message: outgoing: all - \&.\&.\&. .fi .if n \{\ .RE @@ -5644,41 +5593,6 @@ bytes\&. A custom vCard of the service that will be displayed by some XMPP clients in Service Discovery\&. The value of \fIvCard\fR is a YAML map constructed from an XML representation of vCard\&. Since the representation has no attributes, the mapping is straightforward\&. -.sp -For example, the following XML representation of vCard: -.sp -.if n \{\ -.RS 4 -.\} -.nf - - Conferences - - - Elm Street - - -.fi -.if n \{\ -.RE -.\} -.sp -will be translated to: -.sp -.if n \{\ -.RS 4 -.\} -.nf -vcard: - fn: Conferences - adr: - \- - work: true - street: Elm Street -.fi -.if n \{\ -.RE -.\} .RE .RE .sp @@ -5713,7 +5627,6 @@ shaper: proxyrate: 10240 modules: - \&.\&.\&. mod_proxy65: host: proxy1\&.example\&.org name: "File Transfer Proxy" @@ -5724,7 +5637,6 @@ modules: shaper: proxy65_shaper recbuf: 10240 sndbuf: 10240 - \&.\&.\&. .fi .if n \{\ .RE @@ -5815,12 +5727,11 @@ To specify whether or not pubsub should cache last items\&. Value is or \fIfalse\fR\&. If not defined, pubsub does not cache last items\&. On systems with not so many nodes, caching last items speeds up pubsub and allows you to raise the user connection rate\&. The cost is memory usage, as every item is stored in memory\&. .RE -.sp -\fINote\fR about the next option: added in 21\&.12: .PP \fBmax_item_expire_node\fR: \fItimeout() | infinity\fR .RS 4 -Specify the maximum item epiry time\&. Default value is: +\fINote\fR +about this option: added in 21\&.12\&. Specify the maximum item epiry time\&. Default value is: \fIinfinity\fR\&. .RE .PP @@ -5957,32 +5868,24 @@ A custom vCard of the server that will be displayed by some XMPP clients in Serv \fIvCard\fR is a YAML map constructed from an XML representation of vCard\&. Since the representation has no attributes, the mapping is straightforward\&. .sp -The following XML representation of vCard: -.sp -.if n \{\ -.RS 4 -.\} -.nf - - PubSub Service - - - Elm Street - - -.fi -.if n \{\ -.RE -.\} -.sp -will be translated to: +\fBExample\fR: .sp .if n \{\ .RS 4 .\} .nf +# This XML representation of vCard: +# +# Conferences +# +# +# Elm Street +# +# +# +# is translated to: vcard: - fn: PubSub Service + fn: Conferences adr: \- work: true @@ -6009,7 +5912,6 @@ Example of configuration that uses flat nodes as default, and allows use of flat .\} .nf modules: - \&.\&.\&. mod_pubsub: access_createnode: pubsub_createnode max_subscriptions_node: 100 @@ -6020,7 +5922,6 @@ modules: plugins: \- flat \- pep - \&.\&.\&. .fi .if n \{\ .RE @@ -6033,7 +5934,6 @@ Using relational database requires using mod_pubsub with db_type \fIsql\fR\&. On .\} .nf modules: - \&.\&.\&. mod_pubsub: db_type: sql access_createnode: pubsub_createnode @@ -6042,7 +5942,6 @@ modules: plugins: \- flat \- pep - \&.\&.\&. .fi .if n \{\ .RE @@ -6101,12 +6000,11 @@ If this option is set to \fItrue\fR, the sender\(cqs JID is included with push notifications generated for incoming messages with a body\&. The default value is \fIfalse\fR\&. .RE -.sp -\fINote\fR about the next option: added in 23\&.10: .PP \fBnotify_on\fR: \fImessages | all\fR .RS 4 -If this option is set to +\fINote\fR +about this option: added in 23\&.10\&. If this option is set to \fImessages\fR, notifications are generated only for actual chat messages with a body text (or some encrypted payload)\&. If it\(cqs set to \fIall\fR, any kind of XMPP stanza will trigger a notification\&. If unsure, it\(cqs strongly recommended to stick to \fIall\fR, which is the default value\&. @@ -6225,12 +6123,11 @@ doesn\(cqt allow the client to register new accounts from s2s or existing c2s se .RS 4 Specify rules to restrict access for user unregistration\&. By default any user is able to unregister their account\&. .RE -.sp -\fINote\fR about the next option: added in 21\&.12: .PP \fBallow_modules\fR: \fIall | [Module, \&.\&.\&.]\fR .RS 4 -List of modules that can register accounts, or +\fINote\fR +about this option: added in 21\&.12\&. List of modules that can register accounts, or \fIall\fR\&. The default value is \fIall\fR, which is equivalent to something like \fI[mod_register, mod_register_web]\fR\&. @@ -6239,7 +6136,7 @@ List of modules that can register accounts, or \fBcaptcha_protected\fR: \fItrue | false\fR .RS 4 Protect registrations with -CAPTCHA\&. The default is +\fIbasic\&.md#captcha|CAPTCHA\fR\&. The default is \fIfalse\fR\&. .RE .PP @@ -6318,11 +6215,11 @@ Change the password from an existing account on the server\&. Unregister an existing account on the server\&. .RE .sp -This module supports CAPTCHA to register a new account\&. To enable this feature, configure the top\-level \fIcaptcha_cmd\fR and top\-level \fIcaptcha_url\fR options\&. +This module supports \fIbasic\&.md#captcha|CAPTCHA\fR to register a new account\&. To enable this feature, configure the top\-level \fIcaptcha_cmd\fR and top\-level \fIcaptcha_url\fR options\&. .sp As an example usage, the users of the host \fIlocalhost\fR can visit the page: \fIhttps://localhost:5280/register/\fR It is important to include the last / character in the URL, otherwise the subpages URL will be incorrect\&. .sp -This module is enabled in \fIlisten\fR → \fIejabberd_http\fR → request_handlers, no need to enable in \fImodules\fR\&. The module depends on \fImod_register\fR where all the configuration is performed\&. +This module is enabled in \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR, no need to enable in \fImodules\fR\&. The module depends on \fImod_register\fR where all the configuration is performed\&. .sp The module has no options\&. .sp @@ -6442,11 +6339,9 @@ Enables/disables Roster Versioning\&. The default value is .\} .nf modules: - \&.\&.\&. mod_roster: versioning: true store_current_id: false - \&.\&.\&. .fi .if n \{\ .RE @@ -6500,14 +6395,12 @@ An access rule that can be used to restrict dialback for some servers\&. The def .\} .nf modules: - \&.\&.\&. mod_s2s_dialback: access: allow: server: legacy\&.domain\&.tld server: invalid\-cert\&.example\&.org deny: all - \&.\&.\&. .fi .if n \{\ .RE @@ -6544,12 +6437,10 @@ A list of servers or connected components to which stanzas will be forwarded\&. .\} .nf modules: - \&.\&.\&. mod_service_log: loggers: \- xmpp\-server\&.tld \- component\&.domain\&.tld - \&.\&.\&. .fi .if n \{\ .RE @@ -6791,11 +6682,11 @@ Control parameters: .IP \(bu 2.3 .\} Connection parameters: The module also accepts the connection parameters, all of which default to the top\-level parameter of the same name, if unspecified\&. See -LDAP Connection +\fIldap\&.md#ldap\-connection|LDAP Connection\fR section for more information about them\&. .RE .sp -Check also the Configuration examples section to get details about retrieving the roster, and configuration examples including Flat DIT and Deep DIT\&. +Check also the \fIldap\&.md#ldap\-examples|Configuration examples\fR section to get details about retrieving the roster, and configuration examples including Flat DIT and Deep DIT\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -6865,7 +6756,7 @@ option, but applied to this module only\&. \fBldap_filter\fR .RS 4 Additional filter which is AND\-ed together with "User Filter" and "Group Filter"\&. For more information check the LDAP -Filters +\fIldap\&.md#filters|Filters\fR section\&. .RE .PP @@ -6917,7 +6808,7 @@ A globbing format for extracting user ID from the value of the attribute named b .RS 4 A regex for extracting user ID from the value of the attribute named by \fIldap_memberattr\fR\&. Check the LDAP -Control Parameters +\fIldap\&.md#control\-parameters|Control Parameters\fR section\&. .RE .PP @@ -6990,7 +6881,7 @@ option, but applied to this module only\&. \fIldap_userdesc\fR and \fIldap_useruid\fR\&. For more information check the LDAP -Filters +\fIldap\&.md#filters|Filters\fR section\&. .RE .PP @@ -7064,7 +6955,7 @@ This module adds SIP proxy/registrar support for the corresponding virtual host\ .ps -1 .br .sp -It is not enough to just load this module\&. You should also configure listeners and DNS records properly\&. For details see the section about the ejabberd_sip listen module in the ejabberd Documentation\&. +It is not enough to just load this module\&. You should also configure listeners and DNS records properly\&. For details see the section about the \fIlisten\&.md#ejabberd_sip|ejabberd_sip\fR listen module in the ejabberd Documentation\&. .sp .5v .RE .sp @@ -7144,7 +7035,6 @@ are mandatory (e\&.g\&. you cannot omit "port" or "scheme")\&. .\} .nf modules: - \&.\&.\&. mod_sip: always_record_route: false record_route: "sip:example\&.com;lr" @@ -7157,7 +7047,6 @@ modules: \- tls://sip\-tls\&.example\&.com:5061 \- tcp://sip\-tcp\&.example\&.com:5060 \- udp://sip\-udp\&.example\&.com:5060 - \&.\&.\&. .fi .if n \{\ .RE @@ -7308,7 +7197,9 @@ minutes\&. .RE .SS "mod_stun_disco" .sp -This module allows XMPP clients to discover STUN/TURN services and to obtain temporary credentials for using them as per XEP\-0215: External Service Discovery\&. This module is included in ejabberd since version 20\&.04\&. +\fINote\fR about this option: added in 20\&.04\&. +.sp +This module allows XMPP clients to discover STUN/TURN services and to obtain temporary credentials for using them as per XEP\-0215: External Service Discovery\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -7549,30 +7440,24 @@ A custom vCard of the server that will be displayed by some XMPP clients in Serv \fIvCard\fR is a YAML map constructed from an XML representation of vCard\&. Since the representation has no attributes, the mapping is straightforward\&. .sp -For example, the following XML representation of vCard: -.sp -.if n \{\ -.RS 4 -.\} -.nf - - Conferences - - - Elm Street - - -.fi -.if n \{\ -.RE -.\} -.sp -will be translated to: +\fBExample\fR: .sp .if n \{\ .RS 4 .\} .nf +# This XML representation of vCard: +# +# +# Conferences +# +# +# Elm Street +# +# +# +# is translated to: +# vcard: fn: Conferences adr: @@ -7661,6 +7546,8 @@ for available words)\&. is the LDAP attribute or the pattern \fI%u\fR\&. .sp +\fBExamples\fR: +.sp The default is: .sp .if n \{\ @@ -7697,6 +7584,8 @@ is the vCard field name defined in the \fIldap_vcard_map\fR option\&. .sp +\fBExamples\fR: +.sp The default is: .sp .if n \{\ @@ -7784,6 +7673,8 @@ will be replaced with the user part of a JID, and \fI%d\fR will be replaced with the domain part of a JID\&. .sp +\fBExamples\fR: +.sp The default is: .sp .if n \{\ @@ -7913,7 +7804,7 @@ Should the operating system be revealed or not\&. The default value is .RE .SH "LISTENERS" .sp -This section describes options of all ejabberd listeners\&. +This section describes listeners options of ejabberd 24\&.06\&. .sp TODO .SH "AUTHOR" @@ -7921,13 +7812,13 @@ TODO ProcessOne\&. .SH "VERSION" .sp -This document describes the configuration file of ejabberd 24\&.02\&. Configuration options of other ejabberd versions may differ significantly\&. +This document describes the configuration file of ejabberd 24\&.06\&. Configuration options of other ejabberd versions may differ significantly\&. .SH "REPORTING BUGS" .sp Report bugs to https://github\&.com/processone/ejabberd/issues .SH "SEE ALSO" .sp -Default configuration file: https://github\&.com/processone/ejabberd/blob/24\&.02/ejabberd\&.yml\&.example +Default configuration file: https://github\&.com/processone/ejabberd/blob/24\&.06/ejabberd\&.yml\&.example .sp Main site: https://ejabberd\&.im .sp diff --git a/mix.exs b/mix.exs index 47e49682bba..002f8628c74 100644 --- a/mix.exs +++ b/mix.exs @@ -140,12 +140,12 @@ defmodule Ejabberd.MixProject do {:fast_yaml, "~> 1.0"}, {:idna, "~> 6.0"}, {:mqtree, "~> 1.0"}, - {:p1_acme, git: "https://github.com/processone/p1_acme", branch: "master"}, + {:p1_acme, "~> 1.0"}, {:p1_oauth2, "~> 0.6"}, {:p1_utils, "~> 1.0"}, - {:pkix, git: "https://github.com/processone/pkix"}, + {:pkix, "~> 1.0"}, {:stringprep, ">= 1.0.26"}, - {:xmpp, git: "https://github.com/processone/xmpp", override: true}, + {:xmpp, ">= 1.8.2"}, {:yconf, "~> 1.0"}] ++ cond_deps() end @@ -171,12 +171,12 @@ defmodule Ejabberd.MixProject do {config(:sip), {:esip, "~> 1.0"}}, {config(:zlib), {:ezlib, "~> 1.0"}}, {if_version_above(~c"23", true), {:jose, "~> 1.11.10"}}, - {if_version_below(~c"24", true), {:jose, "1.11.1"}}, + {if_version_below(~c"24", true), {:jose, "1.11.1", override: true}}, {if_version_below(~c"27", true), {:jiffy, "~> 1.1.1"}}, {if_version_below(~c"22", true), {:lager, "~> 3.9.1"}}, {config(:lua), {:luerl, "~> 1.2.0"}}, - {config(:mysql), {:p1_mysql, git: "https://github.com/processone/p1_mysql" }}, - {config(:pgsql), {:p1_pgsql, git: "https://github.com/processone/p1_pgsql"}}, + {config(:mysql), {:p1_mysql, ">= 1.0.24"}}, + {config(:pgsql), {:p1_pgsql, ">= 1.1.26"}}, {config(:sqlite), {:sqlite3, "~> 1.1"}}, {config(:stun), {:stun, "~> 1.0"}}], do: dep diff --git a/mix.lock b/mix.lock index 72b96da2208..4078a6bf363 100644 --- a/mix.lock +++ b/mix.lock @@ -1,39 +1,39 @@ %{ "base64url": {:hex, :base64url, "1.0.1", "f8c7f2da04ca9a5d0f5f50258f055e1d699f0e8bf4cfdb30b750865368403cf6", [:rebar3], [], "hexpm", "f9b3add4731a02a9b0410398b475b33e7566a695365237a6bdee1bb447719f5c"}, - "cache_tab": {:hex, :cache_tab, "1.0.30", "6d35eecfb65fbe5fc85988503a27338d32de01243f3fc8ea3ee7161af08725a4", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "6d8a5e00d8f84c42627706a6dbedb02e34d58495f3ed61935c8475ca0531cda0"}, + "cache_tab": {:hex, :cache_tab, "1.0.31", "e4097b50a6f373ab1e0a5f01bab0bef6626771a4cd6c93404ed6d54810e11fbc", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "8582b60a4a09b247ef86355ba9e07fce9e11edc0345a775c9171f971c72b6351"}, "dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"}, "earmark_parser": {:hex, :earmark_parser, "1.4.39", "424642f8335b05bb9eb611aa1564c148a8ee35c9c8a8bba6e129d51a3e3c6769", [:mix], [], "hexpm", "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944"}, - "eimp": {:hex, :eimp, "1.0.22", "fa9b376ef0b50e8455db15c7c11dea4522c6902e04412288aab436d26335f6eb", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "b3b9ffb1d9a5f4a2ba88ac418a819164932d9a9d3a2fc3d32ca338ce855c4392"}, + "eimp": {:hex, :eimp, "1.0.23", "aaf32efab061143403dadbaa63e699ef8e81702fbfa96fd436d5e9be4d6a8d3a", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "907c780023cb2893e4fc4bdbe6a4f02c355913862ac67f0ecc26605e816b628a"}, "epam": {:hex, :epam, "1.0.14", "aa0b85d27f4ef3a756ae995179df952a0721237e83c6b79d644347b75016681a", [:rebar3], [], "hexpm", "2f3449e72885a72a6c2a843f561add0fc2f70d7a21f61456930a547473d4d989"}, "eredis": {:hex, :eredis, "1.2.0", "0b8e9cfc2c00fa1374cd107ea63b49be08d933df2cf175e6a89b73dd9c380de4", [:rebar3], [], "hexpm", "d9b5abef2c2c8aba8f32aa018203e0b3dc8b1157773b254ab1d4c2002317f1e1"}, - "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, - "esip": {:hex, :esip, "1.0.52", "a2840287c493a4280e6fba57a257706843b025c315875e38b03fd07190e22dba", [:rebar3], [{:fast_tls, "1.1.19", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stun, "1.2.12", [hex: :stun, repo: "hexpm", optional: false]}], "hexpm", "6f00165395900500aa262ce0297162d93931c78c1464d89fd0edc6e3d6bc011f"}, - "ex_doc": {:hex, :ex_doc, "0.33.0", "690562b153153c7e4d455dc21dab86e445f66ceba718defe64b0ef6f0bd83ba0", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "3f69adc28274cb51be37d09b03e4565232862a4b10288a3894587b0131412124"}, + "erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"}, + "esip": {:hex, :esip, "1.0.53", "482786a79d8f5b0aefc60ca68b8c6c7f074f6ede2653705e4206c6779edc5a56", [:rebar3], [{:fast_tls, "1.1.20", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stun, "1.2.13", [hex: :stun, repo: "hexpm", optional: false]}], "hexpm", "a9a1bd5ea52b0e2d1b1d1fec5fb7f0301e90610db1ecfeb205a18cc4e1cb3fc7"}, + "ex_doc": {:hex, :ex_doc, "0.34.1", "9751a0419bc15bc7580c73fde506b17b07f6402a1e5243be9e0f05a68c723368", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "d441f1a86a235f59088978eff870de2e815e290e44a8bd976fe5d64470a4c9d2"}, "exsync": {:hex, :exsync, "0.4.1", "0a14fe4bfcb80a509d8a0856be3dd070fffe619b9ba90fec13c58b316c176594", [:mix], [{:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "cefb22aa805ec97ffc5b75a4e1dc54bcaf781e8b32564bf74abbe5803d1b5178"}, - "ezlib": {:hex, :ezlib, "1.0.12", "ffe906ba10d03aaee7977e1e0e81d9ffc3bb8b47fb9cd8e2e453507a2e56221f", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "30e94355fb42260aab6e12582cb0c56bf233515e655c8aeaf48760e7561e4ebb"}, - "fast_tls": {:hex, :fast_tls, "1.1.19", "f52731a4b35259fa06cf23e2a0732920ad9efce7c3d68377f129a474998747bb", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "db34322c8782d4c5139ccb80709d8ec8c38089b44262edd0c2f660ac495bd389"}, - "fast_xml": {:hex, :fast_xml, "1.1.51", "a7f8c6942591632309099386d5c339c89997ac2bbdd1216f6c196dee6d7828a9", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "7fce41b7d1a4ba438a2d7a088dabe74a3ca0739f1af2abcb77e62daf43e0409a"}, - "fast_yaml": {:hex, :fast_yaml, "1.0.36", "65413a34a570fd4e205a460ba602e4ee7a682f35c22d2e1c839025dbf515105c", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "1abe8f758fc2a86b08edff80bbc687cfd41ebc1412cfec0ef4a0acfcd032052f"}, + "ezlib": {:hex, :ezlib, "1.0.13", "3c7f62862850a241159c10b218ecf580bce54d0890601b65144dacc2633be2b0", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "9ee62ab3f8ed55a0fd11a9569fcb8e458683f95575417272192b069f092abfbb"}, + "fast_tls": {:hex, :fast_tls, "1.1.20", "d6f12d9ae4fe57e880b144b912e735af89343a8463d39b7eb4be3f6ca6163879", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "d09a12472a56a34c5eecaaed33ea283f00fcdf9dc2e8282ecbaae827f13fc21b"}, + "fast_xml": {:hex, :fast_xml, "1.1.52", "0289daafbf1190b0e53b444d4885cccf41e4b05768d4b3acc76dd8d143668e10", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "795192390e06d2b65016a6990bbfa5727f4a26d2914808b1c3c9a32eedcd1bfd"}, + "fast_yaml": {:hex, :fast_yaml, "1.0.37", "f71d472fbf787ccd161b914d1eb486116a0f4f2e835337a378fbd31b59d2e74b", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "8de868721bf7e2172414f7d3148ede0f3c922b496455cd625dd5c4429515a769"}, "file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, - "jiffy": {:hex, :jiffy, "1.1.1", "aca10f47aa91697bf24ab9582c74e00e8e95474c7ef9f76d4f1a338d0f5de21b", [:rebar3], [], "hexpm", "62e1f0581c3c19c33a725c781dfa88410d8bff1bbafc3885a2552286b4785c4c"}, + "jiffy": {:hex, :jiffy, "1.1.2", "a9b6c9a7ec268e7cf493d028f0a4c9144f59ccb878b1afe42841597800840a1b", [:rebar3], [], "hexpm", "bb61bc42a720bbd33cb09a410e48bb79a61012c74cb8b3e75f26d988485cf381"}, "jose": {:hex, :jose, "1.11.10", "a903f5227417bd2a08c8a00a0cbcc458118be84480955e8d251297a425723f83", [:mix, :rebar3], [], "hexpm", "0d6cd36ff8ba174db29148fc112b5842186b68a90ce9fc2b3ec3afe76593e614"}, "luerl": {:hex, :luerl, "1.2.0", "60f05f4240f0e7c148ddb79b67b8ff972734aad237aa74c83d0748b8214c8ef0", [:rebar3], [], "hexpm", "9cafd4f6094ff0f5a9d278fd81d60d3e026c820bdfb6cacd4b1bd909f21b525d"}, "makeup": {:hex, :makeup, "1.1.2", "9ba8837913bdf757787e71c1581c21f9d2455f4dd04cfca785c70bbfff1a76a3", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cce1566b81fbcbd21eca8ffe808f33b221f9eee2cbc7a1706fc3da9ff18e6cac"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.0", "6f0eff9c9c489f26b69b61440bf1b238d95badae49adac77973cbacae87e3c2e", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "ea7a9307de9d1548d2a72d299058d1fd2339e3d398560a0e46c27dab4891e4d2"}, - "mqtree": {:hex, :mqtree, "1.0.16", "f8f8b4971e4ca94313ba9bcaaa1aa1077daaba5e3fd3468ffb491420a4cc3593", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "c87d1c95575db65af29b795c9daa3bed43f5c1bf84072a74469659bcf53594eb"}, + "mqtree": {:hex, :mqtree, "1.0.17", "82f54b8f2d22b4445db1d6cccb7fe9ead049d61410c29e32475f3ceb3ee62a89", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "5fe8b7cf8fbc4783d0fceb94654ac2bbf3242a58cd0397d249ded8ae021be2a3"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, - "p1_acme": {:git, "https://github.com/processone/p1_acme", "176b4a8c67627c3229fbea3c05d82a5d567e6e49", [branch: "master"]}, - "p1_mysql": {:git, "https://github.com/processone/p1_mysql", "0dccb755a60cda61d41e7b092b344d38d1ebc802", []}, + "p1_acme": {:hex, :p1_acme, "1.0.23", "791aef0f79dc7f768b228808250c349fa9ce585cd8779da50ca93106eb3394d0", [:rebar3], [{:base64url, "~> 1.0", [hex: :base64url, repo: "hexpm", optional: false]}, {:idna, "~> 6.0", [hex: :idna, repo: "hexpm", optional: false]}, {:jiffy, "~> 1.1.1", [hex: :jiffy, repo: "hexpm", optional: false]}, {:jose, "~> 1.11.10", [hex: :jose, repo: "hexpm", optional: false]}, {:yconf, "~> 1.0.15", [hex: :yconf, repo: "hexpm", optional: false]}], "hexpm", "8ce196f26e3d22ea10b7809122950465878c127f80767e325207aed7e8d0dd59"}, + "p1_mysql": {:hex, :p1_mysql, "1.0.24", "0ed1e098c5a4525032448c65a2715f30980aae725615a4d255fd25f26bb22507", [:rebar3], [], "hexpm", "f058865f64257f507a2c6a5aff369b1375dbcb30b3d4258dad4f1b3eaffb655f"}, "p1_oauth2": {:hex, :p1_oauth2, "0.6.14", "1c5f82535574de87e2059695ac4b91f8f9aebacbc1c80287dae6f02552d47aea", [:rebar3], [], "hexpm", "1fd3ac474e43722d9d5a87c6df8d36f698ed87af7bb81cbbb66361451d99ae8f"}, - "p1_pgsql": {:git, "https://github.com/processone/p1_pgsql", "fe0bb2a2a2ae21cd9fc48b81520cfce508520a56", []}, - "p1_utils": {:hex, :p1_utils, "1.0.25", "2d39b5015a567bbd2cc7033eeb93a7c60d8c84efe1ef69a3473faa07fa268187", [:rebar3], [], "hexpm", "9219214428f2c6e5d3187ff8eb9a8783695c2427420be9a259840e07ada32847"}, - "pkix": {:git, "https://github.com/processone/pkix", "03be27c7168449bdfeb8c5b6cc0f800f71f8cfe9", []}, - "sqlite3": {:hex, :sqlite3, "1.1.14", "f9ea0cff8540865fdfdb7e24eef34dc46677364b1c070896e99b5bf08c8a7fd7", [:rebar3], [], "hexpm", "85054b6ca297343c159ed6794a473ff2c8eeabd854b6fe02f711c0bfd373ce86"}, - "stringprep": {:hex, :stringprep, "1.0.29", "02f23e8c3a219a3dfe40a22e908bece3a2f68af0ff599ea8a7b714ecb21e62ee", [:rebar3], [{:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "928eba304c3006eb1512110ebd7b87db163b00859a09375a1e4466152c6c462a"}, - "stun": {:hex, :stun, "1.2.12", "a65df67a8aaaecb6a94d687977b2e9f161820819910cb97bbe26a3525356525b", [:rebar3], [{:fast_tls, "1.1.19", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "a2055032b6d338d0454142004bcb12fafb0c64ab1f273f1d0c6923ebbc8ede40"}, + "p1_pgsql": {:hex, :p1_pgsql, "1.1.26", "d3c3748c3638a1d7db5644e4fc63a6da7614b3009e172ef92a01d0217c3bec65", [:rebar3], [{:xmpp, "~> 1.8.0", [hex: :xmpp, repo: "hexpm", optional: false]}], "hexpm", "85f230db530333106b8a1f9e5d5af032e6c3dd23b432e03d68e9d29013a6dcfc"}, + "p1_utils": {:hex, :p1_utils, "1.0.26", "67b0c4ac9fa3ba3ef563b31aa111b0a004439a37fac85e027f1c3617e1c7ec6c", [:rebar3], [], "hexpm", "d0379e8c1156b98bd64f8129c1de022fcca4f2fdb7486ce73bf0ed2c3376b04c"}, + "pkix": {:hex, :pkix, "1.0.10", "d3bfadf7b7cfe2a3636f1b256c9cce5f646a07ce31e57ee527668502850765a0", [:rebar3], [], "hexpm", "e02164f83094cb124c41b1ab28988a615d54b9adc38575f00f19a597a3ac5d0e"}, + "sqlite3": {:hex, :sqlite3, "1.1.15", "e819defd280145c328457d7af897d2e45e8e5270e18812ee30b607c99cdd21af", [:rebar3], [], "hexpm", "3c0ba4e13322c2ad49de4e2ddd28311366adde54beae8dba9d9e3888f69d2857"}, + "stringprep": {:hex, :stringprep, "1.0.30", "46cf0ff631b3e7328f61f20b454d59428d87738f25d709798b5dcbb9b83c23f1", [:rebar3], [{:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "f6fc9b3384a03877830f89b2f38580caf3f4a27448a4a333d6a8c3975c220b9a"}, + "stun": {:hex, :stun, "1.2.13", "c3e855f10f6b0c3ac150bce3d6c96c04a85207a3a5c7a7207876d8b36db2b0a4", [:rebar3], [{:fast_tls, "1.1.20", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.26", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "9cf4191491a60573ed6197e636530af1d25c9b064845aabed0c02f780d33ea3f"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, - "xmpp": {:git, "https://github.com/processone/xmpp", "a1fb778bd385d832f913e564558152ea507dac37", []}, - "yconf": {:hex, :yconf, "1.0.15", "e22998b3d7728270bdd06162a9515bd142b14fae8927cbdbd3ef639c32aa6f7a", [:rebar3], [{:fast_yaml, "1.0.36", [hex: :fast_yaml, repo: "hexpm", optional: false]}], "hexpm", "7ff2ab24d3c9833842716b9aaaa01a8f96641a7695cbb701b03445c4def01117"}, + "xmpp": {:hex, :xmpp, "1.8.2", "7c26fae7ca83b307bab99624595dce706d427a17eed9c6305980550f8120a3a3", [:rebar3], [{:ezlib, "~> 1.0.12", [hex: :ezlib, repo: "hexpm", optional: false]}, {:fast_tls, "~> 1.1.19", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:fast_xml, "~> 1.1.51", [hex: :fast_xml, repo: "hexpm", optional: false]}, {:idna, "~> 6.0", [hex: :idna, repo: "hexpm", optional: false]}, {:p1_utils, "~> 1.0.25", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stringprep, "~> 1.0.29", [hex: :stringprep, repo: "hexpm", optional: false]}], "hexpm", "53a9f85ad44103a358dc173225bc96d08076d4e78506f87d838337b2fa3b381f"}, + "yconf": {:hex, :yconf, "1.0.16", "d59521d66ff89f219411b6e9277cd6feec7cc6fce11554e67de02a8d0a470479", [:rebar3], [{:fast_yaml, "1.0.37", [hex: :fast_yaml, repo: "hexpm", optional: false]}], "hexpm", "e947813273f38711c7b2e5a8e4acc9a51c7bbe854f744a345f60300b38586c89"}, } diff --git a/rebar.config b/rebar.config index 7f7b77622c5..bbb02af5693 100644 --- a/rebar.config +++ b/rebar.config @@ -26,19 +26,19 @@ {if_version_below, "24", {base64url, "~> 1.0", {git, "https://github.com/dvv/base64url", {tag, "1.0.1"}}} }}, - {cache_tab, "~> 1.0.30", {git, "https://github.com/processone/cache_tab", {tag, "1.0.30"}}}, - {eimp, "~> 1.0.22", {git, "https://github.com/processone/eimp", {tag, "1.0.22"}}}, + {cache_tab, "~> 1.0.30", {git, "https://github.com/processone/cache_tab", {tag, "1.0.31"}}}, + {eimp, "~> 1.0.22", {git, "https://github.com/processone/eimp", {tag, "1.0.23"}}}, {if_var_true, pam, {epam, "~> 1.0.14", {git, "https://github.com/processone/epam", {tag, "1.0.14"}}}}, {if_var_true, redis, {eredis, "~> 1.2.0", {git, "https://github.com/wooga/eredis", {tag, "v1.2.0"}}}}, {if_var_true, sip, - {esip, "~> 1.0.52", {git, "https://github.com/processone/esip", {tag, "1.0.52"}}}}, + {esip, "~> 1.0.52", {git, "https://github.com/processone/esip", {tag, "1.0.53"}}}}, {if_var_true, zlib, - {ezlib, "~> 1.0.12", {git, "https://github.com/processone/ezlib", {tag, "1.0.12"}}}}, - {fast_tls, "~> 1.1.19", {git, "https://github.com/processone/fast_tls", {tag, "1.1.19"}}}, - {fast_xml, "~> 1.1.51", {git, "https://github.com/processone/fast_xml", {tag, "1.1.51"}}}, - {fast_yaml, "~> 1.0.36", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.36"}}}, + {ezlib, "~> 1.0.12", {git, "https://github.com/processone/ezlib", {tag, "1.0.13"}}}}, + {fast_tls, "~> 1.1.19", {git, "https://github.com/processone/fast_tls", {tag, "1.1.20"}}}, + {fast_xml, "~> 1.1.51", {git, "https://github.com/processone/fast_xml", {tag, "1.1.52"}}}, + {fast_yaml, "~> 1.0.36", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.37"}}}, {idna, "~> 6.0", {git, "https://github.com/benoitc/erlang-idna", {tag, "6.0.0"}}}, {if_version_below, "27", {jiffy, "~> 1.1.1", {git, "https://github.com/davisp/jiffy", {tag, "1.1.1"}}} @@ -55,22 +55,22 @@ {luerl, "1.0.0", {git, "https://github.com/rvirding/luerl", {tag, "1.0"}}}, {luerl, "~> 1.2.0", {git, "https://github.com/rvirding/luerl", {tag, "1.2"}}} }}, - {mqtree, "~> 1.0.16", {git, "https://github.com/processone/mqtree", {tag, "1.0.16"}}}, - {p1_acme, ".*", {git, "https://github.com/processone/p1_acme", {branch, "master"}}}, + {mqtree, "~> 1.0.16", {git, "https://github.com/processone/mqtree", {tag, "1.0.17"}}}, + {p1_acme, "~> 1.0.23", {git, "https://github.com/processone/p1_acme", {tag, "1.0.23"}}}, {if_var_true, mysql, - {p1_mysql, ".*", {git, "https://github.com/processone/p1_mysql", {branch, "master"}}}}, + {p1_mysql, "~> 1.0.24", {git, "https://github.com/processone/p1_mysql", {tag, "1.0.24"}}}}, {p1_oauth2, "~> 0.6.14", {git, "https://github.com/processone/p1_oauth2", {tag, "0.6.14"}}}, {if_var_true, pgsql, - {p1_pgsql, ".*", {git, "https://github.com/processone/p1_pgsql", {branch, "master"}}}}, - {p1_utils, "~> 1.0.25", {git, "https://github.com/processone/p1_utils", {tag, "1.0.25"}}}, - {pkix, ".*", {git, "https://github.com/processone/pkix", {branch, "master"}}}, + {p1_pgsql, "~> 1.1.26", {git, "https://github.com/processone/p1_pgsql", {tag, "1.1.26"}}}}, + {p1_utils, "~> 1.0.25", {git, "https://github.com/processone/p1_utils", {tag, "1.0.26"}}}, + {pkix, "~> 1.0.10", {git, "https://github.com/processone/pkix", {tag, "1.0.10"}}}, {if_var_true, sqlite, - {sqlite3, "~> 1.1.14", {git, "https://github.com/processone/erlang-sqlite3", {tag, "1.1.14"}}}}, - {stringprep, "~> 1.0.29", {git, "https://github.com/processone/stringprep", {tag, "1.0.29"}}}, + {sqlite3, "~> 1.1.14", {git, "https://github.com/processone/erlang-sqlite3", {tag, "1.1.15"}}}}, + {stringprep, "~> 1.0.29", {git, "https://github.com/processone/stringprep", {tag, "1.0.30"}}}, {if_var_true, stun, - {stun, "~> 1.2.12", {git, "https://github.com/processone/stun", {tag, "1.2.12"}}}}, - {xmpp, ".*", {git, "https://github.com/processone/xmpp", {branch, "master"}}}, - {yconf, "~> 1.0.15", {git, "https://github.com/processone/yconf", {tag, "1.0.15"}}} + {stun, "~> 1.2.12", {git, "https://github.com/processone/stun", {tag, "1.2.13"}}}}, + {xmpp, "~> 1.8.2", {git, "https://github.com/processone/xmpp", {tag, "1.8.2"}}}, + {yconf, "~> 1.0.15", {git, "https://github.com/processone/yconf", {tag, "1.0.16"}}} ]}. {gitonly_deps, [ejabberd_po]}. diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index eb33d2e0f9b..37d5e622fd1 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -251,7 +251,7 @@ get_commands_spec() -> #ejabberd_commands{name = join_cluster, tags = [cluster], desc = "Join our local node into the cluster handled by Node", - note = "improved in 24.xx", + note = "improved in 24.06", module = ?MODULE, function = join_cluster, args_desc = ["Nodename of the node to join"], args_example = [<<"ejabberd1@machine7">>], @@ -259,7 +259,7 @@ get_commands_spec() -> result = {res, restuple}}, #ejabberd_commands{name = join_cluster_here, tags = [cluster], desc = "Join a remote Node here, into our cluster", - note = "added in 24.xx", + note = "added in 24.06", module = ?MODULE, function = join_cluster_here, args_desc = ["Nodename of the node to join here"], args_example = [<<"ejabberd1@machine7">>], @@ -286,7 +286,7 @@ get_commands_spec() -> result = {nodes, {list, {node, atom}}}}, #ejabberd_commands{name = list_cluster_detailed, tags = [cluster], desc = "List nodes (both running and known) and some stats", - note = "added in 24.xx", + note = "added in 24.06", module = ?MODULE, function = list_cluster_detailed, args = [], result_example = [{'ejabberd@localhost', "true", @@ -427,7 +427,7 @@ get_commands_spec() -> result = {res, rescode}}, #ejabberd_commands{name = get_master, tags = [cluster], desc = "Get master node of the clustered Mnesia tables", - note = "added in 24.xx", + note = "added in 24.06", longdesc = "If there is no master, returns `none`.", module = ?MODULE, function = get_master, result = {nodename, atom}}, diff --git a/src/ejabberd_options_doc.erl b/src/ejabberd_options_doc.erl index bd80461c028..061b1dccb1c 100644 --- a/src/ejabberd_options_doc.erl +++ b/src/ejabberd_options_doc.erl @@ -923,9 +923,11 @@ doc() -> [binary:part(ejabberd_config:version(), {0,5})]}}}, {update_sql_schema, #{value => "true | false", - note => "added in 23.10", + note => "updated in 24.06", desc => ?T("Allow ejabberd to update SQL schema. " + "This option was added in ejabberd 23.10, " + "and enabled by default since 24.06. " "The default value is 'true'.")}}, {oauth_access, #{value => ?T("AccessName"), @@ -1379,7 +1381,7 @@ doc() -> "or 'ram' if the latter is not set.")}}, {sql_server, #{value => "Host | IP Address | ODBC Connection String | Unix Socket Path", - note => "improved in 24.xx", + note => "improved in 24.06", desc => ?T("The hostname or IP address of the SQL server. For _`sql_type`_ " "'mssql' or 'odbc' this can also be an ODBC connection string. " diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 93973dba187..91fcc5896cc 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -1054,7 +1054,7 @@ get_commands_spec() -> desc = "Disconnect user's active sessions", module = ?MODULE, function = kick_user_restuple, version = 2, - note = "modified in 24.xx", + note = "modified in 24.06", args = [{user, binary}, {host, binary}], args_desc = ["User name", "Server name"], args_example = [<<"user1">>, <<"example.com">>], diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 1bfbeb4d1a6..7a592462c01 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -279,7 +279,7 @@ get_commands_spec() -> "and `_unban_account`_ API.", module = ?MODULE, function = ban_account_v2, version = 2, - note = "improved in 24.xx", + note = "improved in 24.06", args = [{user, binary}, {host, binary}, {reason, binary}], args_example = [<<"attacker">>, <<"myserver.com">>, <<"Spaming other users">>], args_desc = ["User name to ban", "Server name", @@ -291,7 +291,7 @@ get_commands_spec() -> longdesc = "Check _`ban_account`_ API.", module = ?MODULE, function = get_ban_details, version = 2, - note = "added in 24.xx", + note = "added in 24.06", args = [{user, binary}, {host, binary}], args_example = [<<"attacker">>, <<"myserver.com">>], args_desc = ["User name to unban", "Server name"], @@ -309,7 +309,7 @@ get_commands_spec() -> longdesc = "Check _`ban_account`_ API.", module = ?MODULE, function = unban_account, version = 2, - note = "added in 24.xx", + note = "added in 24.06", args = [{user, binary}, {host, binary}], args_example = [<<"gooduser">>, <<"myserver.com">>], args_desc = ["User name to unban", "Server name"], @@ -692,7 +692,7 @@ get_commands_spec() -> ]}}}}}, #ejabberd_commands{name = get_roster_count, tags = [roster], desc = "Get number of contacts in a local user roster", - note = "added in 24.xx", + note = "added in 24.06", policy = user, module = ?MODULE, function = get_roster_count, args = [], @@ -810,7 +810,7 @@ get_commands_spec() -> #ejabberd_commands{name = srg_add, tags = [shared_roster_group], desc = "Add/Create a Shared Roster Group (without details)", module = ?MODULE, function = srg_add, - note = "added in 24.xx", + note = "added in 24.06", args = [{group, binary}, {host, binary}], args_example = [<<"group3">>, <<"myserver.com">>], args_desc = ["Group identifier", "Group server name"], @@ -843,7 +843,7 @@ get_commands_spec() -> #ejabberd_commands{name = srg_set_info, tags = [shared_roster_group], desc = "Set info of a Shared Roster Group", module = ?MODULE, function = srg_set_info, - note = "added in 24.xx", + note = "added in 24.06", args = [{group, binary}, {host, binary}, {key, binary}, {value, binary}], args_example = [<<"group3">>, <<"myserver.com">>, <<"label">>, <<"Family">>], args_desc = ["Group identifier", "Group server name", @@ -854,7 +854,7 @@ get_commands_spec() -> #ejabberd_commands{name = srg_get_displayed, tags = [shared_roster_group], desc = "Get displayed groups of a Shared Roster Group", module = ?MODULE, function = srg_get_displayed, - note = "added in 24.xx", + note = "added in 24.06", args = [{group, binary}, {host, binary}], args_example = [<<"group3">>, <<"myserver.com">>], args_desc = ["Group identifier", "Group server name"], @@ -864,7 +864,7 @@ get_commands_spec() -> #ejabberd_commands{name = srg_add_displayed, tags = [shared_roster_group], desc = "Add a group to displayed_groups of a Shared Roster Group", module = ?MODULE, function = srg_add_displayed, - note = "added in 24.xx", + note = "added in 24.06", args = [{group, binary}, {host, binary}, {add, binary}], args_example = [<<"group3">>, <<"myserver.com">>, <<"group1">>], @@ -874,7 +874,7 @@ get_commands_spec() -> #ejabberd_commands{name = srg_del_displayed, tags = [shared_roster_group], desc = "Delete a group from displayed_groups of a Shared Roster Group", module = ?MODULE, function = srg_del_displayed, - note = "added in 24.xx", + note = "added in 24.06", args = [{group, binary}, {host, binary}, {del, binary}], args_example = [<<"group3">>, <<"myserver.com">>, <<"group1">>], diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 57a6d94c915..77baecac3dd 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -28,7 +28,7 @@ -protocol({xep, 313, '0.6.1', '15.06', "", ""}). -protocol({xep, 334, '0.2'}). -protocol({xep, 359, '0.5.0'}). --protocol({xep, 425, '0.3.0', '24.xx', "", ""}). +-protocol({xep, 425, '0.3.0', '24.06', "", ""}). -protocol({xep, 441, '0.2.0'}). -behaviour(gen_mod). diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index b9e8400224d..be397fbd895 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -247,7 +247,7 @@ get_commands_spec() -> longdesc = "The MUC service argument can be `global` to get all hosts.", module = ?MODULE, function = rooms_empty_destroy_restuple, version = 2, - note = "modified in 24.xx", + note = "modified in 24.06", args_desc = ["MUC service, or `global` for all"], args_example = ["conference.example.com"], result_desc = "List of empty rooms that have been destroyed",