'\" t .\" Title: ejabberd.yml .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 07/30/2026 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "EJABBERD\&.YML" "5" "07/30/2026" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" ejabberd.yml \- پرونده اصلی پیکربندی کارگزار پیام‌رسان فوری ejabberd XMPP .SH "خلاصه دستور (SYNOPSIS)" .sp ejabberd\&.yml .SH "توضیحات (DESCRIPTION)" .sp فایل پیکربندی به زبان YAML نوشته می‌شود\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .sp YAML به تورفتگی (indentation) حساس است، بنابراین مطمئن شوید که تورفتگی‌ها را رعایت می‌کنید، در غیر این صورت خطاهای پیکربندی بسیار گنگ و نامفهومی دریافت خواهید کرد\&. .sp .5v .RE .sp از نظر منطقی، گزینه‌های پیکربندی به ۳ دسته اصلی تقسیم می‌شوند: \fIModules\fR (ماژول‌ها)، \fIListeners\fR (شنوندگان) و همه چیز دیگری که \fITop Level\fR (سطح بالا) نامیده می‌شود\&. بنابراین این سند به ۳ فصل اصلی تقسیم شده که هر دسته را جداگانه توضیح می‌دهد\&. محتوای ejabberd\&.yml معمولاً به این شکل خواهد بود: .sp .if n \{\ .RS 4 .\} .nf hosts: \- example\&.com \- domain\&.tld loglevel: info \&.\&.\&. listen: \- port: 5222 module: ejabberd_c2s \&.\&.\&. modules: mod_roster: {} \&.\&.\&. .fi .if n \{\ .RE .\} .sp هر خطای پیکربندی (مانند خطای نحوی، گزینه ناشناخته یا مقدار نامعتبر گزینه) در این مفهوم که ejabberd از بارگذاری کل فایل پیکربندی امتناع می‌کند و راه‌اندازی نخواهد شد یا بارگذاری مجدد پیکربندی را متوقف می‌کند، کشنده است\&. .sp تمام گزینه‌ها می‌توانند در زمان اجرا با اجرای دستور \fIejabberdctl reload\-config\fR تغییر داده شوند\&. بارگذاری مجدد پیکربندی اتمی است: یا همه گزینه‌ها پذیرفته شده و به طور همزمان اعمال می‌شوند یا پیکربندی جدید بدون هیچ تأثیری بر پیکربندی در حال اجرا رد می‌شود\&. .sp برخی گزینه‌ها می‌توانند فقط برای هاست(های) مجازی خاص با استفاده از گزینه‌های \fIhost_config\fR یا \fIappend_host_config\fR مشخص شوند\&. چنین گزینه‌هایی \fIمحلی\fR (local) نامیده می‌شوند\&. نمونه‌ها عبارتند از \fImodules\fR، \fIauth_method\fR و \fIdefault_db\fR\&. گزینه‌هایی که نمی‌توانند به ازای هر هاست مجازی تعریف شوند \fIسراسری\fR (global) نامیده می‌شوند\&. نمونه‌ها عبارتند از \fIloglevel\fR، \fIcertfiles\fR و \fIlisten\fR\&. قرار دادن گزینه‌های \fIسراسری\fR زیر بخش \fIhost_config\fR یا \fIappend_host_config\fR یک اشتباه پیکربندی است \- ejabberd از بارگذاری چنین پیکربندی‌ای امتناع خواهد کرد\&. .sp توصیه نمی‌شود که ejabberd\&.yml را از ابتدا بنویسید\&. در عوض بهتر است از فایل پیکربندی "پیش‌فرض" موجود در https://github\&.com/processone/ejabberd/blob/26\&.07/ejabberd\&.yml\&.example شروع کنید\&. پس از اینکه ejabberd را راه‌اندازی کردید، می‌توانید شروع به تغییر گزینه‌های پیکربندی برای رفع نیازهای خود کنید\&. .sp توجه داشته باشید که این سند در نظر گرفته شده تا توضیحات جامعی از تمام گزینه‌های پیکربندی ارائه دهد که می‌توان برای درک معنای یک گزینه خاص، قالب و مقادیر ممکن آن به آن مراجعه کرد\&. درک نحوه پیکربندی ejabberd تنها با خواندن این سند بسیار دشوار خواهد بود \- برای این منظور به خواننده توصیه می‌شود راهنمای پیکربندی آنلاین موجود در https://docs\&.ejabberd\&.im/admin/configuration را مطالعه کند\&. .SH "گزینه‌های سطح بالا (TOP LEVEL OPTIONS)" .sp این بخش گزینه‌های سطح بالای ejabberd 26\&.07 را توضیح می‌دهد\&. گزینه‌هایی که در این نسخه تغییر کرده‌اند با 🟠 علامت‌گذاری شده‌اند\&. .PP \fBaccess_rules\fR: \fI{AccessName: {allow|deny: ACLName|ACLDefinition}}\fR .RS 4 این گزینه \fIbasic\&.md#access\-rules|Access Rules\fR (قوانین دسترسی) را تعریف می‌کند\&. به هر قانون دسترسی یک نام اختصاص داده می‌شود که می‌توان از سایر بخش‌های فایل پیکربندی (عمدتاً از گزینه‌های \fIaccess\fR ماژول‌های ejabberd) به آن ارجاع داد\&. هر تعریف قانون ممکن است تعداد دلخواهی بخش \fIallow\fR یا \fIdeny\fR داشته باشد، و هر بخش می‌تواند هر تعداد قانون ACL داشته باشد (به گزینه \fIacl\fR مراجعه کنید)\&. به طور پیش‌فرض هیچ قانون دسترسی‌ای تعریف نشده است\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf access_rules: configure: allow: admin something: deny: someone allow: all s2s_banned: deny: problematic_hosts deny: banned_forever deny: ip: 222\&.111\&.222\&.111/32 deny: ip: 111\&.222\&.111\&.222/32 allow: all xmlrpc_access: allow: user: peter@example\&.com allow: user: ivone@example\&.com allow: user: bot@example\&.com ip: 10\&.0\&.0\&.0/24 .fi .if n \{\ .RE .\} .RE .PP \fBacl\fR: \fI{ACLName: {ACLType: ACLValue}}\fR .RS 4 این گزینه \fI\&.\&./configuration/basic\&.md#acl|access control lists\fR (لیست‌های کنترل دسترسی) را تعریف می‌کند: مجموعه‌های نام‌گذاری‌شده‌ای از قوانین که برای تطبیق با اهداف مختلف (مانند JID یا آدرس IP) استفاده می‌شوند\&. هر مجموعه از قوانین دارای نام \fIACLName\fR است: می‌تواند هر رشته‌ای باشد به جز \fIall\fR یا \fInone\fR (آن‌ها نام‌های از پیش تعریف‌شده برای قوانینی هستند که به ترتیب با همه چیز یا هیچ چیز تطبیق دارند)\&. نام \fIACLName\fR می‌تواند از سایر بخش‌های فایل پیکربندی، برای مثال در گزینه \fIaccess_rules\fR، ارجاع داده شود\&. قوانین \fIACLName\fR توسط نگاشت \fI{ACLType: ACLValue}\fR نمایش داده می‌شوند\&. اینها می‌توانند یکی از موارد زیر باشند: .PP \fBip\fR: \fINetwork\fR .RS 4 قانون با هر آدرس IP از \fINetwork\fR تطبیق دارد\&. .RE .PP \fBnode_glob\fR: \fIPattern\fR .RS 4 مانند \fInode_regexp\fR است، اما تطبیق بر اساس \fIPattern\fR مشخص‌شده طبق قوانین استفاده‌شده توسط شل Unix انجام می‌شود\&. .RE .PP \fBnode_regexp\fR: \fIuser_regexp@server_regexp\fR .RS 4 قانون با هر JID که بخش node آن با عبارت منظم \fIuser_regexp\fR و بخش server آن با عبارت منظم \fIserver_regexp\fR تطبیق دارد، مطابقت دارد\&. .RE .PP \fBresource\fR: \fIResource\fR .RS 4 قانون با هر JID که دارای resource برابر \fIResource\fR است تطبیق دارد\&. .RE .PP \fBresource_glob\fR: \fIPattern\fR .RS 4 مانند \fIresource_regexp\fR است، اما تطبیق بر اساس \fIPattern\fR مشخص‌شده طبق قوانین استفاده‌شده توسط شل Unix انجام می‌شود\&. .RE .PP \fBresource_regexp\fR: \fIRegexp\fR .RS 4 قانون با هر JID که resource آن با عبارت منظم \fIRegexp\fR تطبیق دارد، مطابقت دارد\&. .RE .PP \fBserver\fR: \fIServer\fR .RS 4 قانون با هر JID از سرور \fIServer\fR تطبیق دارد\&. مقدار \fIServer\fR باید یک نام میزبان معتبر یا آدرس IP باشد\&. .RE .PP \fBserver_glob\fR: \fIPattern\fR .RS 4 مانند \fIserver_regexp\fR است، اما تطبیق بر اساس \fIPattern\fR مشخص‌شده طبق قوانین استفاده‌شده توسط شل Unix انجام می‌شود\&. .RE .PP \fBserver_regexp\fR: \fIRegexp\fR .RS 4 قانون با هر JID از سروری که با عبارت منظم \fIRegexp\fR تطبیق دارد، مطابقت دارد\&. .RE .PP \fBuser\fR: \fIUsername\fR .RS 4 اگر \fIUsername\fR به شکل "user@server" باشد، قانون یک JID را با این مقدار تطبیق می‌دهد\&. در غیر این صورت، اگر \fIUsername\fR به شکل "user" باشد، قانون با هر JID که \fIUsername\fR را در بخش node دارد تطبیق دارد، مشروط بر اینکه بخش server این JID هر هاست مجازی‌ای باشد که توسط ejabberd سرویس‌دهی می‌شود\&. .RE .PP \fBuser_glob\fR: \fIPattern\fR .RS 4 مانند \fIuser_regexp\fR است، اما تطبیق بر اساس \fIPattern\fR مشخص‌شده طبق قوانین استفاده‌شده توسط شل Unix انجام می‌شود\&. .RE .PP \fBuser_regexp\fR: \fIRegexp\fR .RS 4 اگر \fIRegexp\fR به شکل "regexp@server" باشد، قانون با هر JID که بخش node آن با عبارت منظم "regexp" تطبیق دارد و بخش server آن برابر "server" است، مطابقت دارد\&. اگر \fIRegexp\fR به شکل "regexp" باشد، قانون با هر JID که بخش node آن با عبارت منظم "regexp" تطبیق دارد و بخش server آن هر هاست مجازی‌ای باشد که توسط ejabberd سرویس‌دهی می‌شود، مطابقت دارد\&. .RE .RE .PP \fBacme\fR: \fIOptions\fR .RS 4 پیکربندی \fIbasic\&.md#acme|ACME\fR، برای دریافت خودکار گواهی‌های SSL برای دامنه‌های سرویس‌دهی‌شده توسط ejabberd، که به این معناست که درخواست‌ها و تجدید گواهی‌ها در حالت کاملاً خودکار به یک سرور CA (معروف به "سرور ACME") ارسال می‌شوند\&. \fIOptions\fR (گزینه‌ها) عبارتند از: .PP \fBauto\fR: \fItrue | false\fR .RS 4 آیا به طور خودکار برای تمام دامنه‌های پیکربندی‌شده (که هنوز گواهی ندارند) در هنگام راه‌اندازی سرور یا بارگذاری مجدد پیکربندی، گواهی درخواست شود\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBca_url\fR: \fIURL\fR .RS 4 آدرس URL دایرکتوری ACME که به عنوان نقطه ورود برای سرور ACME استفاده می‌شود\&. مقدار پیش‌فرض https://acme\-v02\&.api\&.letsencrypt\&.org/directory است \- آدرس URL دایرکتوری مرجع صدور گواهی Let\(cqs Encrypt\&. .RE .PP \fBcert_type\fR: \fIrsa | ec\fR .RS 4 نوع کلید گواهی\&. مقادیر موجود \fIec\fR و \fIrsa\fR به ترتیب برای گواهی‌های EC و RSA هستند\&. برای سازگاری با کلاینت‌ها و سرورهای قدیمی بهتر است گواهی‌های RSA داشته باشید، بنابراین مقدار پیش‌فرض \fIrsa\fR است\&. .RE .PP \fBcontact\fR: \fI[Contact, \&.\&.\&.]\fR .RS 4 فهرستی از آدرس‌های تماس (معمولاً ایمیل‌ها) که سرور ACME در صورت بروز مشکل اطلاعیه‌هایی به آن‌ها ارسال می‌کند\&. مقدار \fIContact\fR باید به شکل "scheme:address" باشد (مثلاً "mailto:user@domain\&.tld")\&. مقدار پیش‌فرض یک لیست خالی است که به این معنی است که سرور ACME هیچ اطلاعیه‌ای ارسال نخواهد کرد\&. .RE .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf acme: ca_url: https://acme\-v02\&.api\&.letsencrypt\&.org/directory contact: \- mailto:admin@domain\&.tld \- mailto:bot@domain\&.tld auto: true cert_type: rsa .fi .if n \{\ .RE .\} .RE .PP \fBallow_contrib_modules\fR: \fItrue | false\fR .RS 4 آیا نصب ماژول‌های شخص ثالث مجاز است یا خیر\&. به بخش مستندات \fI\&.\&./\&.\&./admin/guide/modules\&.md#ejabberd\-modules|ejabberd\-modules\fR مراجعه کنید\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBallow_multiple_connections\fR: \fItrue | false\fR .RS 4 این گزینه فقط زمانی استفاده می‌شود که حالت ناشناس فعال باشد\&. تنظیم آن بر روی \fItrue\fR به این معنی است که در صورت استفاده از resource های مختلف برای اتصال، همان نام کاربری می‌تواند چندین بار در حالت ورود ناشناس استفاده شود\&. این گزینه فقط در موارد بسیار خاص مفید است\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBanonymous_protocol\fR: \fIlogin_anon | sasl_anon | both\fR .RS 4 تعریف می‌کند که از کدام پروتکل \fIauthentication\&.md#anonymous\-login\-and\-sasl\-anonymous|anonymous\fR (ناشناس) استفاده خواهد شد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIlogin_anon\fR به این معناست که از روش ورود ناشناس استفاده خواهد شد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIsasl_anon\fR به این معناست که از روش SASL Anonymous استفاده خواهد شد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIboth\fR به این معنی است که هم SASL Anonymous و هم ورود ناشناس فعال هستند\&. .RE .RE .sp مقدار پیش‌فرض \fIsasl_anon\fR است\&. .PP \fBapi_permissions\fR: \fI[Permission, \&.\&.\&.]\fR .RS 4 تعریف مجوزهای دسترسی به API\&. لطفاً به مستندات ejabberd → برای توسعه‌دهندگان → ejabberd ReST API → \fI\&.\&./\&.\&./developer/ejabberd\-api/permissions\&.md|API Permissions\fR مراجعه کنید\&. .RE .PP \fBappend_host_config\fR: \fI{Host: Options}\fR .RS 4 افزودن چند گزینه خاص به یک \fI\&.\&./configuration/basic\&.md#virtual\-hosting|میزبان مجازی\fR مشخص\&. .RE .PP \fBauth_cache_life_time\fR: \fItimeout()\fR .RS 4 مشابه \fIcache_life_time\fR، اما فقط برای کش احراز هویت اعمال می‌شود\&. در صورتی که تنظیم نشده باشد، مقدار از \fIcache_life_time\fR استفاده خواهد شد\&. .RE .PP \fBauth_cache_missed\fR: \fItrue | false\fR .RS 4 مشابه \fIcache_missed\fR، اما فقط برای کش احراز هویت اعمال می‌شود\&. در صورتی که تنظیم نشده باشد، مقدار از \fIcache_missed\fR استفاده خواهد شد\&. .RE .PP \fBauth_cache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مشابه \fIcache_size\fR، اما فقط برای کش احراز هویت اعمال می‌شود\&. در صورتی که تنظیم نشده باشد، مقدار از \fIcache_size\fR استفاده خواهد شد\&. .RE .PP \fBauth_external_user_exists_check\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.10 اضافه شده است\&. بررسی تکمیلی برای وجود کاربر بر اساس داده‌های \fImod_last\fR، برای روش‌های احراز هویتی که راهی مطمئن برای تشخیص وجود کاربر ندارند (مانند احراز هویت مبتنی بر \fIjwt\fR و گواهی‌نامه)\&. این قابلیت در پردازش پیام‌های آفلاین برای آن کاربران کمک می‌کند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBauth_method\fR: \fI[mnesia | sql | anonymous | external | jwt | ldap | pam, \&.\&.\&.]\fR .RS 4 فهرستی از روش‌های \fIauthentication\&.md|احراز هویت\fR برای استفاده\&. اگر چند روش تعریف شده باشند، احراز هویت زمانی موفق تلقی می‌شود که حداقل یکی از روش‌ها با موفقیت انجام شود\&. مقدار پیش‌فرض \fI[mnesia]\fR است\&. .RE .PP \fBauth_opts\fR: \fI[Option, \&.\&.\&.]\fR .RS 4 این گزینه توسط ماژول مشارکتی \fIejabberd_auth_http\fR که می‌توان از مخزن گیت \fI\&.\&./\&.\&./admin/guide/modules\&.md#ejabberd\-contrib|ejabberd\-contrib\fR نصب کرد، مورد استفاده قرار می‌گیرد\&. برای جزئیات به فایل README آن ماژول مراجعه کنید\&. .RE .PP \fBauth_password_format\fR: \fIplain | scram\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 20\&.01 بهبود یافته است\&. این گزینه تعیین می‌کند که رمزهای عبور کاربران به چه شکلی ذخیره شوند، به صورت متن ساده یا در قالب \fIauthentication\&.md#scram|SCRAM\fR: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIplain\fR: رمز عبور به صورت متن ساده در پایگاه داده ذخیره می‌شود\&. این روش خطرناک است زیرا در صورت نفوذ به پایگاه داده، رمزها قابل خواندن هستند\&. این مقدار پیش‌فرض است\&. این قالب به کلاینت‌ها اجازه می‌دهد با استفاده از: Jabber Non-SASL قدیمی (XEP-0078)، SASL PLAIN، SASL DIGEST-MD5 و SASL SCRAM-SHA-1/256/512(-PLUS) احراز هویت کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIscram\fR: رمز عبور ذخیره نمی‌شود، فقط اطلاعاتی که برای تأیید هش ارائه‌شده توسط کلاینت لازم است ذخیره می‌شود\&. بازیابی رمز اصلی از اطلاعات ذخیره‌شده غیرممکن است؛ به همین دلیل، پس از تنظیم این مقدار، دیگر نمی‌توان آن را به plain تغییر داد\&. این قالب به کلاینت‌ها اجازه می‌دهد با استفاده از: SASL PLAIN و SASL SCRAM-SHA-1/256/512(-PLUS) احراز هویت کنند\&. نوع SCRAM به گزینه \fIauth_scram_hash\fR بستگی دارد\&. .RE .RE .sp مقدار پیش‌فرض \fIplain\fR است\&. .PP \fBauth_password_types_hidden_in_sasl1\fR: \fI[plain | scram_sha1 | scram_sha256 | scram_sha512]\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شده است\&. فهرست انواع رمز عبوری که نباید در احراز هویت SASL1 ارائه شوند\&. از آنجا که SASL1، برخلاف SASL2، نمی‌تواند فهرست مکانیزم‌های موجود را متناسب با هر کاربر سفارشی‌سازی کند، ممکن است مکانیزم‌های پیشنهادشده با رمز ذخیره‌شده سازگار نباشند، به‌ویژه اگر نوع رمز جدیدی اخیراً اضافه شده باشد\&. این گزینه امکان غیرفعال‌سازی ارائه برخی مکانیزم‌ها در SASL1 را فراهم می‌کند، تا زمانی که نوع رمز جدید برای همه کاربران در دسترس باشد\&. .RE .PP \fBauth_scram_hash\fR: \fIsha | sha256 | sha512\fR .RS 4 الگوریتم هش که باید برای ذخیره رمز عبور در قالب \fIauthentication\&.md#scram|SCRAM\fR استفاده شود\&. اگر از قبل رمزهایی با الگوریتم دیگری تولید شده‌اند، این مقدار را تغییر ندهید، زیرا کاربران دارای آن رمزها قادر به احراز هویت نخواهند بود\&. مقدار پیش‌فرض \fIsha\fR است\&. .RE .PP \fBauth_stored_password_types\fR: \fI[plain | scram_sha1 | scram_sha256 | scram_sha512]\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.03 اضافه شده است\&. فهرست انواع رمز عبوری که باید به‌طور همزمان برای هر کاربر در پایگاه داده ذخیره شوند\&. هنگامی که کاربر رمز عبور حساب خود را تعیین می‌کند، پایگاه داده به‌روزرسانی می‌شود تا رمز را در قالب‌های سازگار با هر نوع فهرست‌شده ذخیره کند\&. این قابلیت می‌تواند برای مهاجرت رمزهای کاربران به قالب امن‌تر استفاده شود\&. اگر این گزینه تنظیم شده باشد، مقادیر تنظیم‌شده در گزینه‌های \fIauth_scram_hash\fR و \fIauth_password_format\fR را نادیده می‌گیرد\&. مقدار پیش‌فرض []\&. است\&. .RE .PP \fBauth_use_cache\fR: \fItrue | false\fR .RS 4 مشابه \fIuse_cache\fR، اما فقط برای کش احراز هویت اعمال می‌شود\&. در صورتی که تنظیم نشده باشد، مقدار از \fIuse_cache\fR استفاده خواهد شد\&. .RE .PP \fBc2s_cafile\fR: \fIPath\fR .RS 4 مسیر کامل به فایلی که حاوی یک یا چند گواهی CA در قالب PEM است\&. تمام گواهی‌های کلاینت باید توسط یکی از این گواهی‌های CA ریشه امضا شده باشند و JID(های) متناظر را در فیلد \fIsubjectAltName\fR داشته باشند\&. مقدار پیش‌فرضی وجود ندارد\&. .RE .sp می‌توانید از \fIhost_config\fR برای تعیین این گزینه به ازای هر میزبان مجازی استفاده کنید\&. .sp برای تنظیم یک فایل خاص به ازای هر شنونده، از گزینه \fIlisten\-options\&.md#cafile|cafile\fR شنونده استفاده کنید\&. توجه داشته باشید که \fIc2s_cafile\fR گزینه \fIcafile\fR شنونده را نادیده می‌گیرد\&. .PP \fBc2s_ciphers\fR: \fI[Cipher, \&.\&.\&.]\fR .RS 4 فهرستی از رمزهای OpenSSL برای استفاده در اتصالات c2s\&. مقدار پیش‌فرض در مثال زیر نشان داده شده است: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf c2s_ciphers: \- HIGH \- "!aNULL" \- "!eNULL" \- "!3DES" \- "@STRENGTH" .fi .if n \{\ .RE .\} .RE .PP \fBc2s_dhfile\fR: \fIPath\fR .RS 4 مسیر کامل به فایلی که حاوی پارامترهای DH سفارشی برای استفاده در اتصالات c2s است\&. چنین فایلی می‌تواند با دستور \fI"openssl dhparam \-out dh\&.pem 2048"\fR ساخته شود\&. اگر این گزینه مشخص نشده باشد، گروه MODP 2048 بیتی با زیرگروه مرتبه اول 256 بیتی طبق تعریف RFC5114 بخش 2\&.3 استفاده خواهد شد\&. .RE .PP \fBc2s_protocol_options\fR: \fI[Option, \&.\&.\&.]\fR .RS 4 فهرست گزینه‌های کلی SSL برای استفاده در اتصالات c2s\&. این گزینه‌ها به \fIset_options()\fR در OpenSSL نگاشت می‌شوند\&. مقدار پیش‌فرض در مثال زیر نشان داده شده است: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf c2s_protocol_options: \- no_sslv3 \- cipher_server_preference \- no_compression .fi .if n \{\ .RE .\} .RE .PP \fBc2s_tls_compression\fR: \fItrue | false\fR .RS 4 آیا فشرده‌سازی TLS برای اتصالات c2s فعال یا غیرفعال شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBca_file\fR: \fIPath\fR .RS 4 مسیر به فایل گواهی‌های ریشه CA\&. به‌طور پیش‌فرض در صورت امکان از فایل تعریف‌شده توسط سیستم استفاده می‌شود\&. .RE .sp برای اتصالات سرور، این گزینه \fIca_file\fR توسط گزینه \fIs2s_cafile\fR نادیده گرفته می‌شود\&. .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 مدت زمان نگهداری یک آیتم در کش\&. پس از انقضا، آیتم متناظر از کش پاک می‌شود\&. مقدار پیش‌فرض \fI1 hour\fR (یک ساعت) است\&. چند ماژول گزینه مشابهی دارند؛ و برخی بخش‌های هسته‌ای ejabberd نیز از گزینه‌های مشابهی پشتیبانی می‌کنند، ببینید: \fIauth_cache_life_time\fR، \fIoauth_cache_life_time\fR، \fIrouter_cache_life_time\fR، و \fIsm_cache_life_time\fR\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 آیا جستجوهای ناموفق کش شوند یا خیر\&. هنگامی که سعی می‌شود مقداری در پایگاه داده پیدا شود و یافت نشود و این گزینه روی \fItrue\fR تنظیم باشد، این تلاش کش می‌شود و تا انقضای کش (ببینید \fIcache_life_time\fR) هیچ تلاشی مجدد انجام نخواهد شد\&. معمولاً نیازی به تغییر این گزینه نیست\&. مقدار پیش‌فرض \fItrue\fR است\&. چند ماژول گزینه مشابهی دارند؛ و برخی بخش‌های هسته‌ای ejabberd نیز از گزینه‌های مشابهی پشتیبانی می‌کنند، ببینید: \fIauth_cache_missed\fR، \fIoauth_cache_missed\fR، \fIrouter_cache_missed\fR، و \fIsm_cache_missed\fR\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 حداکثر تعداد آیتم‌ها (نه حافظه!) در کش\&. به‌عنوان یک قاعده کلی، برای همه جداول به‌جز فهرست مخاطبان، باید این مقدار را برابر با حداکثر تعداد کاربران آنلاین مورد انتظار تنظیم کنید\&. برای جدول مخاطبان این عدد را در حدود ۲۰ ضرب کنید\&. اگر اندازه کش به این آستانه برسد، به‌طور کامل پاک می‌شود، یعنی تمام آیتم‌ها حذف می‌شوند و هشدار مربوطه ثبت می‌گردد\&. باید از پاکسازی مکرر کش خودداری کنید، زیرا عملکرد را کاهش می‌دهد\&. مقدار پیش‌فرض \fI1000\fR است\&. چند ماژول گزینه مشابهی دارند؛ و برخی بخش‌های هسته‌ای ejabberd نیز از گزینه‌های مشابهی پشتیبانی می‌کنند، ببینید: \fIauth_cache_size\fR، \fIoauth_cache_size\fR، \fIrouter_cache_size\fR، و \fIsm_cache_size\fR\&. .RE .PP \fBcaptcha_cmd\fR: \fIPath | ModuleName\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.01 بهبود یافته است\&. مسیر کامل به اسکریپتی که تصاویر \fIbasic\&.md#captcha|CAPTCHA\fR تولید می‌کند\&. کلیدواژه \fI@VERSION@\fR با شماره نسخه ejabberd در قالب \fIXX\&.YY\fR جایگزین می‌شود\&. کلیدواژه \fI@SEMVER@\fR با شماره نسخه ejabberd در قالب semver (هنگام کامپایل با mix الیکسیر) یا قالب XX\&.YY (در غیر این صورت) جایگزین می‌شود\&. همچنین می‌تواند نام ماژولی باشد که پشتیبانی CAPTCHA در ejabberd را پیاده‌سازی کرده است\&. مقدار پیش‌فرضی وجود ندارد: هنگامی که این گزینه تنظیم نشده باشد، قابلیت CAPTCHA کاملاً غیرفعال است\&. .sp \fBمثال‌ها\fR: .sp هنگام استفاده از نصب‌کننده‌های ejabberd یا تصویر کانتینر، اسکریپت‌های نمونه captcha می‌توانند به این شکل استفاده شوند: .sp .if n \{\ .RS 4 .\} .nf captcha_cmd: /opt/ejabberd\-@VERSION@/lib/ejabberd\-@SEMVER@/priv/bin/captcha\&.sh .fi .if n \{\ .RE .\} .RE .PP \fBcaptcha_host\fR: \fIString\fR .RS 4 منسوخ شده\&. به جای آن از \fIcaptcha_url\fR استفاده کنید\&. .RE .PP \fBcaptcha_limit\fR: \fIpos_integer() | infinity\fR .RS 4 حداکثر تعداد تصاویر \fIbasic\&.md#captcha|CAPTCHA\fR تولیدشده در دقیقه برای هر JID مشخص\&. این گزینه برای محافظت از سرور در برابر حملات DoS مبتنی بر CAPTCHA طراحی شده است\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBcaptcha_url\fR: \fIURL | auto | undefined\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.04 بهبود یافته است\&. آدرس URL که درخواست‌های \fIbasic\&.md#captcha|CAPTCHA\fR باید به آن ارسال شوند\&. توجه: باید \fIrequest_handlers\fR را نیز برای شنونده \fIejabberd_http\fR پیکربندی کنید\&. اگر روی \fIauto\fR تنظیم شود، URL با استفاده از یک \fIrequest_handler\fR از قبل فعال‌شده ساخته می‌شود، با رمزگذاری در صورت در دسترس بودن\&. اگر روی \fIundefined\fR تنظیم شود، URL با استفاده از \fIcaptcha_host\fR منسوخ‌شده \fI+ /captcha\fR ساخته می‌شود\&. مقدار پیش‌فرض \fIauto\fR است\&. .RE .PP \fBcertfiles\fR: \fI[Path, \&.\&.\&.]\fR .RS 4 این گزینه فهرستی از مسیرهای فایل (با امکان استفاده از wildcardها) حاوی گواهی‌های PEM یا کلیدهای خصوصی PEM را می‌پذیرد\&. در هنگام راه‌اندازی یا بارگذاری مجدد پیکربندی، ejabberd تمام گواهی‌ها را از این فایل‌ها می‌خواند، مرتب‌سازی می‌کند، موارد تکراری را حذف می‌کند، کلیدهای خصوصی متناظر را پیدا می‌کند و سپس زنجیره‌های کامل گواهی را برای استفاده در اتصالات TLS بازسازی می‌کند\&. از این گزینه زمانی استفاده کنید که TLS در هر یک از شنوندگان ejabberd فعال است: \fIejabberd_c2s\fR، \fIejabberd_http\fR و غیره\&. توجه: اگر فایل‌های گواهی را تغییر دادید یا مقدار گزینه را عوض کردید، برای بازسازی و بارگذاری مجدد زنجیره‌های گواهی، \fIejabberdctl reload\-config\fR را اجرا کنید\&. .sp \fBمثال‌ها\fR: .sp اگر از گواهی‌های Let\(cqs Encrypt برای دامنه "domain\&.tld" استفاده می‌کنید، پیکربندی به این شکل خواهد بود: .sp .if n \{\ .RS 4 .\} .nf certfiles: \- /etc/letsencrypt/live/domain\&.tld/fullchain\&.pem \- /etc/letsencrypt/live/domain\&.tld/privkey\&.pem .fi .if n \{\ .RE .\} .RE .PP \fBcluster_backend\fR: \fIBackend\fR .RS 4 یک بکند پایگاه داده برای ذخیره اطلاعات مربوط به خوشه‌بندی\&. تنها مقدار موجود در حال حاضر \fImnesia\fR است\&. .RE .PP \fBcluster_nodes\fR: \fI[Node, \&.\&.\&.]\fR .RS 4 فهرستی از گره‌های Erlang برای اتصال هنگام راه‌اندازی ejabberd\&. این گزینه عمدتاً برای سفارشی‌سازی ejabberd و راه‌اندازی‌های پیچیده در نظر گرفته شده است\&. مقدار پیش‌فرض یک فهرست خالی است\&. .RE .PP \fBdefault_db\fR: \fImnesia | sql\fR .RS 4 \fIdatabase\&.md#default\-database|پایگاه داده پیش‌فرض\fR برای ذخیره داده‌های پایدار در ejabberd\&. برخی اجزا می‌توانند با گزینه‌های سطح بالای خاصی مانند \fIoauth_db_type\fR پیکربندی شوند\&. بسیاری از ماژول‌ها می‌توانند با گزینه‌های خاص ماژول، معمولاً با نام db_type، پیکربندی شوند\&. مقدار پیش‌فرض \fImnesia\fR است\&. .RE .PP \fBdefault_ram_db\fR: \fImnesia | redis | sql\fR .RS 4 ذخیره‌سازی فرار (در حافظه) پیش‌فرض برای ejabberd\&. برخی اجزا می‌توانند با گزینه‌های سطح بالای خاصی مانند \fIrouter_db_type\fR و \fIsm_db_type\fR پیکربندی شوند\&. برخی ماژول‌ها می‌توانند با گزینه‌های خاص ماژول، معمولاً با نام ram_db_type، پیکربندی شوند\&. مقدار پیش‌فرض \fImnesia\fR است\&. .RE .PP \fBdefine_keyword\fR: \fI{NAME: Value}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.03 اضافه شده است\&. امکان تعریف \fI\&.\&./configuration/file\-format\&.md#macros\-and\-keywords|کلیدواژه‌های\fR پیکربندی را فراهم می‌کند\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf define_keyword: SQL_USERNAME: "eja\&.global" host_config: localhost: define_keyword: SQL_USERNAME: "eja\&.localhost" sql_username: "prefix\&.@SQL_USERNAME@" .fi .if n \{\ .RE .\} .RE .PP \fBdefine_macro\fR: \fI{NAME: Value}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.03 بهبود یافته است\&. امکان تعریف \fI\&.\&./configuration/file\-format\&.md#macros\-and\-keywords|ماکروهای\fR پیکربندی را فراهم می‌کند\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf define_macro: DEBUG: debug LOG_LEVEL: DEBUG USERBOB: user: bob@localhost loglevel: LOG_LEVEL acl: admin: USERBOB .fi .if n \{\ .RE .\} .RE .PP \fBdisable_sasl_mechanisms\fR: \fI[Mechanism, \&.\&.\&.]\fR .RS 4 فهرستی از مکانیزم‌های SASL (مانند \fIDIGEST\-MD5\fR یا \fISCRAM\-SHA1\fR) را مشخص کنید که نباید به کلاینت ارائه شوند\&. برای راحتی، مقدار \fIMechanism\fR به بزرگی و کوچکی حروف حساس نیست\&. مقدار پیش‌فرض یک فهرست خالی است، یعنی به‌طور پیش‌فرض هیچ مکانیزمی غیرفعال نشده است\&. .RE .PP \fBdisable_sasl_scram_downgrade_protection\fR: \fItrue | false\fR .RS 4 امکان غیرفعال‌سازی ارسال داده‌های مورد نیاز توسط \fIXEP\-0474: SASL SCRAM Downgrade Protection\fR را فراهم می‌کند\&. برخی کلاینت‌های دارای باگ شناخته‌شده (مانند آن‌هایی که از strophejs 1\&.6\&.2 استفاده می‌کنند) هنگامی که سرور داده‌های این مشخصه را ارسال کند، قادر به احراز هویت نخواهند بود\&. این گزینه به سرور اجازه می‌دهد آن را غیرفعال کند تا حتی کلاینت‌های دارای باگ بتوانند متصل شوند، اما در عوض حفاظت MITM کاهش می‌یابد\&. مقدار پیش‌فرض این گزینه \fIfalse\fR است که این افزونه را فعال می‌کند\&. .RE .PP \fBdomain_balancing\fR: \fI{Domain: Options}\fR .RS 4 الگوریتمی برای \fI\&.\&./guide/clustering\&.md#service\-load\-balancing|توزیع بار\fR اجزایی که به یک خوشه ejabberd متصل شده‌اند\&. این یعنی می‌توانید یک یا چند نمونه از همان کامپوننت را روی هر گره ejabberd متصل کنید و ترافیک به‌طور خودکار توزیع شود\&. الگوریتم تحویل پیام به کامپوننت(ها) را می‌توان با این گزینه مشخص کرد\&. برای هر کامپوننت متصل به عنوان \fIDomain\fR، \fIOptions\fR موجود عبارتند از: .PP \fBcomponent_number\fR: \fI2\&.\&.1000\fR .RS 4 تعداد کامپوننت‌هایی که باید متوازن شوند\&. .RE .PP \fBtype\fR: \fIValue\fR .RS 4 نحوه تحویل stanzaها به کامپوننت‌های متصل\&. مقدار پیش‌فرض \fIrandom\fR است\&. مقادیر ممکن: .RE .PP \fB\- bare_destination\fR .RS 4 بر اساس JID ساده (بدون resource) از مشخصه \fIto\fR بسته .RE .PP \fB\- bare_source\fR .RS 4 بر اساس JID ساده (بدون resource) از مشخصه \fIfrom\fR بسته استفاده می‌شود .RE .PP \fB\- destination\fR .RS 4 یک نمونه بر اساس JID کامل از مشخصه \fIto\fR بسته انتخاب می‌شود .RE .PP \fB\- random\fR .RS 4 یک نمونه به‌طور تصادفی انتخاب می‌شود .RE .PP \fB\- source\fR .RS 4 بر اساس JID کامل از مشخصه \fIfrom\fR بسته .RE .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf domain_balancing: component\&.domain\&.tld: type: destination component_number: 5 transport\&.example\&.org: type: bare_source .fi .if n \{\ .RE .\} .RE .PP \fBext_api_headers\fR: \fIHeaders\fR .RS 4 رشته‌ای از سرآیندها (جدا شده با ویرگول \fI,\fR) که ejabberd هنگام ارسال درخواست‌های ReST ارائه خواهد داد\&. مقدار پیش‌فرض یک رشته خالی از سرآیندها است: \fI""\fR\&. .RE .PP \fBext_api_http_pool_size\fR: \fIpos_integer()\fR .RS 4 اندازه استخر HTTP را تعریف می‌کند، یعنی حداکثر تعداد نشست‌هایی که سرویس ReST در ejabberd به‌طور همزمان مدیریت خواهد کرد\&. مقدار پیش‌فرض: \fI100\fR است\&. .RE .PP \fBext_api_path_oauth\fR: \fIPath\fR .RS 4 مسیر پایه URI هنگام انجام درخواست‌های OAUTH ReST را تعریف می‌کند\&. مقدار پیش‌فرض: \fI"/oauth"\fR است\&. .RE .PP \fBext_api_url\fR: \fIURL\fR .RS 4 URI پایه هنگام انجام درخواست‌های ReST را تعریف می‌کند\&. مقدار پیش‌فرض: \fI"http://localhost/api"\fR است\&. .RE .PP \fBextauth_pool_name\fR: \fIName\fR .RS 4 پسوند نام استخر را در \fIauthentication\&.md#external\-script|احراز هویت خارجی\fR تعریف می‌کند، به‌طوری که نام کامل استخر \fIextauth_pool_Name\fR خواهد بود\&. مقدار پیش‌فرض نام میزبان است\&. .RE .PP \fBextauth_pool_size\fR: \fISize\fR .RS 4 این گزینه تعداد نمونه‌های برنامه \fIauthentication\&.md#external\-script|احراز هویت خارجی\fR یکسان را برای توزیع بار بهتر تعریف می‌کند\&. مقدار پیش‌فرض تعداد هسته‌های CPU موجود است\&. .RE .PP \fBextauth_program\fR: \fIPath\fR .RS 4 در این گزینه مسیر کامل به \fIauthentication\&.md#external\-script|اسکریپت احراز هویت خارجی\fR را مشخص کنید\&. اسکریپت باید توسط ejabberd قابل اجرا باشد\&. .RE .PP \fBfqdn\fR: \fIDomain\fR .RS 4 نام دامنه کاملاً واجد شرایط که در احراز هویت SASL DIGEST-MD5 استفاده خواهد شد\&. به‌طور پیش‌فرض به‌صورت خودکار تشخیص داده می‌شود\&. .RE .PP \fBhide_sensitive_log_data\fR: \fItrue | false\fR .RS 4 یک گزینه حریم خصوصی برای جلوگیری از ثبت داده‌های حساس (عمدتاً آدرس‌های IP) در لاگ\&. مقدار پیش‌فرض \fIfalse\fR است برای سازگاری با نسخه‌های قبلی\&. .RE .PP \fBhost_config\fR: \fI{Host: Options}\fR .RS 4 این گزینه برای تعریف مجدد \fIOptions\fR برای \fI\&.\&./configuration/basic\&.md#virtual\-hosting|میزبان مجازی\fR \fIHost\fR استفاده می‌شود\&. در مثال زیر روش احراز هویت LDAP برای میزبان مجازی \fIdomain\&.tld\fR و روش SQL برای میزبان مجازی \fIexample\&.org\fR استفاده خواهد شد\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf hosts: \- domain\&.tld \- example\&.org auth_method: \- sql host_config: domain\&.tld: auth_method: \- ldap .fi .if n \{\ .RE .\} .RE .PP \fBhosts\fR: \fI[Domain1, Domain2, \&.\&.\&.]\fR .RS 4 فهرستی از یک یا چند \fI\&.\&./configuration/basic\&.md#host\-names|نام میزبان\fR (یا دامنه) که ejabberd سرویس‌دهی خواهد کرد\&. این یک گزینه \fBاجباری\fR است\&. .RE .PP \fBhosts_alias\fR: \fI{Alias: Host}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شده است\&. تعریف نام‌های مستعار برای میزبان‌های مجازی موجود مدیریت‌شده توسط ejabberd\&. یک نام مستعار می‌تواند یک عبارت regexp باشد\&. این گزینه فقط توسط شنونده \fIejabberd_http\fR بررسی می‌شود\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf hosts: \- domain\&.tld \- example\&.org hosts_alias: xmpp\&.domain\&.tld: domain\&.tld jabber\&.domain\&.tld: domain\&.tld mytest\&.net: example\&.org "exa*": example\&.org .fi .if n \{\ .RE .\} .RE .PP \fBinclude_config_file\fR: \fI[Filename, \&.\&.\&.] | {Filename: Options}\fR .RS 4 خواندن و \fI\&.\&./configuration/file\-format\&.md#include\-additional\-files|الحاق فایل اضافی\fR از \fIFilename\fR\&. اگر مقدار در قالب \fI{Filename: Options}\fR ارائه شود، \fIOptions\fR باید یکی از موارد زیر باشد: .PP \fBallow_only\fR: \fI[OptionName, \&.\&.\&.]\fR .RS 4 فقط استفاده از آن گزینه‌ها را در فایل الحاق‌شده \fIFilename\fR مجاز می‌داند\&. گزینه‌هایی که با این معیار مطابقت ندارند پذیرفته نمی‌شوند\&. مقدار پیش‌فرض شامل تمام گزینه‌ها است\&. .RE .PP \fBdisallow\fR: \fI[OptionName, \&.\&.\&.]\fR .RS 4 استفاده از آن گزینه‌ها را در فایل الحاق‌شده \fIFilename\fR ممنوع می‌کند\&. گزینه‌هایی که با این معیار مطابقت دارند پذیرفته نمی‌شوند\&. مقدار پیش‌فرض یک فهرست خالی است\&. .RE .RE .PP \fBinstall_contrib_modules\fR: \fI[Module, \&.\&.\&.]\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.10 اضافه شده است\&. ماژول‌هایی از \fI\&.\&./\&.\&./admin/guide/modules\&.md#ejabberd\-modules|ejabberd\-modules\fR که باید به‌طور خودکار هنگام راه‌اندازی نصب شوند\&. مقدار پیش‌فرض یک فهرست خالی از ماژول‌ها است: \fI[]\fR\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf install_contrib_modules: \- mod_tombstones modules: mod_tombstones: {} .fi .if n \{\ .RE .\} .RE .PP \fBjwt_auth_only_rule\fR: \fIAccessName\fR .RS 4 این قانون ACL حساب‌هایی را تعریف می‌کند که فقط می‌توانند از روش احراز هویت \fIauthentication\&.md#jwt\-authentication|JWT\fR استفاده کنند، حتی اگر روش‌های دیگری نیز در فایل پیکربندی ejabberd تعریف شده باشند\&. به عبارت دیگر: اگر چند روش احراز هویت برای این میزبان فعال باشند (JWT، SQL، \&...)، کاربرانی که با این قانون مطابقت دارند فقط می‌توانند از JWT استفاده کنند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBjwt_jid_field\fR: \fIFieldName\fR .RS 4 به‌طور پیش‌فرض، JID در فیلد \fI"jid"\fR JWT تعریف می‌شود\&. در این گزینه می‌توانید نام فیلد دیگری در \fIauthentication\&.md#jwt\-authentication|JWT\fR که JID در آن تعریف شده است را مشخص کنید\&. .RE .PP \fBjwt_key\fR: \fIFilePath\fR .RS 4 مسیر به فایلی که حاوی کلید \fIauthentication\&.md#jwt\-authentication|JWT\fR است\&. .RE .sp قالب‌های فایل پشتیبانی‌شده: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBPEM format\fR \- کلیدهای رمزگذاری‌شده استاندارد PEM (RSA، EC، EdDSA و غیره) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBJWK (JSON Web Key)\fR \- فرمت JSON .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBJWK Set\fR \- JSON با آرایه "keys" (اما باید دقیقاً یک کلید داشته باشد) .RE .sp به طور پیش‌فرض هیچ مسیری تعریف نشده است، یعنی: \fIundefined\fR\&. .PP \fBlanguage\fR: \fILanguage\fR .RS 4 \fI\&.\&./configuration/basic\&.md#default\-language|زبان پیش‌فرض\fR رشته‌های سرور که توسط کلاینت‌های XMPP قابل مشاهده هستند را تعریف می‌کند\&. اگر یک کلاینت XMPP دارای ویژگی \fIxml:lang\fR نباشد، از زبان مشخص‌شده استفاده می‌شود\&. مقدار پیش‌فرض \fI"en"\fR است\&. .RE .PP \fBldap_backups\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 فهرستی از آدرس‌های IP یا نام‌های DNS سرورهای پشتیبان LDAP (به \fI\&.\&./configuration/ldap\&.md#ldap\-connection|اتصال LDAP\fR مراجعه کنید)\&. هنگامی که هیچ‌کدام از سرورهای فهرست‌شده در گزینه \fIldap_servers\fR قابل دسترس نباشند، ejabberd به این سرورهای پشتیبان متصل می‌شود\&. پیش‌فرض یک فهرست خالی است، یعنی هیچ سرور پشتیبانی مشخص نشده است\&. توجه داشته باشید که ejabberd تنها زمانی به سرور بعدی متصل می‌شود که اتصال موجود قطع شود؛ این برنامه تشخیص نمی‌دهد که یک سرور که قبلاً تلاش اتصال به آن ناموفق بوده، دوباره در دسترس شده است\&. .RE .PP \fBldap_base\fR: \fIBase\fR .RS 4 دایرکتوری پایه LDAP که حساب‌های کاربری را ذخیره می‌کند\&. هیچ مقدار پیش‌فرضی وجود ندارد: برای اینکه اتصالات LDAP به درستی کار کنند، باید این گزینه را تنظیم کنید\&. .RE .PP \fBldap_deref_aliases\fR: \fInever | always | finding | searching\fR .RS 4 تعیین می‌کند که آیا نام‌های مستعار (alias) ارجاع‌زدایی شوند یا خیر\&. مقدار پیش‌فرض \fInever\fR است\&. .RE .PP \fBldap_dn_filter\fR: \fI{Filter: FilterAttrs}\fR .RS 4 این فیلتر بر روی نتایج بازگشتی از فیلتر اصلی اعمال می‌شود\&. این فیلتر یک جستجوی LDAP اضافی انجام می‌دهد تا نتیجه کامل را تولید کند\&. این زمانی مفید است که نتوان تمام قوانین فیلتر را در \fIldap_filter\fR تعریف کرد\&. می‌توان متغیرهای الگو \fI"%u"\fR، \fI"%d"\fR، \fI"%s"\fR و \fI"%D"\fR را در \fIFilter\fR تعریف کرد: \fI"%u"\fR با بخش کاربری JID جایگزین می‌شود، \fI"%d"\fR با دامنه متناظر (میزبان مجازی) جایگزین می‌شود، تمام متغیرهای \fI"%s"\fR به ترتیب با مقادیر ویژگی‌های \fIFilterAttrs\fR جایگزین می‌شوند و \fI"%D"\fR با Distinguished Name از مجموعه نتایج جایگزین می‌شود\&. هیچ مقدار پیش‌فرضی وجود ندارد، به این معنی که نتیجه فیلتر نمی‌شود\&. هشدار: از آنجایی که این فیلتر جستجوهای اضافی LDAP انجام می‌دهد، تنها به عنوان آخرین راه‌حل از آن استفاده کنید: در صورت امکان سعی کنید تمام قوانین فیلتر را در گزینه \fIldap_filter\fR تعریف کنید\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf ldap_dn_filter: "(&(name=%s)(owner=%D)(user=%u@%d))": [sn] .fi .if n \{\ .RE .\} .RE .PP \fBldap_encrypt\fR: \fItls | none\fR .RS 4 تعیین می‌کند که آیا اتصال LDAP با TLS رمزگذاری شود یا خیر\&. مقدار پیش‌فرض \fInone\fR است\&. توجه: رمزگذاری STARTTLS پشتیبانی نمی‌شود\&. .RE .PP \fBldap_filter\fR: \fIFilter\fR .RS 4 یک فیلتر LDAP طبق تعریف RFC4515\&. هیچ مقدار پیش‌فرضی وجود ندارد\&. مثال: \fI"(&(objectClass=shadowAccount)(memberOf=XMPP Users))"\fR\&. توجه: فراموش نکنید که براکت‌ها را ببندید و از فضاهای خالی اضافی استفاده نکنید\&. همچنین نباید از ویژگی \fI"uid"\fR در فیلتر استفاده کنید زیرا این ویژگی به طور خودکار به فیلتر اضافه می‌شود\&. .RE .PP \fBldap_password\fR: \fIPassword\fR .RS 4 رمز عبور اتصال (Bind password)\&. مقدار پیش‌فرض یک رشته خالی است\&. .RE .PP \fBldap_port\fR: \fI1\&.\&.65535\fR .RS 4 پورت اتصال به سرور LDAP\&. پورت پیش‌فرض \fI389\fR در صورت غیرفعال بودن رمزگذاری و \fI636\fR در صورت فعال بودن رمزگذاری است\&. .RE .PP \fBldap_rootdn\fR: \fIRootDN\fR .RS 4 Distinguished Name اتصال (Bind)\&. مقدار پیش‌فرض یک رشته خالی است که به معنای "اتصال ناشناس" است\&. .RE .PP \fBldap_servers\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 فهرستی از آدرس‌های IP یا نام‌های DNS سرورهای LDAP (به \fI\&.\&./configuration/ldap\&.md#ldap\-connection|اتصال LDAP\fR مراجعه کنید)\&. ejabberd بلافاصله به تمام آن‌ها متصل می‌شود و در صورت قطع اتصال، به طور نامحدود مجدداً متصل می‌شود\&. مقدار پیش‌فرض \fI[localhost]\fR است\&. .RE .PP \fBldap_tls_cacertfile\fR: \fIPath\fR .RS 4 مسیر فایلی که حاوی گواهی‌های CA رمزگذاری‌شده با PEM است\&. این گزینه هنگامی که تأیید TLS فعال است الزامی می‌باشد\&. .RE .PP \fBldap_tls_certfile\fR: \fIPath\fR .RS 4 مسیر فایلی که حاوی گواهی رمزگذاری‌شده با PEM به همراه کلید خصوصی رمزگذاری‌شده با PEM است\&. این گواهی هنگامی که TLS برای اتصالات LDAP فعال است توسط ejabberd ارائه می‌شود\&. هیچ مقدار پیش‌فرضی وجود ندارد، به این معنی که هیچ گواهی کلاینتی ارسال نمی‌شود\&. .RE .PP \fBldap_tls_depth\fR: \fINumber\fR .RS 4 حداکثر عمق تأیید را هنگامی که تأیید TLS فعال است مشخص می‌کند، یعنی تا چه حدی در یک زنجیره گواهی‌ها می‌توان پیش رفت قبل از اینکه تأیید شکست‌خورده تلقی شود\&. گواهی همتا = 0، گواهی CA = 1، گواهی CA سطح بالاتر = 2 و غیره\&. مقدار \fI2\fR به این معناست که یک زنجیره می‌تواند حداکثر شامل گواهی همتا، گواهی CA، گواهی CA بعدی و یک گواهی CA اضافی باشد\&. مقدار پیش‌فرض \fI1\fR است\&. .RE .PP \fBldap_tls_verify\fR: \fIfalse | soft | hard\fR .RS 4 این گزینه تعیین می‌کند که آیا گواهی سرور LDAP هنگامی که TLS فعال است تأیید شود یا خیر\&. هنگامی که \fIhard\fR تنظیم شده باشد، ejabberd در صورت نامعتبر بودن گواهی ادامه نمی‌دهد\&. هنگامی که \fIsoft\fR تنظیم شده باشد، ejabberd حتی اگر بررسی ناموفق باشد ادامه می‌دهد\&. مقدار پیش‌فرض \fIfalse\fR است که به این معنی است که هیچ بررسی‌ای انجام نمی‌شود\&. .RE .PP \fBldap_uids\fR: \fI[Attr] | {Attr: AttrFormat}\fR .RS 4 ویژگی‌های LDAP که فهرستی از ویژگی‌ها برای استفاده به عنوان جایگزین دریافت JID را نگه می‌دارند، که در آن \fIAttr\fR یک ویژگی LDAP است که بخش کاربری JID را نگه می‌دارد و \fIAttrFormat\fR باید دقیقاً یک متغیر الگو \fI"%u"\fR داشته باشد که با بخش کاربری JID جایگزین می‌شود\&. به عنوان مثال، \fI"%\fR\fIu@example\fR\fI\&.org"\fR\&. اگر مقدار به شکل \fI[Attr]\fR باشد، فرض می‌شود \fIAttrFormat\fR برابر با \fI"%u"\fR است\&. .RE .PP \fBlisten\fR: \fI[Options, \&.\&.\&.]\fR .RS 4 گزینه پیکربندی شنوندگان\&. برای جزئیات به بخش \fIlisten\&.md|ماژول‌های Listen\fR مراجعه کنید\&. .RE .PP \fBlog_burst_limit_count\fR: \fINumber\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 22\&.10 اضافه شد\&. تعداد پیام‌هایی که در بازه زمانی log_burst_limit_window_time پذیرفته می‌شوند قبل از اینکه شروع به رد کردن آن‌ها شود\&. پیش‌فرض 500 است\&. .RE .PP \fBlog_burst_limit_window_time\fR: \fINumber\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 22\&.10 اضافه شد\&. بازه زمانی برای محدودسازی نرخ پیام‌های گزارش\&. پیش‌فرض 1 ثانیه است\&. .RE .PP \fBlog_modules_fully\fR: \fI[Module, \&.\&.\&.]\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.01 اضافه شد\&. فهرست ماژول‌هایی که همه چیز را مستقل از گزینه کلی loglevel گزارش می‌دهند\&. .RE .PP \fBlog_rotate_count\fR: \fINumber\fR .RS 4 تعداد فایل‌های گزارش چرخشی که نگه داشته می‌شوند\&. مقدار پیش‌فرض \fI1\fR است، که به این معنی است که تنها ejabberd\&.log\&.0، error\&.log\&.0 و crash\&.log\&.0 نگه داشته می‌شوند\&. .RE .PP \fBlog_rotate_size\fR: \fIpos_integer() | infinity\fR .RS 4 اندازه (به بایت) یک فایل گزارش برای فعال‌سازی چرخش\&. اگر روی \fIinfinity\fR تنظیم شود، چرخش گزارش غیرفعال می‌شود\&. مقدار پیش‌فرض 10 مگابایت برحسب بایت است: \fI10485760\fR\&. .RE .PP \fBloglevel\fR: \fInone | emergency | alert | critical | error | warning | notice | info | debug\fR .RS 4 سطح جزئیات \fI\&.\&./configuration/basic\&.md#logging|گزارش‌گیری\fR ejabberd\&. مقدار پیش‌فرض \fIinfo\fR است\&. توجه: نسخه‌های قبلی ejabberd سطوح گزارش را به فرمت عددی (\fI0\&.\&.5\fR) تعریف می‌کردند\&. مقادیر عددی هنوز برای سازگاری با نسخه‌های قدیمی پذیرفته می‌شوند، اما توصیه نمی‌شوند\&. .RE .PP \fBmax_fsm_queue\fR: \fISize\fR .RS 4 این گزینه حداکثر تعداد عناصر در صف FSM (ماشین حالت متناهی) را مشخص می‌کند\&. به طور تقریبی، هر پیام در این صف‌ها نشان‌دهنده یک استانزای XML است که در صف قرار گرفته تا به جریان خروجی مربوطه ارسال شود\&. اگر اندازه صف به حد مجاز برسد (به عنوان مثال، زیرا دریافت‌کننده استانزاها بسیار کند است)، FSM و اتصال متناظر (در صورت وجود) خاتمه می‌یابند و پیام خطا گزارش می‌شود\&. مقدار مناسب برای این گزینه به پیکربندی سخت‌افزاری شما بستگی دارد\&. مقادیر مجاز اعداد صحیح مثبت هستند\&. مقدار پیش‌فرض \fI10000\fR است\&. .RE .PP \fBmodules\fR: \fI{Module: Options}\fR .RS 4 تمام گزینه‌های پیکربندی \fImodules\&.md|ماژول‌ها\fR را تنظیم می‌کند\&. .RE .PP \fBnegotiation_timeout\fR: \fItimeout()\fR .RS 4 زمان انتظار برای تکمیل مذاکره جریان XMPP\&. هنگامی که وقت تمام می‌شود، جریان XMPP متناظر بسته می‌شود\&. مقدار پیش‌فرض \fI120\fR ثانیه است\&. .RE .PP \fBnet_ticktime\fR: \fItimeout()\fR .RS 4 این گزینه می‌تواند برای تنظیم پارامتر tick time در \fInet_kernel\fR استفاده شود\&. به ماشین مجازی Erlang می‌گوید که گره‌ها چند بار باید بررسی کنند که ارتباط درون‌گره‌ای قطع نشده است\&. این گزینه باید مقدار یکسانی در تمام گره‌ها داشته باشد، وگرنه به خطاهای نامحسوس منجر می‌شود\&. معمولاً بهتر است مقدار پیش‌فرض این گزینه را بدون تغییر رها کنید، تنها در صورتی که می‌دانید چه کاری انجام می‌دهید آن را تنظیم کنید\&. مقدار پیش‌فرض \fI1 minute\fR است\&. .RE .PP \fBnew_sql_schema\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.10 منسوخ شد\&. این گزینه در ejabberd نسخه 25\&.10 به \fIsql_schema_multihost\fR تغییر نام یافت\&. لطفاً پیکربندی خود را به‌روز کنید تا از نام گزینه جدید استفاده کنید\&. .RE .PP \fBoauth_access\fR: \fIAccessName\fR .RS 4 به طور پیش‌فرض ایجاد توکن‌های OAuth مجاز نیست\&. برای تعریف اینکه کدام کاربران می‌توانند توکن‌های OAuth ایجاد کنند، می‌توانید به یک قانون دسترسی ejabberd در گزینه \fIoauth_access\fR ارجاع دهید\&. از \fIall\fR استفاده کنید تا همه بتوانند توکن ایجاد کنند\&. .RE .PP \fBoauth_cache_life_time\fR: \fItimeout()\fR .RS 4 مانند \fIcache_life_time\fR، اما تنها برای کش OAuth اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_life_time\fR استفاده می‌شود\&. .RE .PP \fBoauth_cache_missed\fR: \fItrue | false\fR .RS 4 مانند \fIcache_missed\fR، اما تنها برای کش OAuth اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_missed\fR استفاده می‌شود\&. .RE .PP \fBoauth_cache_rest_failure_life_time\fR: \fItimeout()\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 21\&.01 اضافه شد\&. مدت زمانی که یک خطا در OAuth ReST در کش نگه داشته می‌شود\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBoauth_cache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مانند \fIcache_size\fR، اما تنها برای کش OAuth اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_size\fR استفاده می‌شود\&. .RE .PP \fBoauth_client_id_check\fR: \fIallow | db | deny\fR .RS 4 تعریف می‌کند که آیا احراز هویت کلاینت همیشه مجاز است، رد می‌شود، یا بستگی دارد به اینکه آیا شناسه کلاینت در پایگاه داده موجود است\&. مقدار پیش‌فرض \fIdb\fR است\&. .RE .PP \fBoauth_db_type\fR: \fImnesia | sql\fR .RS 4 بک‌اند پایگاه داده برای استفاده در احراز هویت OAuth\&. مقدار پیش‌فرض از گزینه \fIdefault_db\fR گرفته می‌شود، یا اگر تنظیم نشده باشد، \fImnesia\fR استفاده می‌شود\&. .RE .PP \fBoauth_expire\fR: \fItimeout()\fR .RS 4 مدت زمانی که توکن OAuth معتبر است، به ثانیه\&. پس از این مدت، توکن منقضی می‌شود و اعتبارنامه واگذاری‌شده دیگر قابل استفاده نیست و از پایگاه داده حذف می‌شود\&. مقدار پیش‌فرض \fI4294967\fR ثانیه است\&. .RE .PP \fBoauth_use_cache\fR: \fItrue | false\fR .RS 4 مانند \fIuse_cache\fR، اما تنها برای کش OAuth اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIuse_cache\fR استفاده می‌شود\&. .RE .PP \fBoom_killer\fR: \fItrue | false\fR .RS 4 فعال یا غیرفعال کردن OOM killer (کشنده حافظه تمام‌شده)\&. هنگامی که حافظه سیستم از حد تعریف‌شده در گزینه \fIoom_watermark\fR بالاتر می‌رود، ejabberd OOM killer را برای خاتمه دادن به فرآیندهای Erlang با بیشترین مصرف حافظه فعال می‌کند\&. توجه داشته باشید که برای حفظ عملکرد، ejabberd تنها تلاش می‌کند فرآیندهای موقت را مانند مدیریت‌کننده‌های نشست‌های کلاینت، s2s یا اتصالات پایگاه داده را پایان دهد\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBoom_queue\fR: \fISize\fR .RS 4 OOM killer را هنگامی فعال می‌کند که برخی از فرآیندهای Erlang در حال اجرا صف پیام‌هایی بالاتر از این \fISize\fR داشته باشند\&. توجه داشته باشید که چنین فرآیندهایی کشته نمی‌شوند اگر گزینه \fIoom_killer\fR روی \fIfalse\fR تنظیم شده باشد یا اگر \fIoom_watermark\fR هنوز به آن نرسیده باشد\&. .RE .PP \fBoom_watermark\fR: \fIPercent\fR .RS 4 درصدی از کل حافظه سیستم که در صورت مصرف، OOM killer باید فعال شود و برخی از فرآیندها احتمالاً کشته شوند (به گزینه \fIoom_killer\fR مراجعه کنید)\&. بعداً، هنگامی که حافظه به زیر این \fIPercent\fR کاهش یابد، OOM killer غیرفعال می‌شود\&. مقدار پیش‌فرض \fI80\fR درصد است\&. .RE .PP \fBoutgoing_s2s_families\fR: \fI[ipv6 | ipv4, \&.\&.\&.]\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.01 تغییر کرد\&. مشخص می‌کند که کدام خانواده‌های آدرس و به چه ترتیبی امتحان شوند\&. پیش‌فرض \fI[ipv6, ipv4]\fR است که به این معنی است که ابتدا اتصال با IPv6 امتحان می‌شود، و در صورت شکست از IPv4 استفاده می‌شود\&. این گزینه هنگام استفاده از ejabberd نسخه 23\&.01 و Erlang/OTP 22 یا نسخه‌های جدیدتر آن‌ها منسوخ و نامرتبط است\&. .RE .PP \fBoutgoing_s2s_ipv4_address\fR: \fIAddress\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 20\&.12 اضافه شد\&. آدرس IPv4 که هنگام برقراری اتصال خروجی S2S IPv4 استفاده می‌شود را مشخص می‌کند، به عنوان مثال \fI"127\&.0\&.0\&.1"\fR\&. مقدار پیش‌فرض \fIundefined\fR است\&. .RE .PP \fBoutgoing_s2s_ipv6_address\fR: \fIAddress\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 20\&.12 اضافه شد\&. آدرس IPv6 که هنگام برقراری اتصال خروجی S2S IPv6 استفاده می‌شود را مشخص می‌کند، به عنوان مثال \fI"::FFFF:127\&.0\&.0\&.1"\fR\&. مقدار پیش‌فرض \fIundefined\fR است\&. .RE .PP \fBoutgoing_s2s_port\fR: \fI1\&.\&.65535\fR .RS 4 شماره پورتی که برای اتصالات خروجی s2s هنگامی که سرور مقصد رکورد SRV ندارد استفاده می‌شود\&. مقدار پیش‌فرض \fI5269\fR است\&. .RE .PP \fBoutgoing_s2s_timeout\fR: \fItimeout()\fR .RS 4 وقفه زمانی به ثانیه برای تلاش‌های اتصال خروجی S2S\&. مقدار پیش‌فرض \fI10\fR ثانیه است\&. .RE .PP \fBpam_service\fR: \fIName\fR .RS 4 این گزینه نام سرویس \fIauthentication\&.md#pam\-authentication|PAM\fR را تعریف می‌کند\&. برای اطلاعات بیشتر به مستندات PAM سیستم‌عامل خود مراجعه کنید\&. مقدار پیش‌فرض \fIejabberd\fR است\&. .RE .PP \fBpam_userinfotype\fR: \fIusername | jid\fR .RS 4 این گزینه تعریف می‌کند که ejabberd چه نوع اطلاعاتی درباره کاربر به سرویس \fIauthentication\&.md#pam\-authentication|PAM\fR ارائه می‌دهد: فقط نام کاربری، یا JID کاربر\&. مقدار پیش‌فرض \fIusername\fR است\&. .RE .PP \fBpgsql_users_number_estimate\fR: \fItrue | false\fR .RS 4 تعیین می‌کند که آیا از تخمین PostgreSQL هنگام شمارش کاربران ثبت‌نام‌شده استفاده شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBqueue_dir\fR: \fIDirectory\fR .RS 4 اگر گزینه \fIqueue_type\fR روی \fIfile\fR تنظیم شده باشد، از این \fIDirectory\fR برای ذخیره صف‌های فایل استفاده می‌شود\&. پیش‌فرض این است که صف‌ها درون دایرکتوری Mnesia نگه داشته شوند\&. .RE .PP \fBqueue_type\fR: \fIram | file\fR .RS 4 نوع پیش‌فرض صف‌ها در ejabberd\&. ماژول‌ها می‌توانند مقدار خاص خود را برای این گزینه داشته باشند\&. مقدار \fIram\fR به این معنی است که صف‌ها در حافظه نگه داشته می‌شوند\&. اگر مقدار \fIfile\fR تنظیم شود، می‌توانید دایرکتوری را در گزینه \fIqueue_dir\fR مشخص کنید که صف‌های فایل در آن قرار می‌گیرند\&. مقدار پیش‌فرض \fIram\fR است\&. .RE .PP \fBredis_connect_timeout\fR: \fItimeout()\fR .RS 4 وقفه زمانی برای انتظار جهت برقراری مجدد اتصال به سرور \fIdatabase\&.md#redis|Redis\fR\&. پیش‌فرض \fI1 second\fR است\&. .RE .PP \fBredis_db\fR: \fINumber\fR .RS 4 شماره پایگاه داده \fIdatabase\&.md#redis|Redis\fR\&. پیش‌فرض \fI0\fR است\&. .RE .PP \fBredis_password\fR: \fIPassword\fR .RS 4 رمز عبور سرور \fIdatabase\&.md#redis|Redis\fR\&. پیش‌فرض یک رشته خالی است، یعنی بدون رمز عبور\&. .RE .PP \fBredis_pool_size\fR: \fINumber\fR .RS 4 تعداد اتصالات همزمان به سرور \fIdatabase\&.md#redis|Redis\fR\&. مقدار پیش‌فرض \fI10\fR است\&. .RE .PP \fBredis_port\fR: \fI1\&.\&.65535\fR .RS 4 پورتی که سرور \fIdatabase\&.md#redis|Redis\fR اتصالات را روی آن می‌پذیرد\&. پیش‌فرض \fI6379\fR است\&. .RE .PP \fBredis_queue_type\fR: \fIram | file\fR .RS 4 نوع صف درخواست برای سرور \fIdatabase\&.md#redis|Redis\fR\&. برای توضیح به شرح گزینه \fIqueue_type\fR مراجعه کنید\&. مقدار پیش‌فرض همان مقدار تعریف‌شده در \fIqueue_type\fR یا \fIram\fR در صورت عدم تنظیم آن است\&. .RE .PP \fBredis_server\fR: \fIHost | IP Address | Unix Socket Path\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 24\&.12 بهبود یافت\&. نام میزبان، آدرس IP یا مسیر سوکت دامنه یونیکس سرور \fIdatabase\&.md#redis|Redis\fR\&. مسیر سوکت دامنه یونیکس را این‌گونه تنظیم کنید: \fI"unix:/path/to/socket"\fR\&. مقدار پیش‌فرض \fIlocalhost\fR است\&. .RE .PP \fBregistration_timeout\fR: \fItimeout()\fR .RS 4 این یک گزینه سراسری برای ماژول \fImod_register\fR است\&. تعداد دفعات ثبت‌نام از یک آدرس IP یا نام کاربری مشخص را محدود می‌کند\&. بنابراین، کاربری که در این مدت پس از ثبت‌نام قبلی‌اش از همان آدرس IP یا JID تلاش می‌کند یک حساب جدید ثبت کند، پیام خطایی با توضیح مربوطه دریافت می‌کند\&. برای غیرفعال کردن این محدودیت، مقدار را روی \fIinfinity\fR تنظیم کنید\&. مقدار پیش‌فرض \fI600 seconds\fR است\&. .RE .PP \fBreplaced_connection_timeout\fR: \fItimeout()\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 26\&.01 اضافه شد\&. حداکثر زمانی که نشست جدید منتظر خاتمه یافتن نشستی که جایگزین آن می‌شود، می‌ماند\&. این به نشست قدیمی اجازه می‌دهد که حضورهای ناموجود خود را به درستی ارسال کند و به شرایط رقابتی احتمالی بین حضورهای نشست‌های قدیمی و جدید کمک می‌کند\&. .RE .PP \fBresource_conflict\fR: \fIsetresource | closeold | closenew\fR .RS 4 توجه: این گزینه منسوخ شده است و ممکن است در نسخه‌های آینده حذف شود\&. مقادیر ممکن دقیقاً با سه احتمال توصیف‌شده در XMPP Core: بخش 7\&.7\&.2\&.2 مطابقت دارند\&. مقدار پیش‌فرض \fIcloseold\fR است\&. اگر کلاینت از احراز هویت قدیمی Jabber Non-SASL (XEP-0078) استفاده کند، این گزینه رعایت نمی‌شود و عملیات انجام‌شده \fIcloseold\fR است\&. .RE .PP \fBrest_proxy\fR: \fIHost\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شد\&. آدرس یک پروکسی HTTP Connect که توسط ماژول‌هایی که فراخوانی‌های rest انجام می‌دهند (مانند ejabberd_oauth_rest) استفاده می‌شود\&. .RE .PP \fBrest_proxy_password\fR: \fIstring()\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شد\&. رمز عبور مورد استفاده برای احراز هویت به پروکسی HTTP Connect که توسط ماژول‌هایی که فراخوانی‌های rest انجام می‌دهند (مانند ejabberd_oauth_rest) استفاده می‌شود\&. .RE .PP \fBrest_proxy_port\fR: \fI1\&.\&.65535\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شد\&. پورت یک پروکسی HTTP Connect که توسط ماژول‌هایی که فراخوانی‌های rest انجام می‌دهند (مانند ejabberd_oauth_rest) استفاده می‌شود\&. .RE .PP \fBrest_proxy_username\fR: \fIstring()\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شد\&. نام کاربری مورد استفاده برای احراز هویت به پروکسی HTTP Connect که توسط ماژول‌هایی که فراخوانی‌های rest انجام می‌دهند (مانند ejabberd_oauth_rest) استفاده می‌شود\&. .RE .PP \fBrouter_cache_life_time\fR: \fItimeout()\fR .RS 4 مانند \fIcache_life_time\fR، اما تنها برای کش جدول مسیریابی اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_life_time\fR استفاده می‌شود\&. .RE .PP \fBrouter_cache_missed\fR: \fItrue | false\fR .RS 4 مانند \fIcache_missed\fR، اما تنها برای کش جدول مسیریابی اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_missed\fR استفاده می‌شود\&. .RE .PP \fBrouter_cache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مانند \fIcache_size\fR، اما تنها برای کش جدول مسیریابی اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_size\fR استفاده می‌شود\&. .RE .PP \fBrouter_db_type\fR: \fImnesia | redis | sql\fR .RS 4 بک‌اند پایگاه داده برای استفاده در اطلاعات مسیریابی\&. مقدار پیش‌فرض از گزینه \fIdefault_ram_db\fR گرفته می‌شود، یا اگر تنظیم نشده باشد، \fImnesia\fR استفاده می‌شود\&. .RE .PP \fBrouter_use_cache\fR: \fItrue | false\fR .RS 4 مانند \fIuse_cache\fR، اما تنها برای کش جدول مسیریابی اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIuse_cache\fR استفاده می‌شود\&. .RE .PP \fBrpc_timeout\fR: \fItimeout()\fR .RS 4 وقفه زمانی برای فراخوانی‌های تابع از راه دور بین گره‌ها در یک خوشه ejabberd\&. احتمالاً هرگز نباید این مقدار را تغییر دهید زیرا این فراخوانی‌ها تنها برای نیازهای داخلی استفاده می‌شوند\&. مقدار پیش‌فرض \fI5\fR ثانیه است\&. .RE .PP \fBs2s_access\fR: \fIAccess\fR .RS 4 این \fIbasic\&.md#access\-rules|قانون دسترسی\fR تعریف می‌کند که اتصالات s2s به کدام سرورهای راه دور می‌توانند برقرار شوند\&. مقدار پیش‌فرض \fIall\fR است؛ هیچ محدودیتی اعمال نمی‌شود و اتصال s2s به/از تمام سرورهای راه دور مجاز است\&. .RE .PP \fBs2s_cafile\fR: \fIPath\fR .RS 4 مسیر فایلی با گواهی‌های ریشه CA که برای احراز هویت اتصالات s2s استفاده می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIca_file\fR استفاده می‌شود\&. .RE .sp می‌توانید از \fIhost_config\fR برای تعیین این گزینه به ازای هر میزبان مجازی استفاده کنید\&. .PP \fBs2s_ciphers\fR: \fI[Cipher, \&.\&.\&.]\fR .RS 4 فهرستی از رمزهای OpenSSL برای استفاده در اتصالات s2s\&. مقدار پیش‌فرض در مثال زیر نشان داده شده است: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf s2s_ciphers: \- HIGH \- "!aNULL" \- "!eNULL" \- "!3DES" \- "@STRENGTH" .fi .if n \{\ .RE .\} .RE .PP \fBs2s_dhfile\fR: \fIPath\fR .RS 4 مسیر کامل به فایلی که حاوی پارامترهای DH سفارشی برای استفاده در اتصالات s2s است\&. چنین فایلی می‌تواند با دستور \fI"openssl dhparam \-out dh\&.pem 2048"\fR ایجاد شود\&. اگر این گزینه مشخص نشده باشد، از گروه 2048 بیتی MODP با زیرگروه مرتبه اول 256 بیتی طبق تعریف RFC5114 بخش 2\&.3 استفاده می‌شود\&. .RE .PP \fBs2s_dns_retries\fR: \fINumber\fR .RS 4 تعداد تلاش مجدد برای حل DNS\&. مقدار پیش‌فرض \fI2\fR است\&. .RE .PP \fBs2s_dns_timeout\fR: \fItimeout()\fR .RS 4 وقفه زمانی برای حل DNS\&. مقدار پیش‌فرض \fI10\fR ثانیه است\&. .RE .PP \fBs2s_max_retry_delay\fR: \fItimeout()\fR .RS 4 حداکثر تأخیر مجاز برای تلاش مجدد اتصال s2s پس از یک تلاش ناموفق\&. مقدار پیش‌فرض \fI300\fR ثانیه (5 دقیقه) است\&. .RE .PP \fBs2s_protocol_options\fR: \fI[Option, \&.\&.\&.]\fR .RS 4 فهرست گزینه‌های کلی SSL برای استفاده در اتصالات s2s\&. این‌ها به \fIset_options()\fR OpenSSL نگاشت می‌شوند\&. مقدار پیش‌فرض در مثال زیر نشان داده شده است: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf s2s_protocol_options: \- no_sslv3 \- cipher_server_preference \- no_compression .fi .if n \{\ .RE .\} .RE .PP \fBs2s_queue_type\fR: \fIram | file\fR .RS 4 نوع صف برای بسته‌های s2s\&. برای توضیح به شرح گزینه \fIqueue_type\fR مراجعه کنید\&. مقدار پیش‌فرض همان مقدار تعریف‌شده در \fIqueue_type\fR یا \fIram\fR در صورت عدم تنظیم آن است\&. .RE .PP \fBs2s_timeout\fR: \fItimeout()\fR .RS 4 زمان انتظار قبل از بستن یک اتصال s2s بیکار\&. مقدار پیش‌فرض \fI1\fR ساعت است\&. .RE .PP \fBs2s_tls_compression\fR: \fItrue | false\fR .RS 4 تعیین می‌کند که آیا فشرده‌سازی TLS برای اتصالات s2s فعال یا غیرفعال شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBs2s_use_starttls\fR: \fItrue | false | optional | required\fR .RS 4 تعیین می‌کند که آیا از STARTTLS برای اتصالات s2s استفاده شود\&. مقدار \fIfalse\fR به این معنی است که STARTTLS ممنوع است\&. مقدار \fItrue\fR یا \fIoptional\fR به این معنی است که STARTTLS فعال است اما اتصالات ساده هنوز مجاز هستند\&. و مقدار \fIrequired\fR به این معنی است که تنها اتصالات STARTTLS مجاز هستند\&. مقدار پیش‌فرض \fIfalse\fR است (به دلایل تاریخی)\&. .RE .PP \fBs2s_zlib\fR: \fItrue | false\fR .RS 4 تعیین می‌کند که آیا از فشرده‌سازی \fIzlib\fR (طبق تعریف در XEP\-0138) استفاده شود یا خیر\&. مقدار پیش‌فرض \fIfalse\fR است\&. هشدار: این نوع فشرده‌سازی امروزه ناامن تلقی می‌شود\&. .RE .PP \fBshaper\fR: \fI{ShaperName: Rate}\fR .RS 4 این گزینه مجموعه‌ای از \fI\&.\&./configuration/basic\&.md#shapers|شکل‌دهنده‌ها\fR را تعریف می‌کند\&. هر شکل‌دهنده یک نام \fIShaperName\fR دارد که می‌تواند در سایر بخش‌های فایل پیکربندی مانند گزینه \fIshaper_rules\fR استفاده شود\&. خود شکل‌دهنده با \fIRate\fR تعریف می‌شود، که \fIRate\fR نشان‌دهنده حداکثر نرخ ورودی مجاز به \fBبایت\fR در ثانیه است\&. هنگامی که یک اتصال از این حد بیشتر شود، ejabberd خواندن از سوکت را متوقف می‌کند تا زمانی که نرخ میانگین مجدداً به زیر حد مجاز برسد\&. در مثال زیر شکل‌دهنده \fInormal\fR سرعت ترافیک را به 1000 بایت در ثانیه و شکل‌دهنده \fIfast\fR سرعت ترافیک را به 50000 بایت در ثانیه محدود می‌کند: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf shaper: normal: 1000 fast: 50000 .fi .if n \{\ .RE .\} .RE .PP \fBshaper_rules\fR: \fI{ShaperRuleName: {Number|ShaperName: ACLName|ACLDefinition}}\fR .RS 4 این گزینه \fI\&.\&./configuration/basic\&.md#shaper\-rules|قوانین شکل‌دهنده\fR را برای تطبیق با کاربران/میزبان‌ها تعریف می‌کند\&. معناشناسی مشابه گزینه \fIaccess_rules\fR است، تنها تفاوت این است که به جای استفاده از \fIallow\fR یا \fIdeny\fR، باید از نام یک شکل‌دهنده (تعریف‌شده در گزینه \fIshaper\fR) یا یک عدد مثبت استفاده کرد\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf shaper_rules: connections_limit: 10: user: peter@example\&.com 100: admin 5: all download_speed: fast: admin slow: anonymous_users normal: all log_days: 30 .fi .if n \{\ .RE .\} .RE .PP \fBsm_cache_life_time\fR: \fItimeout()\fR .RS 4 مانند \fIcache_life_time\fR، اما تنها برای کش جدول نشست‌های کلاینت اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_life_time\fR استفاده می‌شود\&. .RE .PP \fBsm_cache_missed\fR: \fItrue | false\fR .RS 4 مانند \fIcache_missed\fR، اما تنها برای کش جدول نشست‌های کلاینت اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_missed\fR استفاده می‌شود\&. .RE .PP \fBsm_cache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مانند \fIcache_size\fR، اما تنها برای کش جدول نشست‌های کلاینت اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIcache_size\fR استفاده می‌شود\&. .RE .PP \fBsm_db_type\fR: \fImnesia | redis | sql\fR .RS 4 بک‌اند پایگاه داده برای استفاده در اطلاعات نشست‌های کلاینت\&. مقدار پیش‌فرض از گزینه \fIdefault_ram_db\fR گرفته می‌شود، یا اگر تنظیم نشده باشد، \fImnesia\fR استفاده می‌شود\&. .RE .PP \fBsm_use_cache\fR: \fItrue | false\fR .RS 4 مانند \fIuse_cache\fR، اما تنها برای کش جدول نشست‌های کلاینت اعمال می‌شود\&. اگر تنظیم نشده باشد، از مقدار \fIuse_cache\fR استفاده می‌شود\&. .RE .PP \fBsql_connect_timeout\fR: \fItimeout()\fR .RS 4 زمان انتظار برای برقراری اتصال به سرور SQL\&. مقدار پیش‌فرض \fI5\fR ثانیه است\&. .RE .PP \fBsql_database\fR: \fIDatabaseName | PathSqliteFile\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 26\&.04 بهبود یافت\&. نام پایگاه داده SQL، که مقدار پیش‌فرض آن \fIejabberd\fR است\&. اگر گزینه \fIsql_type\fR روی \fIsqlite\fR تنظیم شده باشد، این باید مسیر کامل به یک فایل پایگاه داده باشد، با مقدار پیش‌فرض: \*(Aq"@DATABASE_PATH@/sqlite/@HOST@\&.sqlite" .RE .PP \fBsql_flags\fR: \fI[mysql_alternative_upsert]\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 24\&.02 اضافه شد\&. این گزینه فهرستی از فلگ‌های SQL را می‌پذیرد و به طور پیش‌فرض خالی است\&. \fImysql_alternative_upsert\fR پیاده‌سازی جایگزین upsert را در MySQL اجبار می‌کند\&. .RE .PP \fBsql_keepalive_interval\fR: \fItimeout()\fR .RS 4 بازه‌ای برای ارسال یک درخواست SQL ساختگی جهت زنده نگه داشتن اتصالات به پایگاه داده\&. هیچ مقدار پیش‌فرضی وجود ندارد، بنابراین هیچ درخواست keepalive ارسال نمی‌شود\&. .RE .PP \fBsql_odbc_driver\fR: \fIPath\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 20\&.12 اضافه شد\&. مسیر درایور ODBC برای اتصال به پایگاه داده Microsoft SQL Server\&. این گزینه تنها در صورتی اعمال می‌شود که گزینه \fIsql_type\fR روی \fImssql\fR تنظیم شده باشد و \fIsql_server\fR یک رشته اتصال ODBC نباشد\&. مقدار پیش‌فرض: \fIlibtdsodbc\&.so\fR .RE .PP \fBsql_password\fR: \fIPassword\fR .RS 4 رمز عبور برای احراز هویت SQL\&. پیش‌فرض یک رشته خالی است\&. .RE .PP \fBsql_pool_size\fR: \fISize\fR .RS 4 تعداد اتصالات به سرور SQL که ejabberd برای هر میزبان مجازی باز می‌کند\&. مقدار پیش‌فرض \fI10\fR است\&. هشدار: برای SQLite این مقدار به طور پیش‌فرض \fI1\fR است و به دلیل شرایط رقابتی احتمالی توصیه نمی‌شود آن را تغییر دهید\&. .RE .PP \fBsql_port\fR: \fI1\&.\&.65535\fR .RS 4 پورتی که سرور SQL اتصالات را روی آن می‌پذیرد\&. پیش‌فرض \fI3306\fR برای MySQL، \fI5432\fR برای PostgreSQL و \fI1433\fR برای MS SQL است\&. این گزینه برای SQLite تأثیری ندارد\&. .RE .PP \fBsql_prepared_statements\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 20\&.01 اضافه شد\&. این گزینه به طور پیش‌فرض \fItrue\fR است و برای غیرفعال کردن دستورات آماده (prepared statements) مفید است\&. این گزینه برای PostgreSQL و MySQL معتبر است\&. .RE .PP \fBsql_query_timeout\fR: \fItimeout()\fR .RS 4 زمان انتظار برای پاسخ یک کوئری SQL\&. مقدار پیش‌فرض \fI60\fR ثانیه است\&. .RE .PP \fBsql_queue_type\fR: \fIram | file\fR .RS 4 نوع صف درخواست برای سرور SQL\&. برای توضیح به شرح گزینه \fIqueue_type\fR مراجعه کنید\&. مقدار پیش‌فرض همان مقدار تعریف‌شده در \fIqueue_type\fR یا \fIram\fR در صورت عدم تنظیم آن است\&. .RE .PP \fBsql_schema_multihost\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.10 تغییر نام یافت\&. تعیین می‌کند که آیا از \fIdatabase\&.md#singlehost\-or\-multihost|طرح SQL چندمیزبانه\fR استفاده شود\&. تمام طرح‌ها در https://github\&.com/processone/ejabberd/tree/26\&.07/sql قرار دارند\&. دو طرح در دسترس هستند\&. طرح قدیمی \fIsinglehost\fR یک دامنه XMPP را در یک پایگاه داده ejabberd ذخیره می‌کند\&. طرح \fImultihost\fR می‌تواند چندین دامنه XMPP را در یک پایگاه داده ejabberd مدیریت کند\&. طرح \fImultihost\fR هنگام ارائه خدمات به چندین دامنه XMPP و/یا تغییر دامنه‌ها از وقت به وقت ارجح است\&. این از نیاز به مدیریت چندین پایگاه داده و پیچیدگی‌های تغییرات پیکربندی جلوگیری می‌کند\&. مقدار پیش‌فرض به فلگ \fI\-\-enable\-sql\-schema\-multihost\fR در \fI\&.\&./\&.\&./admin/install/source\&.md#configure|\&./configure\fR که در زمان کامپایل تنظیم می‌شود بستگی دارد\&. .RE .PP \fBsql_server\fR: \fIHost | IP Address | ODBC Connection String | Unix Socket Path\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 24\&.06 بهبود یافت\&. نام میزبان یا آدرس IP سرور SQL\&. برای \fIsql_type\fR های \fImssql\fR یا \fIodbc\fR می‌تواند یک رشته اتصال ODBC نیز باشد\&. هنگامی که \fIsql_type\fR برابر با \fImysql\fR یا \fIpgsql\fR است، می‌تواند مسیر یک سوکت دامنه یونیکس باشد که این‌گونه بیان می‌شود: \fI"unix:/path/to/socket"\fR\&. مقدار پیش‌فرض \fIlocalhost\fR است\&. .RE .PP \fBsql_ssl\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 20\&.03 بهبود یافت\&. تعیین می‌کند که آیا از اتصالات رمزگذاری‌شده SSL به سرور SQL استفاده شود\&. این گزینه تنها برای MySQL، MS SQL و PostgreSQL در دسترس است\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBsql_ssl_cafile\fR: \fIPath\fR .RS 4 مسیر فایلی با گواهی‌های ریشه CA که برای تأیید اتصالات SQL استفاده می‌شود\&. به این معنی که گزینه‌های \fIsql_ssl\fR و \fIsql_ssl_verify\fR روی \fItrue\fR تنظیم شده‌اند\&. هیچ مقدار پیش‌فرضی وجود ندارد که به این معنی است که تأیید گواهی غیرفعال است\&. این گزینه برای MS SQL تأثیری ندارد\&. .RE .PP \fBsql_ssl_certfile\fR: \fIPath\fR .RS 4 مسیر فایل گواهی که برای اتصالات SSL به سرور SQL استفاده می‌شود\&. به این معنی که گزینه \fIsql_ssl\fR روی \fItrue\fR تنظیم شده است\&. هیچ مقدار پیش‌فرضی وجود ندارد که به این معنی است که ejabberd هیچ گواهی کلاینتی به سرور SQL ارائه نمی‌دهد\&. این گزینه برای MS SQL تأثیری ندارد\&. .RE .PP \fBsql_ssl_verify\fR: \fItrue | false\fR .RS 4 تعیین می‌کند که آیا اتصال SSL به سرور SQL در برابر گواهی‌های ریشه CA تعریف‌شده در گزینه \fIsql_ssl_cafile\fR تأیید شود\&. به این معنی که گزینه \fIsql_ssl\fR روی \fItrue\fR تنظیم شده است\&. این گزینه برای MS SQL تأثیری ندارد\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBsql_start_interval\fR: \fItimeout()\fR .RS 4 زمان انتظار قبل از تلاش مجدد برای بازیابی اتصال SQL ناموفق\&. مقدار پیش‌فرض \fI30\fR ثانیه است\&. .RE .PP \fBsql_type\fR: \fImssql | mysql | odbc | pgsql | sqlite\fR .RS 4 نوع اتصال SQL\&. پیش‌فرض \fIodbc\fR است\&. .RE .PP \fBsql_username\fR: \fIUsername\fR .RS 4 نام کاربری برای احراز هویت SQL\&. مقدار پیش‌فرض \fIejabberd\fR است\&. .RE .PP \fBtrusted_proxies\fR: \fIall | [Network1, Network2, \&.\&.\&.]\fR .RS 4 مشخص می‌کند که هنگامی که یک درخواست HTTP حاوی هدر \fIX\-Forwarded\-For\fR است، کدام پروکسی‌ها مورد اعتماد هستند\&. می‌توانید \fIall\fR را برای اجازه دادن به تمام پروکسی‌ها مشخص کنید، یا فهرستی از IP‌ها را احتمالاً با ماسک مشخص کنید\&. مقدار پیش‌فرض یک فهرست خالی است\&. با استفاده از این گزینه می‌توانید IP واقعی درخواست را برای اهداف مدیریتی یا پیکربندی امنیتی بدانید (برای مثال با استفاده از \fImod_fail2ban\fR)\&. مهم: پروکسی باید پیکربندی شود که هدر \fIX\-Forwarded\-For\fR را تنظیم کند اگر این گزینه را فعال کنید، در غیر این صورت کلاینت می‌تواند آن را خودش تنظیم کند و در نتیجه مقدار IP برای قوانین امنیتی در ejabberd قابل اعتماد نیست\&. .RE .PP \fBupdate_sql_schema\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 24\&.06 به‌روز شد\&. به ejabberd اجازه می‌دهد طرح SQL را در پایگاه داده‌های MySQL، PostgreSQL و SQLite به‌روز کند\&. این گزینه در ejabberd نسخه 23\&.10 اضافه شد و از نسخه 24\&.06 به طور پیش‌فرض فعال است\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBupdate_sql_schema_timeout\fR: \fItimeout()\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 24\&.07 اضافه شد\&. زمان اختصاص‌یافته به کوئری‌های به‌روزرسانی طرح SQL\&. مقدار پیش‌فرض 5 دقیقه است\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 فعال یا غیرفعال کردن کش\&. پیش‌فرض \fItrue\fR است\&. چندین ماژول گزینه مشابهی دارند؛ و برخی بخش‌های هسته ejabberd نیز از گزینه‌های مشابه پشتیبانی می‌کنند، به \fIauth_use_cache\fR، \fIoauth_use_cache\fR، \fIrouter_use_cache\fR و \fIsm_use_cache\fR مراجعه کنید\&. .RE .PP \fBvalidate_stream\fR: \fItrue | false\fR .RS 4 تعیین می‌کند که آیا هر بسته XML ورودی طبق طرح‌های افزونه‌های پشتیبانی‌شده XMPP اعتبارسنجی شود\&. هشدار: این اعتبارسنجی تنها برای استفاده توسط توسعه‌دهندگان کلاینت در نظر گرفته شده است - آن را در محیط تولید فعال نکنید\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBversion\fR: \fIstring()\fR .RS 4 این گزینه می‌تواند برای تنظیم نسخه سفارشی ejabberd استفاده شود که توسط بخش‌های مختلف ejabberd استفاده می‌شود، برای مثال توسط ماژول \fImod_version\fR\&. مقدار پیش‌فرض در زمان کامپایل از سیستم کنترل نسخه زیربنایی به دست می‌آید\&. .RE .PP \fBwebsocket_origin\fR: \fIignore | URL\fR .RS 4 این گزینه اعتبارسنجی هدر \fIOrigin\fR را برای محافظت در برابر اتصالات از دامنه‌های دیگر غیر از آنچه در فایل پیکربندی مشخص شده فعال می‌کند\&. به این ترتیب، لود بالانسر لایه پایین‌تر می‌تواند برای یک پیاده‌سازی خاص ejabberd انتخاب شود در حالی که یک اتصال WebSocket امن همچنان فراهم می‌شود\&. مقدار پیش‌فرض \fIignore\fR است\&. یک مثال از مقدار \fIURL\fR می‌تواند \fI"https://test\&.example\&.org:8081"\fR باشد\&. .RE .PP \fBwebsocket_ping_interval\fR: \fItimeout()\fR .RS 4 زمان بین پینگ‌های ارسال‌شده از سرور به کلاینت (برای این منظور از پینگ‌های سطح پروتکل WebSocket استفاده می‌شود) برای زنده نگه داشتن اتصال را تعریف می‌کند\&. اگر کلاینت به دو پینگ متوالی پاسخ ندهد، اتصال بسته‌شده تلقی می‌شود\&. مقدار \fI0\fR می‌تواند برای غیرفعال کردن این قابلیت استفاده شود\&. این گزینه باعث می‌شود سرور پینگ‌ها را تنها برای اتصالاتی که از پروتکل مطابق با RFC استفاده می‌کنند ارسال کند\&. برای اتصالات با سبک قدیمی‌تر، سرور انتظار دارد که از پینگ‌های فضای خالی برای این منظور استفاده شود\&. مقدار پیش‌فرض \fI60\fR ثانیه است\&. .RE .PP \fBwebsocket_timeout\fR: \fItimeout()\fR .RS 4 مدت زمان بدون هیچ ارتباطی که پس از آن اتصال بسته می‌شود\&. مقدار پیش‌فرض \fI300\fR ثانیه است\&. .RE .SH "ماژول‌ها (MODULES)" .sp این بخش گزینه‌های ماژول‌های ejabberd 26\&.07 را توضیح می‌دهد\&. ماژول‌هایی که در این نسخه تغییر کرده‌اند با 🟠 مشخص شده‌اند\&. .SS "mod_adhoc" .sp def:ad\-hoc command .sp : دستوری که می‌تواند توسط یک کلاینت XMPP با استفاده از XEP\-0050 اجرا شود\&. .sp این ماژول XEP\-0050: Ad\-Hoc Commands را پیاده‌سازی می‌کند\&. یک ماژول کمکی است و تنها توسط برخی از ماژول‌های دیگر مورد نیاز است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBreport_commands_node\fR: \fItrue | false\fR .RS 4 آیتم Commands را در Service Discovery فراهم می‌کند\&. مقدار پیش‌فرض: \fIfalse\fR\&. .RE .RE .SS "mod_adhoc_api" .sp \fIتوجه\fR درباره این گزینه: در نسخه 25\&.03 اضافه شده است\&. .sp اجرای (def:API commands) در یک کلاینت XMPP با استفاده از XEP\-0050: Ad\-Hoc Commands\&. این ماژول به \fImod_adhoc\fR (برای اجرای دستورات) نیاز دارد، و استفاده از \fImod_disco\fR (برای کشف دستورات) را توصیه می‌کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBdefault_version\fR: \fIinteger() | string()\fR .RS 4 نسخه API مورد استفاده\&. اگر نسخه ejabberd تنظیم شود، از آخرین نسخه API که در آن نسخه (def:c2s) ejabberd موجود بوده استفاده می‌کند\&. به عنوان مثال، تنظیم \fI"24\&.06"\fR در این گزینه معادل \fI2\fR است\&. مقدار پیش‌فرض آخرین نسخه است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf acl: admin: user: jan@localhost api_permissions: "adhoc commands": from: mod_adhoc_api who: admin what: \- "[tag:roster]" \- "[tag:session]" \- stats \- status modules: mod_adhoc_api: default_version: 2 .fi .if n \{\ .RE .\} .RE .SS "mod_admin_extra" .sp این ماژول دستورات مدیریتی اضافی فراهم می‌کند\&. .sp جزئیات برخی دستورات: .sp \fIban_account\fR API: این دستور تمام نشست‌های متصل حساب کاربری را از سرور قطع می‌کند\&. همچنین رمز عبور آن‌ها را به یک رمز تصادفی تغییر می‌دهد تا دیگر نتوانند وارد شوند مگر اینکه مدیر سرور رمز عبور آن‌ها را مجدداً تغییر دهد\&. امکان تعریف دلیل مسدودسازی وجود دارد\&. رمز عبور جدید نیز شامل دلیل و تاریخ و زمان مسدودسازی است\&. مثالی در زیر آمده است\&. .sp \fIpush_roster\fR API (و \fIpush_roster_all\fR API): فایل roster باید در صورت استفاده از Windows، در دایرکتوری نصب ejabberd قرار گیرد: C:/Program Files/ejabberd یا مشابه آن\&. در صورت استفاده از سیستم‌عامل دیگر، فایل را در همان دایرکتوری که فایل‌های \&.beam نصب شده‌اند قرار دهید\&. در زیر یک فایل roster نمونه آمده است\&. .sp \fIsrg_create\fR API: اگر می‌خواهید نام گروه را با فاصله وارد کنید، از کاراکترهای \fI"\fR\*(Aq و \fI\*(Aq"\fR برای مشخص کردن شروع و پایان نام استفاده کنید\&. مثالی در زیر آمده است\&. .sp این ماژول گزینه‌ای ندارد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp با این پیکربندی، vCard‌ها فقط با دستورات mod_admin_extra قابل تغییر هستند: .sp .if n \{\ .RS 4 .\} .nf acl: adminextraresource: \- resource: "modadminextraf8x,31ad" access_rules: vcard_set: \- allow: adminextraresource modules: mod_admin_extra: {} mod_vcard: access_set: vcard_set .fi .if n \{\ .RE .\} .sp محتوای فایل roster برای \fIpush_roster\fR API: .sp .if n \{\ .RS 4 .\} .nf [{<<"bob">>, <<"example\&.org">>, <<"workers">>, <<"Bob">>}, {<<"mart">>, <<"example\&.org">>, <<"workers">>, <<"Mart">>}, {<<"Rich">>, <<"example\&.org">>, <<"bosses">>, <<"Rich">>}]\&. .fi .if n \{\ .RE .\} .sp با این فراخوانی، نشست‌های حساب محلی با JID \fIboby@example\&.org\fR قطع می‌شوند و رمز عبور آن به چیزی شبیه \fIBANNED_ACCOUNT\(em20080425T21:45:07\(em2176635\(emSpammed_rooms\fR تغییر می‌یابد .sp .if n \{\ .RS 4 .\} .nf ejabberdctl vhost example\&.org ban_account boby "Spammed rooms" .fi .if n \{\ .RE .\} .sp فراخوانی \fIsrg_create\fR API با استفاده از کوتیشن‌های دوتایی و تکی: .sp .if n \{\ .RS 4 .\} .nf ejabberdctl srg_create g1 example\&.org "\*(AqGroup number 1\*(Aq" this_is_g1 g1 .fi .if n \{\ .RE .\} .sp \fBبرچسب‌های API:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#accounts|accounts\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#erlang|erlang\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#last|last\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#private|private\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#purge|purge\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#roster|roster\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#session|session\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#shared_roster_group|shared_roster_group\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#stanza|stanza\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#statistics|statistics\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#vcard|vcard\fR .RE .SS "mod_admin_update_sql" .sp از این ماژول می‌توان برای تبدیل پایگاه داده SQL موجود از طرح‌واره تک‌میزبانه به چندمیزبانه استفاده کرد\&. برای جزئیات بخش \fIdatabase\&.md#singlehost\-or\-multihost|Singlehost or Multihost\fR را بررسی کنید\&. توجه داشته باشید که تنها MS SQL، MySQL و PostgreSQL پشتیبانی می‌شوند\&. پس از بارگذاری ماژول از \fIupdate_sql\fR API استفاده کنید\&. .sp این ماژول گزینه‌ای ندارد\&. .SS "mod_announce" .sp این ماژول به کاربران پیکربندی‌شده امکان می‌دهد اعلان‌ها را پخش کنند و پیام روز (MOTD) را تنظیم کنند\&. کاربران پیکربندی‌شده می‌توانند این اعمال را با یک کلاینت XMPP، یا از طریق Ad\-Hoc Commands یا ارسال پیام به JIDهای خاص انجام دهند\&. دستورات معادل API نیز موجود هستند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp این ماژول در استقرارهای بزرگ می‌تواند منابع زیادی مصرف کند زیرا ممکن است پیام‌های زیادی پخش کند\&. این ماژول باید برای نمونه‌های ejabberd با صدها هزار کاربر غیرفعال شود\&. .sp .5v .RE .sp برای ارسال اعلان‌ها با استفاده از XEP\-0050: Ad\-Hoc Commands، این ماژول به \fImod_adhoc\fR (برای اجرای دستورات) نیاز دارد، و استفاده از \fImod_disco\fR (برای کشف دستورات) را توصیه می‌کند\&. .sp برای ارسال اعلان‌ها از طریق ارسال پیام به JIDهای خاص، JIDهای مقصد به شرح زیر هستند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/all\fR: پیام را به تمام کاربران ثبت‌شده در آن vhost ارسال می‌کند\&. اگر کاربر آنلاین باشد و به چندین منبع متصل باشد، تنها منبع با بالاترین اولویت پیام را دریافت می‌کند\&. اگر کاربر ثبت‌شده متصل نباشد، پیام به صورت آفلاین ذخیره می‌شود با این فرض که ذخیره‌سازی آفلاین (مراجعه کنید به \fImod_offline\fR) فعال باشد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/online\fR: پیام را به تمام کاربران متصل ارسال می‌کند\&. اگر کاربر آنلاین باشد و به چندین منبع متصل باشد، تمام منابع پیام را دریافت می‌کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/motd\fR: پیام روز (MOTD) را تنظیم می‌کند که هنگام ورود به کاربران ارسال می‌شود\&. همچنین پیام را به تمام کاربران متصل ارسال می‌کند (مشابه \fIannounce/online\fR)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/motd/update\fR: پیام روز (MOTD) را تنظیم می‌کند که هنگام ورود به کاربران ارسال می‌شود\&. این گزینه پیام را به هیچ کاربر متصل فعلی ارسال نمی‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/motd/delete\fR: پیام روز (MOTD) موجود را با ارسال یک پیام به این JID حذف می‌کند\&. .RE .sp JIDهای مقصد مشابهی برای اعمال بر تمام میزبان‌های مجازی در ejabberd وجود دارد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/all\-hosts/all\fR: ارسال به تمام حساب‌های ثبت‌شده .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/all\-hosts/online\fR: ارسال به نشست‌های آنلاین .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/all\-hosts/motd\fR: تنظیم MOTD و ارسال به کاربران آنلاین .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/all\-hosts/motd/update\fR: به‌روزرسانی MOTD .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIexample\&.org/announce/all\-hosts/motd/delete\fR: حذف MOTD .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 این گزینه مشخص می‌کند چه کسی مجاز به ارسال اعلان‌ها و تنظیم پیام روز است\&. مقدار پیش‌فرض \fInone\fR است (یعنی هیچ‌کس قادر به ارسال چنین پیام‌هایی نیست)\&. .RE .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 مشابه گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 مشابه گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مشابه گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 مشابه گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 مشابه گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .sp \fBبرچسب‌های API:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#announce|announce\fR .RE .SS "mod_antispam" .sp \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شده است\&. .sp پیام‌های هرزنامه و درخواست‌های اشتراک دریافتی از سرورهای راه دور را بر اساس فهرست‌های بلوک بلادرنگ (RTBL)، فهرست‌های JID های اسپمر شناخته‌شده و/یا URLهای ذکرشده در پیام‌های هرزنامه فیلتر می‌کند\&. ترافیک طبقه‌بندی‌شده به عنوان هرزنامه با یک خطا رد می‌شود (و یک پیام \fI[info]\fR ثبت می‌گردد) مگر اینکه فرستنده در حضور گیرنده مشترک باشد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_spam\fR: \fIAccess\fR .RS 4 قانون دسترسی که کنترل می‌کند چه حساب‌هایی ممکن است پیام‌های هرزنامه دریافت کنند\&. اگر این قانون برای یک گیرنده مشخص \fIallow\fR برگرداند، پیام‌های هرزنامه برای آن گیرنده رد نمی‌شوند\&. مقدار پیش‌فرض \fInone\fR است، که به این معنی است که همه گیرندگان تحت بررسی فیلتر هرزنامه قرار می‌گیرند\&. .RE .PP \fBcache_size\fR: \fIpos_integer()\fR .RS 4 حداکثر تعداد JID هایی که به دلیل ارسال URLهای هرزنامه در حافظه پنهان ذخیره می‌شوند\&. اگر این محدودیت بیش از حد شود، کم‌استفاده‌ترین ورودی‌ها از حافظه پنهان حذف می‌شوند\&. تنظیم این گزینه روی \fI0\fR ویژگی ذخیره‌سازی موقت را غیرفعال می‌کند\&. توجه داشته باشید که برای هر میزبان مجازی حافظه‌های پنهان جداگانه‌ای استفاده می‌شود و این حافظه‌های پنهان در بین گره‌های خوشه توزیع نمی‌شوند\&. مقدار پیش‌فرض \fI10000\fR است\&. .RE .PP \fBrtbl_services\fR: \fI[Service]\fR .RS 4 یک سرویس RTBL را برای دریافت دامنه‌های مسدود، مانند آنچه توسط xmppbl\&.org ارائه می‌شود، پرس‌وجو می‌کند\&. لطفاً توجه داشته باشید که در حال حاضر این گزینه فقط از یک سرویس در آن فهرست پشتیبانی می‌کند\&. برای مسدود کردن هرزنامه و سوءاستفاده در کانال‌های MUC، در حال حاضر از \fImod_muc_rtbl\fR استفاده کنید\&. اگر فقط میزبان ارائه شود، نام گره‌های پیش‌فرض فرض می‌شوند\&. اگر نام گره با \fIspam_source_domains\fR متفاوت باشد، می‌توانید نام گره سفارشی را با گزینه \fIspam_source_domains_node\fR تنظیم کنید\&. مقدار پیش‌فرض یک فهرست خالی از سرویس‌ها است\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf rtbl_services: \- pubsub\&.server1\&.localhost: spam_source_domains_node: actual_custom_pubsub_node .fi .if n \{\ .RE .\} .RE .PP \fBspam_domains_file\fR: \fInone | Path\fR .RS 4 مسیر یک فایل متنی ساده حاوی فهرستی از دامنه‌های هرزنامه شناخته‌شده، یک دامنه در هر خط\&. پیام‌ها و درخواست‌های اشتراک ارسال‌شده از یکی از دامنه‌های فهرست‌شده در صورتی که فرستنده در لیست مخاطبین گیرنده نباشد به عنوان هرزنامه طبقه‌بندی می‌شوند\&. این فهرست دامنه‌ها با فهرست بازیابی‌شده توسط یک میزبان RTBL در صورت وجود ادغام می‌شود\&. از یک مسیر مطلق یا کلیدواژه از پیش تعریف‌شده \fI@CONFIG_PATH@\fR استفاده کنید اگر فایل در دایرکتوری پیکربندی موجود است\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBspam_dump_file\fR: \fIfalse | true | Path\fR .RS 4 مسیر فایلی برای ذخیره پیام‌های مسدودشده\&. از یک مسیر مطلق یا کلیدواژه از پیش تعریف‌شده \fI@LOG_PATH@\fR استفاده کنید تا لاگ‌ها در همان مکان سایر فایل‌های لاگ ejabberd ذخیره شوند\&. اگر روی \fIfalse\fR تنظیم شود، استانزاها را ذخیره نمی‌کند، که پیش‌فرض است\&. اگر روی \fItrue\fR تنظیم شود، در \fI"@LOG_PATH@/spam_dump_@HOST@\&.log"\fR ذخیره می‌کند\&. .RE .PP \fBspam_jids_file\fR: \fInone | Path\fR .RS 4 مسیر یک فایل متنی ساده حاوی فهرستی از JID های اسپمر شناخته‌شده، یک JID در هر خط\&. پیام‌ها و درخواست‌های اشتراک ارسال‌شده از یکی از JID های فهرست‌شده به عنوان هرزنامه طبقه‌بندی می‌شوند\&. پیام‌های حاوی حداقل یکی از JID های فهرست‌شده نیز به عنوان هرزنامه طبقه‌بندی می‌شوند\&. علاوه بر این، JID فرستنده در حافظه پنهان ذخیره می‌شود تا ترافیک آینده از آن JID نیز به عنوان هرزنامه طبقه‌بندی شود\&. از یک مسیر مطلق یا کلیدواژه از پیش تعریف‌شده \fI@CONFIG_PATH@\fR استفاده کنید اگر فایل در دایرکتوری پیکربندی موجود است\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBspam_urls_file\fR: \fInone | Path\fR .RS 4 مسیر یک فایل متنی ساده حاوی فهرستی از URLهایی که در متن پیام‌های هرزنامه ذکر شده‌اند\&. پیام‌های حاوی حداقل یکی از URLهای فهرست‌شده به عنوان هرزنامه طبقه‌بندی می‌شوند\&. علاوه بر این، JID فرستنده در حافظه پنهان ذخیره می‌شود تا ترافیک آینده از آن JID نیز به عنوان هرزنامه طبقه‌بندی شود\&. از یک مسیر مطلق یا کلیدواژه از پیش تعریف‌شده \fI@CONFIG_PATH@\fR استفاده کنید اگر فایل در دایرکتوری پیکربندی موجود است\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBwhitelist_domains_file\fR: \fInone | Path\fR .RS 4 مسیر یک فایل حاوی فهرستی از دامنه‌هایی که باید از مسدود شدن معاف شوند، یک دامنه در هر خط\&. اگر دامنه‌ای در \fIspam_domains_file\fR یا واقع‌بینانه‌تر در دامنه‌ای ارسال‌شده توسط یک میزبان RTBL (گزینه \fIrtbl_services\fR را ببینید) باشد، این دامنه نادیده گرفته می‌شود و استانزاهای آن مسدود نمی‌شوند\&. از یک مسیر مطلق یا کلیدواژه از پیش تعریف‌شده \fI@CONFIG_PATH@\fR استفاده کنید اگر فایل در دایرکتوری پیکربندی موجود است\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_antispam: rtbl_services: \- xmppbl\&.org spam_jids_file: "@CONFIG_PATH@/spam_jids\&.txt" spam_dump_file: "@LOG_PATH@/spam/host\-@HOST@\&.log" .fi .if n \{\ .RE .\} .RE .SS "mod_auth_fast 🟠" .sp \fIتوجه\fR درباره این گزینه: در نسخه 26\&.07 بهبود یافته است\&. .sp این ماژول پشتیبانی از XEP\-0484: Fast Authentication Streamlining Tokens را اضافه می‌کند که به کاربران اجازه می‌دهد با استفاده از توکن‌های خودمدیریتی احراز هویت کنند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBdb_type 🟠\fR: \fImnesia | sql\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 26\&.07 بهبود یافته است\&. مشابه گزینه سطح بالای \fIdefault_db\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBtoken_lifetime\fR: \fItimeout()\fR .RS 4 مدت زمانی که توکن‌ها نگهداری می‌شوند، اندازه‌گیری‌شده از زمان ایجاد آن‌ها\&. مقدار پیش‌فرض ۳۰ روز تنظیم شده است\&. .RE .PP \fBtoken_refresh_age\fR: \fItimeout()\fR .RS 4 این زمان سن توکنی را که واجد شرایط تجدید خودکار است تعیین می‌کند\&. مقدار پیش‌فرض ۱ روز تنظیم شده است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_auth_fast: token_lifetime: 14days .fi .if n \{\ .RE .\} .RE .SS "mod_avatar" .sp هدف این ماژول رسیدگی به کلاینت‌های XMPP قدیمی و مدرنی است که آواتار ارسال می‌کنند\&. این فرآیند در XEP\-0398: User Avatar to vCard\-Based Avatars Conversion توضیح داده شده است\&. .sp همچنین، این ماژول از تبدیل بین فرمت‌های تصویر آواتار به صورت آنی پشتیبانی می‌کند\&. .sp این ماژول به \fImod_vcard\fR، \fImod_vcard_xupdate\fR و \fImod_pubsub\fR وابسته است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBconvert\fR: \fI{From: To}\fR .RS 4 قوانین تبدیل تصویر را تعریف می‌کند: فرمت در \fIFrom\fR به فرمت در \fITo\fR تبدیل می‌شود\&. مقدار \fIFrom\fR می‌تواند \fIdefault\fR هم باشد که یک قانون همه‌چیز-مطابقت است\&. توجه: فهرست فرمت‌های پشتیبانی‌شده در زمان کامپایل بسته به کتابخانه‌های تصویر نصب‌شده در سیستم تشخیص داده می‌شود\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf convert: webp: jpg default: png .fi .if n \{\ .RE .\} .RE .PP \fBrate_limit\fR: \fINumber\fR .RS 4 هر JID داده‌شده را بر اساس تعداد آواتارهایی که می‌تواند در دقیقه تبدیل کند محدود می‌کند\&. این برای محافظت از سرور در برابر DoS تبدیل تصویر است\&. مقدار پیش‌فرض \fI10\fR است\&. .RE .RE .SS "mod_block_strangers" .sp این ماژول هر پیامی که از یک موجودیت ناشناخته می‌آید را مسدود و ثبت می‌کند\&. اگر یک موجودیت نویسنده در لیست مخاطبین شما نباشد، می‌توانید اجازه دهید این ماژول پیام را رد کند و/یا ثبت کند\&. به طور پیش‌فرض پیام از آن موجودیت دریافت نخواهید کرد\&. اگر می‌خواهید پیام‌های هرزنامه را رد کنید این ماژول را فعال کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 این گزینه قرار است زمانی استفاده شود که \fIallow_local_users\fR و \fIallow_transports\fR کافی نیستند\&. این یک قانون دسترسی است که در آن \fIdeny\fR به معنای رد شدن استانزا است؛ استثنایی وجود دارد اگر گزینه \fIcaptcha\fR پیکربندی شده باشد\&. و \fIallow\fR به این معنا است که فرستنده در لیست سفید قرار دارد و استانزا عبور خواهد کرد\&. مقدار پیش‌فرض \fInone\fR است، که به این معنی است که هیچ چیز در لیست سفید قرار ندارد\&. .RE .PP \fBallow_local_users\fR: \fItrue | false\fR .RS 4 این گزینه مشخص می‌کند که آیا افراد ناشناس از همان میزبان محلی باید پذیرفته شوند یا نه\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBallow_transports\fR: \fItrue | false\fR .RS 4 اگر روی \fItrue\fR تنظیم شود و JID برخی سرورها در لیست مخاطبین کاربر باشد، پیام‌های هر کاربر از آن سرور حتی در صورت عدم وجود اشتراک پذیرفته می‌شوند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBcaptcha\fR: \fItrue | false\fR .RS 4 آیا در پاسخ به درخواست‌های اشتراک حضور ورودی از افراد ناشناس چالش‌های CAPTCHA ایجاد شود\&. همچنین بخش \fIbasic\&.md#captcha|CAPTCHA\fR از راهنمای پیکربندی را ببینید\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBdrop\fR: \fItrue | false\fR .RS 4 این گزینه مشخص می‌کند که آیا پیام‌های افراد ناشناس باید رد شوند یا نه\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBlog\fR: \fItrue | false\fR .RS 4 این گزینه مشخص می‌کند که آیا پیام‌های افراد ناشناس باید (به عنوان پیام info) در ejabberd\&.log ثبت شوند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .RE .SS "mod_blocking" .sp این ماژول XEP\-0191: Blocking Command را پیاده‌سازی می‌کند\&. .sp این ماژول به \fImod_privacy\fR وابسته است که در آن همه پیکربندی‌ها انجام می‌شود\&. .sp این ماژول هیچ گزینه‌ای ندارد\&. .SS "mod_bosh" .sp این ماژول XMPP over BOSH را همان‌طور که در XEP\-0124 و XEP\-0206 تعریف شده پیاده‌سازی می‌کند\&. BOSH مخفف Bidirectional\-streams Over Synchronous HTTP است\&. این امکان را فراهم می‌کند که اتصالات طولانی‌مدت مورد نیاز XMPP را از طریق پروتکل HTTP شبیه‌سازی کنید\&. در عمل، این ماژول امکان استفاده از XMPP را در مرورگر بدون پشتیبانی WebSocket فراهم می‌کند و به طور کلی راهی برای استفاده از XMPP در عبور از پروکسی HTTP است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 مشابه گزینه سطح بالای \fIcache_life_time\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 مشابه گزینه سطح بالای \fIcache_missed\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مشابه گزینه سطح بالای \fIcache_size\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBjson\fR: \fItrue | false\fR .RS 4 این گزینه هیچ تأثیری ندارد\&. .RE .PP \fBmax_concat\fR: \fIpos_integer() | infinity\fR .RS 4 این گزینه تعداد استانزاهایی که سرور در یک درخواست bosh ارسال می‌کند را محدود می‌کند\&. مقدار پیش‌فرض \fIunlimited\fR است\&. .RE .PP \fBmax_inactivity\fR: \fItimeout()\fR .RS 4 این گزینه حداکثر دوره عدم فعالیت را تعریف می‌کند\&. مقدار پیش‌فرض \fI30\fR ثانیه است\&. .RE .PP \fBmax_pause\fR: \fIpos_integer()\fR .RS 4 حداکثر مدت توقف موقت جلسه (بر حسب ثانیه) که یک کلاینت می‌تواند درخواست کند را نشان می‌دهد\&. مقدار پیش‌فرض \fI120\fR است\&. .RE .PP \fBprebind\fR: \fItrue | false\fR .RS 4 اگر فعال شود، کلاینت می‌تواند بدون گذر از احراز هویت جلسه ایجاد کند\&. اساساً یک جلسه جدید با احراز هویت ناشناس ایجاد می‌کند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBqueue_type\fR: \fIram | file\fR .RS 4 مشابه گزینه سطح بالای \fIqueue_type\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBram_db_type\fR: \fImnesia | sql | redis\fR .RS 4 مشابه گزینه سطح بالای \fIdefault_ram_db\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 مشابه گزینه سطح بالای \fIuse_cache\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 5222 module: ejabberd_c2s \- port: 5443 module: ejabberd_http request_handlers: /bosh: mod_bosh modules: mod_bosh: {} .fi .if n \{\ .RE .\} .RE .SS "mod_caps" .sp این ماژول XEP\-0115: Entity Capabilities را پیاده‌سازی می‌کند\&. هدف اصلی این ماژول ارائه قابلیت PEP است (به \fImod_pubsub\fR مراجعه کنید)\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .SS "mod_carboncopy" .sp این ماژول XEP\-0280: Message Carbons را پیاده‌سازی می‌کند\&. این ماژول پیام‌ها را در تمام منابع (دستگاه‌های) متصل کاربر پخش می‌کند\&. .sp این ماژول هیچ گزینه‌ای ندارد\&. .SS "mod_client_state" .sp این ماژول امکان صف‌بندی انواع خاصی از استانزاها را فراهم می‌کند، زمانی که کلاینت نشان می‌دهد که کاربر در حال حاضر به‌طور فعال از کلاینت استفاده نمی‌کند (به XEP\-0352: Client State Indication مراجعه کنید)\&. این قابلیت می‌تواند پهنای باند و منابع را صرفه‌جویی کند\&. .sp یک استانزا از صف حذف می‌شود اگر به‌طور مؤثر توسط یک استانزای جدید منسوخ شود (مثلاً یک استانزای حضور جدید، استانزای قدیمی از همان کلاینت را جایگزین می‌کند)\&. صف خالی می‌شود اگر استانزایی برسد که در صف قرار نمی‌گیرد، یا اگر اندازه صف به حد معینی برسد (در حال حاضر ۱۰۰ استانزا)، یا اگر کلاینت دوباره فعال شود\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBqueue_chat_states\fR: \fItrue | false\fR .RS 4 اعلان‌های وضعیت چت «مستقل» (همان‌طور که در XEP\-0085: Chat State Notifications تعریف شده) را در حالت عدم فعالیت کلاینت در صف قرار می‌دهد\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBqueue_pep\fR: \fItrue | false\fR .RS 4 اعلان‌های PEP را در حالت عدم فعالیت کلاینت در صف قرار می‌دهد\&. هنگامی که صف خالی می‌شود، فقط جدیدترین اعلان یک گره PEP مشخص تحویل داده می‌شود\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBqueue_presence\fR: \fItrue | false\fR .RS 4 در حالت عدم فعالیت کلاینت، استانزاهای حضور که نشان‌دهنده در دسترس بودن یا نبودن هستند را در صف قرار می‌دهد\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .RE .SS "mod_configure" .sp \fIتوجه\fR درباره این گزینه: در نسخه ۲۵\&.۱۰ بهبود یافته است\&. .sp این ماژول قابلیت‌های پیکربندی کارگزار را با استفاده از XEP\-0030: Service Discovery و XEP\-0050: Ad\-Hoc Commands فراهم می‌کند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} فهرست و کشف اتصالات s2s خروجی، نشست‌های کلاینت آنلاین و تمام حساب‌های کاربری ثبت‌شده .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} اکثر دستورات ad\-hoc تعریف‌شده در XEP\-0133: Service Administration .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} دستورات ad\-hoc سفارشی اضافی مخصوص ejabberd .RE .sp دستورات ad\-hoc از XEP\-0133 که رفتار متفاوتی نسبت به XEP دارند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} get\-user\-roster: به جای آیتم‌های فهرست مخاطبان که کلاینت نمی‌تواند نمایش دهد، فیلدهای استاندارد برمی‌گرداند .RE .sp آن دستورات ad\-hoc از XEP\-0133 که کلاینت اجراکننده دستور را در پاسخ شامل نمی‌شوند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} get\-active\-users\-num .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} get\-idle\-users\-num .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} get\-active\-users .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} get\-idle\-users .RE .sp آن دستورات ad\-hoc از XEP\-0133 که پیاده‌سازی نشده‌اند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} edit\-blacklist .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} edit\-whitelist .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} edit\-admin .RE .sp این ماژول به \fImod_adhoc\fR (برای اجرای دستورات) نیاز دارد، و استفاده از \fImod_disco\fR (برای کشف دستورات) توصیه می‌شود\&. .sp توجه داشته باشید که تمام دستورات ad\-hoc پیاده‌سازی‌شده توسط این ماژول، معادل یک دستور API دارند که می‌توانید با استفاده از \fImod_adhoc_api\fR یا هر رابط API دیگری اجرا کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه ۲۵\&.۰۳ اضافه شده است\&. این گزینه تعیین می‌کند که کدام قانون دسترسی برای کنترل اینکه چه کسی مجاز به دسترسی به قابلیت‌های ارائه‌شده توسط این ماژول است، استفاده می‌شود\&. مقدار پیش‌فرض \fIconfigure\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf acl: admin: user: sun@localhost access_rules: configure: allow: admin modules: mod_configure: access: configure .fi .if n \{\ .RE .\} .RE .SS "mod_conversejs" .sp \fIتوجه\fR درباره این گزینه: در نسخه ۲۵\&.۰۷ بهبود یافته است\&. .sp این ماژول یک صفحه ساده برای کلاینت وب XMPP به نام Converse ارائه می‌دهد\&. .sp برای استفاده از این ماژول، علاوه بر افزودن آن به بخش \fImodules\fR، باید آن را در \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR نیز فعال کنید\&. .sp مطمئن شوید که \fImod_bosh\fR یا \fIlisten\&.md#ejabberd_http_ws|ejabberd_http_ws\fR حداقل در یک \fIrequest_handlers\fR فعال باشد\&. .sp وقتی \fIconversejs_css\fR و \fIconversejs_script\fR روی \fIauto\fR تنظیم شده‌اند، به‌طور پیش‌فرض به کلاینت عمومی Converse اشاره می‌کنند\&. .sp وقتی این ماژول در \fImodules\fR فعال می‌شود، به‌طور خودکار یک request handler و لینک در WebAdmin اضافه می‌کند\&. \&. .sp این ماژول از نسخه ejabberd 21\&.12 در دسترس است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBbosh_service_url\fR: \fIauto | BoshURL\fR .RS 4 آدرس URL سرویس BOSH که Converse می‌تواند به آن متصل شود\&. کلیدواژه \fI@HOST@\fR با نام میزبان مجازی واقعی جایگزین می‌شود\&. اگر روی \fIauto\fR تنظیم شود، URL اولین request handler BOSH پیکربندی‌شده را می‌سازد\&. مقدار پیش‌فرض \fIauto\fR است\&. .RE .PP \fBconversejs_css\fR: \fIauto | URL\fR .RS 4 آدرس URL فایل CSS مربوط به Converse\&. کلیدواژه \fI@HOST@\fR با نام میزبان جایگزین می‌شود\&. مقدار پیش‌فرض \fIauto\fR است\&. .RE .PP \fBconversejs_options\fR: \fI{Name: Value}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه ۲۲\&.۰۵ اضافه شده است\&. گزینه‌های اضافی را برای ارسال به Converse مشخص می‌کند\&. به پیکربندی Converse مراجعه کنید\&. فقط مقادیر boolean، عدد صحیح و رشته پشتیبانی می‌شوند؛ لیست‌ها پشتیبانی نمی‌شوند\&. .RE .PP \fBconversejs_plugins\fR: \fI[Filename]\fR .RS 4 فهرستی از فایل‌های محلی اضافی که به عنوان اسکریپت در صفحه اصلی گنجانده می‌شوند\&. لطفاً مطمئن شوید که این فایل‌ها در مسیر مشخص‌شده در گزینه \fIconversejs_resources\fR ، در زیردایرکتوری \fIplugins/\fR موجود هستند\&. توجه داشته باشید که \fIlibsignal\fR فقط برای رمزگذاری OMEMO در Converse نسخه ۱۳ یا پایین‌تر لازم است؛ Converse نسخه ۱۴ از \fIlibomemo\fR استفاده می‌کند و آن را شامل می‌شود\&. اگر از کلاینت عمومی Converse استفاده می‌کنید، \fI"libsignal"\fR با URL کتابخانه عمومی جایگزین می‌شود\&. مقدار پیش‌فرض \fI[]\fR است\&. .RE .PP \fBconversejs_resources\fR: \fIPath\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه ۲۲\&.۰۵ اضافه شده است\&. مسیر محلی به فایل‌های Converse\&. اگر تنظیم نشود، از کلاینت عمومی Converse استفاده خواهد شد\&. .RE .PP \fBconversejs_script\fR: \fIauto | URL\fR .RS 4 آدرس URL اسکریپت اصلی Converse\&. کلیدواژه \fI@HOST@\fR با نام میزبان جایگزین می‌شود\&. مقدار پیش‌فرض \fIauto\fR است\&. .RE .PP \fBdefault_domain\fR: \fIDomain\fR .RS 4 یک دامنه را به عنوان پیش‌فرض برای JIDهای کاربری مشخص می‌کند\&. کلیدواژه \fI@HOST@\fR با نام میزبان جایگزین می‌شود\&. مقدار پیش‌فرض \fI@HOST@\fR است\&. .RE .PP \fBwebsocket_url\fR: \fIauto | WebSocketURL\fR .RS 4 یک آدرس URL WebSocket که Converse می‌تواند به آن متصل شود\&. کلیدواژه \fI@HOST@\fR با نام میزبان مجازی واقعی جایگزین می‌شود\&. اگر روی \fIauto\fR تنظیم شود، URL اولین request handler WebSocket پیکربندی‌شده را می‌سازد\&. مقدار پیش‌فرض \fIauto\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp تنظیم دستی آدرس URL WebSocket و استفاده از کلاینت عمومی Converse: .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 5280 module: ejabberd_http request_handlers: /bosh: mod_bosh /websocket: ejabberd_http_ws /conversejs: mod_conversejs modules: mod_bosh: {} mod_conversejs: websocket_url: "ws://@HOST@:5280/websocket" .fi .if n \{\ .RE .\} .sp میزبانی محلی Converse و تشخیص خودکار آدرس‌های URL WebSocket و Converse: .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 443 module: ejabberd_http tls: true request_handlers: /websocket: ejabberd_http_ws /conversejs: mod_conversejs modules: mod_conversejs: conversejs_resources: "/home/ejabberd/conversejs\-x\&.y\&.z/package/dist" conversejs_plugins: ["libsignal\-protocol\&.min\&.js"] # File path is: /home/ejabberd/conversejs\-x\&.y\&.z/package/dist/plugins/libsignal\-protocol\&.min\&.js .fi .if n \{\ .RE .\} .sp پیکربندی برخی گزینه‌های اضافی برای Converse .sp .if n \{\ .RS 4 .\} .nf modules: mod_conversejs: websocket_url: auto conversejs_options: auto_away: 30 clear_cache_on_logout: true i18n: "pt" locked_domain: "@HOST@" message_archiving: always theme: dracula .fi .if n \{\ .RE .\} .RE .SS "mod_delegation" .sp این ماژول پیاده‌سازی XEP\-0355: Namespace Delegation است\&. تاکنون تنها حالت مدیریتی (admin mode) پیاده‌سازی شده است\&. واگذاری فضای نام (Namespace delegation) به سرویس‌های خارجی اجازه می‌دهد تا IQ با فضای نام مشخصی را مدیریت کنند\&. این قابلیت ممکن است برای سرویس PEP خارجی به کار رود\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .sp مسئله امنیتی: واگذاری فضای نام به کامپوننت‌ها دسترسی به داده‌های حساس را فراهم می‌کند، بنابراین مجوزها باید با احتیاط و تنها در صورت اعتماد به کامپوننت اعطا شوند\&. .sp .5v .RE .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp این ماژول مکمل \fImod_privilege\fR است اما می‌تواند به صورت مستقل نیز استفاده شود\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBnamespaces\fR: \fI{Namespace: Options}\fR .RS 4 اگر می‌خواهید فضاهای نام را به یک کامپوننت واگذار کنید، آن‌ها را در این گزینه مشخص کرده و به یک قانون دسترسی مرتبط سازید\&. \fIOptions\fR عبارتند از: .PP \fBaccess\fR: \fIAccessName\fR .RS 4 این گزینه تعیین می‌کند کدام کامپوننت‌ها برای واگذاری فضای نام مجاز هستند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBfiltering\fR: \fIAttributes\fR .RS 4 فهرست ویژگی‌ها\&. در حال حاضر استفاده نمی‌شود\&. .RE .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp مطمئن شوید که یک فضای نام را به چندین سرویس به صورت همزمان واگذار نمی‌کنید\&. همان‌طور که در مثال زیر نشان داده شده، برای اینکه کامپوننت \fIsat\-pubsub\&.example\&.org\fR به درستی کار کند، ماژول \fImod_pubsub\fR را غیرفعال کنید\&. .sp .if n \{\ .RS 4 .\} .nf access_rules: external_pubsub: allow: external_component external_mam: allow: external_component acl: external_component: server: sat\-pubsub\&.example\&.org modules: mod_delegation: namespaces: urn:xmpp:mam:1: access: external_mam http://jabber\&.org/protocol/pubsub: access: external_pubsub .fi .if n \{\ .RE .\} .RE .SS "mod_disco" .sp این ماژول پشتیبانی از XEP\-0030: Service Discovery را اضافه می‌کند\&. با فعال بودن این ماژول، سرویس‌های موجود در کارگزار شما توسط کلاینت‌های XMPP قابل کشف هستند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBextra_domains\fR: \fI[Domain, \&.\&.\&.]\fR .RS 4 با این گزینه می‌توانید فهرستی از دامنه‌های اضافی را مشخص کنید که به فهرست آیتم‌های Service Discovery افزوده می‌شوند\&. مقدار پیش‌فرض یک فهرست خالی است\&. .RE .PP \fBname\fR: \fIName\fR .RS 4 نام کارگزار در Service Discovery\&. این نام تنها توسط کلاینت‌های XMPP خاص نمایش داده می‌شود\&. مقدار پیش‌فرض \fIejabberd\fR است\&. .RE .PP \fBserver_info\fR: \fI[Info, \&.\&.\&.]\fR .RS 4 اطلاعات اضافی درباره کارگزار را مشخص می‌کند، همان‌طور که در XEP\-0157: Contact Addresses for XMPP Services توضیح داده شده است\&. هر عنصر \fIInfo\fR در فهرست از گزینه‌های زیر ساخته می‌شود: .PP \fBmodules\fR: \fIall | [Module, \&.\&.\&.]\fR .RS 4 مقدار می‌تواند کلیدواژه \fIall\fR باشد که در آن صورت اطلاعات در همه سرویس‌ها گزارش می‌شود، یا فهرستی از ماژول‌های ejabberd که در آن صورت اطلاعات تنها برای سرویس‌های ارائه شده توسط آن ماژول‌ها مشخص می‌شود\&. .RE .PP \fBname\fR: \fIName\fR .RS 4 نام فیلد \fIvar\fR که تعریف خواهد شد\&. برای نام‌های استاندارد شده به XEP\-0157 مراجعه کنید\&. .RE .PP \fBurls\fR: \fI[URI, \&.\&.\&.]\fR .RS 4 فهرستی از URIهای تماس، مانند URLهای HTTP، URIهای XMPP و موارد مشابه\&. .RE .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf server_info: \- modules: all name: abuse\-addresses urls: ["mailto:abuse@shakespeare\&.lit"] \- modules: [mod_muc] name: "Web chatroom logs" urls: ["http://www\&.example\&.org/muc\-logs"] \- modules: [mod_disco] name: feedback\-addresses urls: \- http://shakespeare\&.lit/feedback\&.php \- mailto:feedback@shakespeare\&.lit \- xmpp:feedback@shakespeare\&.lit \- modules: \- mod_disco \- mod_vcard name: admin\-addresses urls: \- mailto:xmpp@shakespeare\&.lit \- xmpp:admins@shakespeare\&.lit .fi .if n \{\ .RE .\} .RE .RE .SS "mod_fail2ban" .sp این ماژول آدرس‌های IP که نشانه‌های مخرب نشان می‌دهند را مسدود می‌کند\&. در حال حاضر تنها شکست‌های احراز هویت C2S شناسایی می‌شوند\&. .sp برخلاف برنامه مستقل، \fImod_fail2ban\fR پس از گذشت مدتی از اولین شکست یا در صورت احراز هویت موفق، سابقه شکست‌های احراز هویت را پاک می‌کند\&. همچنین به جای مسدود کردن ساده ترافیک شبکه، یک پیام خطای توصیفی برای کلاینت ارسال می‌کند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .sp نباید از این ماژول پشت یک پروکسی یا load balancer استفاده کنید\&. ejabberd شکست‌ها را از دیدگاه load balancer می‌بیند و هنگامی که آستانه شکست‌های احراز هویت به حد مجاز رسید، تمام اتصالات از load balancer را رد خواهد کرد\&. استفاده از این ماژول پشت یک پروکسی می‌تواند باعث شود همه کاربران شما از ejabberd قفل شوند\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 یک قانون دسترسی برای لیست سفید کردن آدرس‌های IP یا شبکه‌ها مشخص می‌کند\&. اگر قانون برای یک آدرس IP خاص \fIallow\fR برگرداند، آن آدرس هرگز مسدود نخواهد شد\&. \fIAccessName\fR باید از نوع \fIip\fR باشد\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBc2s_auth_ban_lifetime\fR: \fItimeout()\fR .RS 4 مدت زمان مسدودیت IP ناشی از تعداد زیاد شکست‌های احراز هویت C2S\&. مقدار پیش‌فرض \fI1\fR ساعت است\&. .RE .PP \fBc2s_max_auth_failures\fR: \fINumber\fR .RS 4 تعداد شکست‌های احراز هویت C2S برای فعال‌سازی مسدودیت IP\&. مقدار پیش‌فرض \fI20\fR است\&. .RE .sp \fBبرچسب‌های API:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#accounts|accounts\fR .RE .SS "mod_host_meta" .sp \fIتوجه\fR درباره این گزینه: در نسخه 22\&.05 اضافه شده است\&. .sp این ماژول فایل‌های کوچک \fIhost\-meta\fR را همان‌طور که در XEP\-0156: Discovering Alternative XMPP Connection Methods توضیح داده شده، ارائه می‌دهد\&. .sp برای استفاده از این ماژول، علاوه بر افزودن آن به بخش \fImodules\fR، باید آن را در \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR نیز فعال کنید\&. .sp توجه داشته باشید که این ماژول تنها زمانی کار می‌کند که \fIlisten\&.md#ejabberd_http|ejabberd_http\fR دارای \fIlisten\-options\&.md#tls|tls\fR فعال باشد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBbosh_service_url\fR: \fIundefined | auto | BoshURL\fR .RS 4 URL سرویس BOSH برای اعلام\&. کلیدواژه \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. اگر روی \fIauto\fR تنظیم شود، URL اولین کنترل‌کننده درخواست BOSH پیکربندی شده را می‌سازد\&. مقدار پیش‌فرض \fIauto\fR است\&. .RE .PP \fBwebsocket_url\fR: \fIundefined | auto | WebSocketURL\fR .RS 4 URL WebSocket برای اعلام\&. کلیدواژه \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. اگر روی \fIauto\fR تنظیم شود، URL اولین کنترل‌کننده درخواست WebSocket پیکربندی شده را می‌سازد\&. مقدار پیش‌فرض \fIauto\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 443 module: ejabberd_http tls: true request_handlers: /bosh: mod_bosh /websocket: ejabberd_http_ws /\&.well\-known/host\-meta: mod_host_meta /\&.well\-known/host\-meta\&.json: mod_host_meta modules: mod_bosh: {} mod_host_meta: bosh_service_url: "https://@HOST@:5443/bosh" websocket_url: "wss://@HOST@:5443/websocket" .fi .if n \{\ .RE .\} .RE .SS "mod_http_api" .sp این ماژول یک رابط ReST برای فراخوانی دستورات \fI\&.\&./\&.\&./developer/ejabberd\-api/index\&.md|ejabberd API\fR با استفاده از داده‌های JSON فراهم می‌کند\&. .sp برای استفاده از این ماژول، علاوه بر افزودن آن به بخش \fImodules\fR، باید آن را در \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR نیز فعال کنید\&. .sp برای استفاده از نسخه API خاص N، هنگام تعریف مسیر URL در request_handlers، یک vN اضافه کنید\&. به عنوان مثال: \fI/api/v2: mod_http_api\fR\&. .sp برای اجرای یک دستور، یک درخواست POST به URL مربوطه ارسال کنید: \fIhttp://localhost:5280/api/COMMAND\-NAME\fR .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBdefault_version\fR: \fIinteger() | string()\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 24\&.12 اضافه شده است\&. تعیین می‌کند که هنگامی که هیچ نسخه‌ای در مسیر URL مشخص نشده، از کدام نسخه API استفاده شود\&. اگر یک نسخه ejabberd تنظیم شود، از آخرین نسخه API که در آن نسخه ejabberd موجود بوده استفاده خواهد کرد\&. به عنوان مثال، تنظیم \fI"24\&.06"\fR در این گزینه به معنای \fI2\fR است\&. مقدار پیش‌فرض آخرین نسخه است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 5280 module: ejabberd_http request_handlers: /api: mod_http_api modules: mod_http_api: default_version: 2 .fi .if n \{\ .RE .\} .RE .SS "mod_http_fileserver" .sp \fIتوجه\fR درباره این گزینه: بهبود \fIdocroot\fR در نسخه ۲۶.۰۱. .sp این ماژول ساده، فایل‌ها را از دیسک محلی از طریق HTTP ارائه می‌دهد. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccesslog\fR: \fIPath\fR .RS 4 فایلی برای ثبت دسترسی‌ها با فرمت مشابه Apache. اگر این گزینه مشخص نشود، هیچ گزارشی ثبت نخواهد شد. .RE .PP \fBcontent_types\fR: \fI{Extension: Type}\fR .RS 4 نگاشت پسوند به نوع محتوا را مشخص می‌کند. چندین نوع محتوا از پیش تعریف شده‌اند. با این گزینه می‌توانید تعاریف جدید اضافه کنید یا تعاریف موجود را تغییر دهید. مقادیر پیش‌فرض عبارتند از: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf content_types: \&.avi: video/avi \&.bmp: image/bmp \&.bz2: application/x\-bzip2 \&.css: text/css \&.gif: image/gif \&.gz: application/x\-gzip \&.html: text/html \&.ico: image/vnd\&.microsoft\&.icon \&.jar: application/java\-archive \&.jpeg: image/jpeg \&.jpg: image/jpeg \&.js: text/javascript \&.json: application/json \&.m4a: audio/mp4 \&.map: application/json \&.mp3: audio/mpeg \&.mp4: video/mp4 \&.mpeg: video/mpeg \&.mpg: video/mpeg \&.ogg: application/ogg \&.pdf: application/pdf \&.png: image/png \&.rtf: application/rtf \&.svg: image/svg+xml \&.tiff: image/tiff \&.ttf: font/ttf \&.txt: text/plain \&.wav: audio/wav \&.wasm: application/wasm \&.webp: image/webp \&.woff: font/woff \&.woff2: font/woff2 \&.xml: application/xml \&.xpi: application/x\-xpinstall \&.xul: application/vnd\&.mozilla\&.xul+xml \&.xz: application/x\-xz \&.zip: application/zip .fi .if n \{\ .RE .\} .RE .PP \fBcustom_headers\fR: \fI{Name: Value}\fR .RS 4 سرآیندهای سفارشی HTTP که باید در تمام پاسخ‌ها گنجانده شوند را مشخص می‌کند. به‌طور پیش‌فرض هیچ سرآیند سفارشی وجود ندارد. .RE .PP \fBdefault_content_type\fR: \fIType\fR .RS 4 نوع محتوا برای پسوندهای ناشناخته را مشخص می‌کند. مقدار پیش‌فرض \fIapplication/octet\-stream\fR است. .RE .PP \fBdirectory_indices\fR: \fI[Index, \&.\&.\&.]\fR .RS 4 یک یا چند فایل فهرست دایرکتوری را مشخص می‌کند، مشابه متغیر \fIDirectoryIndex\fR در Apache. هنگامی که یک درخواست HTTP به جای فایل معمولی به یک دایرکتوری می‌رسد، این فایل‌های فهرست به ترتیب جستجو می‌شوند و اولین مورد یافت‌شده بازگردانده می‌شود. مقدار پیش‌فرض یک لیست خالی است. .RE .PP \fBdocroot\fR: \fIPathDir | {PathURL, PathDir}\fR .RS 4 \fIتوجه\fR درباره این گزینه: بهبود یافته در نسخه ۲۶.۰۱. دایرکتوری برای ارائه فایل‌ها، یا نگاشتی از چندین مسیر URL (طبق مشخصات \fIlisten\-options\&.md#request_handlers|request_handlers\fR) و دایرکتوری‌های متناظر آن‌ها. این یک گزینه اجباری است. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 5280 module: ejabberd_http request_handlers: /pub/content: mod_http_fileserver /share: mod_http_fileserver /: mod_http_fileserver modules: mod_http_fileserver: docroot: /pub/content: /var/service/www /share: /usr/share/javascript /: /var/www .fi .if n \{\ .RE .\} .RE .PP \fBmust_authenticate_with\fR: \fI[{Username, Hostname}, \&.\&.\&.]\fR .RS 4 فهرست حساب‌هایی که مجاز به استفاده از این سرویس هستند. مقدار پیش‌فرض: \fI[]\fR\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp این پیکربندی نمونه، فایل‌ها را از دایرکتوری محلی \fI/var/www\fR در آدرس \fIhttp://example\&.org:5280/pub/content/\fR ارائه می‌دهد. در این مثال یک نوع محتوای جدید \fIogg\fR تعریف شده، \fIpng\fR بازتعریف شده و تعریف \fIjpg\fR حذف شده است: .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 5280 module: ejabberd_http request_handlers: /pub/content: mod_http_fileserver modules: mod_http_fileserver: docroot: /var/www accesslog: /var/log/ejabberd/access\&.log directory_indices: \- index\&.html \- main\&.htm custom_headers: X\-Powered\-By: Erlang/OTP X\-Fry: "It\*(Aqs a widely\-believed fact!" content_types: \&.ogg: audio/ogg \&.png: image/png default_content_type: text/html .fi .if n \{\ .RE .\} .RE .SS "mod_http_upload" .sp \fIتوجه\fR درباره این گزینه: \fIcontent_types\fR در نسخه ۲۶.۰۱ اضافه شد. .sp این ماژول امکان درخواست مجوز برای آپلود فایل از طریق HTTP را فراهم می‌کند، طبق XEP-0363: HTTP File Upload. اگر درخواست پذیرفته شود، کلاینت یک URL برای آپلود فایل و یک URL دیگر برای دانلود آن فایل دریافت می‌کند. .sp برای استفاده از این ماژول، باید در \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR فعال‌سازی شود. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 این گزینه قانون دسترسی را برای محدود کردن افرادی که مجاز به استفاده از سرویس آپلود HTTP هستند تعریف می‌کند. مقدار پیش‌فرض \fIlocal\fR است. اگر قانون دسترسی با آن نام وجود نداشته باشد، هیچ کاربری مجاز به استفاده از سرویس نخواهد بود. .RE .PP \fBappend_module_config 🟠\fR: \fI{UploadHost: Options}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه ۲۶.۰۷ اضافه شد. چند گزینه خاص را به یک هاست آپلود مشخص که پیشتر در گزینه \fIhosts\fR ماژول mod_http_upload تعریف شده، اضافه می‌کند. در حال حاضر فقط \fIname\fR و \fIvcard\fR می‌توانند اینجا تعریف شوند. این مشابه گزینه سطح بالای \fIappend_host_config\fR است، با این تفاوت که روی گزینه‌های این ماژول اعمال می‌شود. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf modules: mod_http_upload: hosts: \- service1\&.@HOST@ \- service2\&.@HOST@ name: "Service General" append_module_config: service1\&.localhost: name: "Service 1" service2\&.example\&.net: name: "Service 2" .fi .if n \{\ .RE .\} .RE .PP \fBcontent_types\fR: \fI{Extension: Type}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه ۲۶.۰۱ اضافه شد. نگاشت پسوند به نوع محتوا را مشخص می‌کند، مشابه گزینه content_types در \fImod_http_fileserver\fR\&. .RE .PP \fBcustom_headers\fR: \fI{Name: Value}\fR .RS 4 این گزینه فیلدهای سرآیند اضافی را که باید در تمام پاسخ‌های HTTP گنجانده شوند مشخص می‌کند. به‌طور پیش‌فرض هیچ سرآیند سفارشی وجود ندارد. .RE .PP \fBdir_mode\fR: \fIPermission\fR .RS 4 این گزینه بیت‌های مجوز دایرکتوری \fIdocroot\fR و هر دایرکتوری ایجادشده در هنگام آپلود فایل را تعریف می‌کند. بیت‌ها به صورت عدد مبنای هشت (مراجعه کنید به صفحه راهنمای \fIchmod(1)\fR) داخل گیومه دوتایی مشخص می‌شوند. به عنوان مثال: \fI"0755"\fR\&. مقدار پیش‌فرض تعریف‌نشده است، یعنی هیچ مجوز صریحی تنظیم نخواهد شد. .RE .PP \fBdocroot\fR: \fIPath\fR .RS 4 فایل‌های آپلودشده در زیر دایرکتوری مشخص‌شده (به عنوان مسیر مطلق) با این گزینه ذخیره می‌شوند. کلیدواژه \fI@HOME@\fR با دایرکتوری خانگی کاربری که ejabberd را اجرا می‌کند جایگزین می‌شود، و کلیدواژه \fI@HOST@\fR با نام هاست مجازی. مقدار پیش‌فرض \fI"@HOME@/upload"\fR است. .RE .PP \fBexternal_secret\fR: \fIText\fR .RS 4 این گزینه امکان واگذاری تمام پردازش‌های HTTP Upload به یک سرور HTTP جداگانه را فراهم می‌کند. هر دو سرور ejabberd و سرور HTTP باید این رمز مشترک را داشته باشند و دقیقاً طبق مشخصات Prosody\(cqs mod_http_upload_external: Implementation عمل کنند. هیچ مقدار پیش‌فرضی وجود ندارد. .RE .PP \fBfile_mode\fR: \fIPermission\fR .RS 4 این گزینه بیت‌های مجوز فایل‌های آپلودشده را تعریف می‌کند. بیت‌ها به صورت عدد مبنای هشت (مراجعه کنید به صفحه راهنمای \fIchmod(1)\fR) داخل گیومه دوتایی مشخص می‌شوند. به عنوان مثال: \fI"0644"\fR\&. مقدار پیش‌فرض تعریف‌نشده است، یعنی هیچ مجوز صریحی تنظیم نخواهد شد. .RE .PP \fBget_url\fR: \fIURL\fR .RS 4 این گزینه بخش ابتدایی URL‌های GET که برای دانلود فایل‌ها استفاده می‌شوند را مشخص می‌کند. مقدار پیش‌فرض \fIundefined\fR است. هنگامی که این گزینه \fIundefined\fR باشد، مقدار آن با مقدار \fIput_url\fR یکسان تنظیم می‌شود. کلیدواژه \fI@HOST@\fR با نام هاست مجازی جایگزین می‌شود. توجه: اگر درخواست‌های GET توسط این ماژول پردازش شوند، \fIget_url\fR باید با \fIput_url\fR مطابقت داشته باشد. تنظیم آن به مقدار متفاوت تنها زمانی منطقی است که از یک وب‌سرور خارجی یا \fImod_http_fileserver\fR برای ارائه فایل‌های آپلودشده استفاده شود. .RE .PP \fBhost\fR .RS 4 منسوخ شده. به جای آن از \fIhosts\fR استفاده کنید. .RE .PP \fBhosts\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 این گزینه شناسه‌های Jabber سرویس را تعریف می‌کند. اگر گزینه \fIhosts\fR مشخص نشود، تنها شناسه Jabber، نام هاست مجازی با پیشوند \fI"upload\&."\fR خواهد بود. کلیدواژه \fI@HOST@\fR با نام هاست مجازی واقعی جایگزین می‌شود. .RE .PP \fBjid_in_url\fR: \fInode | sha1\fR .RS 4 وقتی این گزینه روی \fInode\fR تنظیم شود، شناسه گره JID کاربر (یعنی نام کاربری) در URL‌های GET و PUT تولیدشده توسط \fImod_http_upload\fR گنجانده می‌شود. در غیر این صورت، به جای آن یک هش SHA-1 از JID ساده کاربر گنجانده می‌شود. مقدار پیش‌فرض \fIsha1\fR است. .RE .PP \fBmax_size\fR: \fISize\fR .RS 4 این گزینه حداکثر حجم قابل قبول فایل را محدود می‌کند. باید یک عدد بایت (بزرگ‌تر از صفر) یا \fIinfinity\fR مشخص شود. مقدار پیش‌فرض \fI104857600\fR است. .RE .PP \fBname\fR: \fIName\fR .RS 4 نام سرویس در Service Discovery. مقدار پیش‌فرض \fI"HTTP File Upload"\fR است. توجه داشته باشید که این نام تنها توسط برخی کلاینت‌های XMPP نمایش داده می‌شود. .RE .PP \fBput_url\fR: \fIURL\fR .RS 4 این گزینه بخش ابتدایی URL‌های PUT که برای آپلود فایل استفاده می‌شوند را مشخص می‌کند. کلیدواژه \fI@HOST@\fR با نام هاست مجازی جایگزین می‌شود. و \fI@HOST_URL_ENCODE@\fR با نام هاست کدگذاری‌شده برای URL جایگزین می‌شود، که برای هاست‌های مجازی حاوی کاراکترهای غیرلاتین مفید است. توجه: هاست‌های مجازی مختلف نمی‌توانند از یک URL PUT یکسان استفاده کنند. مقدار پیش‌فرض \fI"https://@HOST@:5443/upload"\fR است. .RE .PP \fBrm_on_unregister\fR: \fItrue | false\fR .RS 4 این گزینه مشخص می‌کند که آیا فایل‌های آپلودشده توسط یک کاربر هنگام لغو ثبت‌نام آن کاربر باید حذف شوند یا خیر. مقدار پیش‌فرض \fItrue\fR است. .RE .PP \fBsecret_length\fR: \fILength\fR .RS 4 این گزینه طول رشته تصادفی گنجانده‌شده در URL‌های GET و PUT تولیدشده توسط \fImod_http_upload\fR را تعریف می‌کند. حداقل طول \fI8\fR کاراکتر است، اما توصیه می‌شود مقدار بزرگ‌تری انتخاب شود. مقدار پیش‌فرض \fI40\fR است. .RE .PP \fBservice_url\fR .RS 4 منسوخ شده. .RE .PP \fBthumbnail\fR: \fItrue | false\fR .RS 4 این گزینه مشخص می‌کند که آیا ejabberd باید تصاویر کوچک (thumbnail) از تصاویر آپلودشده ایجاد کند یا خیر. اگر یک تصویر کوچک ایجاد شود، یک عنصر که حاوی دانلود و برخی متادیتا است، همراه با پاسخ PUT بازگردانده می‌شود. مقدار پیش‌فرض \fIfalse\fR است. .RE .PP \fBvcard\fR: \fIvCard\fR .RS 4 یک vCard سفارشی برای سرویس که توسط برخی کلاینت‌های XMPP در Service Discovery نمایش داده می‌شود. مقدار \fIvCard\fR یک نگاشت YAML است که از نمایش XML یک vCard ساخته شده. از آنجا که این نمایش فاقد ویژگی (attribute) است، نگاشت ساده است. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf # This XML representation of vCard: # # Conferences # # # Elm Street # # # # is translated to: vcard: fn: Conferences adr: \- work: true street: Elm Street .fi .if n \{\ .RE .\} .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 5443 module: ejabberd_http tls: true request_handlers: /upload: mod_http_upload modules: mod_http_upload: docroot: /ejabberd/upload put_url: "https://@HOST@:5443/upload" .fi .if n \{\ .RE .\} .RE .SS "mod_http_upload_quota" .sp این ماژول پشتیبانی از سهمیه (quota) را برای mod_http_upload اضافه می‌کند\&. .sp این ماژول به \fImod_http_upload\fR وابسته است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_hard_quota\fR: \fIAccessName\fR .RS 4 این گزینه تعریف می‌کند که کدام قانون دسترسی برای تعیین «سهمیه سخت» (hard quota) برای JIDهای مطابق استفاده می‌شود\&. آن قانون باید برای هر JIDی که قرار است محدودیت سهمیه داشته باشد، یک عدد مثبت برگرداند\&. این عدد، مقدار مگابایتی است که کاربر مربوطه می‌تواند آپلود کند\&. هنگامی که این آستانه از حد تجاوز کند، ejabberd قدیمی‌ترین فایل‌های آپلود شده توسط آن کاربر را حذف می‌کند تا مصرف دیسک آن‌ها برابر یا کمتر از سهمیه نرم (soft quota) مشخص شده شود (همچنین گزینه \fIaccess_soft_quota\fR را ببینید)\&. مقدار پیش‌فرض \fIhard_upload_quota\fR است\&. .RE .PP \fBaccess_soft_quota\fR: \fIAccessName\fR .RS 4 این گزینه تعریف می‌کند که کدام قانون دسترسی برای تعیین «سهمیه نرم» (soft quota) برای JIDهای مطابق استفاده می‌شود\&. آن قانون باید برای هر JIDی که قرار است محدودیت سهمیه داشته باشد، یک عدد مثبت بر حسب مگابایت برگرداند\&. برای جزئیات بیشتر توضیحات گزینه \fIaccess_hard_quota\fR را ببینید\&. مقدار پیش‌فرض \fIsoft_upload_quota\fR است\&. .RE .PP \fBmax_days\fR: \fIDays\fR .RS 4 اگر عددی بزرگ‌تر از صفر مشخص شود، هر فایل (و دایرکتوری) که قدیمی‌تر از این تعداد روز باشد، یک بار در روز از زیردایرکتوری‌های دایرکتوری \fIdocroot\fR حذف می‌شود\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp توجه داشته باشید که برای استفاده از قابلیت سهمیه، لازم نیست گزینه‌های \fIaccess_hard_quota\fR و \fIaccess_soft_quota\fR را مشخص کنید\&. می‌توانید از نام‌های پیش‌فرض استفاده کنید و فقط قوانین دسترسی مانند این مثال را تعریف کنید: .sp .if n \{\ .RS 4 .\} .nf shaper_rules: soft_upload_quota: 1000: all # MiB hard_upload_quota: 1100: all # MiB modules: mod_http_upload: {} mod_http_upload_quota: max_days: 100 .fi .if n \{\ .RE .\} .RE .SS "mod_invites 🟠" .sp \fIتوجه\fR در مورد این گزینه: بهبودیافته در نسخه 26\&.07\&. .sp این ماژول دعوت‌نامه کاربر و ایجاد حساب کاربری را برای ایجاد لینک‌های خارج از باند (out-of-band) جهت عضویت دیگران در شبکه XMPP و برقراری اشتراک متقابل فراهم می‌کند\&. این ماژول XEP\-0379: Pre\-Authenticated Roster Subscription، XEP\-0401: Ad\-hoc Account Invitation Generation و XEP\-0445: Pre\-Authenticated In\-Band Registration را پیاده‌سازی می‌کند\&. .sp این دعوت‌نامه‌ها به صورت URI های XMPP، از طریق دستورات ad-hoc یا دستورات API (مانند API \fIgenerate_invite\fR و API \fIgenerate_invite_with_username\fR) ایجاد می‌شوند و سپس قرار است به صورت خارج از باند ارسال شوند\&. .sp کاربر دریافت‌کننده باید یک کلاینت نصب کرده باشد که از این دعوت‌نامه‌ها پشتیبانی کند\&. از آنجا که این موضوع به یک مانع رایج برای استقرار آسان تبدیل شده است، این ماژول با یک پارامتر صفحه فرود اختیاری ارائه می‌شود که می‌تواند یا یک سرویس خارجی مانند نصب easy-xmpp-invitation، یک سرویس شخص ثالث مانند JoinJabber یا برای راحتی یک سرویس داخلی باشد\&. این صفحه فرود سپس گیرنده را در راه‌اندازی یک کلاینت و در صورت نیاز ایجاد یک حساب کاربری راهنمایی می‌کند\&. .sp برای استفاده از قابلیت صفحه فرود داخلی، باید landing_page را روی auto یا یک قالب URL مانند https://{{ host }}/invites/{{ invite\&.token }} تنظیم کنید، اگر تنظیمات سرور شما شامل یک پروکسی معکوس (reverse proxy) است\&. علاوه بر این، باید این ماژول را به عنوان یک هندلر برای شنونده ejabberd_http متصل کنید، همانطور که در مثال زیر نشان داده شده است\&. .sp برای راحتی، اکنون یک صفحه شروع نیز در هر جایی که mod_invites را در هندلر ejabberd_http \fIمتصل\fR می‌کنید گنجانده شده است\&. این صفحه شروع به افراد اجازه می‌دهد با وارد کردن نام کاربری و رمز عبور خود، دعوت‌نامه تولید کنند\&. به همین دلیل URL باید توسط HTTPS محافظت شود\&. مورد استفاده اصلی زمانی است که افراد فقط کلاینت‌هایی دارند که از تولید دعوت‌نامه به صورت بومی پشتیبانی نمی‌کنند\&. .sp اگر ترجیح می‌دهید از یک سرویس خارجی استفاده کنید، landing_page را روی چیزی مانند http://{{ host }}:8080/easy\-xmpp\-invites/#{{ invite\&.uri|strip_protocol }} یا https://invites\&.joinjabber\&.org/#{{ invite\&.uri|strip_protocol }} تنظیم کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_create_account\fR: \fIAccess Rule Name\fR .RS 4 این نام یک قانون دسترسی است که مشخص می‌کند چه کسی مجاز به ایجاد دعوت‌نامه‌های create account است\&. مقدار پیش‌فرض none است، یعنی هیچ‌کس قادر به ایجاد چنین دعوت‌نامه‌هایی نیست\&. علاوه بر این، این گزینه بر \fIدعوت‌نامه‌های roster\fR اعمال می‌شود و اگر کاربر فرستنده توسط این قانون مجاز باشد، ثبت‌نام درون‌باند (IBR) را نیز امکان‌پذیر می‌کند\&. کاربران از ACL admin همیشه مجاز به ایجاد این دعوت‌نامه‌ها هستند\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf mod_invites: access_create_account: local .fi .if n \{\ .RE .\} .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBlanding_page\fR: \fInone | auto | LandingPageURLTemplate\fR .RS 4 آیا برای دعوت‌نامه‌هایی که ایجاد می‌شوند از یک صفحه فرود استفاده شود یا خیر\&. در صورت استفاده از یک قالب URL، این می‌تواند خارجی یا داخلی باشد\&. متغیرهای قالب شامل host، invite\&.token و invite\&.uri هستند، همچنین فیلترهایی تعریف شده‌اند که مهم‌ترین آن‌ها strip_protocol است\&. این یک مثال است: http://{{ host }}:8080/easy\-xmpp\-invites/#{{ invite\&.uri|strip_protocol }}\&. برای راحتی می‌توانید auto را انتخاب کنید و هندلر ejabberd_http برای mod_invites برای ساختن URL صفحه فرود استفاده می‌شود\&. مقدار پیش‌فرض none است\&. .RE .PP \fBmax_invites\fR: \fIpos_integer() | infinity\fR .RS 4 حداکثر تعداد دعوت‌نامه‌های \fIcreate account\fR که یک کاربر منفرد می‌تواند ایجاد کند\&. کاربرانی که با ACL admin مطابقت دارند از این محدودیت معاف هستند\&. علاوه بر این، استفاده از دعوت‌نامه‌های roster برای ایجاد حساب کاربری را محدود می‌کند\&. مقدار پیش‌فرض infinity است\&. .RE .PP \fBsite_name\fR: \fISite Name\fR .RS 4 یک نام قابل خواندن توسط انسان برای سایت شما\&. مثلاً "My Beautiful Laundrette"\&. در قالب‌های صفحه فرود استفاده می‌شود\&. .RE .PP \fBtemplates_dir\fR: \fIPath\fR .RS 4 دایرکتوری حاوی قالب‌ها و فایل‌های ایستا که برای صفحه فرود و فرم ثبت‌نام وب استفاده می‌شوند\&. فقط در صورتی باید تنظیم شود که بخواهید مجموعه قالب‌های خود یا فهرست برنامه‌های توصیه‌شده خود را ارسال کنید\&. .RE .PP \fBtoken_expire_seconds\fR: \fIpos_integer()\fR .RS 4 تعداد ثانیه‌ها تا انقضای توکن\&. مقدار پیش‌فرض 432000 است (یعنی پنج روز: 5 * 24 * 60 * 60)\&. .RE .PP \fBwebchat_url\fR: \fInone | auto | Webchat URL\fR .RS 4 \fIتوجه\fR در مورد این گزینه: اضافه‌شده در نسخه 26\&.03\&. URL به یک کلاینت وب‌چت\&. در هنگام ثبت‌نام دستی از طریق فرم وب، این گزینه برای شروع کار توصیه می‌شود\&. اگر auto انتخاب شود، mod_conversejs از بخش شنوندگان انتخاب می‌شود\&. مقدار پیش‌فرض auto است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp پیکربندی پایه با صفحه فرود اما بدون ایجاد حساب کاربری، فقط دعوت‌نامه‌های roster: .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 5281 module: ejabberd_http request_handlers: /invites: mod_invites # [\&.\&.\&.] modules: mod_invites: landing_page: auto .fi .if n \{\ .RE .\} .sp برای اینکه فقط کاربران admin بتوانند دعوت‌نامه‌های \fIcreate account\fR ایجاد کنند و ثبت‌نام درون‌باند معمولی را غیرفعال کنید، پیکربندی زیر را خواهید داشت: .sp .if n \{\ .RS 4 .\} .nf acl: admin: \- user: "my_admin_user@example\&.com" access_rules: register: allow: admin modules: mod_invites: landing_page: auto mod_register: allow_modules: \- mod_invites .fi .if n \{\ .RE .\} .sp اگر می‌خواهید همه کاربران شما بتوانند دعوت‌نامه‌های \fIcreate account\fR ارسال کنند، به جای آن سرور خود را این‌گونه پیکربندی کنید\&. توجه داشته باشید که نام قوانین دسترسی فقط مثال هستند و شما آزاد هستید آن‌ها را تغییر دهید\&. .sp .if n \{\ .RS 4 .\} .nf acl: local: user_regexp: "" access_rules: create_account_invite: allow: local modules: mod_invites: access_create_account: create_account_invite landing_page: auto mod_register: allow_modules: \- mod_invites .fi .if n \{\ .RE .\} .RE .SS "mod_jidprep" .sp این ماژول به کلاینت‌های XMPP اجازه می‌دهد از سرور بخواهند که یک JID را طبق قوانین مشخص‌شده در RFC 6122: XMPP Address Format نرمال‌سازی کند\&. این ممکن است برای کلاینت‌هایی در محیط‌های محدود خاص، یا برای اهداف آزمایشی مفید باشد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 این گزینه تعریف می‌کند که کدام قانون دسترسی برای کنترل اینکه چه کسی مجاز به استفاده از این سرویس است استفاده می‌شود\&. مقدار پیش‌فرض \fIlocal\fR است\&. .RE .RE .SS "mod_last" .sp این ماژول پشتیبانی از XEP\-0012: Last Activity را اضافه می‌کند\&. می‌توان از آن برای کشف آخرین زمان دسترسی یک کاربر قطع‌شده به سرور، دانستن آخرین فعالیت یک کاربر متصل روی سرور، یا پرس‌وجو از مدت زمان فعالیت سرور ejabberd استفاده کرد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .SS "mod_legacy_auth" .sp این ماژول XEP\-0078: Non\-SASL Authentication را پیاده‌سازی می‌کند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp این نوع احراز هویت در سال ۲۰۰۸ منسوخ شد و احتمالاً نیازی به این ماژول ندارید مگر اینکه چیزی مانند ربات‌های جبر قدیمی داشته باشید\&. .sp .5v .RE .sp این ماژول هیچ گزینه‌ای ندارد\&. .SS "mod_mam" .sp این ماژول XEP\-0313: Message Archive Management و XEP\-0441: Message Archive Management Preferences را پیاده‌سازی می‌کند\&. کلاینت‌های XMPP سازگار می‌توانند از آن برای ذخیره تاریخچه چت خود در سرور استفاده کنند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp پشتیبان Mnesia برای mod_mam توصیه نمی‌شود: محدود به ۲ گیگابایت است و اغلب هنگام رسیدن به این محدودیت خراب می‌شود\&. پشتیبان SQL توصیه می‌شود\&. به طور خاص، برای سرورهای کوچک SQLite انتخاب ترجیحی است زیرا پیکربندی آن بسیار آسان است\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_preferences\fR: \fIAccessName\fR .RS 4 این قانون دسترسی تعریف می‌کند که چه کسی مجاز به تغییر تنظیمات MAM است\&. مقدار پیش‌فرض \fIall\fR است\&. .RE .PP \fBarchive_muc_as_mucsub\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR در مورد این گزینه: اضافه‌شده در نسخه 25\&.10\&. هنگامی که این گزینه فعال است، پیام‌های groupchat دریافتی برای کاربرانی که اشتراک mucsub در اتاقی دارند که پیام از آن نشأت گرفته، پس از تبدیل به پیام‌های رویداد mucsub بایگانی می‌شوند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBassume_mam_usage\fR: \fItrue | false\fR .RS 4 این گزینه تعیین می‌کند که کد مدیریت جریان ejabberd (به \fImod_stream_mgmt\fR مراجعه کنید) چگونه پیام‌های تأییدنشده را هنگام از دست رفتن اتصال مدیریت کند\&. معمولاً چنین پیام‌هایی یا برگشت داده می‌شوند یا مجدداً ارسال می‌شوند\&. با این حال، اگر این گزینه روی \fItrue\fR تنظیم شود، هیچ‌کدام از این کارها برای پیام‌هایی که در بایگانی MAM کاربر ذخیره شده‌اند انجام نمی‌شود\&. در این حالت، ejabberd فرض می‌کند که آن پیام‌ها از بایگانی بازیابی خواهند شد\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBclear_archive_on_room_destroy\fR: \fItrue | false\fR .RS 4 آیا هنگام نابودی بایگانی پیام یک اتاق (به \fImod_muc\fR مراجعه کنید)، آن بایگانی حذف شود\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBcompress_xml\fR: \fItrue | false\fR .RS 4 هنگامی که فعال است، پیام‌های جدید اضافه‌شده به بایگانی‌ها با استفاده از یک الگوریتم فشرده‌سازی سفارشی فشرده می‌شوند\&. این قابلیت فقط با پشتیبان‌های SQL کار می‌کند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdefault\fR: \fIalways | never | roster\fR .RS 4 این گزینه سیاست پیش‌فرض برای تاریخچه چت را تعریف می‌کند\&. هنگامی که \fIalways\fR تنظیم شود، هر پیام چت ذخیره می‌شود\&. با \fIroster\fR فقط تاریخچه چت با مخاطبین موجود در roster کاربر ذخیره می‌شود\&. و \fInever\fR تاریخچه چت را به طور کامل غیرفعال می‌کند\&. توجه داشته باشید که یک کلاینت می‌تواند سیاست خود را از طریق دستورات پروتکل تغییر دهد\&. مقدار پیش‌فرض \fInever\fR است\&. .RE .PP \fBrequest_activates_archiving\fR: \fItrue | false\fR .RS 4 اگر مقدار \fItrue\fR باشد، تا زمانی که کلاینت کاربر یک درخواست MAM صادر نکند، هیچ پیامی برای آن کاربر ذخیره نمی‌شود، صرف نظر از مقدار گزینه \fIdefault\fR\&. پس از اینکه سرور یک درخواست دریافت کرد، پیام‌های آن کاربر طبق معمول بایگانی می‌شوند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuser_mucsub_from_muc_archive\fR: \fItrue | false\fR .RS 4 هنگامی که این گزینه غیرفعال است، برای هر مشترک منفرد یک پیام mucsub جداگانه ذخیره می‌شود\&. با فعال بودن این گزینه، هنگامی که کاربر بایگانی مجازی mucsub را دریافت می‌کند، پیام‌ها از بایگانی‌های muc تولید می‌شوند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .sp \fBبرچسب‌های API:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#mam|mam\fR، \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#purge|purge\fR .RE .SS "mod_matrix_gw" .sp \fIتوجه\fR درباره این گزینه: بهبودیافته در نسخه ۲۵\&.۰۸\&. .sp دروازه Matrix\&. از نسخه‌های اتاق ۹، ۱۰ و ۱۱ از ejabberd 25\&.03 پشتیبانی می‌کند؛ از نسخه‌های اتاق ۴ و بالاتر از ejabberd 25\&.07؛ از نسخه اتاق ۱۲ (اتاق‌های hydra) از ejabberd 25\&.08\&. برای استفاده از این ماژول، Erlang/OTP 25 یا بالاتر لازم است\&. این ماژول از ejabberd 24\&.02 در دسترس است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBhost\fR: \fIHost\fR .RS 4 این گزینه شناسه‌های Jabber سرویس را تعریف می‌کند\&. اگر گزینه \fIhost\fR مشخص نشود، شناسه Jabber همان نام میزبان مجازی با پیشوند \fI"matrix\&."\fR خواهد بود\&. کلیدواژه \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. .RE .PP \fBkey\fR: \fIstring()\fR .RS 4 مقدار کلید امضای matrix، به صورت base64\&. .RE .PP \fBkey_name\fR: \fIstring()\fR .RS 4 نام کلید امضای matrix\&. .RE .PP \fBleave_timeout\fR: \fIinteger()\fR .RS 4 تأخیر به ثانیه بین خروج کاربر از اتاق MUC و ارسال رویداد \fIleave\fR در Matrix\&. .RE .PP \fBmatrix_domain\fR: \fIDomain\fR .RS 4 یک دامنه در فدراسیون Matrix مشخص می‌کند\&. کلیدواژه \fI@HOST@\fR با نام میزبان جایگزین می‌شود\&. مقدار پیش‌فرض \fI@HOST@\fR است\&. .RE .PP \fBmatrix_id_as_jid\fR: \fItrue | false\fR .RS 4 اگر روی \fItrue\fR تنظیم شود، تمام بسته‌هایی که تحویل آن‌ها از طریق اتصال سرور به سرور XMPP ناموفق است، با ترجمه شناسه Jabber \fIuser@matrixdomain\&.tld\fR به شناسه کاربری Matrix \fI@user:matrixdomain\&.tld\fR به دروازه Matrix هدایت می‌شوند\&. وقتی روی \fIfalse\fR تنظیم شود، پیام‌ها باید صریحاً به شناسه Jabber سرویس دروازه matrix ارسال شوند تا به سرور Matrix راه دور هدایت گردند\&. در این صورت، برای ارسال پیام به کاربر Matrix \fI@user:matrixdomain\&.tld\fR، کلاینت باید پیامی به JID \fIuser%\fR\fImatrixdomain\&.tld@matrix\&.myxmppdomain\fR\fI\&.tld\fR ارسال کند، که در آن \fImatrix\&.myxmppdomain\&.tld\fR همان JID سرویس دروازه است که توسط گزینه \fIhost\fR تعیین می‌شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBnotary_servers\fR: \fI[Server, \&.\&.\&.]\fR .RS 4 فهرستی از سرورهای notary\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 8448 module: ejabberd_http tls: true request_handlers: "/_matrix": mod_matrix_gw modules: mod_matrix_gw: key_name: "key1" key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" matrix_id_as_jid: true .fi .if n \{\ .RE .\} .RE .SS "mod_metrics" .sp این ماژول رویدادها را به پشتیبان خارجی ارسال می‌کند (در حال حاضر فقط grapherl پشتیبانی می‌شود)\&. رویدادهای پشتیبانی‌شده عبارتند از: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} sm_register_connection .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} sm_remove_connection .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} user_send_packet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} user_receive_packet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} s2s_send_packet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} s2s_receive_packet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} register_user .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} remove_user .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} offline_message .RE .sp وقتی فعال باشد، هر فراخوانی به این هوک‌ها یک رویداد شمارنده را به پشتیبان خارجی ارسال می‌کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBip\fR: \fIIPv4Address\fR .RS 4 آدرس IPv4 محلی که پشتیبان در آن قرار دارد\&. مقدار پیش‌فرض \fI127\&.0\&.0\&.1\fR است\&. .RE .PP \fBport\fR: \fIPort\fR .RS 4 شماره پورت اینترنتی که پشتیبان برای دریافت اتصالات/بسته‌های ورودی روی آن گوش می‌دهد\&. مقدار پیش‌فرض \fI11111\fR است\&. .RE .RE .SS "mod_mix" .sp \fIتوجه\fR درباره این گزینه: اضافه‌شده در ۱۶\&.۰۳ و بهبودیافته در ۱۹\&.۰۲\&. .sp این ماژول یک پیاده‌سازی آزمایشی از XEP\-0369: Mediated Information eXchange (MIX) است\&. ادعا می‌شود که پروتکل MIX در آینده جایگزین پروتکل MUC خواهد شد (نگاه کنید به \fImod_muc\fR)\&. .sp برای آشنایی بیشتر با نحوه استفاده از این قابلیت، می‌توانید به آموزش ما مراجعه کنید: \fI\&.\&./\&.\&./tutorials/mix\-010\&.md|Getting started with MIX\fR .sp این ماژول به \fImod_mam\fR وابسته است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_create\fR: \fIAccessName\fR .RS 4 یک قانون دسترسی برای کنترل ایجاد کانال‌های MIX\&. مقدار پیش‌فرض \fIall\fR است\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBhost\fR .RS 4 منسوخ‌شده\&. به جای آن از \fIhosts\fR استفاده کنید\&. .RE .PP \fBhosts\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 این گزینه شناسه‌های Jabber سرویس را تعریف می‌کند\&. اگر گزینه \fIhosts\fR مشخص نشود، تنها شناسه Jabber همان نام میزبان مجازی با پیشوند \fI"mix\&."\fR خواهد بود\&. کلیدواژه \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. .RE .PP \fBname\fR: \fIName\fR .RS 4 نام سرویس در Service Discovery\&. این نام فقط توسط کلاینت‌های XMPP خاص نمایش داده می‌شود\&. مقدار پیش‌فرض \fIChannels\fR است\&. .RE .RE .SS "mod_mix_pam" .sp این ماژول XEP\-0405: Mediated Information eXchange (MIX): Participant Server Requirements را پیاده‌سازی می‌کند\&. این ماژول در صورتی لازم است که کلاینت‌های سازگار با MIX روی سرور شما قصد پیوستن به کانال‌های MIX را داشته باشند (چه روی سرور شما و چه روی سرورهای راه دور)\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp \fImod_mix\fR برای کارکرد این ماژول لازم نیست، اما بدون \fImod_mix_pam\fR قابلیت MIX کلاینت‌های XMPP محلی شما دچار اشکال خواهد شد\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .SS "mod_mqtt" .sp این ماژول پشتیبانی از پروتکل \fI\&.\&./guide/mqtt/index\&.md|MQTT\fR نسخه‌های \fI3\&.1\&.1\fR و \fI5\&.0\fR را اضافه می‌کند\&. به یاد داشته باشید که \fImod_mqtt\fR را در بخش‌های \fImodules\fR و \fIlisten\fR پیکربندی کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_publish\fR: \fI{TopicFilter: AccessName}\fR .RS 4 قوانین دسترسی برای محدودکردن دسترسی به موضوعات برای ناشران\&. به طور پیش‌فرض هیچ محدودیتی وجود ندارد\&. .RE .PP \fBaccess_subscribe\fR: \fI{TopicFilter: AccessName}\fR .RS 4 قوانین دسترسی برای محدودکردن دسترسی به موضوعات برای مشترکین\&. به طور پیش‌فرض هیچ محدودیتی وجود ندارد\&. .RE .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBmatch_retained_limit\fR: \fIpos_integer() | infinity\fR .RS 4 این گزینه تعداد پیام‌های نگه‌داشته‌شده‌ای را که هنگام اشتراک در یک فیلتر موضوع به کلاینت بازگردانده می‌شود محدود می‌کند\&. مقدار پیش‌فرض \fI1000\fR است\&. .RE .PP \fBmax_queue\fR: \fISize\fR .RS 4 حداکثر اندازه صف برای بسته‌های خروجی\&. مقدار پیش‌فرض \fI5000\fR است\&. .RE .PP \fBmax_topic_aliases\fR: \fI0\&.\&.65535\fR .RS 4 حداکثر تعداد نام مستعاری که یک کلاینت می‌تواند با موضوعات مرتبط کند\&. مقدار پیش‌فرض \fI100\fR است\&. .RE .PP \fBmax_topic_depth\fR: \fIDepth\fR .RS 4 حداکثر عمق موضوع، یعنی تعداد اسلش‌ها (\fI/\fR) در موضوع\&. مقدار پیش‌فرض \fI8\fR است\&. .RE .PP \fBqueue_type\fR: \fIram | file\fR .RS 4 همانند گزینه سطح بالای \fIqueue_type\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBram_db_type\fR: \fImnesia\fR .RS 4 همانند گزینه سطح بالای \fIdefault_ram_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBsession_expiry\fR: \fItimeout()\fR .RS 4 این گزینه مدت زمان انتظار برای از سرگیری نشست MQTT را مشخص می‌کند\&. وقتی روی \fI0\fR تنظیم شود، نشست با بسته شدن اتصال زیرین کلاینت از بین می‌رود\&. مقدار پیش‌فرض \fI5\fR دقیقه است\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .SS "mod_mqtt_bridge" .sp این ماژول قابلیت همگام‌سازی موضوعات (topics) محلی MQTT با داده‌های روی سرورهای راه‌دور را اضافه می‌کند\&. می‌تواند هنگامی که کاربر محلی موضوع محلی را به‌روز می‌کند، موضوعات را روی سرورهای راه‌دور به‌روز کند، یا می‌تواند مشترک تغییرات سرور راه‌دور شود و نسخه محلی را هنگام به‌روزرسانی داده‌های راه‌دور به‌روز کند\&. این ماژول از ejabberd 23\&.01 در دسترس است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBreplication_user\fR: \fIJID\fR .RS 4 شناسه کاربری که به عنوان مالک تغییرات محلی تعیین خواهد شد\&. .RE .PP \fBservers\fR: \fI{ServerUrl: {Key: Value}}\fR .RS 4 اعلان داده‌های مشترک برای هر ServerUrl\&. آدرس‌های URL سرور می‌توانند از طرح‌واره‌های زیر استفاده کنند: \fImqtt\fR, \fImqtts\fR (mqtt با tls), \fImqtt5\fR, \fImqtt5s\fR (هر دو برای فعال‌سازی پروتکل v5), \fIws\fR, \fIwss\fR, \fIws5\fR, \fIwss5\fR\&. کلیدها باید به شرح زیر باشند: .PP \fBauthentication\fR: \fI{AuthKey: AuthValue}\fR .RS 4 فهرست اطلاعات احراز هویت که AuthKey می‌تواند باشد: \fIusername\fR و \fIpassword\fR یا \fIcertfile\fR که به گواهی‌نامه کلاینت اشاره می‌کند\&. احراز هویت با گواهی‌نامه فقط با mqtts, mqtt5s, wss, wss5 قابل استفاده است\&. .RE .PP \fBpublish\fR: \fI{LocalTopic: RemoteTopic}\fR .RS 4 باید publish یا subscribe یا هر دو تنظیم شوند\&. .RE .PP \fBsubscribe\fR: \fI{RemoteTopic: LocalTopic}\fR .RS 4 باید publish یا subscribe یا هر دو تنظیم شوند\&. .RE .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_mqtt_bridge: replication_user: "mqtt@xmpp\&.server\&.com" servers: "mqtt://server\&.com": authentication: certfile: "/etc/ejabberd/mqtt_server\&.pem" publish: "localA": "remoteA" # local changes to \*(AqlocalA\*(Aq will be replicated on remote server as \*(AqremoteA\*(Aq "topicB": "topicB" subscribe: "remoteB": "localB" # changes to \*(AqremoteB\*(Aq on remote server will be stored as \*(AqlocalB\*(Aq on local server .fi .if n \{\ .RE .\} .RE .SS "mod_muc" .sp \fIتوجه\fR درباره این گزینه: ماژول \fImod_muc_occupantid\fR در نسخه 26\&.02 ادغام شد\&. .sp این ماژول پشتیبانی از چت چندکاربره (MUC) را فراهم می‌کند\&. کاربران می‌توانند اتاق‌های موجود را کشف کنند، به آن‌ها بپیوندند یا اتاق جدید ایجاد کنند\&. حاضران در اتاق می‌توانند به صورت عمومی چت کنند یا مکالمات خصوصی داشته باشند\&. .sp پروتکل‌های پیاده‌سازی شده در این ماژول: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} XEP\-0045: Multi\-User Chat .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} XEP\-0249: Direct MUC Invitations .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} XEP\-0421: Occupant identifiers for semi\-anonymous MUCs .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} XEP\-0486: MUC Avatars .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Muc/Sub: Multi\-User Chat Subscriptions .RE .sp سرویس MUC به هر Jabber ID اجازه می‌دهد یک نام‌مستعار (nickname) ثبت کند تا هیچ‌کس دیگری نتواند از آن نام‌مستعار در هیچ اتاقی در سرویس MUC استفاده کند\&. برای ثبت نام‌مستعار، کشف سرویس را در کلاینت XMPP خود باز کنید و در سرویس MUC ثبت‌نام کنید\&. .sp همچنین امکان ثبت نام‌مستعار در یک اتاق وجود دارد تا هیچ‌کس دیگری نتواند از آن نام‌مستعار در آن اتاق استفاده کند\&. اگر یک نام‌مستعار در سرویس MUC ثبت شده باشد، نمی‌توان آن نام‌مستعار را در هیچ اتاقی ثبت کرد، و بالعکس: نام‌مستعاری که در یک اتاق ثبت شده، نمی‌تواند در سرویس MUC ثبت شود\&. .sp این ماژول از خوشه‌بندی و توازن بار پشتیبانی می‌کند\&. یک نمونه ماژول می‌تواند برای هر گره خوشه راه‌اندازی شود\&. اتاق‌ها در زمان ایجاد بر روی تمام نمونه‌های ماژول MUC موجود توزیع می‌شوند\&. ماژول چت چندکاربره خوشه‌بندی شده است اما خود اتاق‌ها نه خوشه‌بندی شده‌اند و نه مقاوم در برابر خرابی: اگر گره مدیریت‌کننده مجموعه‌ای از اتاق‌ها خاموش شود، اتاق‌ها حذف می‌شوند و در اولین تلاش برای اتصال روی گره موجود دیگری بازسازی خواهند شد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 می‌توانید مشخص کنید چه کسانی مجاز به استفاده از سرویس چت چندکاربره هستند\&. به طور پیش‌فرض همه مجاز به استفاده از آن هستند\&. .RE .PP \fBaccess_admin\fR: \fIAccessName\fR .RS 4 این گزینه مشخص می‌کند چه کسانی مجاز به مدیریت سرویس چت چندکاربره هستند\&. مقدار پیش‌فرض \fInone\fR است، به این معنی که فقط سازنده اتاق می‌تواند اتاق خود را مدیریت کند\&. مدیران می‌توانند یک پیام معمولی به JID سرویس ارسال کنند و در تمام اتاق‌های فعال به عنوان پیام سرویس نمایش داده خواهد شد\&. مدیران می‌توانند یک پیام groupchat به JID یک اتاق فعال ارسال کنند و پیام به عنوان پیام سرویس در اتاق نمایش داده خواهد شد\&. .RE .PP \fBaccess_create\fR: \fIAccessName\fR .RS 4 برای پیکربندی اینکه چه کسانی مجاز به ایجاد اتاق‌های جدید در سرویس چت چندکاربره هستند، می‌توان از این گزینه استفاده کرد\&. مقدار پیش‌فرض \fIall\fR است، به این معنی که همه مجاز به ایجاد اتاق هستند\&. .RE .PP \fBaccess_mam\fR: \fIAccessName\fR .RS 4 برای پیکربندی اینکه چه کسانی مجاز به تغییر گزینه اتاق \fImam\fR هستند\&. مقدار پیش‌فرض \fIall\fR است، به این معنی که همه مجاز به تغییر آن گزینه هستند\&. .RE .PP \fBaccess_persistent\fR: \fIAccessName\fR .RS 4 برای پیکربندی اینکه چه کسانی مجاز به تغییر گزینه اتاق \fIpersistent\fR هستند\&. مقدار پیش‌فرض \fIall\fR است، به این معنی که همه مجاز به تغییر آن گزینه هستند\&. .RE .PP \fBaccess_register\fR: \fIAccessName\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.10 بهبود یافت\&. این گزینه مشخص می‌کند چه کسانی مجاز به ثبت نام‌مستعار در سرویس چت چندکاربره و اتاق‌ها هستند\&. مقدار پیش‌فرض \fIall\fR برای سازگاری با نسخه‌های قبلی است، به این معنی که هر کاربری مجاز است هر نام‌مستعار آزادی را در سرویس MUC و در اتاق‌ها ثبت کند\&. .RE .PP \fBappend_module_config 🟠\fR: \fI{MUCHost: Options}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 26\&.07 اضافه شد\&. چند گزینه خاص را به یک MUC host مشخص که قبلاً در گزینه \fIhosts\fR ماژول mod_muc تعریف شده اضافه می‌کند\&. این مشابه گزینه سطح بالای \fIappend_host_config\fR است، اما در این مورد برای گزینه‌های mod_muc اعمال می‌شود\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf modules: mod_muc: hosts: \- service1\&.@HOST@ \- service2\&.@HOST@ name: "Service General" append_module_config: service1\&.localhost: name: "Service 1" service2\&.example\&.net: name: "Service 2" .fi .if n \{\ .RE .\} .RE .PP \fBcleanup_affiliations_on_start\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 22\&.05 اضافه شد\&. در هنگام راه‌اندازی، وابستگی‌ها (affiliations) برای کاربران محلی غیرموجود حذف می‌شوند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_db\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdefault_room_options\fR: \fIOptions\fR .RS 4 گزینه‌های پیش‌فرض اتاق را تعریف می‌کند\&. توجه داشته باشید که سازنده اتاق می‌تواند در هر زمان با استفاده از یک کلاینت XMPP با قابلیت MUC، گزینه‌های اتاق خود را تغییر دهد\&. گزینه‌های \fIOptions\fR عبارتند از: .PP \fBallow_change_subj\fR: \fItrue | false\fR .RS 4 به حاضران اجازه می‌دهد موضوع را تغییر دهند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBallow_private_messages_from_visitors\fR: \fIanyone | moderators | nobody\fR .RS 4 بازدیدکنندگان می‌توانند پیام خصوصی برای سایر حاضران ارسال کنند\&. مقدار پیش‌فرض \fIanyone\fR است که به این معنی است که بازدیدکنندگان می‌توانند برای هر حاضری پیام خصوصی ارسال کنند\&. .RE .PP \fBallow_query_users\fR: \fItrue | false\fR .RS 4 حاضران می‌توانند پرس‌وجوهای IQ برای سایر حاضران ارسال کنند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBallow_subscription\fR: \fItrue | false\fR .RS 4 به کاربران اجازه می‌دهد مشترک رویدادهای اتاق شوند همان‌طور که در \fI\&.\&./\&.\&./developer/xmpp\-clients\-bots/extensions/muc\-sub\&.md|Multi\-User Chat Subscriptions\fR توضیح داده شده است\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBallow_user_invites\fR: \fItrue | false\fR .RS 4 به حاضران اجازه می‌دهد دعوت‌نامه ارسال کنند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBallow_visitor_nickchange\fR: \fItrue | false\fR .RS 4 به بازدیدکنندگان اجازه می‌دهد نام‌مستعار را تغییر دهند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBallow_visitor_status\fR: \fItrue | false\fR .RS 4 به بازدیدکنندگان اجازه می‌دهد متن وضعیت را در به‌روزرسانی‌های حضور ارسال کنند\&. اگر غیرمجاز باشد، متن وضعیت قبل از ارسال به‌روزرسانی حضور به تمام حاضران اتاق، حذف می‌شود\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBallow_voice_requests\fR: \fItrue | false\fR .RS 4 به بازدیدکنندگان در اتاق‌های کنترل‌شده اجازه می‌دهد درخواست حق صحبت کنند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBallowpm\fR: \fIanyone | participants | moderators | none\fR .RS 4 چه کسانی می‌توانند پیام خصوصی ارسال کنند\&. مقدار پیش‌فرض \fIanyone\fR است\&. .RE .PP \fBanonymous\fR: \fItrue | false\fR .RS 4 اتاق ناشناس است: حاضران JID واقعی سایر حاضران را نمی‌بینند\&. توجه داشته باشید که مدیران اتاق همیشه می‌توانند JID واقعی حاضران را ببینند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBcaptcha_protected\fR: \fItrue | false\fR .RS 4 وقتی کاربری تلاش می‌کند به اتاقی بپیوندد که در آن هیچ وابستگی ندارد (نه مالک، نه مدیر و نه عضو)، اتاق از او می‌خواهد یک چالش CAPTCHA را تکمیل کند (به بخش \fIbasic\&.md#captcha|CAPTCHA\fR مراجعه کنید) تا پیوستن وی به اتاق پذیرفته شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBdescription\fR: \fIRoom Description\fR .RS 4 توضیح کوتاهی از اتاق\&. مقدار پیش‌فرض رشته خالی است\&. .RE .PP \fBenable_hats\fR: \fItrue | false\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.10 بهبود یافت\&. اجازه می‌دهد نقش‌های گسترده‌ای که در XEP\-0317: Hats تعریف شده‌اند، استفاده شوند\&. برای نسخه‌های ejabberd قدیمی‌تر از 25\&.10 به صفحه \fI\&.\&./\&.\&./tutorials/muc\-hats\&.md|MUC Hats\fR مراجعه کنید\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBlang\fR: \fILanguage\fR .RS 4 زبان ترجیحی برای بحث‌های اتاق\&. فرمت زبان باید مطابق RFC 5646 باشد\&. هیچ مقدار پیش‌فرضی وجود ندارد\&. .RE .PP \fBlogging\fR: \fItrue | false\fR .RS 4 پیام‌های عمومی با استفاده از \fImod_muc_log\fR ثبت می‌شوند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBmam\fR: \fItrue | false\fR .RS 4 بایگانی پیام را فعال می‌کند\&. مستلزم فعال بودن mod_mam است\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBmax_users\fR: \fINumber\fR .RS 4 حداکثر تعداد حاضران در اتاق\&. مقدار پیش‌فرض \fI200\fR است\&. .RE .PP \fBmembers_by_default\fR: \fItrue | false\fR .RS 4 حاضرانی که وارد اتاق می‌شوند به طور پیش‌فرض شرکت‌کننده هستند، بنابراین "حق صحبت" دارند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBmembers_only\fR: \fItrue | false\fR .RS 4 فقط اعضای اتاق می‌توانند وارد شوند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBmoderated\fR: \fItrue | false\fR .RS 4 فقط حاضرانی که "حق صحبت" دارند می‌توانند پیام عمومی ارسال کنند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBpassword\fR: \fIPassword\fR .RS 4 رمز عبور اتاق\&. مستلزم تنظیم گزینه \fIpassword_protected\fR بر روی \fItrue\fR است\&. هیچ مقدار پیش‌فرضی وجود ندارد\&. .RE .PP \fBpassword_protected\fR: \fItrue | false\fR .RS 4 برای ورود به اتاق رمز عبور لازم است\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBpersistent\fR: \fItrue | false\fR .RS 4 اتاق حتی اگر آخرین شرکت‌کننده خارج شود باقی می‌ماند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBpresence_broadcast\fR: \fI[Role]\fR .RS 4 فهرست نقش‌هایی که حضورشان به همه اعلام می‌شود\&. فهرست می‌تواند یک یا چند مورد از موارد زیر را شامل شود: \fImoderator\fR, \fIparticipant\fR, \fIvisitor\fR\&. مقدار پیش‌فرض در مثال زیر نشان داده شده است: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf presence_broadcast: \- moderator \- participant \- visitor .fi .if n \{\ .RE .\} .RE .PP \fBpublic\fR: \fItrue | false\fR .RS 4 اتاق در فهرست سرویس MUC عمومی است و قابل کشف است\&. مدیران MUC و شرکت‌کنندگان اتاق، اتاق‌های خصوصی را در کشف سرویس می‌بینند اگر کلاینت XMPP آن‌ها از این ویژگی پشتیبانی کند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBpublic_list\fR: \fItrue | false\fR .RS 4 فهرست شرکت‌کنندگان بدون نیاز به ورود به اتاق، عمومی است\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBpubsub\fR: \fIPubSub Node\fR .RS 4 URI از XMPP گره Publish/Subscribe مرتبط\&. مقدار پیش‌فرض رشته خالی است\&. .RE .PP \fBtitle\fR: \fIRoom Title\fR .RS 4 عنوان قابل خواندن توسط انسان برای اتاق\&. هیچ مقدار پیش‌فرضی وجود ندارد\&. .RE .PP \fBvcard\fR: \fIvCard\fR .RS 4 یک vCard سفارشی برای اتاق\&. به گزینه معادل آن در mod_muc مراجعه کنید\&. مقدار پیش‌فرض رشته خالی است\&. .RE .PP \fBvcard_xupdate\fR: \fIundefined | external | AvatarHash\fR .RS 4 هش تصویر آواتار را تنظیم می‌کند\&. مقدار پیش‌فرض \fIundefined\fR است\&. .RE .PP \fBvoice_request_min_interval\fR: \fINumber\fR .RS 4 حداقل فاصله بین درخواست‌های حق صحبت، بر حسب ثانیه\&. مقدار پیش‌فرض \fI1800\fR است\&. .RE .RE .PP \fBhibernation_timeout\fR: \fIinfinity | Seconds\fR .RS 4 مهلت زمانی قبل از به حالت خواب بردن فرآیند اتاق، بر حسب ثانیه\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBhistory_size\fR: \fISize\fR .RS 4 یک تاریخچه کوچک از بحث جاری هنگامی که کاربران وارد اتاق می‌شوند برای آن‌ها ارسال می‌شود\&. با این گزینه می‌توانید تعداد پیام‌های تاریخچه‌ای که باید نگه‌داری و برای کاربرانی که به اتاق می‌پیوندند ارسال شود را تعریف کنید\&. این مقدار یک عدد صحیح غیرمنفی است\&. تنظیم مقدار به \fI0\fR ویژگی تاریخچه را غیرفعال می‌کند و در نتیجه هیچ چیزی در حافظه نگه‌داری نمی‌شود\&. مقدار پیش‌فرض \fI20\fR است\&. این مقدار بر تمام اتاق‌های سرویس تأثیر می‌گذارد\&. توجه: کلاینت‌های مدرن XMPP به بایگانی پیام (XEP\-0313) متکی هستند، بنابراین اگر فقط از کلاینت‌های مدرن استفاده می‌کنید و ماژول \fImod_mam\fR را بارگذاری کرده‌اید، می‌توانید آزادانه ویژگی تاریخچه را غیرفعال کنید\&. .RE .PP \fBhost\fR .RS 4 منسوخ شده\&. به جای آن از \fIhosts\fR استفاده کنید\&. .RE .PP \fBhosts\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 این گزینه Jabber IDهای سرویس را تعریف می‌کند\&. اگر گزینه \fIhosts\fR مشخص نشود، تنها Jabber ID نام میزبان مجازی با پیشوند \fI"conference\&."\fR خواهد بود\&. کلیدواژه \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. .RE .PP \fBmax_captcha_whitelist\fR: \fINumber\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 21\&.01 اضافه شد\&. این گزینه حداکثر تعداد کاراکترهایی که Captcha Whitelist هنگام پیکربندی اتاق می‌تواند داشته باشد را تعریف می‌کند\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBmax_password\fR: \fINumber\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 21\&.01 اضافه شد\&. این گزینه حداکثر تعداد کاراکترهایی که رمز عبور هنگام پیکربندی اتاق می‌تواند داشته باشد را تعریف می‌کند\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBmax_room_desc\fR: \fINumber\fR .RS 4 این گزینه حداکثر تعداد کاراکترهایی که توضیحات اتاق هنگام پیکربندی اتاق می‌تواند داشته باشد را تعریف می‌کند\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBmax_room_id\fR: \fINumber\fR .RS 4 این گزینه حداکثر تعداد کاراکترهایی که Room ID هنگام ایجاد اتاق جدید می‌تواند داشته باشد را تعریف می‌کند\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBmax_room_name\fR: \fINumber\fR .RS 4 این گزینه حداکثر تعداد کاراکترهایی که نام اتاق هنگام پیکربندی اتاق می‌تواند داشته باشد را تعریف می‌کند\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBmax_rooms_discoitems\fR: \fINumber\fR .RS 4 وقتی تعداد اتاق‌ها از این \fINumber\fR بیشتر باشد، فقط اتاق‌های غیرخالی در پرس‌وجوی کشف سرویس برگردانده می‌شوند\&. مقدار پیش‌فرض \fI100\fR است\&. .RE .PP \fBmax_user_conferences\fR: \fINumber\fR .RS 4 این گزینه حداکثر تعداد اتاق‌هایی که هر کاربر می‌تواند به آن‌ها بپیوندد را تعریف می‌کند\&. مقدار پیش‌فرض \fI100\fR است\&. این گزینه برای جلوگیری از سوءاستفاده‌های احتمالی استفاده می‌شود\&. توجه داشته باشید که این یک محدودیت نرم است: برخی کاربران گاهی اوقات می‌توانند در پیکربندی‌های خوشه‌ای به کنفرانس‌های بیشتری بپیوندند\&. .RE .PP \fBmax_users\fR: \fINumber\fR .RS 4 این گزینه در سطح سرویس، حداکثر تعداد کاربران مجاز در هر اتاق را تعریف می‌کند\&. می‌توان آن را در پیکربندی هر اتاق کاهش داد اما نمی‌توان در پیکربندی اتاق‌های منفرد افزایش داد\&. مقدار پیش‌فرض \fI200\fR است\&. .RE .PP \fBmax_users_admin_threshold\fR: \fINumber\fR .RS 4 این گزینه تعداد مدیران سرویس یا مالکان اتاق مجاز به ورود به اتاق را وقتی که حداکثر تعداد حاضران مجاز رسیده است تعریف می‌کند\&. محدودیت پیش‌فرض \fI5\fR است\&. .RE .PP \fBmax_users_presence\fR: \fINumber\fR .RS 4 این گزینه تعریف می‌کند که پس از چه تعداد کاربر در اتاق، اتاق شلوغ محسوب می‌شود\&. وقتی یک اتاق MUC شلوغ محسوب می‌شود، ارسال اعلان‌های حضور محدود می‌شود تا بار، ترافیک و "طوفان" بیش از حد حضور دریافتی توسط شرکت‌کنندگان کاهش یابد\&. مقدار پیش‌فرض \fI1000\fR است\&. .RE .PP \fBmin_message_interval\fR: \fINumber\fR .RS 4 این گزینه حداقل فاصله بین دو پیام ارسال شده توسط یک حاضر را بر حسب ثانیه تعریف می‌کند\&. این گزینه سراسری است و برای تمام اتاق‌ها معتبر است\&. می‌توان از یک مقدار اعشاری استفاده کرد\&. وقتی این گزینه تعریف نشده باشد، نرخ پیام محدود نمی‌شود\&. این ویژگی می‌تواند برای محافظت از یک سرویس MUC در برابر سوءاستفاده حاضران و محدود کردن تعداد پیام‌هایی که توسط سرویس ارسال می‌شود استفاده شود\&. یک مقدار مناسب برای این حداقل فاصله پیام \fI0\&.4\fR ثانیه است\&. اگر یک حاضر سعی کند پیام‌ها را سریع‌تر ارسال کند، یک خطا ارسال می‌شود که توضیح می‌دهد پیام دور انداخته شده و دلیل غیرقابل قبول بودن پیام را شرح می‌دهد\&. .RE .PP \fBmin_presence_interval\fR: \fINumber\fR .RS 4 این گزینه حداقل زمان بین تغییرات حضور از یک حاضر مشخص را بر حسب ثانیه تعریف می‌کند\&. این گزینه سراسری است و برای تمام اتاق‌ها معتبر است\&. می‌توان از یک مقدار اعشاری استفاده کرد\&. وقتی این گزینه تعریف نشده باشد، هیچ محدودیتی اعمال نمی‌شود\&. این گزینه می‌تواند برای محافظت از یک سرویس MUC در برابر سوءاستفاده حاضران استفاده شود\&. اگر یک حاضر سعی کند حضور خود را بیشتر از فاصله مشخص شده تغییر دهد، حضور توسط ejabberd کش می‌شود و فقط آخرین حضور پس از انقضای تأخیر فاصله به تمام حاضران اتاق ارسال می‌شود\&. بسته‌های حضور میانی بی‌سروصدا دور انداخته می‌شوند\&. یک مقدار مناسب برای این گزینه \fI4\fR ثانیه است\&. .RE .PP \fBname\fR: \fIstring()\fR .RS 4 مقدار نام سرویس\&. این نام فقط در برخی کلاینت‌هایی که از XEP\-0030: Service Discovery پشتیبانی می‌کنند قابل مشاهده است\&. مقدار پیش‌فرض \fIChatrooms\fR است\&. .RE .PP \fBpreload_rooms\fR: \fItrue | false\fR .RS 4 آیا همه اتاق‌های ماندگار هنگام راه‌اندازی در حافظه بارگذاری شوند\&. اگر غیرفعال باشد، اتاق فقط در اولین پیوستن شرکت‌کننده بارگذاری می‌شود\&. مقدار پیش‌فرض \fItrue\fR است\&. غیرفعال کردن پیش‌بارگذاری اتاق وقتی تعداد اتاق‌ها زیاد است منطقی است: این کار زمان راه‌اندازی سرور و مصرف حافظه را بهبود می‌دهد\&. .RE .PP \fBqueue_type\fR: \fIram | file\fR .RS 4 مانند گزینه سطح بالای \fIqueue_type\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBram_db_type\fR: \fImnesia | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_ram_db\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBregexp_room_id\fR: \fIstring()\fR .RS 4 این گزینه عبارت منظم‌ای را تعریف می‌کند که Room ID باید برای اجازه ایجاد اتاق، آن را ارضا کند\&. مقدار پیش‌فرض رشته خالی است\&. .RE .PP \fBroom_shaper\fR: \fInone | ShaperName\fR .RS 4 این گزینه شکل‌دهنده (shaper) برای اتاق‌های MUC را تعریف می‌کند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBuser_message_shaper\fR: \fInone | ShaperName\fR .RS 4 این گزینه شکل‌دهنده (shaper) برای پیام‌های کاربران را تعریف می‌کند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBuser_presence_shaper\fR: \fInone | ShaperName\fR .RS 4 این گزینه شکل‌دهنده (shaper) برای حضورهای کاربران را تعریف می‌کند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBvcard\fR: \fIvCard\fR .RS 4 یک vCard سفارشی برای سرویس که توسط برخی کلاینت‌های XMPP در کشف سرویس نمایش داده خواهد شد\&. مقدار \fIvCard\fR یک نگاشت YAML است که از نمایش XML یک vCard ساخته شده است\&. از آنجا که نمایش هیچ خصیصه‌ای ندارد، نگاشت ساده است\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf # This XML representation of vCard: # # Conferences # # # Elm Street # # # # is translated to: vcard: fn: Conferences adr: \- work: true street: Elm Street .fi .if n \{\ .RE .\} .RE .RE .SS "mod_muc_admin" .sp این ماژول دستوراتی برای مدیریت سرویس‌های MUC محلی و اتاق‌های MUC آن‌ها فراهم می‌کند\&. همچنین صفحات ساده WebAdmin برای مشاهده اتاق‌های موجود ارائه می‌دهد\&. .sp این ماژول به \fImod_muc\fR وابسته است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBsubscribe_room_many_max_users\fR: \fINumber\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 22\&.05 اضافه شده است\&. تعداد کاربرانی که می‌توانند به طور همزمان با استفاده از API \fIsubscribe_room_many\fR در یک اتاق مشترک شوند\&. مقدار پیش‌فرض \fI50\fR است\&. .RE .sp \fBبرچسب‌های API:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#muc|muc\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#muc_room|muc_room\fR, \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#muc_sub|muc_sub\fR .RE .SS "mod_muc_log" .sp این ماژول ثبت اختیاری مکالمات عمومی Multi\-User Chat (MUC) در قالب HTML را فعال می‌کند\&. پس از فعال‌سازی این ماژول، کاربران می‌توانند با استفاده از یک کلاینت XMPP با قابلیت MUC به اتاق بپیوندند و در صورت داشتن دسترسی‌های لازم، می‌توانند فرم پیکربندی را درخواست کنند که در آن می‌توانند گزینه فعال‌سازی ثبت اتاق را تنظیم کنند\&. .sp ویژگی‌ها: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} جزئیات اتاق در بالای هر صفحه نمایش داده می‌شود: عنوان اتاق، JID، نویسنده، موضوع و پیکربندی\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} JID اتاق در HTML تولید شده پیوندی برای پیوستن به اتاق است (با استفاده از XMPP URI)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تغییرات موضوع و پیکربندی اتاق ردیابی و نمایش داده می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} پیوستن‌ها، خروج‌ها، تغییر نام مستعار، اخراج‌ها، مسدودسازی‌ها و \fI/me\fR ردیابی و نمایش داده می‌شوند، از جمله دلیل آن‌ها در صورت وجود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} فایل‌های HTML تولید شده با XHTML 1\&.0 Transitional و CSS سازگار هستند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} برچسب‌های زمانی پیوندهای خود-ارجاعی هستند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} پیوندهایی در بالا برای ناوبری سریع‌تر: روز قبل، روز بعد، بالا\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} CSS برای تعریف سبک استفاده می‌شود و می‌توان از یک فایل CSS سفارشی استفاده کرد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} URLها در پیام‌ها و موضوعات به لینک‌های قابل کلیک تبدیل می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} منطقه زمانی استفاده شده در برچسب‌های زمانی در فایل‌های ثبت نمایش داده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} می‌توان یک پیوند سفارشی در بالای هر صفحه اضافه کرد\&. .RE .sp این ماژول به \fImod_muc\fR وابسته است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_log\fR: \fIAccessName\fR .RS 4 این گزینه مشخص می‌کند که کدام کاربران اتاق مجاز به فعال یا غیرفعال کردن ثبت اتاق هستند\&. مقدار پیش‌فرض \fImuc_admin\fR است\&. توجه: برای این تنظیم پیش‌فرض باید یک قانون دسترسی برای \fImuc_admin\fR تعریف کرده باشید تا اثرگذار باشد\&. .RE .PP \fBcssfile\fR: \fIPath | URL\fR .RS 4 با این گزینه می‌توانید تعیین کنید که فایل‌های HTML باید از یک فایل CSS سفارشی استفاده کنند یا از CSS توکار\&. مقادیر مجاز یا \fIPath\fR به فایل محلی یا یک \fIURL\fR به فایل راه دور هستند\&. به طور پیش‌فرض یک CSS از پیش تعریف شده در صفحه HTML تعبیه می‌شود\&. .RE .PP \fBdirname\fR: \fIroom_jid | room_name\fR .RS 4 نام دایرکتوری اتاق را پیکربندی می‌کند\&. اگر روی \fIroom_jid\fR تنظیم شود، نام دایرکتوری اتاق، JID کامل اتاق خواهد بود\&. در غیر این صورت، نام دایرکتوری اتاق فقط نام اتاق خواهد بود و نام سرویس MUC در آن درج نمی‌شود\&. مقدار پیش‌فرض \fIroom_jid\fR است\&. .RE .PP \fBdirtype\fR: \fIsubdirs | plain\fR .RS 4 نوع دایرکتوری‌های ایجاد شده را می‌توان با این گزینه مشخص کرد\&. اگر روی \fIsubdirs\fR تنظیم شود، برای هر سال و ماه زیردایرکتوری‌هایی ایجاد می‌شوند\&. در غیر این صورت، نام‌های فایل‌های ثبت شامل تاریخ کامل هستند و زیردایرکتوری وجود ندارد\&. مقدار پیش‌فرض \fIsubdirs\fR است\&. .RE .PP \fBfile_format\fR: \fIhtml | plaintext\fR .RS 4 قالب فایل‌های ثبت را تعریف می‌کند: \fIhtml\fR در قالب HTML ذخیره می‌کند، \fIplaintext\fR در قالب متن ساده ذخیره می‌کند\&. مقدار پیش‌فرض \fIhtml\fR است\&. .RE .PP \fBfile_permissions\fR: \fI{mode: Mode, group: Group}\fR .RS 4 مجوزهایی که هنگام ایجاد فایل‌های ثبت باید استفاده شوند را تعریف می‌کند: عدد حالت، و شناسه عددی گروهی که مالک فایل‌ها خواهد بود\&. مقدار پیش‌فرض در مثال زیر نشان داده شده است: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf file_permissions: mode: 644 group: 33 .fi .if n \{\ .RE .\} .RE .PP \fBoutdir\fR: \fIPath\fR .RS 4 این گزینه مسیر کامل دایرکتوری‌ای را که فایل‌های HTML باید در آن ذخیره شوند تنظیم می‌کند\&. مطمئن شوید که کاربر daemon ejabberd دسترسی نوشتن به آن دایرکتوری را دارد\&. مقدار پیش‌فرض \fIwww/muc\fR است\&. .RE .PP \fBspam_prevention\fR: \fItrue | false\fR .RS 4 اگر روی \fItrue\fR تنظیم شود، یک ویژگی خاص به لینک‌ها اضافه می‌شود که از ایندکس شدن آن‌ها توسط موتورهای جستجو جلوگیری می‌کند\&. مقدار پیش‌فرض \fItrue\fR است، به این معنی که ویژگی‌های \fInofollow\fR به لینک‌های ارسال شده توسط کاربر اضافه خواهند شد\&. .RE .PP \fBtimezone\fR: \fIlocal | universal\fR .RS 4 منطقه زمانی برای ثبت‌ها با این گزینه قابل پیکربندی است\&. اگر روی \fIlocal\fR تنظیم شود، زمان محلی که سیستم‌عامل به موتور Erlang گزارش می‌دهد استفاده خواهد شد\&. در غیر این صورت، زمان UTC استفاده می‌شود\&. مقدار پیش‌فرض \fIlocal\fR است\&. .RE .PP \fBtop_link\fR: \fI{URL: Text}\fR .RS 4 با این گزینه می‌توانید پیوند گوشه بالا سمت راست هر فایل ثبت را سفارشی کنید\&. مقدار پیش‌فرض در مثال زیر نشان داده شده است: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf top_link: /: Home .fi .if n \{\ .RE .\} .RE .PP \fBurl\fR: \fIURL\fR .RS 4 یک \fIURL\fR سطح بالا که کلاینت می‌تواند از طریق آن به ثبت‌های یک کنفرانس خاص دسترسی داشته باشد\&. اگر گزینه \fIdirname\fR روی \fIroom_name\fR تنظیم شده باشد، نام کنفرانس به URL الحاق می‌شود، در غیر این صورت JID کنفرانس به \fIURL\fR الحاق می‌شود\&. مقدار پیش‌فرضی وجود ندارد\&. .RE .RE .SS "mod_muc_rtbl" .sp \fIتوجه\fR درباره این ماژول: در نسخه 23\&.04 اضافه شده است\&. .sp این ماژول لیست‌های مسدودسازی بلادرنگ (Real-time blocklists) را برای اتاق‌های MUC پیاده‌سازی می‌کند\&. .sp با مشاهده گره pubsub راه دور مطابق با مشخصات توصیف شده در https://xmppbl\&.org کار می‌کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBrtbl_node\fR: \fIPubsubNodeName\fR .RS 4 نام گره pubsub که باید برای ردیابی کاربران مسدود شده استفاده شود\&. مقدار پیش‌فرض \fImuc_bans_sha256\fR است\&. .RE .PP \fBrtbl_server\fR: \fIDomain\fR .RS 4 دامنه سرور XMPP که لیست مسدودسازی را ارائه می‌دهد\&. مقدار پیش‌فرض \fIxmppbl\&.org\fR است\&. .RE .RE .SS "mod_multicast" .sp این ماژول یک سرویس برای XEP\-0033: Extended Stanza Addressing پیاده‌سازی می‌کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccess\fR .RS 4 قانون دسترسی برای محدود کردن اینکه چه کسانی می‌توانند بسته‌ها را به سرویس multicast ارسال کنند\&. مقدار پیش‌فرض: \fIall\fR\&. .RE .PP \fBhost\fR .RS 4 منسوخ شده\&. به جای آن از \fIhosts\fR استفاده کنید\&. .RE .PP \fBhosts\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 این گزینه Jabber IDهای سرویس را تعریف می‌کند\&. اگر گزینه \fIhosts\fR مشخص نشده باشد، تنها Jabber ID نام میزبان vhost مجازی با پیشوند \fI"multicast\&."\fR خواهد بود\&. کلیدواژه \fI@HOST@\fR با نام واقعی vhost مجازی جایگزین می‌شود\&. لطفاً توجه داشته باشید: این ماژول فقط از اولین vhost تعریف شده در این گزینه استفاده می‌کند\&. .RE .PP \fBlimits\fR: \fISender: Stanza: Number\fR .RS 4 فهرستی از محدودیت‌های سفارشی را مشخص می‌کند که محدودیت‌های پیش‌فرض تعریف شده در XEP\-0033 را بازنویسی می‌کنند\&. محدودیت‌ها بر اساس نوع فرستنده و نوع stanza تعریف می‌شوند، که در آن: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIsender\fR می‌تواند باشد: \fIlocal\fR یا \fIremote\fR\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIstanza\fR می‌تواند باشد: \fImessage\fR یا \fIpresence\fR\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fInumber\fR می‌تواند یک عدد صحیح مثبت یا \fIinfinite\fR باشد\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf # Default values: local: message: 100 presence: 100 remote: message: 20 presence: 20 .fi .if n \{\ .RE .\} .RE .RE .PP \fBname\fR .RS 4 نام سرویس برای ارائه در پرسش Info به کشف سرویس (Service Discovery)\&. پیش‌فرض \fI"Multicast"\fR است\&. .RE .PP \fBvcard\fR .RS 4 عنصر vCard برای بازگشت هنگام پرسش\&. مقدار پیش‌فرض \fIundefined\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf # Only admins can send packets to multicast service access_rules: multicast: \- allow: admin # If you want to allow all your users: access_rules: multicast: \- allow # This allows both admins and remote users to send packets, # but does not allow local users acl: allservers: server_glob: "*" access_rules: multicast: \- allow: admin \- deny: local \- allow: allservers modules: mod_multicast: host: multicast\&.example\&.org access: multicast limits: local: message: 40 presence: infinite remote: message: 150 .fi .if n \{\ .RE .\} .RE .SS "mod_offline" .sp این ماژول پیاده‌سازی XEP\-0160: بهترین روش‌ها برای مدیریت پیام‌های آفلاین و XEP\-0013: بازیابی انعطاف‌پذیر پیام‌های آفلاین را فراهم می‌کند\&. این بدان معناست که تمام پیام‌های ارسالی به کاربر آفلاین تا زمانی که آن کاربر دوباره آنلاین شود در کارگزار ذخیره خواهند شد\&. بنابراین بسیار شبیه به نحوه کارکرد ایمیل است\&. یک کاربر آفلاین در نظر گرفته می‌شود اگر هیچ نشستی با اولویت presence بزرگ‌تر از ۰ در حال حاضر باز نباشد\&. .sp API \fIdelete_expired_messages\fR امکان حذف پیام‌های منقضی شده را می‌دهد، و API \fIdelete_old_messages\fR پیام‌های قدیمی‌تر را حذف می‌کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_max_user_messages\fR: \fIAccessName\fR .RS 4 این گزینه تعریف می‌کند که کدام قانون دسترسی برای محدود کردن حداکثر تعداد پیام‌های آفلاینی که یک کاربر می‌تواند داشته باشد (سهمیه) اعمال خواهد شد\&. هنگامی که کاربر پیام‌های آفلاین بیش از حد دارد، هر پیام جدیدی که دریافت می‌کند دور انداخته می‌شود و خطای \fI\fR به فرستنده بازگردانده می‌شود\&. مقدار پیش‌فرض \fImax_user_offline_messages\fR است\&. .RE .PP \fBbounce_groupchat\fR: \fItrue | false\fR .RS 4 این گزینه برای غیرفعال کردن یک بهینه‌سازی استفاده می‌شود که از بازگرداندن پیام‌های خطا هنگامی که پیام‌های گروهی نمی‌توانند به صورت آفلاین ذخیره شوند جلوگیری می‌کند\&. این بار اتاق گفتگو را بدون هیچ اشکالی در موارد استفاده استاندارد کاهش می‌دهد\&. مقدار پیش‌فرض را فقط در صورتی تغییر دهید که یک ماژول سفارشی داشته باشید که از قلاب آفلاین پس از \fImod_offline\fR استفاده می‌کند\&. این گزینه می‌تواند هم برای MUC استاندارد و هم برای MucSub مفید باشد، اما احتمال وقوع bounce در زمینه MucSub بسیار بیشتر است، بنابراین فعال کردن آن در سرویس‌های بزرگ MucSub اهمیت بیشتری دارد\&. مقدار پیش‌فرض \fIfalse\fR است، به این معنا که بهینه‌سازی فعال است\&. .RE .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 مانند گزینه سطح بالای \fIcache_life_time\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مانند گزینه سطح بالای \fIcache_size\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_db\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBstore_empty_body\fR: \fItrue | false | unless_chat_state\fR .RS 4 آیا پیام‌هایی که فاقد عنصر \fI\fR هستند ذخیره شوند یا خیر\&. مقدار پیش‌فرض \fIunless_chat_state\fR است، که به ejabberd می‌گوید پیام‌ها را حتی اگر فاقد عنصر \fI\fR باشند ذخیره کند، مگر اینکه فقط شامل یک اعلان وضعیت گفتگو باشند (همانطور که در XEP\-0085: اعلان‌های وضعیت گفتگو تعریف شده است)\&. .RE .PP \fBstore_groupchat\fR: \fItrue | false\fR .RS 4 آیا پیام‌های گروهی ذخیره شوند یا خیر\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 مانند گزینه سطح بالای \fIuse_cache\fR است، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_mam_for_storage\fR: \fItrue | false\fR .RS 4 این یک گزینه آزمایشی است\&. با فعال کردن این گزینه، این ماژول از جدول \fIarchive\fR از \fImod_mam\fR به جای جدول spool خود برای بازیابی پیام‌های دریافتی در زمانی که کاربر آفلاین بود استفاده می‌کند\&. این به توسعه‌دهندگان کلاینت اجازه می‌دهد تا به تدریج XEP\-0160 را کنار بگذارند و به جای آن به XEP\-0313 تکیه کنند\&. همچنین فضای ذخیره‌سازی مورد نیاز را هنگام فعال کردن MucSub بیشتر کاهش می‌دهد\&. فعال کردن این گزینه در حال حاضر یک اشکال شناخته‌شده دارد: اکثر پرسش‌های بازیابی انعطاف‌پذیر پیام کار نمی‌کنند (آن‌هایی که امکان بازیابی/حذف پیام‌ها بر اساس شناسه را می‌دهند)، اما این مشخصه به طور گسترده استفاده نمی‌شود\&. مقدار پیش‌فرض \fIfalse\fR است تا رفتار قبلی به عنوان پیش‌فرض حفظ شود\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp این مثال به کاربران قدرتمند اجازه می‌دهد تا ۵۰۰۰ پیام آفلاین، به مدیران تا ۲۰۰۰، و به سایر کاربران تا ۱۰۰ پیام داشته باشند: .sp .if n \{\ .RS 4 .\} .nf acl: admin: user: \- admin1@localhost \- admin2@example\&.org poweruser: user: \- bob@example\&.org \- jane@example\&.org shaper_rules: max_user_offline_messages: \- 5000: poweruser \- 2000: admin \- 100 modules: \&.\&.\&. mod_offline: access_max_user_messages: max_user_offline_messages \&.\&.\&. .fi .if n \{\ .RE .\} .sp \fBتگ‌های API:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#offline|offline\fR .RE .SS "mod_ping" .sp این ماژول پشتیبانی از XEP\-0199: XMPP Ping و keepalive‌های دوره‌ای را پیاده‌سازی می‌کند\&. هنگامی که این ماژول فعال است، ejabberd به درستی به درخواست‌های ping پاسخ می‌دهد، همانطور که در پروتکل تعریف شده است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBping_ack_timeout\fR: \fItimeout()\fR .RS 4 چه مدت باید صبر کرد قبل از اینکه تشخیص داده شود که یک کلاینت به یک درخواست ping کارگزار پاسخ نداده است\&. توجه: هنگامی که \fImod_stream_mgmt\fR بارگذاری شده و مدیریت جریان توسط کلاینت فعال شده باشد، این مقدار نادیده گرفته می‌شود و به جای آن ack_timeout اعمال می‌شود\&. مقدار پیش‌فرض \fIundefined\fR است\&. .RE .PP \fBping_interval\fR: \fItimeout()\fR .RS 4 هر چند وقت یک‌بار ping به کلاینت‌های متصل ارسال شود، در صورتی که گزینه \fIsend_pings\fR روی \fItrue\fR تنظیم شده باشد\&. اگر اتصال یک کلاینت در این بازه زمانی هیچ stanza ای ارسال یا دریافت نکند، یک درخواست ping به کلاینت ارسال می‌شود\&. مقدار پیش‌فرض \fI۱\fR دقیقه است\&. .RE .PP \fBsend_pings\fR: \fItrue | false\fR .RS 4 اگر این گزینه روی \fItrue\fR تنظیم شود، کارگزار به کلاینت‌های متصلی که در بازه زمانی تعریف شده در گزینه \fIping_interval\fR فعال نیستند، ping ارسال می‌کند\&. این برای زنده نگه داشتن اتصالات کلاینت یا بررسی دسترس‌پذیری مفید است\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBtimeout_action\fR: \fInone | kill\fR .RS 4 هنگامی که یک کلاینت در مدت زمان کمتر از دوره تعریف شده در گزینه \fIping_ack_timeout\fR به درخواست ping کارگزار پاسخ نمی‌دهد چه اقدامی انجام شود: \fIkill\fR به معنای از بین بردن اتصال زیرین است، \fInone\fR به معنای انجام هیچ کاری نیست\&. توجه: هنگامی که \fImod_stream_mgmt\fR بارگذاری شده و مدیریت جریان توسط کلاینت فعال شده باشد، کشتن اتصال کلاینت به معنای کشتن نشست کلاینت نیست \- نشست برای دادن فرصت به کلاینت جهت از سرگیری آن زنده نگه داشته می‌شود\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_ping: send_pings: true ping_interval: 4 min timeout_action: kill .fi .if n \{\ .RE .\} .RE .SS "mod_pres_counter" .sp این ماژول سیل/هرزنامه در ترافیک اشتراک‌های presence را تشخیص می‌دهد\&. اگر یک کاربر در یک بازه زمانی مشخص بیش از حد مجاز از این stanza‌ها ارسال یا دریافت کند، stanza‌های اضافی بی‌صدا دور انداخته می‌شوند و یک هشدار در گزارش ثبت می‌شود\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcount\fR: \fINumber\fR .RS 4 تعداد stanza‌های presence اشتراک (subscribe، unsubscribe، subscribed، unsubscribed) مجاز برای هر جهت (ورودی یا خروجی) در مدت زمان تعریف شده در گزینه \fIinterval\fR\&. لطفاً توجه داشته باشید که دو کاربر که به یکدیگر اشتراک می‌زنند معمولاً ۴ stanza تولید می‌کنند، بنابراین مقدار توصیه شده \fI۴\fR یا بیشتر است\&. مقدار پیش‌فرض \fI۵\fR است\&. .RE .PP \fBinterval\fR: \fItimeout()\fR .RS 4 بازه زمانی\&. مقدار پیش‌فرض \fI۱\fR دقیقه است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_pres_counter: count: 5 interval: 30 secs .fi .if n \{\ .RE .\} .RE .SS "mod_privacy" .sp این ماژول پیاده‌سازی XEP\-0016: Privacy Lists است\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp امروزه کلاینت‌های مدرن XMPP به XEP\-0191: Blocking Command متکی هستند که توسط \fImod_blocking\fR پیاده‌سازی شده است\&. با این حال، برای اینکه \fImod_blocking\fR کار کند، همچنان باید \fImod_privacy\fR بارگذاری شده باشد\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .SS "mod_private" .sp این ماژول پشتیبانی از XEP\-0049: Private XML Storage را اضافه می‌کند\&. .sp با استفاده از این روش، موجودیت‌های XMPP می‌توانند داده‌های خصوصی را روی سرور ذخیره کنند، هر زمان که لازم بود آن‌ها را بازیابی کنند و بین چندین کلاینت متصل یک کاربر به اشتراک بگذارند\&. داده‌های ذخیره‌شده می‌توانند هر چیزی باشند، تا زمانی که XML معتبر باشند\&. یک کاربرد رایج، ذخیره نشانک‌های کنفرانس‌های کاربر است (XEP\-0048: Bookmarks)\&. .sp همچنین تبدیل نشانک‌های توصیف‌شده در XEP\-0402: PEP Native Bookmarks را پیاده‌سازی می‌کند، به API \fIbookmarks_to_pep\fR مراجعه کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR اما فقط برای این ماژول اعمال می‌شود\&. .RE .sp \fBAPI Tags:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#private|private\fR .RE .SS "mod_privilege" .sp \fIتوجه\fR درباره این گزینه: در نسخه 24\&.10 بهبود یافته است\&. .sp این ماژول پیاده‌سازی XEP\-0356: Privileged Entity است\&. این افزونه به کامپوننت‌ها امکان می‌دهد دسترسی ممتاز به داده‌های موجودیت‌های دیگر داشته باشند (ارسال پیام از طرف سرور یا از طرف کاربر، دریافت/تنظیم لیست مخاطبین کاربر، دسترسی به اطلاعات حضور و غیره)\&. این ویژگی ممکن است برای نوشتن کامپوننت‌های خارجی قدرتمند مورد استفاده قرار گیرد، مانند پیاده‌سازی یک سرویس PEP یا MAM خارجی\&. .sp به طور پیش‌فرض یک کامپوننت هیچ دسترسی ممتازی ندارد\&. شایان ذکر است که مجوزها به کامپوننت دسترسی به یک نوع داده خاص برای تمام کاربران هاست مجازی‌ای که \fImod_privilege\fR روی آن بارگذاری شده است را می‌دهند\&. .sp مطمئن شوید که یک شنونده برای اتصال کامپوننت پیکربندی کرده‌اید\&. برای اطلاعات بیشتر بخش مربوط به پورت‌های شنونده را بررسی کنید\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .sp مسئله امنیتی: دسترسی ممتاز به کامپوننت‌ها دسترسی به داده‌های حساس می‌دهد، بنابراین مجوزها باید با احتیاط و تنها در صورت اعتماد به کامپوننت اعطا شوند\&. .sp .5v .RE .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp این ماژول مکمل \fImod_delegation\fR است، اما می‌تواند به تنهایی نیز استفاده شود\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBiq\fR: \fI{Namespace: Options}\fR .RS 4 این گزینه فضاهای نام و مجوزهای IQ آن‌ها را تعریف می‌کند\&. به طور پیش‌فرض هیچ مجوزی داده نمی‌شود\&. \fIOptions\fR عبارتند از: .PP \fBboth\fR: \fIAccessName\fR .RS 4 اجازه ارسال استانزاهای IQ از نوع \fIget\fR و \fIset\fR را می‌دهد\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBget\fR: \fIAccessName\fR .RS 4 اجازه ارسال استانزاهای IQ از نوع \fIget\fR را می‌دهد\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBset\fR: \fIAccessName\fR .RS 4 اجازه ارسال استانزاهای IQ از نوع \fIset\fR را می‌دهد\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .RE .PP \fBmessage\fR: \fIOptions\fR .RS 4 این گزینه مجوزهای پیام‌ها را تعریف می‌کند\&. به طور پیش‌فرض هیچ مجوزی داده نمی‌شود\&. \fIOptions\fR عبارتند از: .PP \fBoutgoing\fR: \fIAccessName\fR .RS 4 این گزینه یک قانون دسترسی برای ارسال پیام‌های خروجی توسط کامپوننت تعریف می‌کند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .RE .PP \fBpresence\fR: \fIOptions\fR .RS 4 این گزینه مجوزهای حضور را تعریف می‌کند\&. به طور پیش‌فرض هیچ مجوزی داده نمی‌شود\&. \fIOptions\fR عبارتند از: .PP \fBmanaged_entity\fR: \fIAccessName\fR .RS 4 یک قانون دسترسی که به کامپوننت مجوز دریافت حضورهای سرور را می‌دهد\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBroster\fR: \fIAccessName\fR .RS 4 یک قانون دسترسی که به کامپوننت مجوز دریافت حضور هر دو گروه کاربران و مخاطبین موجود در لیست مخاطبین آن‌ها را می‌دهد\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .RE .PP \fBroster\fR: \fIOptions\fR .RS 4 این گزینه مجوزهای لیست مخاطبین را تعریف می‌کند\&. به طور پیش‌فرض هیچ مجوزی داده نمی‌شود\&. \fIOptions\fR عبارتند از: .PP \fBboth\fR: \fIAccessName\fR .RS 4 دسترسی خواندن/نوشتن به لیست مخاطبین کاربر را تنظیم می‌کند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBget\fR: \fIAccessName\fR .RS 4 دسترسی خواندن به لیست مخاطبین کاربر را تنظیم می‌کند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .PP \fBset\fR: \fIAccessName\fR .RS 4 دسترسی نوشتن به لیست مخاطبین کاربر را تنظیم می‌کند\&. مقدار پیش‌فرض \fInone\fR است\&. .RE .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_privilege: iq: http://jabber\&.org/protocol/pubsub: get: all roster: get: all presence: managed_entity: all message: outgoing: all .fi .if n \{\ .RE .\} .RE .SS "mod_providers" .sp \fIتوجه\fR درباره این گزینه: در نسخه 25\&.08 اضافه شده است\&. .sp این ماژول فایل‌های JSON provider API نسخه v2 را همان‌طور که توسط XMPP Providers توصیف شده، ارائه می‌دهد\&. .sp این ماژول تلاش می‌کند برخی خصوصیات را با جمع‌آوری مقادیر به صورت خودکار از پیکربندی موجود ejabberd شما پر کند\&. ماژول را فعال کنید، مقادیر نمایش داده‌شده را بررسی کنید و سپس با استفاده از گزینه‌ها سفارشی‌سازی کنید\&. .sp برای استفاده از این ماژول، علاوه بر افزودن آن به بخش \fImodules\fR، باید آن را در \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR نیز فعال کنید\&. توجه داشته باشید که باید در \fIlisten\&.md#ejabberd_http|ejabberd_http\fR گزینه \fIlisten\-options\&.md#tls|tls\fR را فعال کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBalternativeJids\fR: \fI[string()]\fR .RS 4 فهرستی از JIDها (دامنه‌های سرور XMPP) که یک ارائه‌دهنده برای ثبت‌نام علاوه بر JID اصلی خود ارائه می‌دهد\&. مقدار پیش‌فرض \fI[]\fR است\&. .RE .PP \fBbusFactor\fR: \fIinteger()\fR .RS 4 ضریب اتوبوس سرویس XMPP (یعنی حداقل تعداد اعضای تیمی که سرویس نمی‌تواند از دست دادن آن‌ها را تحمل کند) یا \fI\-1\fR برای نامشخص\&. مقدار پیش‌فرض \fI\-1\fR است\&. .RE .PP \fBfreeOfCharge\fR: \fItrue | false\fR .RS 4 آیا سرویس XMPP می‌تواند به صورت رایگان استفاده شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBlanguages\fR: \fI[string()]\fR .RS 4 فهرست کدهای زبانی که صفحات شما در آن‌ها در دسترس هستند\&. برخی گزینه‌ها URLی تعریف می‌کنند که در آن کلیدواژه \fI@LANGUAGE_URL@\fR با هر یک از آن کدهای زبانی جایگزین می‌شود\&. مقدار پیش‌فرض یک فهرست با زبان تنظیم‌شده در گزینه \fIlanguage\fR است، برای مثال: \fI[en]\fR\&. .RE .PP \fBlegalNotice\fR: \fIstring()\fR .RS 4 صفحه وب اطلاعیه حقوقی (به ازای هر زبان)\&. کلیدواژه \fI@LANGUAGE_URL@\fR با هر زبان جایگزین می‌شود\&. مقدار پیش‌فرض \fI""\fR است\&. .RE .PP \fBmaximumHttpFileUploadStorageTime\fR: \fIinteger()\fR .RS 4 حداکثر مدت ذخیره‌سازی هر فایل به اشتراک‌گذاشته‌شده (عدد به روز، \fI0\fR برای بدون محدودیت یا \fI\-1\fR برای کمتر از ۱ روز)\&. مقدار پیش‌فرض همانند گزینه \fImax_days\fR از ماژول \fImod_http_upload_quota\fR است، یا در غیر این صورت \fI0\fR\&. .RE .PP \fBmaximumHttpFileUploadTotalSize\fR: \fIinteger()\fR .RS 4 حداکثر اندازه کل فایل‌های به اشتراک‌گذاشته‌شده برای هر کاربر (عدد به مگابایت (MB)، \fI0\fR برای بدون محدودیت یا \fI\-1\fR برای کمتر از ۱ MB)\&. توجه: از MB به جای MiB استفاده می‌شود (مثلاً 104,857,600 بایت = 100 MiB ≈ 104 MB)\&. این خصوصیت درباره حداکثر اندازه هر فایل به اشتراک‌گذاشته‌شده نیست، که از طریق XMPP بازیابی می‌شود\&. مقدار پیش‌فرض مقدار shaper گزینه \fIaccess_hard_quota\fR از ماژول \fImod_http_upload_quota\fR است، یا در غیر این صورت \fI0\fR\&. .RE .PP \fBmaximumMessageArchiveManagementStorageTime\fR: \fIinteger()\fR .RS 4 حداکثر مدت ذخیره‌سازی هر پیام مبادله‌شده (عدد به روز، \fI0\fR برای بدون محدودیت یا \fI\-1\fR برای کمتر از ۱ روز)\&. مقدار پیش‌فرض \fI0\fR است\&. .RE .PP \fBorganization\fR: \fIstring()\fR .RS 4 نوع سازمان ارائه‌دهنده سرویس XMPP\&. مقادیر مجاز عبارتند از: \fIcompany\fR، \fI"commercial person"\fR، \fI"private person"\fR، \fIgovernmental\fR، \fI"non\-governmental"\fR یا \fI""\fR\&. مقدار پیش‌فرض \fI""\fR است\&. .RE .PP \fBpasswordReset\fR: \fIstring()\fR .RS 4 صفحه وب بازنشانی رمز عبور (به ازای هر زبان) که برای بازنشانی خودکار رمز عبور (مثلاً از طریق ایمیل) یا توضیح نحوه بازنشانی دستی رمز عبور (مثلاً با تماس با ارائه‌دهنده) استفاده می‌شود\&. کلیدواژه \fI@LANGUAGE_URL@\fR با هر زبان جایگزین می‌شود\&. مقدار پیش‌فرض یک URL است که در صورت پیکربندی \fImod_register_web\fR به عنوان \fIrequest_handler\fR به صورت خودکار ساخته می‌شود، یا در غیر این صورت \fI""\fR\&. .RE .PP \fBprofessionalHosting\fR: \fItrue | false\fR .RS 4 آیا سرور XMPP با سرعت اتصال اینترنت خوب، منبع تغذیه بدون وقفه، حفاظت از دسترسی و پشتیبان‌گیری منظم میزبانی می‌شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBserverLocations\fR: \fI[string()]\fR .RS 4 فهرست کدهای زبانی مکان‌های سرور/پشتیبان\&. مقدار پیش‌فرض یک فهرست خالی است: \fI[]\fR\&. .RE .PP \fBserverTesting\fR: \fItrue | false\fR .RS 4 آیا آزمایش‌ها روی سرور ارائه‌دهنده مجاز هستند (مثلاً بررسی گواهی‌نامه و نظارت بر زمان فعال بودن)\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBsince\fR: \fIstring()\fR .RS 4 تاریخی که سرویس XMPP از آن در دسترس است\&. مقدار پیش‌فرض یک رشته خالی است: \fI""\fR\&. .RE .PP \fBwebsite\fR: \fIstring()\fR .RS 4 وب‌سایت ارائه‌دهنده\&. کلیدواژه \fI@LANGUAGE_URL@\fR با هر زبان جایگزین می‌شود\&. مقدار پیش‌فرض \fI""\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf listen: \- port: 443 module: ejabberd_http tls: true request_handlers: /\&.well\-known/xmpp\-provider\-v2\&.json: mod_providers modules: mod_providers: alternativeJids: ["example1\&.com", "example2\&.com"] busFactor: 1 freeOfCharge: true languages: [ag, ao, bg, en] legalNotice: "http://@HOST@/legal/@LANGUAGE_URL@" maximumHttpFileUploadStorageTime: 0 maximumHttpFileUploadTotalSize: 0 maximumMessageArchiveManagementStorageTime: 0 organization: "non\-governmental" passwordReset: "http://@HOST@/reset/@LANGUAGE_URL@" professionalHosting: true serverLocations: [ao, bg] serverTesting: true since: "2025\-12\-31" website: "http://@HOST@/website/@LANGUAGE_URL@" .fi .if n \{\ .RE .\} .RE .SS "mod_proxy65" .sp این ماژول XEP\-0065: SOCKS5 Bytestreams را پیاده‌سازی می‌کند\&. این ماژول به ejabberd اجازه می‌دهد به عنوان یک پروکسی انتقال فایل بین دو کلاینت XMPP عمل کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 یک قانون دسترسی برای آغازکنندگان انتقال فایل تعریف می‌کند\&. مقدار پیش‌فرض \fIall\fR است\&. ممکن است بخواهید دسترسی را فقط به کاربران سرور خود محدود کنید تا از سوء استفاده از پروکسی توسط کاربران سرورهای راه دور جلوگیری شود\&. .RE .PP \fBappend_module_config\fR: \fI{ProxyHost: Options}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 25\&.xx اضافه شده است\&. چند گزینه خاص به یک میزبان آپلود مشخص که قبلاً در گزینه \fIhosts\fR ماژول mod_proxy65 تعریف شده است اضافه می‌کند\&. در حال حاضر فقط \fIname\fR و \fIvcard\fR می‌توانند اینجا تعریف شوند\&. این مشابه گزینه سطح بالای \fIappend_host_config\fR است، اما در این مورد به گزینه‌های این ماژول اعمال می‌شود\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf modules: mod_proxy65: hosts: \- service1\&.@HOST@ \- service2\&.@HOST@ name: "Service General" append_module_config: service1\&.localhost: name: "Service 1" service2\&.example\&.net: name: "Service 2" .fi .if n \{\ .RE .\} .RE .PP \fBauth_type\fR: \fIanonymous | plain\fR .RS 4 نوع احراز هویت SOCKS5\&. مقدار پیش‌فرض \fIanonymous\fR است\&. اگر روی \fIplain\fR تنظیم شود، ejabberd از پشتیبان احراز هویت مانند SASL PLAIN استفاده خواهد کرد\&. .RE .PP \fBhost\fR .RS 4 منسوخ شده\&. به جای آن از \fIhosts\fR استفاده کنید\&. .RE .PP \fBhostname\fR: \fIHost\fR .RS 4 یک نام میزبان که هنگام برقراری ارتباط با کلاینت‌ها توسط پروکسی ارائه می‌شود را تعریف می‌کند\&. این گزینه زمانی مفید است که پروکسی را پشت NAT اجرا می‌کنید\&. کلمه کلیدی \fI@HOST@\fR با نام میزبان مجازی جایگزین می‌شود\&. پیش‌فرض استفاده از مقدار گزینه \fIip\fR است\&. مثال‌ها: \fIproxy\&.mydomain\&.org\fR, \fI200\&.150\&.100\&.50\fR\&. .RE .PP \fBhosts\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 این گزینه شناسه‌های Jabber سرویس را تعریف می‌کند\&. اگر گزینه \fIhosts\fR مشخص نشده باشد، تنها شناسه Jabber، نام میزبان مجازی با پیشوند \fI"proxy\&."\fR خواهد بود\&. کلمه کلیدی \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. .RE .PP \fBip\fR: \fIIPAddress\fR .RS 4 این گزینه مشخص می‌کند که کدام رابط شبکه برای گوش دادن استفاده شود\&. مقدار پیش‌فرض آدرس IP نام DNS سرویس است، یا در صورت شکست، \fI127\&.0\&.0\&.1\fR\&. .RE .PP \fBmax_connections\fR: \fIpos_integer() | infinity\fR .RS 4 حداکثر تعداد اتصالات فعال به ازای هر آغازکننده انتقال فایل\&. مقدار پیش‌فرض \fIinfinity\fR است\&. .RE .PP \fBname\fR: \fIName\fR .RS 4 مقدار نام سرویس\&. این نام فقط در برخی کلاینت‌هایی که از XEP\-0030: Service Discovery پشتیبانی می‌کنند قابل مشاهده است\&. پیش‌فرض "SOCKS5 Bytestreams" است\&. .RE .PP \fBport\fR: \fI1\&.\&.65535\fR .RS 4 شماره پورت برای گوش دادن به اتصالات ورودی\&. مقدار پیش‌فرض \fI7777\fR است\&. .RE .PP \fBram_db_type\fR: \fImnesia | redis | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_ram_db\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBrecbuf\fR: \fISize\fR .RS 4 اندازه بافر برای بسته‌های ورودی\&. اگر یک shaper تعریف می‌کنید، مقدار این گزینه را برابر اندازه shaper تنظیم کنید تا از افزایش ناگهانی ترافیک در انتقال فایل جلوگیری شود\&. مقدار پیش‌فرض \fI65536\fR بایت است\&. .RE .PP \fBshaper\fR: \fIShaper\fR .RS 4 این گزینه یک shaper برای همتایان انتقال فایل تعریف می‌کند\&. shaper با حداکثر پهنای باند انتخاب خواهد شد\&. پیش‌فرض \fInone\fR است، یعنی بدون shaper\&. .RE .PP \fBsndbuf\fR: \fISize\fR .RS 4 اندازه بافر برای بسته‌های خروجی\&. اگر یک shaper تعریف می‌کنید، مقدار این گزینه را برابر اندازه shaper تنظیم کنید تا از افزایش ناگهانی ترافیک در انتقال فایل جلوگیری شود\&. مقدار پیش‌فرض \fI65536\fR بایت است\&. .RE .PP \fBvcard\fR: \fIvCard\fR .RS 4 یک vCard سفارشی برای سرویس که توسط برخی کلاینت‌های XMPP در Service Discovery نمایش داده می‌شود\&. مقدار \fIvCard\fR یک نگاشت YAML است که از نمایش XML vCard ساخته شده است\&. از آنجا که این نمایش فاقد ویژگی است، نگاشت ساده است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf acl: admin: user: admin@example\&.org proxy_users: server: example\&.org access_rules: proxy65_access: allow: proxy_users shaper_rules: proxy65_shaper: none: admin proxyrate: proxy_users shaper: proxyrate: 10240 modules: mod_proxy65: host: proxy1\&.example\&.org name: "File Transfer Proxy" ip: 200\&.150\&.100\&.1 port: 7778 max_connections: 5 access: proxy65_access shaper: proxy65_shaper recbuf: 10240 sndbuf: 10240 .fi .if n \{\ .RE .\} .RE .SS "mod_pubsub" .sp این ماژول سرویسی برای XEP\-0060: Publish\-Subscribe ارائه می‌دهد\&. قابلیت‌های \fImod_pubsub\fR می‌توانند با استفاده از افزونه‌ها گسترش یابند\&. افزونه‌ای که PEP (XEP\-0163: Personal Eventing via Pubsub) را پیاده‌سازی می‌کند در فایل پیکربندی پیش‌فرض ejabberd فعال است و به \fImod_caps\fR نیاز دارد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess_createnode\fR: \fIAccessName\fR .RS 4 این گزینه محدود می‌کند که کدام کاربران مجاز به ایجاد گره‌های pubsub با استفاده از \fIacl\fR و \fIaccess\fR هستند\&. به طور پیش‌فرض هر حساب کاربری در سرور محلی ejabberd مجاز به ایجاد گره‌های pubsub است\&. مقدار پیش‌فرض: \fIall\fR است\&. .RE .PP \fBappend_module_config 🟠\fR: \fI{PubSubHost: Options}\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 26\&.07 اضافه شده است\&. چند گزینه خاص به یک میزبان PubSub مشخص که قبلاً در گزینه \fIhosts\fR ماژول mod_pubsub تعریف شده است اضافه می‌کند\&. در حال حاضر فقط \fIname\fR و \fIvcard\fR می‌توانند اینجا تعریف شوند\&. این مشابه گزینه سطح بالای \fIappend_host_config\fR است، اما در این مورد به گزینه‌های این ماژول اعمال می‌شود\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf modules: mod_pubsub: hosts: \- service1\&.@HOST@ \- service2\&.@HOST@ name: "Service General" append_module_config: service1\&.localhost: name: "Service 1" service2\&.example\&.net: name: "Service 2" .fi .if n \{\ .RE .\} .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_db\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdefault_node_config\fR: \fIList of Key:Value\fR .RS 4 برای بازنویسی پیکربندی پیش‌فرض گره، صرف نظر از افزونه گره\&. مقدار یک لیست از تعاریف کلید-مقدار است\&. پیکربندی گره همچنان از پیکربندی پیش‌فرض تعریف شده توسط افزونه گره استفاده می‌کند و هر آیتم را با مقدار تعریف شده در این لیست قابل پیکربندی بازنویسی می‌کند\&. .RE .PP \fBforce_node_config\fR: \fIList of Node and the list of its Key:Value\fR .RS 4 پیکربندی برای گره‌های داده شده را تعریف می‌کند\&. مقدار پیش‌فرض: \fI[]\fR است\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf force_node_config: ## Avoid buggy clients to make their bookmarks public storage:bookmarks: access_model: whitelist .fi .if n \{\ .RE .\} .RE .PP \fBhost\fR .RS 4 منسوخ شده\&. به جای آن از \fIhosts\fR استفاده کنید\&. .RE .PP \fBhosts\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 این گزینه شناسه‌های Jabber سرویس را تعریف می‌کند\&. اگر گزینه \fIhosts\fR مشخص نشده باشد، تنها شناسه Jabber، نام میزبان مجازی با پیشوند \fI"pubsub\&."\fR خواهد بود\&. کلمه کلیدی \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. .RE .PP \fBignore_pep_from_offline\fR: \fIfalse | true\fR .RS 4 مشخص می‌کند که آیا باید آخرین آیتم‌های PEP منتشر شده از کاربران موجود در لیست مخاطبین ما که هنگام اتصال ما آفلاین هستند را دریافت کنیم یا نه\&. مقدار \fItrue\fR یا \fIfalse\fR است\&. اگر تعریف نشده باشد، pubsub مقدار true را فرض می‌کند، بنابراین فقط آخرین آیتم‌های مخاطبین آنلاین را دریافت می‌کنیم\&. .RE .PP \fBlast_item_cache\fR: \fIfalse | true\fR .RS 4 مشخص می‌کند که آیا pubsub باید آخرین آیتم‌ها را کش کند یا نه\&. مقدار \fItrue\fR یا \fIfalse\fR است\&. اگر تعریف نشده باشد، pubsub آخرین آیتم‌ها را کش نمی‌کند\&. در سیستم‌هایی با گره‌های نه چندان زیاد، کش کردن آخرین آیتم‌ها pubsub را سرعت می‌بخشد و به شما امکان می‌دهد نرخ اتصال کاربر را افزایش دهید\&. هزینه آن مصرف حافظه است، زیرا هر آیتم در حافظه ذخیره می‌شود\&. .RE .PP \fBmax_item_expire_node\fR: \fItimeout() | infinity\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 21\&.12 اضافه شده است\&. حداکثر زمان انقضای آیتم را مشخص می‌کند\&. مقدار پیش‌فرض: \fIinfinity\fR است\&. .RE .PP \fBmax_items_node\fR: \fInon_neg_integer() | infinity\fR .RS 4 حداکثر تعداد آیتم‌هایی که می‌توانند در یک گره ذخیره شوند را تعریف می‌کند\&. مقدار پیش‌فرض: \fI1000\fR است\&. .RE .PP \fBmax_nodes_discoitems\fR: \fIpos_integer() | infinity\fR .RS 4 حداکثر تعداد گره‌هایی که در یک پاسخ discoitem بازگردانده می‌شوند\&. مقدار پیش‌فرض: \fI100\fR است\&. .RE .PP \fBmax_subscriptions_node\fR: \fIMaxSubs\fR .RS 4 حداکثر تعداد اشتراک‌هایی که توسط یک گره مدیریت می‌شوند را تعریف می‌کند\&. مقدار پیش‌فرض بدون محدودیت است: \fIundefined\fR\&. .RE .PP \fBname\fR: \fIName\fR .RS 4 مقدار نام سرویس\&. این نام فقط در برخی کلاینت‌هایی که از XEP\-0030: Service Discovery پشتیبانی می‌کنند قابل مشاهده است\&. پیش‌فرض \fIvCard User Search\fR است\&. .RE .PP \fBnodetree\fR: \fINodetree\fR .RS 4 مشخص می‌کند که کدام nodetree استفاده شود\&. اگر تعریف نشده باشد، nodetree پیش‌فرض pubsub استفاده می‌شود: \fItree\fR\&. فقط یک nodetree می‌تواند به ازای هر میزبان استفاده شود و بین همه افزونه‌های گره به اشتراک گذاشته می‌شود\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fItree\fR ذخیره‌ساز گره nodetree پیکربندی و روابط گره را در پایگاه داده ذخیره می‌کند\&. \fIflat\fR گره‌ها بدون هیچ رابطه‌ای ذخیره می‌شوند، و \fIhometree\fR گره‌ها می‌توانند گره‌های فرزند داشته باشند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIvirtual\fR nodetree گره‌ها را در پایگاه داده ذخیره نمی‌کند\&. این منابع را در سیستم‌هایی با تعداد زیادی گره ذخیره می‌کند\&. در صورت استفاده از \fIvirtual\fR nodetree، تنها می‌توانید این افزونه‌های گره را فعال کنید: \fI[flat, pep]\fR یا \fI[flat]\fR؛ هر پیکربندی افزونه دیگری کار نخواهد کرد\&. همچنین، تمام گره‌ها پیکربندی پیش‌فرض خواهند داشت و این قابل تغییر نیست\&. استفاده از \fIvirtual\fR nodetree نیاز دارد که از یک پایگاه داده تمیز شروع کنید، اگر قبلاً از \fItree\fR nodetree پیش‌فرض استفاده کرده باشید کار نخواهد کرد\&. .RE .RE .PP \fBpep_mapping\fR: \fIList of Key:Value\fR .RS 4 در این گزینه می‌توانید فهرستی از جفت کلید-مقدار برای انتخاب افزونه‌های گره تعریف‌شده روی فضانام PEP مشخص ارائه دهید\&. مثال زیر از \fInode_tune\fR به جای \fInode_pep\fR برای هر گره PEP با فضانام tune استفاده می‌کند: .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf modules: \&.\&.\&. mod_pubsub: pep_mapping: http://jabber\&.org/protocol/tune: tune \&.\&.\&. .fi .if n \{\ .RE .\} .RE .PP \fBplugins\fR: \fI[Plugin, \&.\&.\&.]\fR .RS 4 برای تعیین اینکه کدام افزونه‌های گره pubsub استفاده شوند\&. اولین مورد در فهرست به طور پیش‌فرض استفاده می‌شود\&. اگر این گزینه تعریف نشده باشد، فهرست افزونه‌های پیش‌فرض عبارت است از: \fI[flat]\fR\&. کلاینت‌های PubSub می‌توانند هنگام ایجاد یک گره مشخص کنند که از کدام افزونه استفاده شود: ویژگی \fItype=\*(Aqplugin\-name\fR\*(Aq را به عنصر استانزای \fIcreate\fR اضافه کنید\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} افزونه \fIflat\fR رفتار پیش‌فرض را مدیریت می‌کند و از پیاده‌سازی استاندارد XEP\-0060 پیروی می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} افزونه \fIpep\fR پسوندی برای مدیریت پروتکل رویداد شخصی (XEP\-0163) به موتور PubSub اضافه می‌کند\&. وقتی فعال شود، PEP به طور خودکار مدیریت می‌شود\&. .RE .RE .PP \fBvcard\fR: \fIvCard\fR .RS 4 یک vCard سفارشی از کارگزار که توسط برخی کلاینت‌های XMPP در کشف سرویس نمایش داده می‌شود\&. مقدار \fIvCard\fR یک نگاشت YAML است که از نمایش XML یک vCard ساخته شده است\&. از آنجایی که این نمایش هیچ ویژگی‌ای ندارد، نگاشت ساده است\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf # This XML representation of vCard: # # Conferences # # # Elm Street # # # # is translated to: vcard: fn: Conferences adr: \- work: true street: Elm Street .fi .if n \{\ .RE .\} .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp مثال پیکربندی که از گره‌های flat به عنوان پیش‌فرض استفاده می‌کند و اجازه استفاده از گره‌های flat، hometree و pep را می‌دهد: .sp .if n \{\ .RS 4 .\} .nf modules: mod_pubsub: access_createnode: pubsub_createnode max_subscriptions_node: 100 default_node_config: notification_type: normal notify_retract: false max_items: 4 plugins: \- flat \- pep .fi .if n \{\ .RE .\} .sp استفاده از پایگاه داده رابطه‌ای نیاز به استفاده از mod_pubsub با db_type \fIsql\fR دارد\&. تنها افزونه‌های flat، hometree و pep از SQL پشتیبانی می‌کنند\&. مثال زیر پیکربندی قبلی را با استفاده از SQL نشان می‌دهد: .sp .if n \{\ .RS 4 .\} .nf modules: mod_pubsub: db_type: sql access_createnode: pubsub_createnode ignore_pep_from_offline: true last_item_cache: false plugins: \- flat \- pep .fi .if n \{\ .RE .\} .sp \fBAPI Tags:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#purge|purge\fR .RE .SS "mod_pubsub_serverinfo" .sp \fIتوجه\fR درباره این گزینه: در نسخه 25\&.07 اضافه شده است\&. .sp این ماژول پشتیبانی از XEP\-0485: PubSub Server Information را برای افشای اطلاعات S2S از طریق سرویس Pub/Sub اضافه می‌کند\&. .sp اتصالات فعال S2S در یک گره PubSub محلی منتشر می‌شوند\&. در حال حاضر نام گره به صورت ثابت \fI"serverinfo"\fR تعریف شده است\&. .sp اتصالاتی که از این ویژگی پشتیبانی می‌کنند با نام دامنه‌هایشان نشان داده می‌شوند، در غیر این صورت به عنوان گره‌های ناشناس نمایش داده می‌شوند\&. در زمان راه‌اندازی فهرستی از کارگزارهای عمومی شناخته‌شده دریافت می‌شود\&. آن‌ها حتی اگر از این ویژگی پشتیبانی نکنند، به عنوان ناشناس نشان داده نمی‌شوند\&. .sp توجه داشته باشید که این ماژول فقط اتصالات S2S برقرارشده در حین اجرای ماژول را نشان می‌دهد\&. اگر ماژول را در زمان اجرا نصب کنید، API \fIstop_s2s_connections\fR را اجرا کنید یا ejabberd را مجدداً راه‌اندازی کنید تا اتصالات S2S مجدداً برقرار شوند و ماژول آن‌ها را شناسایی و منتشر کند\&. .sp این ماژول به \fImod_pubsub\fR و \fImod_disco\fR وابسته است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBpubsub_host\fR: \fIundefined | string()\fR .RS 4 از این هاست PubSub محلی برای تبلیغ اتصالات S2S استفاده کنید\&. این باید یک هاست محلی برای این سرویس باشد که توسط \fImod_pubsub\fR مدیریت می‌شود\&. این گزینه تنها در صورتی لازم است که پیکربندی شما بیش از یک هاست در گزینه \fIhosts\fR mod_pubsub داشته باشد\&. مقدار پیش‌فرض اولین هاست تعریف‌شده در گزینه \fIhosts\fR mod_pubsub است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_pubsub_serverinfo: pubsub_host: custom\&.pubsub\&.domain\&.local .fi .if n \{\ .RE .\} .RE .SS "mod_push" .sp این ماژول بخش کارگزار XMPP از راه‌حل اعلان‌های فشاری مشخص‌شده در XEP\-0357: Push Notifications را پیاده‌سازی می‌کند\&. به عنوان مثال، اعلان‌های APNS یا FCM را مستقیماً تولید نمی‌کند\&. در عوض، طراحی شده تا با به اصطلاح "سرورهای برنامه" که توسط فروشندگان شخص ثالث اپلیکیشن‌های موبایل اداره می‌شوند کار کند\&. آن سرورهای برنامه معمولاً تحویل اعلان به دستگاه موبایل کاربر را با استفاده از سرویس‌های بک‌اند وابسته به پلتفرم مانند FCM یا APNS فعال می‌کنند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 مانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 مانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBinclude_body\fR: \fItrue | false | Text\fR .RS 4 اگر این گزینه روی \fItrue\fR تنظیم شده باشد، متن پیام در اعلان‌های فشاری تولیدشده برای پیام‌های دریافتی دارای متن گنجانده می‌شود\&. این گزینه می‌تواند به جای آن روی یک \fIText\fR ثابت تنظیم شود، که در این صورت متن مشخص‌شده به جای متن واقعی پیام گنجانده خواهد شد\&. این می‌تواند برای سیگنال دادن به سرور برنامه در مورد اینکه آیا اعلان توسط یک پیام دارای متن (در مقابل انواع دیگر ترافیک) فعال شده است، بدون افشای محتوای واقعی پیام، مفید باشد\&. مقدار پیش‌فرض "New message" است\&. .RE .PP \fBinclude_sender\fR: \fItrue | false\fR .RS 4 اگر این گزینه روی \fItrue\fR تنظیم شده باشد، JID فرستنده در اعلان‌های فشاری تولیدشده برای پیام‌های دریافتی دارای متن گنجانده می‌شود\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBnotify_on\fR: \fImessages | all\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 23\&.10 اضافه شده است\&. اگر این گزینه روی \fImessages\fR تنظیم شده باشد، اعلان‌ها فقط برای پیام‌های چت واقعی دارای متن (یا برخی محتوای رمزگذاری‌شده) تولید می‌شوند\&. اگر روی \fIall\fR تنظیم شده باشد، هر نوع استانزای XMPP یک اعلان را فعال می‌کند\&. اگر مطمئن نیستید، اکیداً توصیه می‌شود با \fIall\fR بمانید که مقدار پیش‌فرض است\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 مانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .sp \fBAPI Tags:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#purge|purge\fR .RE .SS "mod_push_keepalive" .sp این ماژول سعی می‌کند نشست مدیریت جریان (به \fImod_stream_mgmt\fR مراجعه کنید) یک کلاینت موبایل قطع‌شده را زنده نگه دارد، اگر کلاینت اعلان‌های فشاری را برای آن نشست فعال کرده باشد\&. با این حال، زمان‌بندی از سرگیری نشست معمولی پس از صدور اعلان فشاری بازیابی می‌شود، بنابراین نشست در صورتی که کلاینت به اعلان‌های فشاری پاسخ ندهد بسته خواهد شد\&. .sp این ماژول به \fImod_push\fR وابسته است\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBresume_timeout\fR: \fItimeout()\fR .RS 4 این گزینه مدت زمانی را مشخص می‌کند که پس از آن نشست یک کلاینت فشاری قطع‌شده منقضی می‌شود\&. این زمان‌بندی فقط تا زمانی که هیچ اعلان فشاری صادر نشده باشد معتبر است\&. پس از وقوع آن، زمان‌بندی از سرگیری پیکربندی‌شده برای \fImod_stream_mgmt\fR بازیابی می‌شود\&. مقدار پیش‌فرض \fI72\fR ساعت است\&. .RE .PP \fBwake_on_start\fR: \fItrue | false\fR .RS 4 اگر این گزینه روی \fItrue\fR تنظیم شده باشد، در طول راه‌اندازی کارگزار برای \fBتمام\fR کلاینت‌های فشاری ثبت‌شده اعلان تولید می‌شود\&. این گزینه نباید در کارگزارهایی با تعداد زیادی کلاینت فشاری فعال شود زیرا می‌تواند بار قابل توجهی بر سرویس‌های فشاری درگیر و خود کارگزار ایجاد کند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBwake_on_timeout\fR: \fItrue | false\fR .RS 4 اگر این گزینه روی \fItrue\fR تنظیم شده باشد، کمی قبل از اینکه نشست طبق گزینه \fIresume_timeout\fR منقضی شود، یک اعلان تولید می‌شود\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .RE .SS "mod_register" .sp این ماژول پشتیبانی از XEP\-0077: In\-Band Registration را اضافه می‌کند\&. این پروتکل به کاربران نهایی امکان می‌دهد از یک کلاینت XMPP برای موارد زیر استفاده کنند: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ثبت یک حساب کاربری جدید روی کارگزار\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تغییر رمز عبور یک حساب کاربری موجود روی کارگزار\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} حذف یک حساب کاربری موجود روی کارگزار\&. .RE .sp این ماژول همچنین گزینه سطح بالای \fIregistration_timeout\fR که به صورت سراسری برای کارگزار تعریف شده را می‌خواند، بنابراین مستندات آن گزینه را نیز بررسی کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 قوانینی را برای محدود کردن نام‌های کاربری قابل ثبت مشخص می‌کند\&. اگر یک قانون برای نام کاربری درخواست‌شده مقدار \fIdeny\fR را برگرداند، ثبت آن نام کاربری رد می‌شود\&. به طور پیش‌فرض هیچ محدودیتی وجود ندارد\&. اگر \fIAccessName\fR برابر \fInone\fR باشد، ثبت حساب‌های کاربری جدید از طریق In\-Band Registration غیرفعال می‌شود و ویژگی جریان مربوطه به کلاینت‌ها اعلام نمی‌شود\&. .RE .PP \fBaccess_from\fR: \fIAccessName\fR .RS 4 به طور پیش‌فرض، ejabberd به کلاینت اجازه نمی‌دهد که حساب‌های کاربری جدید را از طریق جلسات s2s یا c2s موجود ثبت کند\&. می‌توانید با تعریف قانون دسترسی در این گزینه آن را تغییر دهید\&. با احتیاط استفاده کنید: اجازه دادن به ثبت از طریق s2s منجر به ایجاد انبوه حساب‌های کاربری کنترل‌نشده توسط کاربران مخرب می‌شود\&. .RE .PP \fBaccess_remove\fR: \fIAccessName\fR .RS 4 قوانینی را برای محدود کردن دسترسی به لغو ثبت کاربران مشخص می‌کند\&. به طور پیش‌فرض هر کاربری می‌تواند حساب کاربری خود را لغو ثبت کند\&. .RE .PP \fBallow_modules\fR: \fIall | [Module, \&.\&.\&.]\fR .RS 4 \fIتوجه\fR درباره این گزینه: در نسخه 21\&.12 اضافه شده است\&. فهرستی از ماژول‌هایی که می‌توانند حساب‌های کاربری ثبت کنند، یا \fIall\fR\&. مقدار پیش‌فرض \fIall\fR است که معادل چیزی شبیه به \fI[mod_register, mod_register_web]\fR است\&. .RE .PP \fBcaptcha_protected\fR: \fItrue | false\fR .RS 4 ثبت‌نام را با \fIbasic\&.md#captcha|CAPTCHA\fR محافظت می‌کند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBip_access\fR: \fIAccessName\fR .RS 4 قوانینی را برای اجازه یا رد ثبت حساب کاربری بر اساس آدرس IP کلاینت XMPP تعریف می‌کند\&. \fIAccessName\fR باید از نوع \fIip\fR باشد\&. مقدار پیش‌فرض \fIall\fR است\&. .RE .PP \fBpassword_strength\fR: \fIEntropy\fR .RS 4 این گزینه حداقل آنتروپی شانون برای رمزهای عبور را تعیین می‌کند\&. مقدار \fIEntropy\fR تعداد بیت‌های آنتروپی است\&. حداقل توصیه‌شده ۳۲ بیت است\&. پیش‌فرض \fI0\fR است، یعنی هیچ بررسی انجام نمی‌شود\&. .RE .PP \fBredirect_url\fR: \fIURL\fR .RS 4 این گزینه تغییر مسیر ثبت‌نام را طبق تعریف در XEP\-0077: In\-Band Registration: Redirection فعال می‌کند\&. .RE .PP \fBregistration_watchers\fR: \fI[JID, \&.\&.\&.]\fR .RS 4 این گزینه فهرستی از JIDها را تعریف می‌کند که هر بار که حساب کاربری جدیدی ثبت شود، اطلاع‌رسانی می‌شوند\&. .RE .PP \fBwelcome_message\fR: \fI{subject: Subject, body: Body}\fR .RS 4 یک پیام خوش‌آمدگویی تنظیم می‌کند که برای هر حساب کاربری تازه ثبت‌شده ارسال می‌شود\&. پیام دارای موضوع \fISubject\fR و متن \fIBody\fR خواهد بود\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf modules: mod_register: welcome_message: subject: "Welcome!" body: |- Hi! Welcome to this XMPP server .fi .if n \{\ .RE .\} .RE .RE .SS "mod_register_web" .sp این ماژول یک صفحه وب فراهم می‌کند که کاربران می‌توانند در آن: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک حساب کاربری جدید روی کارگزار ثبت کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} رمز عبور یک حساب کاربری موجود روی کارگزار را تغییر دهند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک حساب کاربری موجود روی کارگزار را لغو ثبت کنند\&. .RE .sp این ماژول از \fIbasic\&.md#captcha|CAPTCHA\fR برای ثبت حساب کاربری جدید پشتیبانی می‌کند\&. برای فعال کردن این ویژگی، گزینه‌های سطح بالای \fIcaptcha_cmd\fR و \fIcaptcha_url\fR را پیکربندی کنید\&. .sp به عنوان مثال کاربرد، کاربران میزبان \fIlocalhost\fR می‌توانند از صفحه: \fIhttps://localhost:5280/register/\fR بازدید کنند\&. مهم است که کاراکتر / پایانی را در URL درج کنید، در غیر این صورت آدرس زیرصفحات اشتباه خواهد بود\&. .sp این ماژول در \fIlisten\fR → \fIejabberd_http\fR → \fIlisten\-options\&.md#request_handlers|request_handlers\fR فعال می‌شود\&. .sp نیازی به فعال کردن این ماژول در \fImodules\fR نیست، اما یک لینک به صفحه ثبت‌نام در منوی WebAdmin اضافه می‌کند\&. این ماژول به \fImod_register\fR وابسته است که تمام پیکربندی در آن انجام می‌شود\&. .sp این ماژول هیچ گزینه‌ای ندارد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf listen: - port: 5280 module: ejabberd_http request_handlers: /register: mod_register_web modules: mod_register: {} .fi .if n \{\ .RE .\} .RE .SS "mod_roster" .sp این ماژول مدیریت فهرست مخاطبین را طبق تعریف در RFC6121 بخش ۲ پیاده‌سازی می‌کند\&. این ماژول همچنین پشتیبانی از XEP\-0237: Roster Versioning را اضافه می‌کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 این گزینه می‌تواند برای تعیین قوانین محدود کردن مدیریت فهرست مخاطبین پیکربندی شود\&. اگر قانون برای نام کاربری درخواست‌شده مقدار \fIdeny\fR را برگرداند، آن کاربر نمی‌تواند فهرست مخاطبین شخصی خود را تغییر دهد، یعنی نمی‌تواند مخاطبین را اضافه/حذف/ویرایش کند یا درخواست‌های حضور ارسال کند\&. مقدار پیش‌فرض \fIall\fR است، یعنی هیچ محدودیتی وجود ندارد\&. .RE .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 مانند گزینه سطح بالای \fIcache_life_time\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 مانند گزینه سطح بالای \fIcache_missed\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مانند گزینه سطح بالای \fIcache_size\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_db\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBstore_current_id\fR: \fItrue | false\fR .RS 4 اگر این گزینه روی \fItrue\fR تنظیم شود، شماره نسخه فعلی فهرست مخاطبین در پایگاه داده ذخیره می‌شود\&. اگر روی \fIfalse\fR تنظیم شود، شماره نسخه فهرست مخاطبین هر بار به صورت پویا محاسبه می‌شود\&. فعال کردن این گزینه بار هر دو ejabberd و پایگاه داده را کاهش می‌دهد\&. این گزینه هیچ تأثیری بر کلاینت ندارد\&. این گزینه تنها زمانی مفید است که گزینه \fIversioning\fR روی \fItrue\fR تنظیم شده باشد\&. مقدار پیش‌فرض \fIfalse\fR است\&. مهم: اگر از \fImod_shared_roster\fR یا \fImod_shared_roster_ldap\fR استفاده می‌کنید، باید مقدار این گزینه را \fIfalse\fR تنظیم کنید\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 مانند گزینه سطح بالای \fIuse_cache\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBversioning\fR: \fItrue | false\fR .RS 4 Roster Versioning را فعال/غیرفعال می‌کند\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_roster: versioning: true store_current_id: false .fi .if n \{\ .RE .\} .sp \fBبرچسب‌های API:\fR \fI\&.\&./\&.\&./developer/ejabberd\-api/admin\-tags\&.md#roster|roster\fR .RE .SS "mod_s2s_bidi" .sp \fIتوجه\fR درباره این گزینه: در نسخه 24\&.10 اضافه شده است\&. .sp این ماژول پشتیبانی از XEP\-0288: Bidirectional Server\-to\-Server Connections را اضافه می‌کند که امکان استفاده از یک اتصال s2s برای ارتباط در هر دو جهت را فراهم می‌کند\&. .sp این ماژول هیچ گزینه‌ای ندارد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_s2s_bidi: {} .fi .if n \{\ .RE .\} .RE .SS "mod_s2s_dialback" .sp این ماژول پشتیبانی از XEP\-0220: Server Dialback را برای فراهم کردن تأیید هویت کارگزار بر اساس DNS اضافه می‌کند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .sp تأیید هویت مبتنی بر DNS در برابر مسموم‌سازی کش DNS آسیب‌پذیر است، بنابراین کارگزارهای مدرن بر تأیید هویت مبتنی بر گواهی‌نامه‌های PKIX تکیه می‌کنند\&. از این رو این ماژول تنها برای سازگاری با نسخه‌های قدیمی‌تر کارگزارهایی که نرم‌افزار قدیمی را اجرا می‌کنند یا کارگزارهای بدون TLS یا آنهایی با گواهی‌نامه‌های نامعتبر توصیه می‌شود (تا زمانی که ریسک‌ها را می‌پذیرید، مثلاً فرض می‌کنید که کارگزار راه دور دارای گواهی‌نامه نامعتبر به دلیل مدیریت ضعیف است و نه به این دلیل که به خطر افتاده است)\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 یک قانون دسترسی که می‌تواند برای محدود کردن dialback برای برخی کارگزارها استفاده شود\&. مقدار پیش‌فرض \fIall\fR است\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_s2s_dialback: access: allow: server: legacy\&.domain\&.tld server: invalid\-cert\&.example\&.org deny: all .fi .if n \{\ .RE .\} .RE .SS "mod_scram_upgrade" .sp \fIتوجه\fR درباره این گزینه: در نسخه 24\&.10 اضافه شده است\&. .sp این ماژول پشتیبانی از XEP\-0480: SASL Upgrade Tasks را اضافه می‌کند که به کاربران اجازه می‌دهد رمزهای عبور خود را به نمایش امن‌تری ارتقا دهند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBoffered_upgrades\fR: \fIlist(sha256, sha512)\fR .RS 4 فهرستی از انواع ارتقا که باید پیشنهاد شوند .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_scram_upgrade: offered_upgrades: \- sha256 \- sha512 .fi .if n \{\ .RE .\} .RE .SS "mod_service_log" .sp این ماژول نسخه‌هایی از تمام stanza‌ها را به سرورها یا اجزای XMPP از راه دور ارسال می‌کند\&. هر stanza در قالب عنصر طبق توضیحات XEP\-0297: Stanza Forwarding کپسوله می‌شود\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBloggers\fR: \fI[Domain, \&.\&.\&.]\fR .RS 4 فهرستی از سرورها یا اجزای متصل که stanza‌ها به آن‌ها ارسال خواهند شد\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_service_log: loggers: \- xmpp\-server\&.tld \- component\&.domain\&.tld .fi .if n \{\ .RE .\} .RE .SS "mod_shared_roster" .sp این ماژول به شما امکان می‌دهد گروه‌های فهرست مخاطبین مشترک ایجاد کنید: گروه‌هایی از حساب‌های کاربری که می‌توانند اعضای گروه‌های (دیگر) را در فهرست مخاطبین خود ببینند\&. .sp مزیت‌های بزرگ این ویژگی این است که کاربران نهایی نیازی به افزودن دستی همه کاربران به فهرست مخاطبین خود ندارند و نمی‌توانند کاربران را به‌طور دائم از گروه‌های فهرست مشترک حذف کنند\&. یک گروه فهرست مشترک می‌تواند اعضایی از هر سرور XMPP داشته باشد، اما حضور تنها از اعضای همان میزبان مجازی که گروه در آن ایجاد شده است، در دسترس خواهد بود\&. این ویژگی همچنان به کاربران اجازه می‌دهد مخاطبین خود را داشته باشند یا اضافه کنند، زیرا جایگزین فهرست مخاطبین استاندارد نمی‌شود\&. در عوض، مخاطبین فهرست مشترک هنگام بازیابی به فهرست مخاطبین کاربران مربوطه ادغام می‌شوند\&. بنابراین فهرست مخاطبین استاندارد کاربر بدون تغییر باقی می‌ماند\&. .sp گروه‌های فهرست مشترک را می‌توان از طریق پنل مدیریت وب ویرایش کرد و برخی دستورات API با پیشوند \fIsrg_\fR، مانند API \fIsrg_add\fR وجود دارند\&. هر گروه یک نام منحصربه‌فرد و این پارامترها دارد: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Label: در فهرست مخاطبینی که این گروه در آن نمایش داده می‌شود استفاده می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Description: توضیح گروه که تأثیری ندارد\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Members: فهرستی از JIDهای اعضای گروه که در پنل مدیریت وب هر کدام در یک خط وارد می‌شوند\&. دستورالعمل خاص عضو \fI@all@\fR نماینده همه کاربران ثبت‌نام‌شده در میزبان مجازی است؛ که فقط برای سرور کوچک با چند صد کاربر توصیه می‌شود\&. دستورالعمل خاص عضو \fI@online@\fR نماینده کاربران آنلاین در میزبان مجازی است\&. با این دو دستورالعمل، فهرست واقعی اعضا در آن فهرست‌های مشترک به‌صورت پویا در زمان بازیابی تولید می‌شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Displayed: فهرستی از گروه‌هایی که در فهرست مخاطبین اعضای این گروه خواهند بود\&. یک گروه از vhost دیگر را می‌توان با \fIgroupid@vhost\fR شناسایی کرد\&. .RE .sp این ماژول به \fImod_roster\fR وابسته است\&. اگر فعال نباشد، پرسش‌های فهرست مخاطبین خطای 503 برمی‌گردانند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 مانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 مانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 مانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql\fR .RS 4 مانند گزینه سطح بالای \fIdefault_db\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 مانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال‌ها:\fR .RS 4 .sp فرض کنید یک باشگاه کامپیوتر می‌خواهد همه اعضایش یکدیگر را در فهرست مخاطبین خود ببینند\&. برای این منظور، باید یک گروه فهرست مشترک مشابه این ایجاد کنند: .sp .if n \{\ .RS 4 .\} .nf Name: club_members Label: Club Members Description: Members from the computer club Members: member1@example\&.org, member2@example\&.org, member3@example\&.org Displayed Groups: club_members .fi .if n \{\ .RE .\} .sp در حالت دیگری، شرکتی داریم که سه بخش دارد: مدیریت، بازاریابی و فروش\&. همه اعضای گروه باید همه اعضای دیگر را در فهرست مخاطبین خود ببینند\&. علاوه بر این، همه مدیران باید همه افراد بازاریابی و فروش را در فهرست مخاطبین خود داشته باشند\&. همزمان، همه بازاریاب‌ها و کل تیم فروش باید همه مدیران را ببینند\&. این سناریو را می‌توان با ایجاد گروه‌های فهرست مشترک به‌صورت نشان داده‌شده در فهرست‌های زیر محقق کرد: .sp .if n \{\ .RS 4 .\} .nf First list: Name: management Label: Management Description: Management Members: manager1@example\&.org, manager2@example\&.org Displayed: management, marketing, sales Second list: Name: marketing Label: Marketing Description: Marketing Members: marketeer1@example\&.org, marketeer2@example\&.org, marketeer3@example\&.org Displayed: management, marketing Third list: Name: sales Label: Sales Description: Sales Members: salesman1@example\&.org, salesman2@example\&.org, salesman3@example\&.org Displayed: management, sales .fi .if n \{\ .RE .\} .RE .SS "mod_shared_roster_ldap" .sp این ماژول به مدیر سرور اجازه می‌دهد فهرست مخاطبین (لیست مخاطبین) کاربران را به‌طور خودکار بر اساس کاربران و گروه‌های تعریف‌شده در یک دایرکتوری مبتنی بر LDAP پر کند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp \fImod_shared_roster_ldap\fR به فعال بودن \fImod_roster\fR وابسته است\&. اگر \fImod_roster\fR فعال نباشد، پرسش‌های فهرست مخاطبین خطای \fI503\fR برمی‌گردانند\&. .sp .5v .RE .sp این ماژول گزینه‌های پیکربندی زیادی می‌پذیرد\&. برخی از آن‌ها، در صورت مشخص نشدن، به مقادیر تعیین‌شده در سطح بالای پیکربندی پیش‌فرض می‌شوند\&. این به شما اجازه می‌دهد از مشخص کردن مواردی مانند رمز عبور bind در چندین مکان اجتناب کنید\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} فیلترها: \fIldap_rfilter\fR، \fIldap_ufilter\fR، \fIldap_gfilter\fR، \fIldap_filter\fR\&. این گزینه‌ها فیلترهای LDAP مورد استفاده برای پرسش اطلاعات فهرست مشترک را مشخص می‌کنند\&. همه آن‌ها در برابر ldap_base اجرا می‌شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ویژگی‌ها: \fIldap_groupattr\fR، \fIldap_groupdesc\fR، \fIldap_memberattr\fR، \fIldap_userdesc\fR، \fIldap_useruid\fR\&. این گزینه‌ها نام ویژگی‌هایی را که داده‌های مهم را در ورودی‌های برگشتی از اجرای فیلترهای مشخص‌شده نگه می‌دارند، مشخص می‌کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} پارامترهای کنترلی: \fIldap_auth_check\fR، \fIldap_group_cache_validity\fR، \fIldap_memberattr_format\fR، \fIldap_memberattr_format_re\fR، \fIldap_user_cache_validity\fR\&. این پارامترها رفتار ماژول را کنترل می‌کنند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} پارامترهای اتصال: این ماژول همچنین پارامترهای اتصال را می‌پذیرد که همه آن‌ها در صورت مشخص نشدن به پارامتر سطح بالای با همان نام پیش‌فرض می‌شوند\&. برای اطلاعات بیشتر بخش \fIldap\&.md#ldap\-connection|LDAP Connection\fR را ببینید\&. .RE .sp همچنین برای جزئیات بازیابی فهرست مخاطبین و مثال‌های پیکربندی شامل Flat DIT و Deep DIT، بخش \fIldap\&.md#ldap\-examples|Configuration examples\fR را بررسی کنید\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR .RS 4 مانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR .RS 4 مانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR .RS 4 مانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_auth_check\fR: \fItrue | false\fR .RS 4 آیا ماژول باید (از طریق زیرسیستم احراز هویت ejabberd) وجود هر کاربر در فهرست مشترک LDAP را بررسی کند\&. در صورتی که می‌خواهید بررسی را غیرفعال کنید، به \fIfalse\fR تنظیم کنید\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBldap_backups\fR .RS 4 مانند گزینه سطح بالای \fIldap_backups\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_base\fR .RS 4 مانند گزینه سطح بالای \fIldap_base\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_deref_aliases\fR .RS 4 مانند گزینه سطح بالای \fIldap_deref_aliases\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_encrypt\fR .RS 4 مانند گزینه سطح بالای \fIldap_encrypt\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_filter\fR .RS 4 فیلتر اضافی که با عملگر AND با «User Filter» و «Group Filter» ترکیب می‌شود\&. برای اطلاعات بیشتر بخش \fIldap\&.md#filters|Filters\fR LDAP را بررسی کنید\&. .RE .PP \fBldap_gfilter\fR .RS 4 «Group Filter»، هنگام بازیابی نام قابل‌خواندن توسط انسان (معروف به «Display Name») و اعضای یک گروه استفاده می‌شود\&. همچنین پارامترهای \fIldap_groupattr\fR، \fIldap_groupdesc\fR و \fIldap_memberattr\fR را ببینید\&. در صورت مشخص نشدن، به پارامتر سطح بالای با همان نام پیش‌فرض می‌شود\&. اگر آن هم مشخص نشده باشد، فیلتر دقیقاً مانند «User Filter» ساخته می‌شود\&. .RE .PP \fBldap_groupattr\fR .RS 4 نام ویژگی‌ای که نام گروه را نگه می‌دارد و برای تمایز بین آن‌ها استفاده می‌شود\&. از نتایج «Roster Filter» و «Group Filter» بازیابی می‌شود\&. پیش‌فرض \fIcn\fR است\&. .RE .PP \fBldap_groupdesc\fR .RS 4 نام ویژگی‌ای که نام گروه قابل‌خواندن توسط انسان را در اشیایی که برای نمایش گروه‌ها استفاده می‌کنید نگه می‌دارد\&. از نتایج «Group Filter» بازیابی می‌شود\&. پیش‌فرض همان مقداری است که برای \fIldap_groupattr\fR تنظیم شده است\&. .RE .PP \fBldap_memberattr\fR .RS 4 نام ویژگی‌ای که شناسه‌های اعضای یک گروه را نگه می‌دارد\&. از نتایج «Group Filter» بازیابی می‌شود\&. پیش‌فرض \fImemberUid\fR است\&. نام ویژگی بسته به objectClass مورد استفاده برای اشیای گروه متفاوت است، برای مثال: \fIposixGroup\fR → \fImemberUid\fR؛ \fIgroupOfNames\fR → \fImember\fR؛ \fIgroupOfUniqueNames\fR → \fIuniqueMember\fR\&. .RE .PP \fBldap_memberattr_format\fR .RS 4 قالب globbing برای استخراج شناسه کاربر از مقدار ویژگی‌ای که توسط \fIldap_memberattr\fR نام‌گذاری شده است\&. پیش‌فرض \fI%u\fR است، به این معنی که کل مقدار شناسه عضو است\&. اگر آن را به چیز دیگری تغییر دهید، ممکن است نیاز باشد فیلترهای User و Group را هم به‌صورت دستی مشخص کنید؛ بخش Filters را ببینید\&. .RE .PP \fBldap_memberattr_format_re\fR .RS 4 یک عبارت منظم برای استخراج شناسه کاربر از مقدار ویژگی‌ای که توسط \fIldap_memberattr\fR نام‌گذاری شده است\&. بخش \fIldap\&.md#control\-parameters|Control Parameters\fR LDAP را بررسی کنید\&. .RE .PP \fBldap_password\fR .RS 4 مانند گزینه سطح بالای \fIldap_password\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_port\fR .RS 4 مانند گزینه سطح بالای \fIldap_port\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_rfilter\fR .RS 4 به اصطلاح «Roster Filter»\&. برای یافتن نام‌های همه گروه‌های «فهرست مشترک» استفاده می‌شود\&. همچنین پارامتر \fIldap_groupattr\fR را ببینید\&. در صورت مشخص نشدن، به پارامتر سطح بالای با همان نام پیش‌فرض می‌شود\&. باید آن را در جایی در پیکربندی مشخص کنید، هیچ مقدار پیش‌فرضی وجود ندارد\&. .RE .PP \fBldap_rootdn\fR .RS 4 مانند گزینه سطح بالای \fIldap_rootdn\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_servers\fR .RS 4 مانند گزینه سطح بالای \fIldap_servers\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_cacertfile\fR .RS 4 مانند گزینه سطح بالای \fIldap_tls_cacertfile\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_certfile\fR .RS 4 مانند گزینه سطح بالای \fIldap_tls_certfile\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_depth\fR .RS 4 مانند گزینه سطح بالای \fIldap_tls_depth\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_verify\fR .RS 4 مانند گزینه سطح بالای \fIldap_tls_verify\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_ufilter\fR .RS 4 «User Filter»، برای بازیابی نام قابل‌خواندن توسط انسان از ورودی‌های فهرست مخاطبین (معمولاً نام کامل افراد در فهرست) استفاده می‌شود\&. همچنین پارامترهای \fIldap_userdesc\fR و \fIldap_useruid\fR را ببینید\&. برای اطلاعات بیشتر بخش \fIldap\&.md#filters|Filters\fR LDAP را بررسی کنید\&. .RE .PP \fBldap_uids\fR .RS 4 مانند گزینه سطح بالای \fIldap_uids\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_userdesc\fR .RS 4 نام ویژگی‌ای که نام قابل‌خواندن توسط انسان را نگه می‌دارد\&. از نتایج «User Filter» بازیابی می‌شود\&. پیش‌فرض \fIcn\fR است\&. .RE .PP \fBldap_userjidattr\fR .RS 4 نام ویژگی‌ای که برای نگاشت شناسه کاربر به XMPP jid استفاده می‌شود\&. اگر مشخص نشده باشد (که مقدار پیش‌فرض این گزینه است)، jid کاربر از شناسه کاربر و میزبان این ماژول ساخته می‌شود\&. .RE .PP \fBldap_useruid\fR .RS 4 نام ویژگی‌ای که شناسه یک آیتم فهرست مخاطبین را نگه می‌دارد\&. مقدار این ویژگی در اشیای آیتم فهرست مخاطبین باید با شناسه بازیابی‌شده از ویژگی \fIldap_memberattr\fR یک شیء گروه مطابقت داشته باشد\&. از نتایج «User Filter» بازیابی می‌شود\&. پیش‌فرض \fIcn\fR است\&. .RE .PP \fBuse_cache\fR .RS 4 مانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .SS "mod_sic" .sp این ماژول پشتیبانی از XEP\-0279: Server IP Check را اضافه می‌کند\&. این پروتکل به کلاینت امکان می‌دهد آدرس IP خارجی خود را کشف کند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBهشدار\fR .ps -1 .br .sp این افزونه پروتکل به تعویق افتاده و به نظر می‌رسد هیچ کلاینتی از آن پشتیبانی نمی‌کند، بنابراین استفاده از این ماژول توصیه نمی‌شود و علاوه بر این، ممکن است در آینده حذف شود\&. .sp .5v .RE .sp این ماژول هیچ گزینه‌ای ندارد\&. .SS "mod_sip" .sp این ماژول پشتیبانی از پراکسی/ثبت‌کننده SIP را برای هاست مجازی مربوطه اضافه می‌کند\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp صرفاً بارگذاری این ماژول کافی نیست\&. باید شنوندگان و رکوردهای DNS را نیز به درستی پیکربندی کنید\&. برای جزئیات به بخش مربوط به ماژول شنوند \fIlisten\&.md#ejabberd_sip|ejabberd_sip\fR در مستندات ejabberd مراجعه کنید\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBalways_record_route\fR: \fItrue | false\fR .RS 4 همیشه هدر "Record\-Route" را در پیام‌های SIP درج می‌کند\&. با این رویکرد، دور زدن NAT/فایروال‌ها کمی آسان‌تر می‌شود\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBflow_timeout_tcp\fR: \fItimeout()\fR .RS 4 این گزینه یک تایمر keep\-alive برای اتصالات TCP در SIP outbound تنظیم می‌کند\&. مقدار پیش‌فرض \fI2\fR دقیقه است\&. .RE .PP \fBflow_timeout_udp\fR: \fItimeout()\fR .RS 4 این گزینه یک تایمر keep\-alive برای اتصالات UDP در SIP outbound تنظیم می‌کند\&. مقدار پیش‌فرض \fI29\fR ثانیه است\&. .RE .PP \fBrecord_route\fR: \fIURI\fR .RS 4 هنگامی که گزینه \fIalways_record_route\fR روی \fItrue\fR تنظیم شده یا از SIP outbound استفاده می‌شود، ejabberd فیلد هدر "Record\-Route" را با این \fIURI\fR در پیام SIP درج می‌کند\&. پیش‌فرض یک URI SIP است که از هاست مجازی که ماژول روی آن بارگذاری شده، ساخته می‌شود\&. .RE .PP \fBroutes\fR: \fI[URI, \&.\&.\&.]\fR .RS 4 می‌توانید فهرستی از URI های SIP برای مسیرهایی که به این سرور پراکسی SIP اشاره دارند تنظیم کنید\&. پیش‌فرض فهرستی شامل یک URI SIP است که از هاست مجازی که ماژول روی آن بارگذاری شده، ساخته می‌شود\&. .RE .PP \fBvia\fR: \fI[URI, \&.\&.\&.]\fR .RS 4 فهرستی برای ساخت هدرهای "Via" جهت درج در پیام‌های SIP خروجی\&. این گزینه در صورتی مفید است که پراکسی SIP شما در یک توپولوژی شبکه غیراستاندارد اجرا می‌شود\&. هر عنصر \fIURI\fR در فهرست باید به صورت "scheme://host:port" باشد، که در آن "transport" باید \fItls\fR، \fItcp\fR، یا \fIudp\fR باشد، "host" باید یک نام دامنه یا آدرس IP باشد و "port" باید یک شماره پورت اینترنتی باشد\&. توجه داشته باشید که تمام بخش‌های \fIURI\fR اجباری هستند (مثلاً نمی‌توانید "port" یا "scheme" را حذف کنید)\&. .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBمثال:\fR .RS 4 .sp .if n \{\ .RS 4 .\} .nf modules: mod_sip: always_record_route: false record_route: "sip:example\&.com;lr" routes: \- "sip:example\&.com;lr" \- "sip:sip\&.example\&.com;lr" flow_timeout_udp: 30 sec flow_timeout_tcp: 1 min via: \- tls://sip\-tls\&.example\&.com:5061 \- tcp://sip\-tcp\&.example\&.com:5060 \- udp://sip\-udp\&.example\&.com:5060 .fi .if n \{\ .RE .\} .RE .SS "mod_stats" .sp این ماژول پشتیبانی از XEP\-0039: Statistics Gathering را اضافه می‌کند\&. این پروتکل به شما امکان می‌دهد آمارهای زیر را از سرور ejabberd خود دریافت کنید: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تعداد کل کاربران ثبت‌شده در هاست مجازی فعلی (users/total)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تعداد کل کاربران ثبت‌شده در تمام هاست‌های مجازی (users/all\-hosts/total)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تعداد کل کاربران آنلاین در هاست مجازی فعلی (users/online)\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تعداد کل کاربران آنلاین در تمام هاست‌های مجازی (users/all\-hosts/online)\&. .RE .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp این افزونه پروتکل به تعویق افتاده و به نظر می‌رسد حتی تعداد کمی از کلاینت‌هایی که از آن پشتیبانی می‌کردند اکنون رها شده‌اند\&. بنابراین استفاده از این ماژول چندان منطقی نیست\&. .sp .5v .RE .sp این ماژول هیچ گزینه‌ای ندارد\&. .SS "mod_stream_mgmt" .sp این ماژول پشتیبانی از XEP\-0198: Stream Management را اضافه می‌کند\&. این پروتکل امکان مدیریت فعال یک جریان XML بین دو موجودیت XMPP را فراهم می‌کند، از جمله ویژگی‌هایی برای تأیید استانزا و از سرگیری جریان\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBack_timeout\fR: \fItimeout()\fR .RS 4 مدت زمان انتظار برای تأیید استانزاها\&. تنظیم آن روی \fIinfinity\fR عملاً تایم‌اوت را غیرفعال می‌کند\&. مقدار پیش‌فرض \fI1\fR دقیقه است\&. .RE .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. مقدار پیش‌فرض \fI48 hours\fR است\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBmax_ack_queue\fR: \fISize\fR .RS 4 این گزینه حداکثر تعداد استانزاهای تأیید نشده‌ای که برای احتمال ارسال مجدد در صف قرار می‌گیرند را مشخص می‌کند\&. هنگامی که این محدودیت از حد گذشت، نشست کلاینت خاتمه می‌یابد\&. مقادیر مجاز اعداد صحیح مثبت و \fIinfinity\fR هستند\&. باید در تنظیم این مقدار دقت کنید زیرا نباید خیلی کم تنظیم شود، در غیر این صورت ممکن است نشست‌ها را در یک حلقه متوقف کنید، قبل از اینکه فرصت پایان دادن صحیح به راه‌اندازی نشست را داشته باشند\&. قطعاً باید بالاتر از اندازه صف آفلاین تنظیم شود (برای مثال حداقل ۳ برابر مقدار حداکثر صف آفلاین و هرگز کمتر از \fI1000\fR نباشد)\&. مقدار پیش‌فرض \fI5000\fR است\&. .RE .PP \fBmax_resume_timeout\fR: \fItimeout()\fR .RS 4 یک کلاینت می‌تواند مدت زمانی را که یک نشست در صورت قطع اتصال تایم‌اوت می‌شود مشخص کند\&. در این مدت زمان، کلاینت می‌تواند نشست خود را از سر بگیرد\&. این گزینه مدت زمانی را که کلاینت مجاز است درخواست کند محدود می‌کند\&. باید روی مقداری مساوی یا بزرگ‌تر از \fIresume_timeout\fR پیش‌فرض تنظیم شود\&. به طور پیش‌فرض، روی همان مقدار گزینه \fIresume_timeout\fR تنظیم می‌شود\&. .RE .PP \fBqueue_type\fR: \fIram | file\fR .RS 4 همانند گزینه سطح بالای \fIqueue_type\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBresend_on_timeout\fR: \fItrue | false | if_offline\fR .RS 4 اگر این گزینه روی \fItrue\fR تنظیم شود، هر استانزای پیامی که توسط کلاینت تأیید نشده باشد در هنگام تایم‌اوت نشست مجدداً ارسال می‌شود\&. این رفتار ممکن است اغلب مطلوب باشد، اما در برخی شرایط می‌تواند نتایج غیرمنتظره‌ای داشته باشد\&. برای مثال، پیامی که به دو منبع ارسال شده ممکن است به یکی از آن‌ها مجدداً ارسال شود اگر دیگری تایم‌اوت شود\&. بنابراین مقدار پیش‌فرض این گزینه \fIfalse\fR است، که به ejabberd می‌گوید به جای آن یک پیام خطا تولید کند\&. به عنوان جایگزین، گزینه ممکن است روی \fIif_offline\fR تنظیم شود\&. در این حالت، پیام‌های تأیید نشده تنها در صورتی مجدداً ارسال می‌شوند که هیچ منبع دیگری هنگام تایم‌اوت نشست آنلاین نباشد\&. در غیر این صورت، پیام‌های خطا تولید می‌شوند\&. .RE .PP \fBresume_timeout\fR: \fItimeout()\fR .RS 4 این گزینه دوره زمانی (پیش‌فرض) را تنظیم می‌کند که در صورت قطع اتصال، یک نشست تایم‌اوت می‌شود\&. در این مدت زمان، کلاینت می‌تواند نشست خود را از سر بگیرد\&. توجه داشته باشید که کلاینت می‌تواند مقدار تایم‌اوت متفاوتی درخواست کند، به گزینه \fImax_resume_timeout\fR مراجعه کنید\&. تنظیم آن روی \fI0\fR عملاً از سرگیری نشست را غیرفعال می‌کند\&. مقدار پیش‌فرض \fI5\fR دقیقه است\&. .RE .RE .SS "mod_stun_disco" .sp \fIتوجه\fR درباره این گزینه: در نسخه 20\&.04 اضافه شده است\&. .sp این ماژول به کلاینت‌های XMPP امکان می‌دهد سرویس‌های STUN/TURN را کشف کنند و اعتبارنامه‌های موقت برای استفاده از آن‌ها طبق XEP\-0215: External Service Discovery دریافت کنند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBaccess\fR: \fIAccessName\fR .RS 4 این گزینه مشخص می‌کند کدام قانون دسترسی برای کنترل اینکه چه کسی مجاز به کشف سرویس‌های STUN/TURN و درخواست اعتبارنامه‌های موقت است، استفاده می‌شود\&. مقدار پیش‌فرض \fIlocal\fR است\&. .RE .PP \fBcredentials_lifetime\fR: \fItimeout()\fR .RS 4 مدت اعتبار اعتبارنامه‌های موقت ارائه شده به کلاینت‌ها\&. اگر از سرویس TURN داخلی ejabberd استفاده شود، رله‌های TURN اختصاص‌یافته با اعتبارنامه‌های موقت بلافاصله پس از انقضای اعتبارنامه‌ها خاتمه می‌یابند\&. مقدار پیش‌فرض \fI12 hours\fR است\&. توجه داشته باشید که راه‌اندازی مجدد گره ejabberd هر اعتبارنامه موقتی که قبل از راه‌اندازی مجدد ارائه شده را باطل می‌کند، مگر اینکه یک \fIsecret\fR مشخص شده باشد (به زیر مراجعه کنید)\&. .RE .PP \fBoffer_local_services\fR: \fItrue | false\fR .RS 4 این گزینه مشخص می‌کند که آیا سرویس‌های محلی STUN/TURN که به عنوان شنوند ejabberd پیکربندی شده‌اند باید به صورت خودکار اعلام شوند\&. توجه داشته باشید که این سرویس‌های فعال‌شده با TLS را شامل نمی‌شود، که باید با استفاده از گزینه \fIservices\fR به صورت دستی پیکربندی شوند (به زیر مراجعه کنید)\&. برای سرویس‌های TURN غیرناشناس، اعتبارنامه‌های موقت به کلاینت ارائه می‌شوند\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .PP \fBsecret\fR: \fIText\fR .RS 4 رمز مورد استفاده برای تولید اعتبارنامه‌های موقت\&. اگر این گزینه مشخص نشود، یک رمز به صورت خودکار تولید می‌شود\&. با این حال، اگر سرویس‌های TURN غیرناشناس روی سایر گره‌های ejabberd و/یا \fIservices\fR TURN خارجی پیکربندی شده باشند، باید یک رمز به صورت صریح مشخص شود\&. همچنین توجه داشته باشید که رمزهای تولیدشده به صورت خودکار هنگام راه‌اندازی مجدد گره از دست می‌روند، که هر اعتبارنامه‌ای که قبل از راه‌اندازی مجدد ارائه شده را باطل می‌کند\&. بنابراین توصیه می‌شود اگر کلاینت‌ها اعتبارنامه‌های دریافت‌شده را برای استفاده بعدی در سراسر راه‌اندازی مجدد سرویس ذخیره می‌کنند، یک رمز به صورت صریح مشخص شود\&. .RE .PP \fBservices\fR: \fI[Service, \&.\&.\&.]\fR .RS 4 فهرست سرویس‌های ارائه شده به کلاینت‌ها\&. این فهرست می‌تواند شامل سرویس‌های STUN/TURN روی هر گره ejabberd و/یا سرویس‌های خارجی باشد\&. با این حال، اگر هر سرویس TURN فهرست‌شده‌ای که روی گره ejabberd محلی اجرا نمی‌شود نیاز به احراز هویت داشته باشد، باید یک \fIsecret\fR به صورت صریح مشخص شود و با آن سرویس به اشتراک گذاشته شود\&. این تنها با سرور داخلی STUN/TURN ejabberd و با سرورهای خارجی که از همان REST API For Access To TURN Services پشتیبانی می‌کنند کار خواهد کرد\&. مگر اینکه \fIoffer_local_services\fR روی \fIfalse\fR تنظیم شود، سرویس‌های فهرست‌شده به صورت صریح علاوه بر سرویس‌هایی که به صورت خودکار اعلام می‌شوند ارائه خواهند شد\&. .PP \fBhost\fR: \fIHost\fR .RS 4 نام هاست یا آدرس IP که سرویس STUN/TURN روی آن گوش می‌دهد\&. برای سرویس‌های غیر TLS، توصیه می‌شود یک آدرس IP مشخص شود (برای جلوگیری از تأخیر اضافی جستجوی DNS در سمت کلاینت)\&. برای سرویس‌های TLS، نام هاست (یا آدرس IP) باید با گواهی مطابقت داشته باشد\&. مشخص کردن گزینه \fIhost\fR اجباری است\&. .RE .PP \fBport\fR: \fI1\&.\&.65535\fR .RS 4 شماره پورتی که سرویس STUN/TURN روی آن گوش می‌دهد\&. شماره پورت پیش‌فرض برای سرویس‌های غیر TLS 3478 و برای سرویس‌های TLS 5349 است\&. .RE .PP \fBrestricted\fR: \fItrue | false\fR .RS 4 این گزینه تعیین می‌کند که آیا اعتبارنامه‌های موقت برای دسترسی به سرویس ارائه می‌شوند\&. پیش‌فرض برای سرویس‌های STUN/STUNS \fIfalse\fR و برای سرویس‌های TURN/TURNS \fItrue\fR است\&. .RE .PP \fBtransport\fR: \fItcp | udp\fR .RS 4 پروتکل انتقال پشتیبانی‌شده توسط سرویس\&. پیش‌فرض برای سرویس‌های غیر TLS \fIudp\fR و برای سرویس‌های TLS \fItcp\fR است\&. .RE .PP \fBtype\fR: \fIstun | turn | stuns | turns\fR .RS 4 نوع سرویس\&. برای سرویس‌های غیر TLS باید \fIstun\fR یا \fIturn\fR و برای سرویس‌های TLS باید \fIstuns\fR یا \fIturns\fR باشد\&. نوع پیش‌فرض \fIstun\fR است\&. .RE .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf services: \- host: 203\&.0\&.113\&.3 port: 3478 type: stun transport: udp restricted: false \- host: 203\&.0\&.113\&.3 port: 3478 type: turn transport: udp restricted: true \- host: 2001:db8::3 port: 3478 type: stun transport: udp restricted: false \- host: 2001:db8::3 port: 3478 type: turn transport: udp restricted: true \- host: server\&.example\&.com port: 5349 type: turns transport: tcp restricted: true .fi .if n \{\ .RE .\} .RE .RE .SS "mod_time" .sp این ماژول پشتیبانی از XEP\-0202: Entity Time را اضافه می‌کند\&. به عبارت دیگر، ماژول زمان سیستم سرور را گزارش می‌دهد\&. .sp این ماژول هیچ گزینه‌ای ندارد\&. .SS "mod_vcard" .sp این ماژول به کاربران نهایی اجازه می‌دهد vCard خود را ذخیره و بازیابی کنند، و vCard سایر کاربران را نیز بازیابی نمایند، همان‌طور که در XEP\-0054: vcard\-temp تعریف شده است\&. همچنین این ماژول یک دایرکتوری ساده کاربران Jabber بر اساس vCard این کاربران پیاده‌سازی می‌کند\&. علاوه بر این، سرور را قادر می‌سازد تا در صورت درخواست، vCard خود را ارسال کند\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBallow_return_all\fR: \fItrue | false\fR .RS 4 این گزینه به شما امکان می‌دهد مشخص کنید که آیا عملیات جستجو با فیلدهای ورودی خالی باید تمام کاربرانی را که اطلاعاتی به vCard خود اضافه کرده‌اند برگرداند یا خیر\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBappend_module_config 🟠\fR: \fI{VcardHost: Options}\fR .RS 4 \fIنکته\fR درباره این گزینه: در نسخه 26\&.07 اضافه شده است\&. چند گزینه خاص را به یک هاست آپلود مشخص که قبلاً در گزینه \fIhosts\fR در mod_vcard تعریف شده اضافه می‌کند\&. در حال حاضر فقط \fIname\fR می‌تواند اینجا تعریف شود\&. این مشابه گزینه سطح بالای \fIappend_host_config\fR است، اما در این حالت برای گزینه‌های این ماژول اعمال می‌شود\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf modules: mod_vcard: hosts: \- service1\&.@HOST@ \- service2\&.@HOST@ name: "Service General" append_module_config: service1\&.localhost: name: "Service 1" service2\&.example\&.net: name: "Service 2" .fi .if n \{\ .RE .\} .RE .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBdb_type\fR: \fImnesia | sql | ldap\fR .RS 4 همانند گزینه سطح بالای \fIdefault_db\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBhost\fR .RS 4 منسوخ شده\&. به جای آن از \fIhosts\fR استفاده کنید\&. .RE .PP \fBhosts\fR: \fI[Host, \&.\&.\&.]\fR .RS 4 این گزینه شناسه‌های Jabber سرویس را تعریف می‌کند\&. اگر گزینه \fIhosts\fR مشخص نشده باشد، تنها شناسه Jabber، نام هاست میزبان مجازی با پیشوند \fI"vjud\&."\fR خواهد بود\&. کلیدواژه \fI@HOST@\fR با نام واقعی میزبان مجازی جایگزین می‌شود\&. .RE .PP \fBmatches\fR: \fIpos_integer() | infinity\fR .RS 4 با این گزینه، تعداد نتایج جستجوی گزارش‌شده را می‌توان محدود کرد\&. اگر مقدار گزینه روی \fIinfinity\fR تنظیم شود، تمام نتایج جستجو گزارش می‌شوند\&. مقدار پیش‌فرض \fI30\fR است\&. .RE .PP \fBname\fR: \fIName\fR .RS 4 مقدار نام سرویس\&. این نام فقط در برخی کلاینت‌هایی که از XEP\-0030: Service Discovery پشتیبانی می‌کنند نمایش داده می‌شود\&. پیش‌فرض \fIvCard User Search\fR است\&. .RE .PP \fBsearch\fR: \fItrue | false\fR .RS 4 این گزینه مشخص می‌کند که آیا قابلیت جستجو فعال است یا خیر\&. در صورت غیرفعال بودن، گزینه‌های \fIhosts\fR ، \fIname\fR و \fIvcard\fR نادیده گرفته می‌شوند و سرویس دایرکتوری کاربران Jabber در فهرست آیتم‌های Service Discovery ظاهر نخواهد شد\&. مقدار پیش‌فرض \fIfalse\fR است\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBvcard\fR: \fIvCard\fR .RS 4 یک vCard سفارشی از سرور که توسط برخی کلاینت‌های XMPP در Service Discovery نمایش داده می‌شود\&. مقدار \fIvCard\fR یک نقشه YAML است که از نمایش XML یک vCard ساخته می‌شود\&. از آنجا که این نمایش هیچ ویژگی‌ای ندارد، نگاشت ساده است\&. .sp \fBمثال\fR: .sp .if n \{\ .RS 4 .\} .nf # This XML representation of vCard: # # # Conferences # # # Elm Street # # # # is translated to: # vcard: fn: Conferences adr: \- work: true street: Elm Street .fi .if n \{\ .RE .\} .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود برای پشتیبان ldap:\fR .RS 4 .PP \fBldap_backups\fR .RS 4 همانند گزینه سطح بالای \fIldap_backups\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_base\fR .RS 4 همانند گزینه سطح بالای \fIldap_base\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_deref_aliases\fR .RS 4 همانند گزینه سطح بالای \fIldap_deref_aliases\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_encrypt\fR .RS 4 همانند گزینه سطح بالای \fIldap_encrypt\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_filter\fR .RS 4 همانند گزینه سطح بالای \fIldap_filter\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_password\fR .RS 4 همانند گزینه سطح بالای \fIldap_password\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_port\fR .RS 4 همانند گزینه سطح بالای \fIldap_port\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_rootdn\fR .RS 4 همانند گزینه سطح بالای \fIldap_rootdn\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_search_fields\fR: \fI{Name: Attribute, \&.\&.\&.}\fR .RS 4 این گزینه فرم جستجو و ویژگی‌های LDAP برای جستجو در آن‌ها را تعریف می‌کند\&. \fIName\fR نام یک فیلد فرم جستجو است که به‌طور خودکار با استفاده از فایل‌های ترجمه ترجمه می‌شود (برای کلمات موجود به \fImsgs/*\&.msg\fR مراجعه کنید)\&. \fIAttribute\fR ویژگی LDAP یا الگوی \fI%u\fR است\&. .sp \fBمثال‌ها\fR: .sp مقدار پیش‌فرض: .sp .if n \{\ .RS 4 .\} .nf User: "%u" "Full Name": displayName "Given Name": givenName "Middle Name": initials "Family Name": sn Nickname: "%u" Birthday: birthDay Country: c City: l Email: mail "Organization Name": o "Organization Unit": ou .fi .if n \{\ .RE .\} .RE .PP \fBldap_search_reported\fR: \fI{SearchField: VcardField}, \&.\&.\&.}\fR .RS 4 این گزینه تعریف می‌کند که کدام فیلدهای جستجو باید گزارش شوند\&. \fISearchField\fR نام یک فیلد فرم جستجو است که به‌طور خودکار با استفاده از فایل‌های ترجمه ترجمه می‌شود (برای کلمات موجود به \fImsgs/*\&.msg\fR مراجعه کنید)\&. \fIVcardField\fR نام فیلد vCard تعریف‌شده در گزینه \fIldap_vcard_map\fR است\&. .sp \fBمثال‌ها\fR: .sp مقدار پیش‌فرض: .sp .if n \{\ .RS 4 .\} .nf "Full Name": FN "Given Name": FIRST "Middle Name": MIDDLE "Family Name": LAST "Nickname": NICKNAME "Birthday": BDAY "Country": CTRY "City": LOCALITY "Email": EMAIL "Organization Name": ORGNAME "Organization Unit": ORGUNIT .fi .if n \{\ .RE .\} .RE .PP \fBldap_servers\fR .RS 4 همانند گزینه سطح بالای \fIldap_servers\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_cacertfile\fR .RS 4 همانند گزینه سطح بالای \fIldap_tls_cacertfile\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_certfile\fR .RS 4 همانند گزینه سطح بالای \fIldap_tls_certfile\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_depth\fR .RS 4 همانند گزینه سطح بالای \fIldap_tls_depth\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_tls_verify\fR .RS 4 همانند گزینه سطح بالای \fIldap_tls_verify\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_uids\fR .RS 4 همانند گزینه سطح بالای \fIldap_uids\fR ، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBldap_vcard_map\fR: \fI{Name: {Pattern, LDAPattributes}, \&.\&.\&.}\fR .RS 4 با این گزینه می‌توانید جدولی که ویژگی‌های LDAP را به فیلدهای vCard نگاشت می‌کند تنظیم کنید\&. \fIName\fR نام نوع vCard است که در RFC 2426 تعریف شده است\&. \fIPattern\fR رشته‌ای است که شامل متغیرهای الگو \fI%u\fR ، \fI%d\fR یا \fI%s\fR می‌شود\&. \fILDAPattributes\fR لیستی است که ویژگی‌های LDAP را در بر می‌گیرد\&. متغیرهای الگو \fI%s\fR به‌طور متوالی با مقادیر ویژگی‌های LDAP از \fIList_of_LDAP_attributes\fR جایگزین می‌شوند، \fI%u\fR با بخش کاربری یک JID جایگزین می‌شود، و \fI%d\fR با بخش دامنه یک JID جایگزین می‌شود\&. .sp \fBمثال‌ها\fR: .sp مقدار پیش‌فرض: .sp .if n \{\ .RS 4 .\} .nf NICKNAME: {"%u": []} FN: {"%s": [displayName]} LAST: {"%s": [sn]} FIRST: {"%s": [givenName]} MIDDLE: {"%s": [initials]} ORGNAME: {"%s": [o]} ORGUNIT: {"%s": [ou]} CTRY: {"%s": [c]} LOCALITY: {"%s": [l]} STREET: {"%s": [street]} REGION: {"%s": [st]} PCODE: {"%s": [postalCode]} TITLE: {"%s": [title]} URL: {"%s": [labeleduri]} DESC: {"%s": [description]} TEL: {"%s": [telephoneNumber]} EMAIL: {"%s": [mail]} BDAY: {"%s": [birthDay]} ROLE: {"%s": [employeeType]} PHOTO: {"%s": [jpegPhoto]} .fi .if n \{\ .RE .\} .RE .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود برای پشتیبان mnesia:\fR .RS 4 .PP \fBsearch_all_hosts\fR: \fItrue | false\fR .RS 4 آیا جستجو روی تمام میزبان‌های مجازی انجام شود یا خیر\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .RE .SS "mod_vcard_xupdate" .sp کلاینت کاربر می‌تواند یک آواتار را در vCard کاربر ذخیره کند\&. پروتکل آواتارهای مبتنی بر vCard (XEP\-0153) روشی برای کلاینت‌ها فراهم می‌کند تا به مخاطبین اطلاع دهند که مقدار هش آواتار چیست\&. با این حال، کلاینت‌های ساده یا کوچک ممکن است این پروتکل را پیاده‌سازی نکنند\&. .sp اگر این ماژول فعال باشد، تمام استانزاهای presence خروجی کلاینت به‌طور خودکار هش آواتار را از طرف کلاینت دریافت می‌کنند\&. بنابراین، مخاطبین استانزاهای presence را با \fIUpdate Data\fR شرح‌داده‌شده در XEP\-0153 دریافت می‌کنند، انگار که کلاینت خودش آن را درج کرده بود\&. اگر کلاینت از قبل چنین عنصری را در استانزای presence قرار داده بود، با عنصر تولیدشده توسط ejabberd جایگزین می‌شود\&. .sp با فعال‌سازی این ماژول، هر تغییر در vCard موجب محاسبه مجدد هش می‌شود، و هر presence ارسال‌شده توسط کلاینت موجب بازیابی هش و بازنویسی استانزای presence می‌شود\&. به همین دلیل، فعال‌سازی این ماژول سربار محاسباتی را در سرورهایی با کلاینت‌هایی که به‌طور مکرر presence خود را تغییر می‌دهند افزایش می‌دهد\&. با این حال، استفاده از حافظه نهان این سربار را به‌طور قابل توجهی کاهش می‌دهد، بنابراین احتمالاً نمی‌خواهید \fIuse_cache\fR را روی \fIfalse\fR تنظیم کنید\&. .sp این ماژول به \fImod_vcard\fR وابسته است\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBتوجه\fR .ps -1 .br .sp امروزه XEP\-0153 عمدتاً به‌صورت «فقط خواندنی» استفاده می‌شود، یعنی کلاینت‌های مدرن آواتارهای خود را درون vCard منتشر نمی‌کنند\&. بنابراین در اکثر موارد این ماژول فقط در کنار \fImod_avatar\fR برای تأمین سازگاری با نسخه‌های قدیمی استفاده می‌شود\&. .sp .5v .RE .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBcache_life_time\fR: \fItimeout()\fR .RS 4 همانند گزینه سطح بالای \fIcache_life_time\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_missed\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIcache_missed\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBcache_size\fR: \fIpos_integer() | infinity\fR .RS 4 همانند گزینه سطح بالای \fIcache_size\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .PP \fBuse_cache\fR: \fItrue | false\fR .RS 4 همانند گزینه سطح بالای \fIuse_cache\fR، اما فقط برای این ماژول اعمال می‌شود\&. .RE .RE .SS "mod_version" .sp این ماژول XEP\-0092: Software Version را پیاده‌سازی می‌کند\&. در نتیجه، هنگام دریافت درخواست، نسخه ejabberd را پاسخ می‌دهد\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBگزینه‌های موجود:\fR .RS 4 .PP \fBshow_os\fR: \fItrue | false\fR .RS 4 آیا سیستم‌عامل فاش شود یا خیر\&. مقدار پیش‌فرض \fItrue\fR است\&. .RE .RE .SH "شنوندگان (LISTENERS)" .sp این بخش گزینه‌های شنوندگان ejabberd 26\&.07 را توضیح می‌دهد\&. .sp TODO .SH "نویسنده (AUTHOR)" .sp ProcessOne\&. .SH "نسخه (VERSION)" .sp این سند فایل پیکربندی ejabberd 26\&.07 را توضیح می‌دهد\&. گزینه‌های پیکربندی نسخه‌های دیگر ejabberd ممکن است تفاوت قابل توجهی داشته باشند\&. .SH "گزارش باگ‌ها (REPORTING BUGS)" .sp باگ‌ها را به آدرس https://github\&.com/processone/ejabberd/issues گزارش دهید\&. .SH "همچنین ببینید (SEE ALSO)" .sp فایل پیکربندی پیش‌فرض: https://github\&.com/processone/ejabberd/blob/26\&.07/ejabberd\&.yml\&.example .sp سایت اصلی: https://ejabberd\&.im .sp مستندات: https://docs\&.ejabberd\&.im .sp راهنمای پیکربندی: https://docs\&.ejabberd\&.im/admin/configuration .sp کد منبع: https://github\&.com/processone/ejabberd .SH "کپی‌رایت و تکثیر (COPYING)" .sp Copyright (c) 2002\-2026 ProcessOne\&.