{"id":477,"date":"2013-05-03T07:11:28","date_gmt":"2013-05-03T05:11:28","guid":{"rendered":"http:\/\/bos-info.com\/?p=477"},"modified":"2013-07-08T09:46:28","modified_gmt":"2013-07-08T07:46:28","slug":"ejabberd2mysql","status":"publish","type":"post","link":"https:\/\/bos-info.com\/?p=477","title":{"rendered":"ejabberd2+MySQL"},"content":{"rendered":"<p>\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u043b \u043c\u0430\u043d \u043f\u043e CUCM \u0442\u0430\u043c \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0447\u0430\u0442\u0438\u043a\u0438 \u0438\u0442\u0434 \u044d\u0442\u043e \u043e\u0433\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0438 \u0435\u0441\u043b\u0438 \u0443 \u0412\u0430\u0441 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442 \u0442\u043e \u0443 \u0412\u0430\u0441 \u043d\u0435\u0442 \u0438 PBX. \u041f\u0444\u0444\u0444. \u0412\u044b\u0431\u043e\u0440 \u0431\u044b\u043b \u043c\u0435\u0436\u0434\u0443 Openfire \u0438 ejabberd2. \u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u043e\u0435, \u043d\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435, \u0432\u0442\u043e\u0440\u043e\u0435 \u043d\u0430 \u042d\u0440\u043b\u0430\u043d\u0433\u0435(\u043d\u0435 \u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u043e\u0435), \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b\u0438\u043a, \u0438 \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0447\u0435\u0441\u0442\u044c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0432\u044b \u0441\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435 \u0447\u0442\u043e \u044f \u0432\u044b\u0431\u0440\u0430\u043b) + \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043c\u043d\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 ejabberd \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u044d\u0442\u043e \u0432\u0441\u0435 \u0434\u0435\u043b\u043e \u043a \u0410\u0441\u0442\u0435\u0440\u0438\u0441\u043a\u0443.<br \/>\n1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<br \/>\n2. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<br \/>\n3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<br \/>\n3.a Listen<br \/>\n3.b ACL<br \/>\n3.c \u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430<br \/>\n3.d \u0428\u0435\u0439\u043f\u0435\u0440<br \/>\n3.e \u041a\u0430\u043f\u0447\u0430<br \/>\n3.f STUN<br \/>\n3.g \u041c\u0430\u043a\u0440\u043e\u0441\u044b<br \/>\n3.h \u0421\u0432\u044f\u0437\u044c \u0441 \u0411\u0414<br \/>\n4. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438<br \/>\n!\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0436\u0430\u0431\u0431\u0435\u0440 \u043e\u0442\u043a\u0440\u044b\u043b \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u0432 \u0436\u0438\u0437\u043d\u0438, \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u043a\u043e\u0441\u044f\u043a\u0438 \u0438 \u043f\u0440\u043e\u0447\u0435\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435, \u043a\u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u043f\u0440\u043e\u0448\u0443 \u043f\u0438\u0441\u0430\u0442\u044c.<br \/>\n<!--more--><br \/>\n<strong>1. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/strong><br \/>\n1. \u0421\u0442\u0430\u0432\u0438\u043c \u0438\u0437 \u043f\u043e\u0440\u0442\u043e\u0432 <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\ncd \/usr\/ports\/net-im\/ejabberd\/\r\nmake config-recursive\r\nmake install clean\r\n<\/pre>\n<p>2. \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c  \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442)<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n# cd \/usr\/local\/etc\/ejabberd\/\r\n# openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem -subj \r\n&quot;\/C=XX\/ST=XX\/L=XX\/O=XX\/OU=XX\/CN=jabber.domen.ua\/emailAddress=&quot;mail@jabber.domen.ua\r\n# cat privkey.pem &gt;&gt; server.pem \r\n# rm privkey.pem \r\n# mv server.pem ssl.pem\r\n<\/pre>\n<p>3. \u041f\u0440\u0430\u0432\u0438\u043c inetrc<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{file, resolv, &quot;\/etc\/resolv.conf&quot;}.\r\n{lookup,[&quot;file&quot;, &quot;dns&quot;]}.\r\n<\/pre>\n<p>4. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0411\u0414 \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c  \u0424\u0430\u0439\u043b\u0438\u043a \u0431\u0435\u0440\u0435\u043c \u0438\u0437 distfiles \u0438 \u0437\u0430\u043f\u0438\u043b\u0438\u0432\u0430\u0435\u043c \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0411\u0414.<br \/>\n\u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c odbc \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u0434\u0436\u0430\u0431\u0435\u0440\u0430, \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438(\u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443). <\/p>\n<p><strong>2. \u041f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 <\/strong><br \/>\n1.\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0447\u0435\u0442\u043a\u0443 \u0430\u0434\u043c\u0438\u043d\u0430, \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u0432\u0435\u0431 \u0430\u0434\u043c\u0438\u043d\u043a\u0443:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: []; html-script: false\">ejabberdctl register admin jabber.domen.ua password<\/pre>\n<p>2. \u041f\u0440\u0430\u0432\u0438\u043c ejabberd.cfg<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">{acl, admin, {user, &quot;admin1&quot;, &quot;example.org&quot;}}.\r\n{access, configure, [{allow, admin}]}<\/pre>\n<p>\u041f\u0440\u0430\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u044e\u0437\u0435\u0440\u0430\u043c \u0441 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432<br \/>\n3. \u041f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0434\u0436\u0430\u0431\u0435\u0440 \/usr\/local\/etc\/rc.d\/ejabberd restart  \u0438\u043b\u0438 ejabberdctl &#8212;node ejabberd@host restart<br \/>\n4. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c http:\/\/server:port\/admin\/ \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0438 \u0432\u0445\u043e\u0434\u0438\u043c \u0441 \u043f\u043e\u043b\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c admin@jabber.domen.ua<br \/>\n<strong>3.\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/strong><br \/>\n\u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0430\u0440\u0441\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0411\u0414 \u0434\u0436\u0430\u0431\u0435\u0440\u0430. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u043d\u0435\u0435, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043a\u043e\u043d\u0444 \u0444\u0430\u0439\u043b \u043f\u043e\u0442\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0431\u0430\u0437\u0443. ejabberd \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 \u0430\u0434\u043c\u0438\u043d\u043a\u0443, \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u044b \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0441\u0435\u0440\u0432\u0435\u0440  \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 \u0434\u0430\u0439\u043c\u043e\u043d\u0430, \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b\u0435.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0444\u0430\u0439\u043b\u0430:<\/em><br \/>\n\u0421\u0442\u0440\u043e\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0430 %  \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f(\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u044b).<br \/>\n\u0412\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0442\u0441\u044f .<br \/>\n\u0417\u0430\u043f\u0438\u0441\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 {} \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438.<br \/>\n\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u0437 \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f [].<br \/>\n\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435.<br \/>\n\u0421\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0434\u0432\u043e\u0439\u043d\u044b\u0445 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445.<br \/>\n\u041a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u0430 \u0432\u0441\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c, \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u0441\u043f\u0438\u0441\u043e\u043a \u0438 \u0434\u0432\u0430 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<br \/>\n{hosts, [&#8220;jabber.example.net&#8221;, &#8220;im.example.com&#8221;]}.<br \/>\n\u0415\u0441\u043b\u0438 \u043a\u043e\u043d\u0444 \u0444\u0430\u0439\u043b \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043f\u0446\u0438\u0438 \u2018hosts\u2019 , \u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u0442\u0430\u0440\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0438\u0437 \u0431\u0430\u0437\u044b.<br \/>\n\u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0411\u0414, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0432 \u043d\u0430\u0447\u0430\u043b\u043e \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0430\u0439\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\noverride_global.\r\noverride_local.\r\noverride_acls.\r\n<\/pre>\n<p>\u041e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u043e\u0434\u044b \u0438 \u0441\u043f\u0438\u0441\u043a\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b.<br \/>\n\u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u043f\u0446\u0438\u0438:<br \/>\n<strong>hosts<\/strong> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{hosts, [HostName, &#8230;]}.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{hosts, [&quot;example.org&quot;]}.\r\n{hosts, [&quot;example.net&quot;, &quot;example.com&quot;, &quot;jabber.somesite.org&quot;]}.\r\n<\/pre>\n<p>host_config \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{host_config, HostName, [Option, &#8230;]}<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{host_config, &quot;example.net&quot;, [{auth_method,   internal}]}.\r\n\r\n{host_config, &quot;example.com&quot;, [{auth_method,   ldap},\r\n                              {ldap_servers,  [&quot;localhost&quot;]},\r\n                              {ldap_uids,     [{&quot;uid&quot;}]},\r\n                              {ldap_rootdn,   &quot;dc=localdomain&quot;},\r\n                              {ldap_rootdn,   &quot;dc=example,dc=com&quot;},\r\n                              {ldap_password, &quot;&quot;}]}.\r\n<\/pre>\n<p>\u0421 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u0434\u0435\u043b\u0430 \u043e\u0431\u0441\u0442\u043e\u044f\u0442 \u0441\u043b\u043e\u0436\u043d\u0435\u0435,<br \/>\n{{add, OptionName}, OptionValue} \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0443.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n%% This ejabberd server has three vhosts:\r\n{hosts, [&quot;one.example.org&quot;, &quot;two.example.org&quot;, &quot;three.example.org&quot;]}.\r\n\r\n%% Configuration of modules that are common to all vhosts\r\n{modules,\r\n [\r\n  {mod_roster,     []},\r\n  {mod_configure,  []},\r\n  {mod_disco,      []},\r\n  {mod_private,    []},\r\n  {mod_time,       []},\r\n  {mod_last,       []},\r\n  {mod_version,    []}\r\n ]}.\r\n\r\n%% Add some modules to vhost one:\r\n{host_config, &quot;one.example.org&quot;,\r\n [{{add, modules}, [\r\n                    {mod_echo,       [{host, &quot;echo-service.one.example.org&quot;}]}\r\n                    {mod_http_bind,  []},\r\n                    {mod_logxml,     []}\r\n                   ]\r\n  }\r\n ]}.\r\n<\/pre>\n<p><strong>3.a Listen<\/strong> \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u0442\u0443 ejabberd \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:<br \/>\n\u041d\u043e\u043c\u0435\u0440 \u043f\u043e\u0440\u0442\u0430. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0418\u041f \u0438\/\u0438\u043b\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b.<br \/>\n\u041c\u043e\u0434\u0443\u043b\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0438\u0441\u0438\u0442 \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u043e\u0440\u0442\u0443.<br \/>\n\u041e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f TCP \u0441\u043e\u043a\u0435\u0442\u0430 \u0438 \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u044f.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{listen, [Listener, &#8230;]}.<br \/>\n\u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f Listener \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432:<br \/>\n{PortNumber, Module, [Option, &#8230;]}<br \/>\n{{PortNumber, IPaddress}, Module, [Option, &#8230;]}<br \/>\n{{PortNumber, TransportProtocol}, Module, [Option, &#8230;]}<br \/>\n{{PortNumber, IPaddress, TransportProtocol}, Module, [Option, &#8230;]}<br \/>\nIP \u0430\u0434\u0440\u0435\u0441 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 &#171;10.11.12.13&#8243; \u0438\u043b\u0438 &#171;::FFFF:127.0.0.1&#8243;<br \/>\n<em>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438:<\/em><br \/>\nejabberd_c2s \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 c2s(\u043a\u043b\u0438\u0435\u043d\u0442-\u0441\u0435\u0440\u0432\u0435\u0440) \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439.<br \/>\n\u041e\u043f\u0446\u0438\u0438: access, certfile, max_fsm_queue, max_stanza_size, shaper, starttls, starttls_required, tls, zlib<br \/>\nejabberd_s2s_in \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 s2s \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439.<br \/>\n\u041e\u043f\u0446\u0438\u0438: max_stanza_size, shaper<br \/>\nejabberd_service \u0412\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 (\u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 XEP-0114)<br \/>\n\u041e\u043f\u0446\u0438\u0438: access, hosts, max_fsm_queue, service_check_from, shaper<br \/>\nejabberd_stun \u041e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 STUN Binding requests \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 RFC 5389.<br \/>\n\u041e\u043f\u0446\u0438\u0438: certfile<br \/>\nejabberd_http \u041e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 HTTP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.<br \/>\n\u041e\u043f\u0446\u0438\u0438: captcha, certfile, default_host, http_bind, http_poll, request_handlers, tls, trusted_proxies, web_admin<br \/>\n\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0439 \u0434\u043b\u044f \u043c\u043e\u0434\u0443\u043b\u0435\u0439:<br \/>\n{access, AccessName}<br \/>\n\u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0440\u0442\u0443, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e all.<br \/>\n{backlog, Value}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0434\u043b\u0438\u043d\u0443 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 5.<br \/>\ncaptcha \u0432\u0435\u0431 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c CAPTCHA \u0437\u0430\u043f\u0440\u043e\u0441.<br \/>\n{certfile, Path}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0443\u044e \u043e\u043f\u0446\u0438\u044e  domain_certfile.<br \/>\n{default_host, undefined|HostName}<br \/>\n\u0415\u0441\u043b\u0438 HTTP \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 ejabberd \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 HTTP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a Host \u0441 \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0445\u043e\u0441\u0442\u043e\u043c, \u0442\u043e\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 HostName. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: undefined.<br \/>\n{hosts, [Hostname, &#8230;], [HostOption, &#8230;]}<br \/>\n\u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0441 ejabberd_service \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e hostnames. \u0412 HostOption \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u043f\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u043e\u043f\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u043a\u043e\u043d\u0435\u043a\u0442\u0430 \u043a ejabberd: {password, Secret}. \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c ejabberd_service \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432: \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 ejabberd_service \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<br \/>\nhttp_bind<br \/>\n\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 HTTP Binding (XEP-0124 \u0438 XEP-0206). HTTP Bind \u0432\u043a\u043b \u0434\u043e\u0441\u0442\u0443\u043f \u0447\u0435\u0440\u0435\u0437 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a ejabberd \u0438\u0437-\u0437\u0430 \u0444\u0430\u0435\u0440\u0432\u043e\u043b\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0442 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u043a\u0435\u0442\u044b \u043d\u0430 \u043f\u043e\u0440\u0442 5222. \u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c mod_http_bind.<br \/>\n\u0415\u0441\u043b\u0438 HTTP Bind \u0432\u043a\u043b, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e http:\/\/server:port\/http-bind\/. \u043a\u043b\u0438\u0435\u043d\u0442 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c HTTP Bind. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u0435\u0431 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445 \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a JWChat.<br \/>\nhttp_poll<br \/>\n\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 HTTP Polling (XEP-0025). HTTP Polling \u0432\u043a\u043b \u0434\u043e\u0441\u0442\u0443\u043f \u0447\u0435\u0440\u0435\u0437 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a ejabberd \u0438\u0437-\u0437\u0430 \u0444\u0430\u0435\u0440\u0432\u043e\u043b\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0442 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0441\u043e\u043a\u0435\u0442\u044b \u043d\u0430 \u043f\u043e\u0440\u0442 5222.<br \/>\n\u0415\u0441\u043b\u0438 HTTP Polling \u0432\u043a\u043b, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e http:\/\/server:port\/http-poll\/. \u043a\u043b\u0438\u0435\u043d\u0442 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c HTTP Polling. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u0435\u0431 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445 \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a JWChat.<br \/>\nhttp_poll_timeout \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0449\u0430\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0431\u0435\u0437 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 POST \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  300 \u0441\u0435\u043a\u0443\u043d\u0434. {http_poll_timeout, 300}.<br \/>\n{max_fsm_queue, Size}<br \/>\n\u041e\u043f\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 FSM (Finite State Machine). \u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438  \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0434\u043d\u0443 XML \u0441\u0442\u0440\u043e\u0444\u0443 \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0443\u044e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a. \u0435\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u043f\u0440\u0435\u0434\u0435\u043b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e), \u0442\u043e\u0433\u0434\u0430 FSM \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442  \u043e\u0442 \u0436\u0435\u043b\u0435\u0437\u0430. \u041d\u043e \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 1000. \u041e\u043f\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0430 \u0434\u043b\u044f  ejabberd_service \u0438 ejabberd_c2s listeners, \u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f ejabberd_s2s_out. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0434\u043b\u044f ejabberd_service \u0438\u043b\u0438 ejabberd_c2s listeners, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2019undefined\u2019 \u0438\u043b\u0438 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u041f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: \u2019undefined\u2019.<br \/>\n{max_stanza_size, Size}<br \/>\n\u041e\u043f\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435(\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e 1 \u0431\u043b\u043e\u043a\u0430 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445) \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 XML \u0441\u0442\u0440\u043e\u0444. \u041f\u0440\u0438\u043c\u0435\u0440 {max_stanza_size, 65536}. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f 65536 \u0434\u043b\u044f c2s \u0438 131072 \u0434\u043b\u044f s2s. s2s max stanza \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c  \u0434\u043b\u044f c2s . \u0418\u0437\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0441 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e, \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c.<br \/>\n{request_handlers, [ {Path, Module}, &#8230;]}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 1 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. Path \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0443\u0442\u0435\u0439;  URIs \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043d\u0430 Path \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b Module. \u041f\u0440\u0438\u043c\u0435\u0440, \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0447\u0442\u043e\u0431\u044b  mod_foo \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043b URIs \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \/a\/b\/, \u0438 \u0442\u0430\u043a\u0436\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0447\u0442\u043e\u0431\u044b mod_http_bind \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043b URIs \/http-bind\/, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443: {request_handlers, [{[&#8220;a&#8221;, &#8220;b&#8221;], mod_foo}, {[&#8220;http-bind&#8221;], mod_http_bind}]}<br \/>\n{service_check_from, true|false}<br \/>\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f ejabberd_service. XEP-0114 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u043c\u0435\u043d \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b \u0441 \u0445\u043e\u0441\u0442\u043d\u0435\u0439\u043c\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430. \u0415\u0441\u043b\u0438 \u044d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0432 false, ejabberd  \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u0444\u044b \u0441 \u043b\u044e\u0431\u044b\u043c \u0434\u043e\u043c\u0435\u043d\u043e\u043c \u0432 \u043f\u043e\u043b\u0435 \u2019from\u2019. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e true.<br \/>\n{shaper, none|ShaperName}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0448\u0435\u0439\u043f \u0434\u043b\u044f \u043f\u043e\u0440\u0442\u0430, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  none.<br \/>\nstarttls<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043b\u0438 STARTTLS \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u044e certfile.<br \/>\nstarttls_required<br \/>\n\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043b\u0438 STARTTLS \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443. \u0422\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u043d\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0422\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 certfile.<br \/>\ntls<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0447\u0442\u043e \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u0442\u0443 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SSL  \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0431\u044b\u043b \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445, \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043d \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432  ejabberd_http \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 HTTPS.<br \/>\n{trusted_proxies, all | [IpString]}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u043a\u0441\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u0433\u0434\u0430 HTTP \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a X-Forwarded-For \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435(all), \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0434\u0440\u0435\u0441\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: [&#8220;127.0.0.1&#8221;]<br \/>\nweb_admin<br \/>\n\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0435\u0431-\u043c\u043e\u0440\u0434\u0443 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 http:\/\/server:port\/admin\/.<br \/>\nzlib<br \/>\n\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0435 Zlib \u0441\u0436\u0430\u0442\u0438\u0435 (\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0432  XEP-0138) \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0440\u0442\u0443.<br \/>\n\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 listen:<br \/>\n{s2s_use_starttls, false|optional|required|required_trusted}<br \/>\n\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438<br \/>\n{s2s_certfile, Path}<br \/>\n\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0443.<br \/>\n{domain_certfile, Domain, Path}<br \/>\n\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0443 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430.<br \/>\n{outgoing_s2s_options, [Family, &#8230;], Timeout}<br \/>\n\u041a\u0430\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0418\u041f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0442\u0430\u0439\u043c\u0430\u0443\u0442. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e IPv4, \u043f\u043e\u0442\u043e\u043c IPv6, \u0442\u0430\u0439\u043c\u0430\u0443\u0442 10000 \u043c\u0441.<br \/>\n{s2s_dns_options, [ {Property, Value}, &#8230;]}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043d\u0441 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f: \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 timeout \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445(10\u0441) \u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u043e\u043c (\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 retries ) \u0447\u0435\u0440\u0435\u0437 2\u0441.<br \/>\n{s2s_default_policy, allow|deny}<br \/>\n\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430  \u0434\u043b\u044f \u0432\u0445 \u0438 \u0438\u0441\u0445 s2s \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e allow.<br \/>\n{{s2s_host, Host}, allow|deny}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0435\u0441\u043b\u0438 \u0432\u0445 \u0438 \u0438\u0441\u0445  s2s \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<br \/>\n{s2s_max_retry_delay, Seconds}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 300\u0441.<br \/>\n{max_fsm_queue, Size}<br \/>\n\u041e\u043f\u0446\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 FSM (Finite State Machine). \u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438  \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043e\u0434\u043d\u0443 XML \u0441\u0442\u0440\u043e\u0444\u0443 \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0443\u044e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a. \u0435\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442 \u043f\u0440\u0435\u0434\u0435\u043b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e), \u0442\u043e\u0433\u0434\u0430 FSM \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043e \u0438 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442  \u043e\u0442 \u0436\u0435\u043b\u0435\u0437\u0430. \u041d\u043e \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 1000. \u041e\u043f\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0430 \u0434\u043b\u044f  ejabberd_service \u0438 ejabberd_c2s listeners, \u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f ejabberd_s2s_out. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0434\u043b\u044f ejabberd_service \u0438\u043b\u0438 ejabberd_c2s listeners, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u2019undefined\u2019 \u0438\u043b\u0438 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e. \u041f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: \u2019undefined\u2019.<br \/>\n{route_subdomains, local|s2s}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u0440\u044f\u043c\u043e \u043a \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u0443 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e  \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0430\u043d\u043a \u0441 \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440\u044b:<\/em><br \/>\n3 \u0434\u043e\u043c\u0435\u043d\u0430. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 server.pem. \u041e\u0434\u043d\u0430\u043a\u043e,  c2s \u0438 s2s \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a example.com \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f example_com.pem.<br \/>\n\u043f\u043e\u0440\u0442 5222 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 c2s \u0441\u043e STARTTLS, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<br \/>\n\u043f\u043e\u0440\u0442 5223 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 c2s \u0441\u043e \u0441\u0442\u0430\u0440\u044b\u043c SSL.<br \/>\n\u043f\u043e\u0440\u0442 5269 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 s2s \u0441\u043e STARTTLS. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f  IPv6 \u0432\u043c\u0435\u0441\u0442\u043e IPv4.<br \/>\n\u043f\u043e\u0440\u0442 3478 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 STUN \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0447\u0435\u0440\u0435\u0437 UDP.<br \/>\n\u043f\u043e\u0440\u0442 5280 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 HTTP Poll<br \/>\n\u043f\u043e\u0440\u0442 5281 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f HTTPS \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 HTTP-Bind (BOSH) \u0438 Web Admin. \u0421\u043e\u043a\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 127.0.0.1.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{hosts, [&quot;example.com&quot;, &quot;example.org&quot;, &quot;example.net&quot;]}.\r\n{listen,\r\n [\r\n  {5222, ejabberd_c2s, [\r\n                        {access, c2s},\r\n                        {shaper, c2s_shaper},\r\n                        starttls, {certfile, &quot;\/etc\/ejabberd\/server.pem&quot;},\r\n                        {max_stanza_size, 65536}\r\n                       ]},\r\n  {5223, ejabberd_c2s, [\r\n                        {access, c2s},\r\n                        {shaper, c2s_shaper},\r\n                        tls, {certfile, &quot;\/etc\/ejabberd\/server.pem&quot;},\r\n                        {max_stanza_size, 65536}\r\n                       ]},\r\n  {{5269, &quot;::&quot;}, ejabberd_s2s_in, [\r\n                                   {shaper, s2s_shaper},\r\n                                   {max_stanza_size, 131072}\r\n                                  ]},\r\n  {{3478, udp}, ejabberd_stun, []},\r\n  {5280, ejabberd_http, [\r\n                         http_poll\r\n                        ]},\r\n  {{5281, &quot;127.0.0.1&quot;}, ejabberd_http, [\r\n                                        web_admin,\r\n                                        http_bind,\r\n                                        tls, {certfile, &quot;\/etc\/ejabberd\/server.pem&quot;},\r\n                                       ]}\r\n ]\r\n}.\r\n{s2s_use_starttls, optional}.\r\n{s2s_certfile, &quot;\/etc\/ejabberd\/server.pem&quot;}.\r\n{domain_certfile, &quot;example.com&quot;, &quot;\/etc\/ejabberd\/example_com.pem&quot;}.\r\n{outgoing_s2s_options, [ipv4, ipv6], 10000}.\r\n<\/pre>\n<p><em>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<\/em><br \/>\nc2s \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0440\u0442 5222 (\u0432\u0441\u0435 IPv4) \u043d\u0430 \u043f\u043e\u0440\u0442 5223 (SSL, \u0441 IP 192.168.0.1 \u0438 fdca:8ab6:a243:75ef::1) \u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e \u0434\u043b\u044f \u044e\u0437\u0435\u0440\u0430 \u2018bad\u2019.<br \/>\ns2s \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0440\u0442 5269 (\u0432\u0441\u0435 IPv4) \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c STARTTLS \u0438 \u0434\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c. \u0412\u0445 \u0438 \u0438\u0441\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 XMPP \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u044b, \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e: &#171;jabber.example.org&#187; \u0438 &#171;example.com&#187;.<br \/>\n\u041f\u043e\u0440\u0442 5280 \u0434\u0435\u0440\u0436\u0438\u0442 Web Admin \u0438 HTTP Polling \u043d\u0430 \u0432\u0441\u0435\u0445 IPv4 \u0430\u0434\u0440\u0435\u0441\u0430\u0445. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u0440\u0442\u0430\u0445.<br \/>\n\u0412\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c administrators \u043e\u0431\u0440\u0435\u0437\u0430\u044e\u0442\u0441\u044f \u0434\u043e 1,000 B\/s.<br \/>\nAIM \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 aim.example.org \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 5233 \u043d\u0430 localhost(127.0.0.1 and ::1) \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u2018aimsecret\u2019.<br \/>\nICQ \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 JIT (icq.example.org \u0438 sms.example.org) \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 5234 \u043f\u0430\u0440\u043e\u043b\u044c \u2018jitsecret\u2019.<br \/>\nMSN \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 msn.example.org \u043f\u043e\u0440\u0442 5235 \u043f\u0430\u0440\u043e\u043b\u044c \u2018msnsecret\u2019.<br \/>\nYahoo! \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 yahoo.example.org \u043f\u043e\u0440\u0442 5236 \u043f\u0430\u0440\u043e\u043b\u044c \u2018yahoosecret\u2019.<br \/>\nGadu-Gadu \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 gg.example.org \u043f\u043e\u0440\u0442 5237 \u043f\u0430\u0440\u043e\u043b\u044c \u2018ggsecret\u2019.<br \/>\nJabber Mail Component jmc.example.org \u043f\u043e\u0440\u0442 5238 \u043f\u0430\u0440\u043e\u043b\u044c \u2018jmcsecret\u2019.<br \/>\n\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043e\u043f\u0446\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u043b\u044f from \u0432 \u043f\u0430\u043a\u0435\u0442\u0430\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u044d\u0442\u0438\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u043c. \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u043e\u0434 \u043b\u044e\u0431\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043b\u044e\u0431\u044b\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{acl, blocked, {user, &quot;bad&quot;}}.\r\n{access, c2s, [{deny, blocked},\r\n               {allow, all}]}.\r\n{shaper, normal, {maxrate, 1000}}.\r\n{access, c2s_shaper, [{none, admin},\r\n                      {normal, all}]}.\r\n{listen,\r\n [{5222, ejabberd_c2s, [\r\n                        {access, c2s},\r\n                        {shaper, c2s_shaper}\r\n                       ]},\r\n  {{5223, {192, 168, 0, 1}}, ejabberd_c2s, [\r\n                                            {access, c2s},\r\n                                            ssl, {certfile, &quot;\/path\/to\/ssl.pem&quot;}\r\n                                           ]},\r\n  {{5223, {16#fdca, 16#8ab6, 16#a243, 16#75ef, 0, 0, 0, 1}},\r\n   ejabberd_c2s, [\r\n                  {access, c2s},\r\n                  ssl, {certfile, &quot;\/path\/to\/ssl.pem&quot;}\r\n                 ]},\r\n  {5269, ejabberd_s2s_in, []},\r\n  {{5280, {0, 0, 0, 0}}, ejabberd_http, [\r\n                                         http_poll,\r\n                                         web_admin\r\n                                        ]},\r\n  {{5233, {127, 0, 0, 1}}, ejabberd_service, [\r\n                                              {hosts, [&quot;aim.example.org&quot;],\r\n                                                 [{password, &quot;aimsecret&quot;}]}\r\n                                             ]},\r\n  {{5233, &quot;::1&quot;}, ejabberd_service, [\r\n                                     {hosts, [&quot;aim.example.org&quot;],\r\n                                        [{password, &quot;aimsecret&quot;}]}\r\n                                    ]},\r\n  {5234, ejabberd_service, [{hosts, [&quot;icq.example.org&quot;, &quot;sms.example.org&quot;],\r\n                             [{password, &quot;jitsecret&quot;}]}]},\r\n  {5235, ejabberd_service, [{hosts, [&quot;msn.example.org&quot;],\r\n                             [{password, &quot;msnsecret&quot;}]}]},\r\n  {5236, ejabberd_service, [{hosts, [&quot;yahoo.example.org&quot;],\r\n                             [{password, &quot;yahoosecret&quot;}]}]},\r\n  {5237, ejabberd_service, [{hosts, [&quot;gg.example.org&quot;],\r\n                             [{password, &quot;ggsecret&quot;}]}]},\r\n  {5238, ejabberd_service, [{hosts, [&quot;jmc.example.org&quot;],\r\n                             [{password, &quot;jmcsecret&quot;}]}]},\r\n  {5239, ejabberd_service, [{hosts, [&quot;custom.example.org&quot;],\r\n                             [{password, &quot;customsecret&quot;}]},\r\n                            {service_check_from, false}]}\r\n ]\r\n}.\r\n{s2s_use_starttls, required_trusted}.\r\n{s2s_certfile, &quot;\/path\/to\/ssl.pem&quot;}.\r\n{s2s_default_policy, deny}.\r\n{{s2s_host,&quot;jabber.example.org&quot;}, allow}.\r\n{{s2s_host,&quot;example.com&quot;}, allow}.\r\n<\/pre>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 auth_method \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{auth_method, [Method, &#8230;]}.<br \/>\n<em>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b:<\/em><br \/>\ninternal (default)<br \/>\nexternal<br \/>\nldap<br \/>\nodbc<br \/>\nanonymous<br \/>\npam<br \/>\n\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432: internal, external, odbc.<br \/>\nresource_conflict<br \/>\n\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043a\u043e\u0433\u0434\u0430 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f, \u0430 \u0441 \u0435\u0433\u043e \u043b\u043e\u0433\u0438\u043d\u0430 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{resource_conflict, setresource|closenew|closeold}.<br \/>\n\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e closeold.<br \/>\nfqdn<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 Fully Qualified Domain Name \u043c\u0430\u0448\u0438\u043d\u044b, \u0435\u0441\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c. FQDN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 DIGEST-MD5 SASL \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{fqdn, undefined|FqdnString}.<\/p>\n<p><strong>3.b  ACL<\/strong><br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{acl, ACLName, ACLValue}.<br \/>\nACLValue \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c:<br \/>\n<em>all<\/em><br \/>\n{acl, all, all}. \u0412\u0441\u0435 JID\u044b.<br \/>\n<em>{user, Username} <\/em><br \/>\n{acl, admin, {user, &#171;yozhik&#187;}}. \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c yozhik \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435<br \/>\n<em>{user, Username, Server}<\/em><br \/>\n{acl, admin, {user, &#171;yozhik&#187;, &#171;example.org&#187;}}. \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c yozhik \u043d\u0430 example.org<br \/>\n<em>{server, Server}<\/em><br \/>\n{acl, exampleorg, {server, &#171;example.org&#187;}}. \u043b\u044e\u0431\u043e\u0439 JID  \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 example.org<br \/>\n<em>{resource, Resource}<\/em><br \/>\n{acl, mucklres, {resource, &#171;muckl&#187;}}. \u043b\u044e\u0431\u043e\u0439 JID \u0441 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u043c muckl<br \/>\n<em>{shared_group, Groupname}<\/em><br \/>\n{acl, techgroupmembers, {shared_group, &#171;techteam&#187;}}. \u041b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 techteam \u043d\u0430 \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u0435<br \/>\n<em>{shared_group, Groupname, Server}<\/em><br \/>\n{acl, techgroupmembers, {shared_group, &#171;techteam&#187;, &#171;example.org&#187;}}. \u041b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 techteam \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 example.org<br \/>\n<em>{user_regexp, Regexp}<\/em><br \/>\n{acl, tests, {user_regexp, &#171;^test[0-9]*$&#187;}}. \u041b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0438 \u043d\u0430 \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u0435<br \/>\n<em>{user_regexp, Regexp, Server}<\/em><br \/>\n{acl, tests, {user_regexp, &#171;^test&#187;, &#171;example.org&#187;}}. \u041b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0438 example.org<br \/>\n<em>{server_regexp, Regexp}<\/em><br \/>\n{acl, icq, {server_regexp, &#171;^icq\\\\.&#187;}}. \u0421\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043b\u044e\u0431\u044b\u043c JID \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c.<br \/>\n<em>{resource_regexp, Regexp}<\/em><br \/>\n{acl, icq, {resource_regexp, &#171;^laptop\\\\.&#187;}}. \u041b\u044e\u0431\u043e\u0439  JID, \u0441 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0435.<br \/>\n<em>{node_regexp, UserRegexp, ServerRegexp}<\/em><br \/>\n{acl, yozhik, {node_regexp, &#171;^yozhik$&#187;, &#171;^example.(com|org)$&#187;}}. \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043b\u044e\u0431\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0435, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0435.<br \/>\n{user_glob, Glob}<br \/>\n{user_glob, Glob, Server}<br \/>\n{server_glob, Glob}<br \/>\n{resource_glob, Glob}<br \/>\n{node_glob, UserGlob, ServerGlob}<br \/>\n\u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0448\u0435\u043b\u043b\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043e\u043a<br \/>\n\u0428\u0430\u0431\u043b\u043e\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c:<br \/>\n* \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0441 \u043b\u044e\u0431\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0432\u0442\u0447 \u043d\u0443\u043b\u0435\u0432\u043e\u0439.<br \/>\n? \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0441 \u043b\u044e\u0431\u044b\u043c \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u043c<br \/>\n[&#8230;] \u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u0441 \u043b\u044e\u0431\u044b\u043c\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043a\u043e\u0431\u043e\u043a. ! &#8212; \u043d\u0435.<br \/>\n\u0414\u0430\u043d\u043d\u044b\u0435  ACLName \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b:<br \/>\n<em>all<\/em> &#8212; \u043b\u044e\u0431\u043e\u0439 JID.<br \/>\n<em>none<\/em> &#8212; \u043d\u0438\u043a\u0430\u043a\u043e\u0439 JID.<\/p>\n<p><strong>3.c \u041f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430<\/strong><br \/>\n\u0417\u0430\u043f\u0438\u0441\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{access, AccessName, [ {allow|deny, ACLName}, &#8230;]}.<br \/>\n\u041a\u043e\u0433\u0434\u0430 JID \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a Accessname, \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e\u0442 JID \u0432 ACLs \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u0434\u0430\u043d\u0430 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0438. \u0415\u0441\u043b\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u043e\u0432\u043f\u0430\u0432\u0448\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438, \u0438\u043d\u0430\u0447\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f deny.<br \/>\n\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u0435\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445(\u0434\u043b\u044f \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u0430)<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{access, configure, [{allow, admin}]}.\r\n{access, something, [{deny, badmans},\r\n                     {allow, all}]}.\r\n<\/pre>\n<p>\u0417\u0430\u0434\u0430\u043d\u043d\u044b\u0435 AccessName \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b:<br \/>\nall \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u2018allow\u2019.<br \/>\nnone \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u2018deny\u2019.<br \/>\n\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ACL<br \/>\nmax_user_sessions \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a-\u0432\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{access, max_user_sessions, [ {MaxNumber, ACLName}, &#8230;]}.<br \/>\n\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043a-\u0432\u043e \u0441\u0435\u0441\u0441\u0438\u0439  \u0434\u043e 5 \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 10 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u043e\u0432:<br \/>\n{access, max_user_sessions, [{10, admin}, {5, all}]}.<\/p>\n<p>max_s2s_connections<br \/>\n\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u043c\u0443 XMPP \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441 ACL, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1.  \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 max_s2s_connections_per_node.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{access, max_s2s_connections, [ {MaxNumber, ACLName}, &#8230;]}.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><br \/>\n\u0414\u043e 3 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c:<br \/>\n{access, max_s2s_connections, [{3, all}]}.<\/p>\n<p><strong>3.d \u0428\u0435\u0439\u043f\u0435\u0440<\/strong><br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{shaper, ShaperName, Kind}.<br \/>\n\u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e 1 \u0442\u0438\u043f(kind) \u0448\u0435\u0439\u043f\u0435\u0440\u0430 &#8212; maxrate<br \/>\n{maxrate, Rate}<br \/>\n\u0413\u0434\u0435 Rate  \u043c\u0430\u043a\u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0439 \u0432\u0445 \u043f\u043e\u0442\u043e\u043a \u0411\/\u0441. \u041f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438, ejabberd \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0438\u0437 \u0441\u043e\u043a\u0435\u0442\u0430 \u043f\u043e\u043a\u0430 \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043d\u0435 \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0438\u0436\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u043e\u0439.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><br \/>\n\u0428\u0435\u0439\u043f\u0435\u0440 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u2018normal\u2019 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0434\u043e  1,000 bytes\/second:<br \/>\n{shaper, normal, {maxrate, 1000}}.<br \/>\n\u0428\u0435\u0439\u043f\u0435\u0440 \u2018fast\u2019 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0434\u043e 50,000 bytes\/second:<br \/>\n{shaper, fast, {maxrate, 50000}}.<br \/>\n\u042f\u0437\u044b\u043a \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e<br \/>\n{language, &#171;ru&#187;}.<\/p>\n<p><strong>3.e \u041a\u0410\u041f\u0427\u0410<\/strong><br \/>\n\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0432\u0432\u043e\u0434 \u043a\u0430\u043f\u0447\u0438, \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442(XEP-0158), \u0442\u043e \u0432\u044b\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0432\u0435\u0431, \u0433\u0434\u0435 \u044d\u0442\u0430 \u043a\u0430\u043f\u0447\u0430 \u0438 \u0432\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<br \/>\n<em>\u041e\u043f\u0446\u0438\u0438:<\/em><br \/>\n{captcha_cmd, Path}<br \/>\n\u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u043e) \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: undefined<br \/>\n{captcha_host, ProtocolHostPort}<br \/>\nProtocolHostPort  \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0430\u0434\u0440\u0435\u0441 \u0433\u0434\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u0417\u0430\u043f\u0440\u043e\u0441 \u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432\u0438\u0434\u0435: Protocol:\/\/Host:Port\/captcha\/ \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: protocol http, \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0445\u043e\u0441\u0442, \u0438 port 80.<br \/>\nejabberd_http listener \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0441 captcha.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{hosts, [&quot;example.org&quot;]}.\r\n\r\n{captcha_cmd, &quot;\/lib\/ejabberd\/priv\/bin\/captcha.sh&quot;}.\r\n{captcha_host, &quot;example.org:5280&quot;}.\r\n%% {captcha_host, &quot;https:\/\/example.org:443&quot;}.\r\n%% {captcha_host, &quot;http:\/\/example.com&quot;}.\r\n\r\n{listen,\r\n [\r\n  ...\r\n  {5280, ejabberd_http, [\r\n                         captcha,\r\n                         ...\r\n                        ]\r\n  }\r\n\r\n]}.\r\n<\/pre>\n<p><strong>3.f STUN<\/strong><br \/>\nejabberd \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u0432 \u0440\u043e\u043b\u0438 STUN \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (RFC 5389). \u0422\u043e\u043b\u044c\u043a\u043e Binding \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0412 \u044d\u0442\u043e\u0439 \u0440\u043e\u043b\u0438 ejabberd \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0441 Jingle ICE (XEP-0176) \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043f\u043e\u0440\u0442 \u0438 \u0430\u0434\u0440\u0435\u0441.<br \/>\n\u041d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c ejabberd_stun. \u0415\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c certfile, ejabberd \u043c\u0443\u043b\u044c\u0442\u0435\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u0442 TCP \u0438 TLS \u0447\u0435\u0440\u0435\u0437 TCP \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u043f\u043e\u0440\u0442\u0443. \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f Binding \u0438 \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0434\u043b\u044f TURN. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u043f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{listen,\r\n [\r\n  ...\r\n  {{3478, udp}, ejabberd_stun, []},\r\n  {3478, ejabberd_stun, []},\r\n  {5349, ejabberd_stun, [{certfile, &quot;\/etc\/ejabberd\/server.pem&quot;}]},\r\n  ...\r\n ]\r\n}.\r\n<\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e DNS SRV \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0448\u043b\u0438 STUN \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e XMPP \u0434\u043e\u043c\u0435\u043d\u0430.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440 DNS SRV :<\/em><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n_stun._udp   IN SRV  0 0 3478 stun.example.com.\r\n_stun._tcp   IN SRV  0 0 3478 stun.example.com.\r\n_stuns._tcp  IN SRV  0 0 5349 stun.example.com.\r\n<\/pre>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438:<br \/>\ninclude_config_file<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{include_config_file, Filename}.<br \/>\n{include_config_file, Filename, [Suboption, &#8230;]}.<br \/>\n<em>\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u043e\u043f\u0446\u0438\u0438:<\/em><br \/>\n{disallow, [Optionname, &#8230;]}<br \/>\n\u0417\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u043e\u0434\u043e\u043f\u0446\u0438\u044e \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0438\u0447\u0435\u0433\u043e.<br \/>\n{allow_only, [Optionname, &#8230;]}<br \/>\n\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442  \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u043e\u0434\u043e\u043f\u0446\u0438\u044e \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{include_config_file, &quot;\/etc\/ejabberd\/additional.cfg&quot;}.\r\n{include_config_file, &quot;.\/example.org\/additional_not_listen.cfg&quot;, [{disallow, [listen]}]}.\r\n<\/pre>\n<p><strong>3.g \u041c\u0430\u043a\u0440\u043e\u0441\u044b:<\/strong><br \/>\n{define_macro, \u2019MACRO\u2019, Value}. \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0431\u0443\u043a\u0432\u0430\u043c\u0438 \u0438 \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0445 \u043a\u0430\u0432\u044b\u0447\u043a\u0430\u0445, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u044e\u0431\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u042d\u0440\u043b\u0430\u043d\u0433.<br \/>\n\u0414\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u044e\u0437\u0430\u0442\u044c \u043c\u0430\u043a\u0440\u043e\u0441\u044b, \u0432\u043c\u0435\u0441\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u0430\u0432\u0438\u043c \u2019MACRO\u2019, \u0435\u0441\u043b\u0438 \u043c\u0430\u043a\u0440\u043e\u0441 \u043d\u0435 \u0431\u044b\u043b \u043e\u0431\u044c\u044f\u0432\u043b\u0435\u043d \u0440\u0430\u043d\u0435\u0435, \u0442\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u043f\u0430\u0434\u0435\u0442. \u0418\u043b\u0438<br \/>\n{use_macro, \u2019MACRO\u2019, Defaultvalue}  \u0435\u0441\u043b\u0438 \u043c\u0430\u043a\u0440\u043e\u0441 \u043d\u0435 \u0431\u044b\u043b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Defaultvalue.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{define_macro, &#039;LOG_LEVEL_NUMBER&#039;, 5}.\r\n{loglevel, &#039;LOG_LEVEL_NUMBER&#039;}.\r\n\u0418\u043b\u0438\r\n{define_macro, &#039;NUMBER_PORT_C2S&#039;, 5222}.\r\n{define_macro, &#039;PORT_S2S_IN&#039;, {5269, ejabberd_s2s_in, []}}.\r\n{listen,\r\n [\r\n  {&#039;NUMBER_PORT_C2S&#039;, ejabberd_c2s, []},\r\n  &#039;PORT_S2S_IN&#039;,\r\n  {{use_macro, &#039;NUMBER_PORT_HTTP&#039;, 5280}, ejabberd_http, []}\r\n ]\r\n}.\r\n<\/pre>\n<p><strong>3.h \u0421\u0432\u044f\u0437\u044c \u0441 \u0411\u0414(MySQL)<\/strong><br \/>\n\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u0441\u0442\u0440\u043e\u0447\u0435\u0447\u043a\u0443:<br \/>\n{odbc_server, {mysql, &#171;localhost&#187;, Port, &#171;test&#187;, &#171;root&#187;, &#171;password&#187;}}.<br \/>\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f 10 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0441 \u0411\u0414, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e<br \/>\n{odbc_pool_size, 10}.<br \/>\n\u041c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a SQL \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 &#171;\u043d\u0430 \u043f\u043b\u0430\u0432\u0443&#187;<br \/>\n{odbc_keepalive_interval, undefined}.<br \/>\n\u0415\u0441\u043b\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043f\u0430\u043b\u043e, \u0436\u0434\u0435\u043c 30 \u0441\u0435\u043a \u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c\u0441\u044f<br \/>\n{odbc_start_interval, 30}.<br \/>\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 MySQL DB \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c<br \/>\n{auth_method, [odbc]}.<\/p>\n<p><strong>4. \u041c\u043e\u0434\u0443\u043b\u0438<\/strong><br \/>\n\u041a\u0430\u043a\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u044e\u0448\u043a\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u0434\u0430\u0439\u043c\u043e\u043d\u0430.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{modules, [ {ModuleName, ModuleOptions}, &#8230;]}.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  {mod_echo,      []}\r\n ]}.\r\n<\/pre>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u04402<\/em>(\u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e, \u043a\u0440\u043e\u043c\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439!!)<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  {mod_echo,      []},\r\n  {mod_time,      []},\r\n  {mod_version,   []}\r\n ]}.\r\n<\/pre>\n<p><em>\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438:<\/em><br \/>\nmod_adhoc<br \/>\nmod_announce\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_adhoc<br \/>\nmod_announce_odbc  \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_adhoc<br \/>\nmod_blocking\t \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f\tmod_privacy<br \/>\nmod_blocking_odbc  \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f  mod_privacy_odbc<br \/>\nmod_caps<br \/>\nmod_configure\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_adhoc<br \/>\nmod_disco<br \/>\nmod_echo<br \/>\nmod_http_bind<br \/>\nmod_http_fileserver<br \/>\nmod_irc\tIRC transport<br \/>\nmod_irc_odbc<br \/>\nmod_last<br \/>\nmod_last_odbc<br \/>\nmod_muc<br \/>\nmod_muc_odbc<br \/>\nmod_muc_log\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_muc or mod_muc_odbc<br \/>\nmod_offline<br \/>\nmod_offline_odbc<br \/>\nmod_ping<br \/>\nmod_pres_counter<br \/>\nmod_privacy<br \/>\nmod_privacy_odbc<br \/>\nmod_private<br \/>\nmod_private_odbc<br \/>\nmod_proxy65<br \/>\nmod_pubsub\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_caps<br \/>\nmod_pubsub_odbc\t \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_caps<br \/>\nmod_register<br \/>\nmod_register_web<br \/>\nmod_roster<br \/>\nmod_roster_odbc<br \/>\nmod_service_log<br \/>\nmod_shared_roster\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f\tmod_roster \u0438\u043b\u0438 \tmod_roster_odbc<br \/>\nmod_shared_roster_odbc\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f\tmod_roster \u0438\u043b\u0438 mod_roster_odbc<br \/>\nmod_shared_roster_ldap\tmod_roster \u0438\u043b\u0438\tmod_roster_odbc<br \/>\nmod_sic<br \/>\nmod_stats<br \/>\nmod_time<br \/>\nmod_vcard<br \/>\nmod_vcard_ldap<br \/>\nmod_vcard_odbc<br \/>\nmod_vcard_xupdate\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_vcard \u0438\u043b\u0438 mod_vcard_odbc<br \/>\nmod_vcard_xupdate_odbc\t\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f mod_vcard \u0438\u043b\u0438 mod_vcard_odbc<br \/>\nmod_version\t<\/p>\n<p>\u041c\u043e\u0434\u0443\u043b\u0438 \u0431\u0435\u0437 \u0441\u0443\u0444\u0438\u043a\u0441\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0411\u0414  Mnesia<br \/>\n\u2018_odbc\u2019, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0438\u0445 \u0411\u0414<br \/>\n\u2018_ldap\u2019, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a LDAP \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<br \/>\n<em>\u041e\u043f\u0446\u0438\u0438 \u043c\u043e\u0434\u0443\u043b\u0435\u0439:<\/em><br \/>\niqdisc \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 IQ  \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a example.org \u0438\u043b\u0438 user@example.org).<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{iqdisc, Value}<br \/>\n\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c:<br \/>\n no_queue<br \/>\n   \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430.  XMPP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435  \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0434\u043e \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f. \u041d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e.<br \/>\none_queue<br \/>\n    \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445  \u043f\u043e\u0442\u043e\u043a\u0430\u0445. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f.<br \/>\n{queues, N}<br \/>\n    \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f  N \u043f\u043e\u0442\u043e\u043a\u043e\u0432.<br \/>\nparallel<br \/>\n   \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043a \u042d\u0440\u043b\u0430\u043d\u0433 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0425\u043e\u0442\u044c \u042d\u0440\u043b\u0430\u043d\u0433 \u0438 \u043d\u0435 \u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u044b\u0439, \u043d\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043b\u0435\u0447\u044c(\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440 \u042d\u0440\u043b\u0430\u043d\u0433\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 32000 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438).<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_time, [{iqdisc, no_queue}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>host \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 Jabber ID  \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e ejabberd \u043c\u043e\u0434\u0443\u043b\u0435\u043c.<br \/>\n<em>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441:<\/em><br \/>\n{host, HostName}<br \/>\n\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c &#171;@HOST@&#187;, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<br \/>\n<em>\u041f\u0440\u0438\u043c\u0435\u0440:<\/em><\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_echo, [{host, &quot;mirror.example.org&quot;}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u043e\u0432 \u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043f\u043e\u0434\u043d\u044f\u0442\u043e, \u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_echo, [{host, &quot;mirror.@HOST@&quot;}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_announce<\/strong><br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c MoTD, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0438\u043b\u0438 \u043e\u0442\u043e\u0441\u043b\u0430\u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443. \u0410\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0431\u0435\u0437 \u0441\u043a\u043e\u0431\u043e\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u0430, \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u043e\u0432.<br \/>\nexample.org\/announce\/all (example.org\/announce\/all-hosts\/all)<br \/>\n\u0412\u0441\u0435\u043c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c, \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0444\u043b\u0430\u0439\u043d, \u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e, \u043a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f.<br \/>\nexample.org\/announce\/online (example.org\/announce\/all-hosts\/online)<br \/>\n\u0412\u0441\u0435\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c, \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u043a\u043b \u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c, \u0432\u0441\u0435 \u043e\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.<br \/>\nexample.org\/announce\/motd (example.org\/announce\/all-hosts\/motd)<br \/>\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 MOTD+ \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u043a\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c.<br \/>\nexample.org\/announce\/motd\/update (example.org\/announce\/all-hosts\/motd\/update)<br \/>\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 MOTD.<br \/>\nexample.org\/announce\/motd\/delete (example.org\/announce\/all-hosts\/motd\/delete)<br \/>\n\u041b\u044e\u0431\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u043c\u0443 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0443  \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 MOTD.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{access, AccessName}<br \/>\n\u041a\u043e\u043c\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0430 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 MOTD. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0438\u043a\u043e\u043c\u0443.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{access, announce, [{allow, admin}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_adhoc, []},\r\n  {mod_announce, [{access, announce}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c \u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432, \u043d\u0430 \u0442\u044b\u0441\u044f\u0447\u0430\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0432\u043a\u043b!<br \/>\n<strong>mod_disco<\/strong><br \/>\n\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f, \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0439\u0442\u0438 \u043a\u0430\u043a\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u0440\u0438 Service Discovery.<br \/>\n{extra_domains, [Domain, &#8230;]}<br \/>\n\u0417\u0430\u0434\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0434\u043b\u044f Service Discovery.<br \/>\n{server_info, [ {Modules, Field, [Value, &#8230;]}, &#8230; ]}<br \/>\n\u0414\u043e\u043f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0435(XEP-0157). \u0412 Modules \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u2018all\u2019 &#8212; \u0438\u043d\u0444\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0441\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u043e\u0434\u0443\u043b\u0435\u0439, \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f. \u041f\u043e\u043b\u044f Field \u0438 Value \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439.<br \/>\n\u0414\u043b\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: <\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_disco, [{extra_domains, [&quot;users.domen.ua&quot;]}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u0414\u043b\u044f \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0434\u043e\u043c\u0435\u043d\u0430\u0445<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_disco, [{extra_domains, [&quot;icq.example.com&quot;,\r\n                                &quot;msn.example.com&quot;]}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0440\u0443\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_disco, [{extra_domains, [&quot;example.org&quot;,\r\n                                &quot;example.com&quot;]}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u0412\u0441\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 abuse(\u0434\u043b\u044f \u0436\u0430\u043b\u043e\u0431) \u0430\u0434\u0440\u0435\u0441, \u0434\u043b\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u0430\u0434\u043c\u0438\u043d\u0441\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u0434\u043b\u044f \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 vJUD \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_disco, [{server_info, [\r\n      {all,\r\n       &quot;abuse-addresses&quot;,\r\n       [&quot;mailto:abuse@shakespeare.lit&quot;]},\r\n      {[mod_muc],\r\n       &quot;Web chatroom logs&quot;,\r\n       [&quot;http:\/\/www.example.org\/muc-logs&quot;]},\r\n      {[mod_disco],\r\n       &quot;feedback-addresses&quot;,\r\n       [&quot;http:\/\/shakespeare.lit\/feedback.php&quot;, &quot;mailto:feedback@shakespeare.lit&quot;, &quot;xmpp:feedback@shakespeare.lit&quot;]},\r\n      {[mod_disco, mod_vcard],\r\n       &quot;admin-addresses&quot;,\r\n       [&quot;mailto:xmpp@shakespeare.lit&quot;, &quot;xmpp:admins@shakespeare.lit&quot;]}\r\n  ]}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_echo<\/strong><br \/>\n\u0422\u0443\u043f\u043e \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432\u0441\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044e(\u043d\u0443\u0436\u0435\u043d \u043f\u0440\u0438 \u0434\u0435\u0431\u0430\u0433\u0435)<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{host, HostName}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 Jabber ID \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u0430 Jabber ID \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c \u2018echo.\u2019. \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e &#171;@HOST@&#187; \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_echo, [{host, &quot;mirror.example.org&quot;}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_http_bind<\/strong><br \/>\n\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 XMPP \u0447\u0435\u0440\u0435\u0437 Bosh (HTTP Binding) \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_http_bind, []},\r\n  ...\r\n]}.\r\n<\/pre>\n<p>\u041e\u043f\u0446\u0438\u0438:<br \/>\n{max_inactivity, Seconds}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 30 <\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_http_bind, [ {max_inactivity, 50} ]},\r\n  ...\r\n]}.\r\n<\/pre>\n<p><strong>mod_http_fileserver<\/strong><br \/>\n\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0444\u0430\u0439\u043b\u0441\u0435\u0440\u0432\u0435\u0440(\u043e\u0442\u0434\u0430\u0435\u0442 \u0444\u0430\u0439\u043b\u044b \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u043e \u0445\u0442\u0442\u043f)<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{docroot, Path}<br \/>\n\u041f\u0430\u043f\u043a\u0430 \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438.<br \/>\n{accesslog, Path}<br \/>\n\u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u043b\u043e\u0433\u0430(\u0410\u043f\u0430\u0447\u0435\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439).<br \/>\n{directory_indices, [Index, &#8230;]}<br \/>\n\u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, http:\/\/htaccess.net.ru\/doc\/), \u0438 \u0442\u0430\u043a\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u0434\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438\u0437 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438.<br \/>\n{custom_headers, [ {Name, Value}, &#8230;]}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 HTTP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043a\u043e \u0432\u0441\u0435\u043c \u043e\u0442\u0432\u0435\u0442\u0430\u043c. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: []<br \/>\n{content_types, [ {Name, Type}, &#8230;]}<br \/>\n\u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c \u0444\u0430\u0439\u043b\u043e\u0432. \u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c: \u2018undefined\u2019.<br \/>\n{default_content_type, Type}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0438\u043f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e  \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u2018application\/octet-stream\u2019.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440: \u0424\u0430\u0439\u043b\u044b \u0438\u0437 \/var\/www \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 http:\/\/example.org:5280\/pub\/archive\/.  \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u0442\u0438\u043f ogg, png \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d, \u0430 jpg \u0443\u0434\u0430\u043b\u0435\u043d. <\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_http_fileserver, [\r\n                         {docroot, &quot;\/var\/www&quot;}, \r\n                         {accesslog, &quot;\/var\/log\/ejabberd\/access.log&quot;},\r\n                         {directory_indices, [&quot;index.html&quot;, &quot;main.htm&quot;]},\r\n                         {custom_headers, [{&quot;X-Powered-By&quot;, &quot;Erlang\/OTP&quot;},\r\n                                           {&quot;X-Fry&quot;, &quot;It&#039;s a widely-believed fact!&quot;}\r\n                                          ]},\r\n                         {content_types, [{&quot;.ogg&quot;, &quot;audio\/ogg&quot;},\r\n                                          {&quot;.png&quot;, &quot;image\/png&quot;},\r\n                                          {&quot;.jpg&quot;, undefined}\r\n                                         ]},\r\n                         {default_content_type, &quot;text\/html&quot;}\r\n                        ]\r\n  },\r\n  ...\r\n]}.\r\n<\/pre>\n<p>\u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0440\u0442:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{listen, \r\n [\r\n  ...\r\n  {5280, ejabberd_http, [\r\n                         ...\r\n                         {request_handlers, [\r\n                                             ...\r\n                                             {[&quot;pub&quot;, &quot;archive&quot;], mod_http_fileserver},\r\n                                             ...\r\n                                            ]\r\n                         },\r\n                         ...\r\n                        ]\r\n  },\r\n  ...\r\n]}.\r\n<\/pre>\n<p><strong>mod_irc<\/strong><br \/>\n\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 IRC \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 IRC \u043a\u0430\u043d\u0430\u043b\u0430\u043c\u0438(\u043a\u043e\u043c\u0443 \u044d\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0443\u0436\u043d\u043e????) \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c.<br \/>\n<strong>mod_last<\/strong><br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437 \u0431\u044b\u043b \u043e\u043d\u043b\u0430\u0439\u043d<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n<strong>mod_muc<\/strong><br \/>\n\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0447\u0430\u0442. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0432\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438. \u0427\u0430\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043a\u0430\u043a \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0442\u0430\u043a \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c\u0438.<br \/>\n\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0447\u0430\u0442\u0430:<br \/>\n\u041f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u0438 \u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435.<br \/>\n\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443.<br \/>\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u043c\u0443 \u043a\u043e\u043c\u043d\u0430\u0442\u044b.<br \/>\n\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b.<br \/>\n\u041a\u0438\u043a \u0438 \u0431\u0430\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435.<br \/>\n\u0418\u043c\u044f \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e.<br \/>\n\u041e\u043f\u0446\u0438\u0438:><br \/>\n{host, HostName}<br \/>\n\u0417\u0430\u0434\u0430\u0435\u0442 Jabber ID \u0414\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430.\u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c \u2018conference.\u2019. \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e &#171;@HOST@&#187; \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<br \/>\n{access, AccessName}<br \/>\n\u041a\u043e\u043c\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d \u0447\u0430\u0442. \u041f\u043e \u0423\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435\u043c.<br \/>\n{access_create, AccessName}<br \/>\n\u041a\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>\n{access_persistent, AccessName}<br \/>\n\u041a\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c  \u2019\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435\u2019 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043c\u043d\u0430\u0442\u044b. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>\n{access_admin, AccessName}<br \/>\n\u041a\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0442. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0438\u043a\u0442\u043e(\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b). \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a service JID, \u0438 \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u043e \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u0430\u0445, \u0442\u0430\u043a\u0436\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0433\u043e \u0447\u0430\u0442\u0430 \u043a JID \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u044b, \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435.<br \/>\n{history_size, Size}<br \/>\n\u0420\u0430\u0437\u043c\u0435\u0440 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 20, 0-\u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043d\u0430\u0442.<br \/>\n{max_users, Number}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043e \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u0435, \u043d\u043e \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u043e. \u043f\u043e \u0443\u043c\u043e\u043b\u0430\u043d\u0438\u044e 200.<br \/>\n{max_users_admin_threshold, Number}<br \/>\n\u041a-\u0432\u043e \u0430\u0434\u043c\u0438\u043d\u043e\u0432 \u0438\u043b\u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435\u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0439\u0442\u0438 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 5.<br \/>\n{max_user_conferences, Number}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a-\u0432\u043e \u043a\u043e\u043c\u043d\u0430\u0442 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 10. \u0421\u043e\u0444\u0442\u043e\u0432\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u043f\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043c\u043e\u0436\u0435\u0442 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435.<br \/>\n{max_room_id, Number}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043c\u043d\u0430\u0442\u044b. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c.<br \/>\n{max_room_name, Number}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u043c\u043d\u0430\u0442\u044b. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c.<br \/>\n{max_room_desc, Number}><br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043d\u0430\u0442\u044b. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c.<br \/>\n{min_message_interval, Number}<br \/>\n\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043d\u0430\u0442. \u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442). \u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e, \u0442\u043e \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e. \u0417\u0430\u0449\u0438\u0442\u0430 \u0447\u0430\u0442\u0430 \u043e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 0.4 second. \u041f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u044b\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435.<br \/>\n{min_presence_interval, Number}<br \/>\n\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0441\u043c\u0435\u043d\u044b \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043d\u0430\u0442. \u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442). \u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e, \u0442\u043e \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 4.<br \/>\n{default_room_options, [ {OptionName, OptionValue}, &#8230;]}<br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043e\u043f\u0446\u0438\u0438  \u0434\u043b\u044f \u043a\u043e\u043c\u043d\u0430\u0442\u044b &#171;\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e&#187; \u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u043c\u043e\u0436\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b.<br \/>\n\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:<br \/>\n{allow_change_subj, true|false}<br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0435\u043c\u0443 \u043a\u043e\u043c\u043d\u0430\u0442\u044b.<br \/>\n{allow_private_messages, true|false}<br \/>\n\u041e\u0431\u043c\u0435\u043d \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435.<br \/>\n{allow_private_messages_from_visitors, anyone|moderators|nobody}<br \/>\n\u0413\u043e\u0441\u0442\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043a\u043e\u043c\u043d\u0430\u0442\u044b.<br \/>\n{allow_query_users, true|false}<br \/>\n\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c IQ \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c.<br \/>\n{allow_user_invites, false|true}<br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443.<br \/>\n{allow_visitor_nickchange, true|false}<br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u043e\u0441\u0442\u044f\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0438\u043a.<br \/>\n{allow_visitor_status, true|false}<br \/>\n\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u044f\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 . \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u043e \u0442\u0435\u043a\u0441\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0435\u0437\u0430\u043d \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0432 \u0447\u0430\u0442.<br \/>\n{anonymous, true|false}<br \/>\n\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435 \u043d\u0435 \u0432\u0438\u0434\u044f\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 JID. \u041c\u043e\u0434\u0435\u0440\u0430\u0442\u043e\u0440 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u043c\u043e\u0436\u0435\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 JID.<br \/>\n{captcha_protected, false}<br \/>\n\u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0439\u0442\u0438 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443 \u0438 \u043e\u043d\u0438 \u043d\u0435: owner, admin \u0438\u043b\u0438 member, \u0442\u043e \u043a\u043e\u043c\u043d\u0430\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u0430\u043f\u0447\u0443.<br \/>\n{logging, false|true}<br \/>\n\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e mod_muc_log.<br \/>\n{max_users, 200}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435.<br \/>\n{members_by_default, true|false}<br \/>\n\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u043e\u0448\u0435\u0434\u0448\u0438\u0439 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c. <\/p>\n<p>{members_only, false|true}<br \/>\n\u0422\u043e\u043b\u044c\u043a\u043e \u0447\u043b\u0435\u043d\u044b \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0439\u0442\u0438.<br \/>\n{moderated, true|false}<br \/>\n\u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441 \u043f\u0440\u0430\u0432\u043e\u043c \u0433\u043e\u043b\u043e\u0441\u0430 \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<br \/>\n{password, &#171;roompass123&#8243;}<br \/>\n\u041f\u0430\u0440\u043e\u043b\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b<br \/>\n{password_protected, false|true}<br \/>\n\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0432\u0432\u043e\u0434\u0430 \u043f\u0430\u0440\u043e\u043b\u044f \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443<br \/>\n{persistent, false|true}<br \/>\n\u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u0443 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0432\u044b\u0448\u0435\u043b.<br \/>\n{public, true|false}<br \/>\n\u041a\u043e\u043c\u043d\u0430\u0442\u0430 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u043e\u044d\u0442\u043e\u043c\u0443  \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0447\u0430\u0442\u043e\u0432.<br \/>\n{public_list, true|false}<br \/>\n\u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u0434\u0430\u0436\u0435 \u0431\u0435\u0437 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0443(\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0442\u043e \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u044f \u0432 \u043d\u0435\u0435)<br \/>\n{title, &#171;Room Title&#187;}<br \/>\n\u0427\u0435\u043b\u043e\u0432\u0435\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b:<br \/>\n\u0412\u0441\u0435\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0430\u0442\u043e\u043c. \u0412\u0441\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e admin@example.org \u043c\u043e\u0436\u0435\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u043a\u043e\u043c\u043d\u0430\u0442\u0443. \u041e\u043d \u0442\u0430\u043a\u0436\u0435 \u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u043c\u0438\u043d.\u041a\u043e\u0433\u0434\u0430 admin@example.org \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u2018\u043a\u0440\u044d\u0432\u044d\u0441\u0442\u2019 \u043d\u0430 conference.example.org, \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043e \u0432\u043e \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u0430\u0445.  \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430. <\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{acl, admin, {user, &quot;admin&quot;, &quot;example.org&quot;}}.\r\n\r\n{access, muc_admin, [{allow, admin}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_muc, [{access, all},\r\n             {access_create, all},\r\n             {access_admin, muc_admin},\r\n             {history_size, 0}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0437\u0430\u0440\u0435\u0433\u0430\u043d\u044b\u0445 \u0432 \u043d\u0430\u0448\u0435\u043c \u0434\u043e\u043c\u0435\u043d\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u0422\u043e\u043b\u044c\u043a\u043e \u0430\u0434\u043c\u0438\u043d \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b. \u041a\u043e\u0433\u0434\u0430 admin@example.org \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u2018\u043a\u0440\u044d\u0432\u044d\u0441\u0442\u2019 \u043d\u0430 conference.example.org, \u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043e \u0432\u043e \u0432\u0441\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043e\u043c\u043d\u0430\u0442\u0430\u0445.  \u041d\u0435 \u0437\u0430\u0434\u0430\u043d\u0430 \u043e\u043f\u0446\u0438\u044f history_size, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 20.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{acl, paying_customers, {user, &quot;customer1&quot;, &quot;example.net&quot;}}.\r\n{acl, paying_customers, {user, &quot;customer2&quot;, &quot;example.com&quot;}}.\r\n{acl, paying_customers, {user, &quot;customer3&quot;, &quot;example.org&quot;}}.\r\n{acl, admin, {user, &quot;admin&quot;, &quot;example.org&quot;}}.\r\n\r\n{access, muc_admin, [{allow, admin},\r\n                      {deny, all}]}.\r\n{access, muc_access, [{allow, paying_customers},\r\n                      {allow, admin},\r\n                      {deny, all}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_muc, [{access, muc_access},\r\n             {access_create, muc_admin},\r\n             {access_admin, muc_admin}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 3:  \u041e\u043f\u0446\u0438\u044f \u0410\u043d\u0442\u0438 abuse(\u0437\u043b\u043e\u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f, \u0436\u0430\u043b\u043e\u0431\u044b) \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 1 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432  0.4 \u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0438 \u0441\u0442\u0430\u0442\u0443\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d \u0447\u0430\u0449\u0435 \u0447\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0435 4 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0414\u043b\u0438\u043d\u0430 Room ID \u0438 Room Names \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0430 20 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438, \u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b  300 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432. ACL \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_muc, [{min_message_interval, 0.4},\r\n             {min_presence_interval, 4},\r\n             {max_room_id, 20},\r\n             {max_room_name, 20},\r\n             {max_room_desc, 300}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 4 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c default_room_option:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_muc, [{access, muc_access},\r\n             {access_create, muc_admin},\r\n             {default_room_options,\r\n              [\r\n               {allow_change_subj, false},\r\n               {allow_query_users, true},\r\n               {allow_private_messages, true},\r\n               {members_by_default, false},\r\n               {title, &quot;New chatroom&quot;},\r\n               {anonymous, false}\r\n              ]},\r\n             {access_admin, muc_admin}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_muc_log<\/strong><br \/>\n\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0430\u0442\u0430 \u0432 HTML. \u0412\u043a\u043b\u044e\u0447\u0438\u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c, \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0447\u0430\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b.<br \/>\n\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<br \/>\n\u0414\u0435\u0442\u0430\u043b\u0438 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u0432\u0435\u0440\u0445 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b: \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b, JID, \u0430\u0432\u0442\u043e\u0440,\u0442\u0435\u043c\u0430 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f.<br \/>\nJID \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0432 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c HTML  \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u043a\u043e\u043c\u043d\u0430\u0442\u0435.<br \/>\n\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u044b \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f.<br \/>\n\u0412\u0445\u043e\u0434\u044b, \u0432\u044b\u0445\u043e\u0434\u044b, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0438\u043a\u043e\u0432, \u043a\u0438\u043a\u0438, ,\u0431\u0430\u043d\u044b \u0438 \u2018\/me\u2019 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0443, \u0435\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e.<br \/>\n\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f HTML \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 XHTML 1.0 Transitional \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 CSS.<br \/>\n\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 &#171;\u0441\u0430\u043c\u043e\u0432\u044b\u0437\u043e\u0432\u043d\u044b\u0435&#187; \u043b\u0438\u043d\u043a\u0438.<br \/>\n\u041b\u0438\u043d\u043a\u0438 \u0432\u0432\u0435\u0440\u0445\u0443 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438: \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0434\u0435\u043d\u044c, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043d\u044c, \u0432\u0432\u0435\u0440\u0445.<br \/>\nCSS \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0438\u043b\u0435\u0439, \u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 CSS.<br \/>\nURLs \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445 \u0438 \u0442\u0435\u043c\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0438.<br \/>\n\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0437\u043e\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043a\u0430\u0445 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043b\u043e\u0433\u0435.<br \/>\n\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u0432\u0435\u0440\u0445\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{access_log, AccessName}<br \/>\n\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e muc_admin. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443 \u0432\u0430\u0441 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f muc_admin.<br \/>\n{cssfile, false|URL}<br \/>\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439  CSS \u0438\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439.<br \/>\n{dirname, room_jid|room_name}<br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043c\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u043d\u0430\u0442\u044b. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f room_jid \u0438 room_name. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e room_jid.<br \/>\n{dirtype, subdirs|plain}<br \/>\n\u0422\u0438\u043f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439.  subdirs \u043f\u043e\u0434\u043f\u0430\u043f\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u0438 \u043c\u0435\u0441\u044f\u0446\u0430. \u043f\u0440\u0438 plain, \u0438\u043c\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0434\u0430\u0442\u0443, \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e subdirs.<br \/>\n{file_format, html|plaintext}<br \/>\n\u0424\u043e\u0440\u043c\u0430\u0442 \u043b\u043e\u0433\u043e\u0432, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e html.<br \/>\n{outdir, Path}<br \/>\n\u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e www\/muc.<br \/>\n{spam_prevention true|false}<br \/>\n\u041f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0441\u043f\u0430\u043c\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a\u0430\u043c\u0438. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e true.<br \/>\n{timezone, local|universal}<br \/>\n\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0437\u043e\u043d\u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e local(\u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043a\u0438) \u0442\u0430\u043a\u0436\u0435  universal(GMT\/UTC).<br \/>\n{top_link, {URL, Text}}<br \/>\n\u041b\u0438\u043d\u043a \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0430. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e {&#171;\/&#187;, &#171;Home&#187;}.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b:<br \/>\n\u041b\u044e\u0431\u043e\u0439 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u043c\u043e\u0436\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0437\u0430\u0434\u0430\u043d \u0441\u0432\u043e\u0439 CSS (http:\/\/example.com\/my.css). \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0434\u0430\u0442\u0443, \u0438 \u0431\u0435\u0437 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439.  \u043b\u043e\u0433\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432 \/var\/www\/muclogs, \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0437\u043e\u043d\u0430 GMT\/UTC. \u0412\u0432\u0435\u0440\u0445\u0443 \u0441\u0441\u044b\u043b\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 <a href=\"http:\/\/www.jabber.ru\/\">Jabber.ru<\/a>.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{access, muc, [{allow, all}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_muc_log, [\r\n                 {access_log, muc},\r\n                 {cssfile, &quot;http:\/\/example.com\/my.css&quot;},\r\n                 {dirtype, plain},\r\n                 {dirname, room_jid},\r\n                 {outdir, &quot;\/var\/www\/muclogs&quot;},\r\n                 {timezone, universal},\r\n                 {spam_prevention, true},\r\n                 {top_link, {&quot;http:\/\/www.jabber.ru\/&quot;, &quot;Jabber.ru&quot;}}\r\n                ]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 2: \u0422\u043e\u043b\u044c\u043a\u043e admin1@example.org \u0438 admin2@example.net \u043c\u043e\u0433\u0443\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 CSS. \u0418\u043c\u044f \u043b\u043e\u0433\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0435\u043d\u044c(\u043d\u043e\u043c\u0435\u0440) \u0438 \u043f\u043e\u0434\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u0438 \u043c\u0435\u0441\u044f\u0446\u0430. \u041b\u043e\u0433\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432  \/var\/www\/muclogs, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0421\u0441\u044b\u043b\u043a\u0430 \u0432\u0432\u0435\u0440\u0445\u0443 <a href=\"\/\">Home<\/a>.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{acl, admin, {user, &quot;admin1&quot;, &quot;example.org&quot;}}.\r\n{acl, admin, {user, &quot;admin2&quot;, &quot;example.net&quot;}}.\r\n\r\n{access, muc_log, [{allow, admin},\r\n                   {deny, all}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_muc_log, [\r\n                 {access_log, muc_log},\r\n                 {cssfile, false},\r\n                 {dirtype, subdirs},\r\n                 {outdir, &quot;\/var\/www\/muclogs&quot;},\r\n                 {timezone, local}\r\n                ]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_offline<\/strong><br \/>\n\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0444\u043b\u0430\u0439\u043d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0423 ejabberdctl \u0435\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u0442\u0435\u043a\u0448\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{access_max_user_messages, AccessName}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u0432\u043e\u0442\u0443 \u043e\u0444\u043b\u0430\u0439\u043d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u041f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043e\u0448\u0438\u0431\u043a\u0435.  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e max_user_offline_messages. \u041c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u043e  max_user_sessions.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440: \u0434\u043b\u044f poweruser \u043a\u0432\u043e\u0442\u0430 5\u041a, \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u043e\u0432 2\u041a, \u0434\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 100.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{acl, admin, {user, &quot;admin1&quot;, &quot;localhost&quot;}}.\r\n{acl, admin, {user, &quot;admin2&quot;, &quot;example.org&quot;}}.\r\n{acl, poweruser, {user, &quot;bob&quot;, &quot;example.org&quot;}}.\r\n{acl, poweruser, {user, &quot;jane&quot;, &quot;example.org&quot;}}.\r\n{access, max_user_offline_messages, [ {5000, poweruser}, {2000, admin}, {100, all} ]}.\r\n{modules,\r\n [\r\n  ...\r\n  {mod_offline,  [ {access_max_user_messages, max_user_offline_messages} ]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_ping<\/strong><br \/>\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430  XMPP Ping \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445 \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438(keep-alive)<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\nConfiguration options:<br \/>\n{send_pings, true|false}<br \/>\n\u041e\u0442\u0441\u044b\u043b\u0430\u0442\u044c \u043f\u0438\u043d\u0433 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 ping_interval. \u041f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430.<br \/>\n{ping_interval, Seconds}<br \/>\n\u041a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0438\u043d\u0433\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c, \u0415\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u0438 \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u0437\u0430 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0438\u043d\u0433 \u043a\u043b\u0438\u0435\u043d\u0442\u0443. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 60 \u0441\u0435\u043a\u0443\u043d\u0434.<br \/>\n{timeout_action, none|kill}<br \/>\n\u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u043d\u0430 \u043f\u0438\u043d\u0433 \u0437\u0430 32\u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0438\u0447\u0435\u0433\u043e.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440:<br \/>\n\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442  \u043f\u0438\u043d\u0433 \u043f\u0440\u0438 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 4 \u043c\u0438\u043d\u0443\u0442\u044b, \u0430 \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u0438 \u043d\u0430 \u043f\u0438\u043d\u0433 \u0437\u0430 32 \u0441\u0435\u043a\u0443\u043d\u0434\u044b &#8212; \u043f\u0440\u0438\u0431\u0438\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044e.<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_ping,  [{send_pings, true}, {ping_interval, 240}, {timeout_action, kill}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_pres_counter<\/strong><br \/>\n\u0414\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0430\u043c\u0430.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{count, StanzaNumber}<br \/>\n\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0434\u043b\u044f (subscribe, unsubscribe, subscribed, unsubscribed) \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u0432\u0445 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434) \u0437\u0430 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438. 2 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0434\u0440\u0443\u0433 \u043d\u0430 \u0434\u0440\u0443\u0433\u0430 \u043e\u0431\u044b\u0447\u043d\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0442 4 \u0441\u0442\u0440\u043e\u0444\u044b, \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 5.<br \/>\n{interval, Seconds}<br \/>\n\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445.  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 60.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440: \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u043e  5 \u0441\u0442\u0440\u043e\u0444 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0438\u043b\u0438 \u043f\u0440\u0438\u0435\u043c\u0430 \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0438 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b 60 \u0441\u0435\u043a\u0443\u043d\u0434: <\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_pres_counter,  [{count, 5}, {interval, 60}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_privacy<\/strong><br \/>\n\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0441\u0442\u0438:<br \/>\n\u041a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0432\u043e\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432,<br \/>\n\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432,<br \/>\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432,<br \/>\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e,<br \/>\n\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 JID, \u0433\u0440\u0443\u043f\u043f\u0435, \u0442\u0438\u043f\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438(\u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e).<br \/>\n\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 JID, \u0433\u0440\u0443\u043f\u043f\u0435, \u0442\u0438\u043f\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438(\u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e).<br \/>\n\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 JID, \u0433\u0440\u0443\u043f\u043f\u0435, \u0442\u0438\u043f\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438(\u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e).<br \/>\n\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 IQ stanzas \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 JID, \u0433\u0440\u0443\u043f\u043f\u0435, \u0442\u0438\u043f\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438(\u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e).<br \/>\n\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u0441\u0435\u0445 \u0432\u0438\u0434\u043e\u0432 \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 JID, \u0433\u0440\u0443\u043f\u043f\u0435, \u0442\u0438\u043f\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0438(\u0438\u043b\u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e).<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n\u0422\u0438\u043f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 IQ \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 Blocking Communication (jabber:iq:privacy).<br \/>\n<strong>mod_private<\/strong><br \/>\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Private XML \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (XEP-0049):<br \/>\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u043b\u0430\u0434\u043e\u043a, \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n\u0422\u0438\u043f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 IQ \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430  Private XML  (jabber:iq:private).<br \/>\n<strong>mod_proxy65<\/strong><br \/>\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SOCKS5 \u043f\u0440\u043e\u043a\u0441\u0438. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442  \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u0438\u0435 \u0432 \u043e\u0431\u043c\u0435\u043d\u0435 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 2 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{host, HostName}<br \/>\n\u0417\u0430\u0434\u0430\u0435\u0442 Jabber ID \u0414\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430.\u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c \u2018proxy.\u2019. \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e &#171;@HOST@&#187; \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<br \/>\n{name, Text}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e &#171;SOCKS5 Bytestreams&#187;.<br \/>\n{ip, IPTuple}<br \/>\n\u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0438\u0444\u0435\u0439\u0441\u0435 \u0441\u043b\u0443\u0448\u0430\u0442\u044c. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e IP \u0430\u0434\u0440\u0435\u0441 \u043e\u0442 \u0434\u043d\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0438\u043b\u0438, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, {127,0,0,1}.<br \/>\n{port, Number}<br \/>\n\u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 7777.<br \/>\n{hostname, HostName}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u043a\u043e\u0433\u0434\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438. \u0423\u0434\u043e\u0431\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0441\u0435\u0440\u0432\u0438\u0441 \u0437\u0430 \u043d\u0430\u0442\u043e\u043c. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 ip. \u041f\u0440\u0438\u043c\u0435\u0440: &#171;proxy.mydomain.org&#187;, &#171;200.150.100.50&#8243;. \u041b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043d\u0441.<br \/>\n{auth_type, anonymous|plain}<br \/>\n\u0442\u0438\u043f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 SOCKS5. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: anonymous \u0438 plain. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e anonymous.<br \/>\n{access, AccessName}<br \/>\nACL \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e all.<br \/>\n{max_connections, Number}><br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043d\u0430 \u0444\u0430\u0439\u043b, \u0438\u043d\u0438\u0446\u0438\u0430\u0442\u043e\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439.<\/p>\n<p>{shaper, none|ShaperName}<br \/>\n\u0428\u0435\u0439\u043f\u0435\u0440 \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435\u0442.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 1: \u0421\u0430\u043c\u0430\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_proxy65, []},\r\n  ...\r\n ]}.\r\n <\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 2: \u0411\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{acl, proxy_users, {server, &quot;example.org&quot;}}.\r\n{access, proxy65_access, [{allow, proxy_users}, {deny, all}]}.\r\n\r\n{acl, admin, {user, &quot;admin&quot;, &quot;example.org&quot;}}.\r\n{shaper, proxyrate, {maxrate, 10240}}. %% 10 Kbytes\/sec\r\n{access, proxy65_shaper, [{none, admin}, {proxyrate, proxy_users}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_proxy65, [{host, &quot;proxy1.example.org&quot;},\r\n                 {name, &quot;File Transfer Proxy&quot;},\r\n                 {ip, {200,150,100,1}},\r\n                 {port, 7778},\r\n                 {max_connections, 5},\r\n                 {access, proxy65_access},\r\n                 {shaper, proxy65_shaper}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_pubsub<\/strong><br \/>\n\u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 \u0430\u0441\u0442\u0435\u0440\u0438\u0441\u043a\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0447\u0438\u043a\u043e\u0432 \u0438\u0442\u0434.<br \/>\n{host, HostName}<br \/>\n\u0417\u0430\u0434\u0430\u0435\u0442 Jabber ID \u0414\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430.\u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c \u2018pubsub.\u2019. \u0421\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e &#171;@HOST@&#187; \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u043c\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430.<br \/>\n{access_createnode, AccessName}<br \/>\n\u041a\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435.<br \/>\n{max_items_node, MaxItems}<br \/>\n\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a-\u0432\u043e \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u043e\u0434\u0435. \u041f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 10.<br \/>\n{plugins, [ Plugin, &#8230;]}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u041f\u0435\u0440\u0432\u044b\u0439 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e \u0442\u043e: [&#8220;flat&#8221;]. PubSub \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043d\u043e\u0434\u044b: \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c type=\u2019plugin-name\u2019 \u043a create(\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e) \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0441\u0442\u0440\u043e\u0444\u044b.<br \/>\n{nodetree, Nodetree}<br \/>\n\u041a\u0430\u043a\u043e\u0439 nodetree \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u043e:  &#8220;tree&#8221;. \u0422\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d nodetree \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430 \u0445\u043e\u0441\u0442\u0435, \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043d\u043e\u0434\u044b. &#8220;virtual&#8221; nodetree \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u043d\u043e\u0434\u044b \u0432 \u0411\u0414. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0441\u0438\u0441\u0442\u0435\u043c \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u043e\u0434. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u043f\u0440\u0438 &#8220;virtual&#8221; : [&#8220;flat&#8221;,&#8221;pep&#8221;] \u0438\u043b\u0438 [&#8220;flat&#8221;]. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443 \u0432\u0441\u0435\u0445 \u043d\u043e\u0434 \u0431\u0443\u0434\u0443\u0442 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0438 \u044d\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c.  \u041d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0448\u044c \u0441 \u0447\u0438\u0441\u0442\u043e\u0439 \u0411\u0414, \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0439 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 tree.<br \/>\n&#8220;dag&#8221; \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430  PubSub Collection Nodes (XEP-0248).<br \/>\n{ignore_pep_from_offline, false|true}<br \/>\n\u0414\u043e\u043b\u0436\u043d\u044b \u0438\u043b\u0438 \u043d\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435  PEP(\u0438\u043d\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 PubSub, \u044d\u0442\u043e \u043d\u0435 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435, \u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0432\u0435\u0449\u0438. \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442 \u0438 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043a\u0438 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438: \u043a\u0442\u043e-\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443, PEP \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0435\u0451 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0435\u0442 \u0432\u0441\u0435\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u0430\u043c. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u0445.) \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043e\u0444\u043b\u0430\u0439\u043d \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u043e\u0448\u043b\u0438.  \u0435\u0441\u043b\u0438 \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0442\u043e true,\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 &#8220;\u0441\u0442\u0430\u0442\u0443\u0441&#8221; \u043e\u0442 \u043e\u043d\u043b\u0430\u0439\u043d\u043e\u0432\u044b\u0445 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432.<br \/>\n{last_item_cache, false|true}<br \/>\n\u041a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438.\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u043a\u0435\u0448\u0438\u0440\u0443\u0435\u0442. \u041d\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a-\u0432\u043e\u043c \u043d\u043e\u0434, \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u0435\u0442 \u043f\u0430\u043c\u044f\u0442\u044c.<br \/>\n{pep_mapping, [ {Key, Value}, &#8230;]}<br \/>\n\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a Key-Value \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043d\u043e\u0434 \u0441 \u0437\u0430\u0434\u0430\u043d\u044b\u043c PEP namespace.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440: \u0411\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f node_tune \u0432\u043c\u0435\u0441\u0442\u043e node_pep \u0434\u043b\u044f \u0432\u0441\u0435\u0445 PEP \u043d\u043e\u0434 \u0441 tune namespace:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{mod_pubsub, [{pep_mapping, [{&quot;http:\/\/jabber.org\/protocol\/tune&quot;, &quot;tune&quot;}]}]}\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u04402: \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  flat \u043d\u043e\u0434\u044b, \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b  flat, nodetree \u0438 pep \u043d\u043e\u0434\u044b:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_pubsub, [\r\n                {access_createnode, pubsub_createnode},\r\n                {plugins, [&quot;flat&quot;, &quot;hometree&quot;, &quot;pep&quot;]}\r\n               ]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u04403  \u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433, \u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c ODBC(\u0430\u0441\u0442\u0435\u0440 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0442\u0430\u043a \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0442\u044c):<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_pubsub_odbc, [\r\n                {access_createnode, pubsub_createnode},\r\n                {plugins, [&quot;flat_odbc&quot;, &quot;hometree_odbc&quot;, &quot;pep_odbc&quot;]}\r\n               ]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_register<\/strong><br \/>\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 In-Band Registration (XEP-0077). \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u0438\u0435\u043d\u0442<br \/>\n\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435Register a new account on the server.<br \/>\n\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>\n\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{access, AccessName}<br \/>\n\u041a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u0430 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u044b. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e.<br \/>\n{access_from, AccessName}<br \/>\n\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, ejabberd \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0438\u0437 s2s \u0438\u043b\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 c2s \u0441\u0435\u0441\u0441\u0438\u0439. \u041c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435.<br \/>\n{captcha_protected, false|true}<br \/>\n\u0417\u0430\u0449\u0438\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CAPTCHA. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e.<br \/>\n{ip_access, [ {allow|deny, IPaddress}, &#8230;]}<br \/>\n\u0421 \u043a\u0430\u043a\u0438\u0445 \u0438\u043f\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  \u201callow\u201d  \u0435\u0441\u043b\u0438 \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u043c\u0430\u0441\u043a\u0430. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 IPv6. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e(\u043f\u0443\u0441\u0442\u043e) [].<br \/>\n{password_strength, Entropy}<br \/>\n\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438 \u0434\u043b\u044f \u043f\u0430\u0440\u043e\u043b\u044f. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Entropy \u0447\u0438\u0441\u043b\u043e \u0431\u0438\u0442 \u044d\u043d\u0442\u0440\u043e\u043f\u0438\u0438. \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043c\u0438\u043d\u0438\u043c\u0443\u043c 32 bits. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0(\u043d\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438).<br \/>\n{welcome_message, {Subject, Body}}<br \/>\n\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \\n(\u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430)<br \/>\n{registration_watchers, [ JID, &#8230;]}<br \/>\n\u041a\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d \u043e \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438.<br \/>\n{iqdisc, Discipline}<br \/>\n\u0417\u0430\u0434\u0430\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 In-Band Registration (jabber:iq:register).<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 1 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0438\u043c\u0435\u043d, \u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043b\u043e\u043a\u0430\u043b\u043a\u0438:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{acl, shortname, {user_glob, &quot;?&quot;}}.\r\n{acl, shortname, {user_glob, &quot;??&quot;}}.\r\n%% The same using regexp:\r\n%%{acl, shortname, {user_regexp, &quot;^..?$&quot;}}.\r\n\r\n{access, register, [{deny, shortname},\r\n                    {allow, all}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_register, [{access, register},\r\n                  {ip_access, [{allow, &quot;127.0.0.0\/8&quot;},\r\n                               {deny, &quot;0.0.0.0\/0&quot;}]}\r\n  ]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 2: \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c, \u043d\u043e \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{access, register, [{deny, all}]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_register, [{access, register}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 3 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435, \u0438 2 \u0443\u0447\u0435\u0442\u043a\u0438 \u043a\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{registration_timeout, 3600}.\r\n{modules,\r\n [\r\n  ...\r\n  {mod_register,\r\n   [\r\n    {welcome_message, {&quot;Welcome!&quot;, &quot;Hi.\\nWelcome to this Jabber server.\\n Check http:\/\/www.jabber.org\\n\\nBye&quot;}},\r\n    {registration_watchers, [&quot;admin1@example.org&quot;, &quot;boss@example.net&quot;]}\r\n   ]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_register_web<\/strong><br \/>\n\u0412\u0435\u0431\u043c\u043e\u0440\u0434\u0430 \u0434\u043b\u044f:<br \/>\n\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435Register a new account on the server.<br \/>\n\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<br \/>\n\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.<br \/>\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043f\u0447\u0430.<br \/>\n\u041e\u043f\u0446\u0438\u044f:<br \/>\n{registration_watchers, [ JID, &#8230;]}<br \/>\n\u041a\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d \u043e \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u044c https:\/\/example.org:5281\/register\/: <\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{hosts, [&quot;localhost&quot;, &quot;example.org&quot;, &quot;example.com&quot;]}.\r\n\r\n{listen, [\r\n  ...\r\n  {5281, ejabberd_http, [\r\n    tls,\r\n    {certfile, &quot;\/etc\/ejabberd\/certificate.pem&quot;},\r\n    register\r\n  ]},\r\n  ...\r\n]}.\r\n\r\n{modules,\r\n [\r\n  ...\r\n  {mod_register_web, []},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_roster<\/strong><br \/>\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u043e\u0441\u0442\u0435\u0440\u0430(\u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432)<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430  IQ Roster Management (jabber:iq:roster).<br \/>\n{versioning, false|true}<br \/>\n\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u043e\u0441\u0442\u0435\u0440\u0430, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b.<br \/>\n{store_current_id, false|true}<br \/>\n\u0415\u0441\u043b\u0438 \u043e\u043f\u0446\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u0432\u0435\u0440\u0441\u0438\u044f \u0440\u043e\u0441\u0442\u0435\u0440\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0411\u0414(\u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0411\u0414 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440). \u0415\u0441\u043b\u0438 \u0432\u044b\u043a\u043b, \u043d\u043e\u043c\u0435\u0440 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u0435\u0442\u0443. \u0412\u0410\u0416\u041d\u041e: \u0415\u0441\u043b\u0438 \u044e\u0437\u0430\u0435\u0442\u0435 mod_shared_roster, mod_shared_roster_odbc \u0438\u043b\u0438 mod_shared_roster_ldap, \u041d\u0443\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u044d\u0442\u0443 \u043e\u043f\u0446\u0438\u044e.<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0441 \u0432\u043a\u043b \u0432\u0440\u0435\u0441\u0438\u043e\u043d\u043d\u043e\u0441\u0442\u044c\u044e:<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_roster, [{versioning, true}, {store_current_id, true}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_service_log<\/strong><br \/>\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u0441\u043b\u0443\u0436\u0431\u0443 \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u043a Bandersnatch. \u0412\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u0442\u0435\u0433 route \u0438 \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043f\u0435\u0446 \u0441\u0435\u0440\u0432\u0438\u0441.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{loggers, [Names, &#8230;]}<br \/>\n\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b<br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043a Bandersnatch \u043d\u0430 bandersnatch.example.com<\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n{modules,\r\n [\r\n  ...\r\n  {mod_service_log, [{loggers, [&quot;bandersnatch.example.com&quot;]}]},\r\n  ...\r\n ]}.\r\n<\/pre>\n<p><strong>mod_shared_roster<\/strong><br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0443\u0447\u043a\u0430\u043c\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b. \u041f\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431\u043c\u043e\u0440\u0434\u0443. \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0435\u0441\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<br \/>\nName \u0418\u043c\u044f \u0433\u0440\u0443\u043f\u044b \u0432 \u0440\u043e\u0441\u0442\u0435\u0440\u0435ster.<br \/>\nDescription \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u044b.<br \/>\nMembers \u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0447\u0435\u0442\u043e\u043a \u0432 \u0433\u0440\u0443\u043f\u043f\u0435, \u0432\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0432 \u0430\u0434\u043c\u0438\u043d\u043a\u0435. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 @all@ \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u0437\u0430\u0440\u0435\u0433\u0430\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430 \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u0435(\u043d\u0435 \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439);  @online@ \u0412\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043e\u043d\u043b\u0430\u0439\u043d.<br \/>\nDisplayed groups<br \/>\n\u0421\u043f\u0438\u0441\u043e\u043a \u0433\u0440\u0443\u043f\u043f  \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0430 \u0432 \u0440\u043e\u0441\u0442\u0435\u0440 \u044d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0430. \u0433\u0440\u0443\u043f\u043f\u0430 \u0441 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a groupid@vhost<br \/>\n\u0415\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 mod_shared_roster_ldap<br \/>\n<strong>mod_sic<\/strong><br \/>\n\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 Server IP (XEP-0279). \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0418\u041f.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n\u0421\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 urn:xmpp:sic:0.<br \/>\nmod_stats \u0441\u0431\u043e\u0440 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<br \/>\n\u041e\u0431\u0449\u0435\u0435 \u043a-\u0432\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0438\u0440\u0442. \u0445\u043e\u0441\u0442\u0435 (users\/total).<br \/>\n\u041e\u0431\u0449\u0435\u0435 \u043a-\u0432\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0432\u0438\u0440\u0442. \u0445\u043e\u0441\u0442\u0430\u0445 (users\/all-hosts\/total).<br \/>\n\u041e\u0431\u0449\u0435\u0435 \u043a-\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u043d\u043b\u0430\u0439\u043d \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0438\u0440\u0442. \u0445\u043e\u0441\u0442\u0435 (users\/online).<br \/>\n\u041e\u0431\u0449\u0435\u0435 \u043a-\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u043d\u043b\u0430\u0439\u043d \u043d\u0430 \u0432\u0441\u0435\u0445 \u0432\u0438\u0440\u0442. \u0445\u043e\u0441\u0442\u0430\u0445 (users\/all-hosts\/online).<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n\u0421\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Statistics Gathering (http:\/\/jabber.org\/protocol\/stats)<br \/>\n\u041c\u0430\u043b\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u0443 \u043e\u043f\u0446\u0438\u044e.<br \/>\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u043d\u043b\u0430\u0439\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0432\u0438\u0440\u0442 \u0445\u043e\u0441\u0442\u0435:<\/p>\n<pre class=\"brush: xml; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n&lt;iq to=&#039;example.org&#039; type=&#039;get&#039;&gt;\r\n  &lt;query xmlns=&#039;http:\/\/jabber.org\/protocol\/stats&#039;&gt;\r\n    &lt;stat name=&#039;users\/online&#039;\/&gt;\r\n  &lt;\/query&gt;\r\n&lt;\/iq&gt;\r\n<\/pre>\n<p><strong>mod_time<\/strong><br \/>\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f XEP, \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 &#171;\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438&#187;.<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{iqdisc, Discipline}<br \/>\n\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 Entity Time (jabber:iq:time).<br \/>\n<strong>mod_vcard<\/strong><br \/>\n\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c vCard.<br \/>\n<strong>mod_vcard_ldap<\/strong> \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0434\u043e\u043c\u0435\u043d.<br \/>\n<strong>mod_vcard_xupdate<\/strong><br \/>\n\u041a\u043b\u0438\u0435\u043d\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0430\u0432\u0430\u0442\u0430\u0440\u044b \u0432 vCard.<br \/>\n<strong>mod_version<\/strong> \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u043e\u0444\u0442\u0430<br \/>\n\u041e\u043f\u0446\u0438\u0438:<br \/>\n{show_os, true|false}<br \/>\n\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u041e\u0421, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u0430.<br \/>\n{iqdisc, Discipline}<br \/>\n\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Software Version (jabber:iq:version)<br \/>\nIQ (Info\/Query) \u2014 \u043e\u0441\u043e\u0431\u044b\u0439 \u0432\u0438\u0434 \u0441\u0442\u0440\u043e\u0444, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0442\u0438\u043f\u0430 \u00ab\u0437\u0430\u043f\u0440\u043e\u0441-\u043e\u0442\u0432\u0435\u0442\u00bb. \u0418\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u044f IQ-\u0441\u0442\u0440\u043e\u0444 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u00ab\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438\u00bb \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u00ab\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438\u00bb. \u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0438\u043b\u0438 \u043e\u0442\u0432\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0438\u043c\u0451\u043d (namespace) \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a IQ.<\/p>\n<p>\u041e\u0431\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0433\u0434\u0435-\u0442\u043e \u0442\u0430\u043a\u0438\u043c <\/p>\n<pre class=\"brush: erlang; gutter: true; first-line: 1; highlight: []; html-script: false\">\r\n%%global override\r\noverride_local.\r\noverride_acls.\r\noverride_global.\r\n%%work in this host\r\n{hosts, [&quot;jabber.domen.ua&quot;]}.\r\n%%ACL\r\n{acl, admin, {user, &quot;bos&quot;}}.\r\n{acl, local, {user_regexp, &quot;&quot;}}.\r\n{acl, shortname, {user_glob, &quot;?&quot;}}.\r\n{acl, shortname, {user_glob, &quot;??&quot;}}.\r\n%%ACCESS\r\n{access, pubsub_createnode, [{allow, all}]}.\r\n{access, register, [{deny, shortname},{allow, all}]}.\r\n{access, c2s, [{deny, blocked}, {allow, all}]}.\r\n{access, c2s_shaper, [{none, admin}, {normal, all}]}.\r\n{access, s2s_shaper, [{fast, all}]}.\r\n{access, announce, [{allow, admin}]}.\r\n{access, configure, [{allow, admin}]}.\r\n{access, muc_admin, [{allow, admin}]}.\r\n{access, muc, [{allow, all}]}.\r\n%%SHAPER\r\n{shaper, normal, {maxrate, 128000}}.\r\n{shaper, fast, {maxrate, 256000}}.\r\n%%OTHER\r\n{auth_method, odbc}.\r\n{odbc_server, {mysql, &quot;localhost&quot;, &quot;jabber&quot;, &quot;jabber_admin&quot;, &quot;passwordddd&quot;}}.\r\n{odbc_pool_size, 3}.\r\n{max_user_sessions, 10000}.\r\n{language, &quot;ru&quot;}.\r\n{welcome_message, {&quot;Welcome!&quot;,&quot;Problems? Just call 12640&quot;}}.\r\n{resource_conflict, closeold}.\r\n%%% listen ports\r\n{listen,\r\n [\r\n   {5222, ejabberd_c2s, [\r\n   {certfile, &quot;\/usr\/local\/etc\/ejabberd\/ssl.pem&quot;}, starttls,\r\n   {access, c2s},\r\n   {shaper, c2s_shaper},\r\n   {max_stanza_size, 65536},\r\n   zlib\r\n   ]},\r\n {5280, ejabberd_http, [\r\n web_admin,\r\n {certfile, &quot;\/usr\/local\/etc\/ejabberd\/ssl.pem&quot;},\r\n tls\r\n ]}\r\n ]}.\r\n{s2s_use_starttls, true}.\r\n{s2s_certfile, &quot;\/usr\/local\/etc\/ejabberd\/ssl.pem&quot;}.\r\n{outgoing_s2s_port, 5269}.\r\n%%MODULES\r\n{modules,\r\n[\r\n{mod_register, [{welcome_message, {&quot;Welcome!&quot;,&quot;Welcome to this Jabber server.&quot;}},{registration_watchers,[&quot;bos@jabber.domen.ua&quot;]},{access, register}]},\r\n{mod_roster_odbc,[]},\r\n{mod_shared_roster_odbc,[]},\r\n{mod_privacy_odbc, []},\r\n{mod_adhoc, []},\r\n{mod_announce_odbc, [{access, announce}]},\r\n{mod_configure, []},\r\n{mod_caps, []},\r\n{mod_disco, []},\r\n{mod_stats, []},\r\n%%{mod_vcard_odbc, [{search, true},{matches, infinity},{allow_return_all, true}]},\r\n{mod_offline_odbc,[]},\r\n{mod_private_odbc, []},\r\n{mod_pubsub,[{access_createnode, pubsub_createnode},{ignore_pep_from_offline, true}, {last_item_cache, false},{plugins, [&quot;flat&quot;, &quot;hometree&quot;, &quot;pep&quot;]}]},\r\n{mod_muc_odbc, [{access, all},{access_create, muc_admin}, {access_persistent, muc_admin}, {access_admin, muc_admin}, {history_size, 30}, {min_message_interval, 0.4}, {min_presence_interval, 4} ]},\r\n%%{mod_muc_log, []},     ------------not implemented by me\r\n{mod_time, []},\r\n{mod_last_odbc, []},\r\n%%{mod_pres_counter, []},\r\n{mod_proxy65, [{host, &quot;proxy40.jabber.domen.ua&quot;},{name, &quot;File Transfer Proxy&quot;},{ip, {10,109,68,40}},{port, 7778},{max_connections, 5}]},\r\n{mod_version, [{show_os, true}]}\r\n]}.\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u043b \u043c\u0430\u043d \u043f\u043e CUCM \u0442\u0430\u043c \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0447\u0430\u0442\u0438\u043a\u0438 \u0438\u0442\u0434 \u044d\u0442\u043e \u043e\u0433\u043e\u0433\u043e \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0438 \u0435\u0441\u043b\u0438 \u0443 \u0412\u0430\u0441 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442 \u0442\u043e \u0443 \u0412\u0430\u0441 \u043d\u0435\u0442 \u0438 PBX. \u041f\u0444\u0444\u0444. \u0412\u044b\u0431\u043e\u0440 \u0431\u044b\u043b \u043c\u0435\u0436\u0434\u0443 Openfire \u0438 ejabberd2. \u041f\u0435\u0440\u0432\u043e\u0435 \u043f\u0440\u043e\u0436\u043e\u0440\u043b\u0438\u0432\u043e\u0435, \u043d\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435, \u0432\u0442\u043e\u0440\u043e\u0435 \u043d\u0430 \u042d\u0440\u043b\u0430\u043d\u0433\u0435(\u043d\u0435 &hellip; <a href=\"https:\/\/bos-info.com\/?p=477\">\u041f\u0440\u043e\u0434\u043e\u0432\u0436\u0438\u0442\u0438 \u0447\u0438\u0442\u0430\u043d\u043d\u044f <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57],"tags":[5,30],"_links":{"self":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts\/477"}],"collection":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=477"}],"version-history":[{"count":1,"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts\/477\/revisions"}],"predecessor-version":[{"id":490,"href":"https:\/\/bos-info.com\/index.php?rest_route=\/wp\/v2\/posts\/477\/revisions\/490"}],"wp:attachment":[{"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bos-info.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}