این بخش
گزینههای
سطح بالای ejabberd
26.07 را توضیح
میدهد.
گزینههایی
که در این
نسخه تغییر
کردهاند
با 🟠
علامتگذاری
شدهاند.
access_rules: {AccessName: {allow|deny:
ACLName|ACLDefinition}}
این
گزینه
basic.md#access-rules|Access
Rules (قوانین
دسترسی) را
تعریف
میکند. به
هر قانون
دسترسی یک
نام اختصاص
داده
میشود که
میتوان از
سایر
بخشهای
فایل
پیکربندی
(عمدتاً از
گزینههای
access
ماژولهای
ejabberd) به آن
ارجاع داد.
هر تعریف
قانون ممکن
است تعداد
دلخواهی
بخش
allow یا
deny
داشته
باشد، و هر
بخش
میتواند
هر تعداد
قانون ACL
داشته باشد
(به گزینه
acl
مراجعه
کنید). به طور
پیشفرض
هیچ قانون
دسترسیای
تعریف نشده
است.
مثال:
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
acl: {ACLName: {ACLType: ACLValue}}
این
گزینه
../configuration/basic.md#acl|access control lists
(لیستهای
کنترل
دسترسی) را
تعریف
میکند:
مجموعههای
نامگذاریشدهای
از قوانین
که برای
تطبیق با
اهداف
مختلف
(مانند JID یا
آدرس IP)
استفاده
میشوند. هر
مجموعه از
قوانین
دارای نام
ACLName است:
میتواند
هر رشتهای
باشد به جز
all
یا
none (آنها
نامهای از
پیش
تعریفشده
برای
قوانینی
هستند که به
ترتیب با
همه چیز یا
هیچ چیز
تطبیق
دارند). نام
ACLName
میتواند
از سایر
بخشهای
فایل
پیکربندی،
برای مثال
در گزینه
access_rules، ارجاع
داده شود.
قوانین
ACLName
توسط نگاشت
{ACLType: ACLValue} نمایش
داده
میشوند.
اینها
میتوانند
یکی از
موارد زیر
باشند:
ip: Network
قانون با
هر آدرس IP از
Network تطبیق
دارد.
node_glob: Pattern
مانند
node_regexp است، اما
تطبیق بر
اساس Pattern
مشخصشده
طبق قوانین
استفادهشده
توسط شل Unix
انجام
میشود.
node_regexp: user_regexp@server_regexp
قانون با
هر JID که بخش node
آن با عبارت
منظم user_regexp و
بخش server آن با
عبارت منظم
server_regexp تطبیق
دارد،
مطابقت
دارد.
resource: Resource
قانون با
هر JID که دارای
resource برابر Resource
است تطبیق
دارد.
resource_glob: Pattern
مانند
resource_regexp است،
اما تطبیق
بر اساس Pattern
مشخصشده
طبق قوانین
استفادهشده
توسط شل Unix
انجام
میشود.
resource_regexp: Regexp
قانون با
هر JID که resource آن
با عبارت
منظم Regexp
تطبیق
دارد،
مطابقت
دارد.
server: Server
قانون با
هر JID از سرور
Server تطبیق
دارد. مقدار
Server باید یک
نام میزبان
معتبر یا
آدرس IP باشد.
server_glob: Pattern
مانند
server_regexp است، اما
تطبیق بر
اساس Pattern
مشخصشده
طبق قوانین
استفادهشده
توسط شل Unix
انجام
میشود.
server_regexp: Regexp
قانون با
هر JID از سروری
که با عبارت
منظم Regexp
تطبیق
دارد،
مطابقت
دارد.
user: Username
اگر Username به
شکل "user@server"
باشد،
قانون یک JID را
با این
مقدار
تطبیق
میدهد. در
غیر این
صورت، اگر
Username به شکل "user"
باشد،
قانون با هر JID
که Username را در
بخش node دارد
تطبیق
دارد،
مشروط بر
اینکه بخش server
این JID هر هاست
مجازیای
باشد که
توسط ejabberd
سرویسدهی
میشود.
user_glob: Pattern
مانند
user_regexp است، اما
تطبیق بر
اساس Pattern
مشخصشده
طبق قوانین
استفادهشده
توسط شل Unix
انجام
میشود.
user_regexp: Regexp
اگر Regexp به
شکل "regexp@server"
باشد،
قانون با هر JID
که بخش node آن
با عبارت
منظم "regexp"
تطبیق دارد
و بخش server آن
برابر "server"
است،
مطابقت
دارد. اگر Regexp
به شکل "regexp"
باشد،
قانون با هر JID
که بخش node آن
با عبارت
منظم "regexp"
تطبیق دارد
و بخش server آن هر
هاست
مجازیای
باشد که
توسط ejabberd
سرویسدهی
میشود،
مطابقت
دارد.
acme: Options
پیکربندی
basic.md#acme|ACME، برای
دریافت
خودکار
گواهیهای SSL
برای
دامنههای
سرویسدهیشده
توسط ejabberd، که
به این
معناست که
درخواستها
و تجدید
گواهیها
در حالت
کاملاً
خودکار به
یک سرور CA
(معروف به
"سرور ACME")
ارسال
میشوند.
Options
(گزینهها)
عبارتند از:
auto: true | false
آیا به
طور خودکار
برای تمام
دامنههای
پیکربندیشده
(که هنوز
گواهی
ندارند) در
هنگام
راهاندازی
سرور یا
بارگذاری
مجدد
پیکربندی،
گواهی
درخواست
شود. مقدار
پیشفرض true
است.
ca_url: URL
cert_type: rsa | ec
نوع کلید
گواهی.
مقادیر
موجود ec و rsa
به ترتیب
برای
گواهیهای EC
و RSA هستند.
برای
سازگاری با
کلاینتها
و سرورهای
قدیمی بهتر
است
گواهیهای RSA
داشته
باشید،
بنابراین
مقدار
پیشفرض rsa
است.
contact: [Contact, ...]
فهرستی
از
آدرسهای
تماس
(معمولاً
ایمیلها)
که سرور ACME در
صورت بروز
مشکل
اطلاعیههایی
به آنها
ارسال
میکند.
مقدار Contact
باید به شکل
"scheme:address" باشد
(مثلاً "mailto:user@domain.tld").
مقدار
پیشفرض یک
لیست خالی
است که به
این معنی
است که سرور
ACME هیچ
اطلاعیهای
ارسال
نخواهد
کرد.
مثال:
acme:
ca_url: https://acme-v02.api.letsencrypt.org/directory
contact:
- mailto:admin@domain.tld
- mailto:bot@domain.tld
auto: true
cert_type: rsa
allow_contrib_modules: true | false
آیا نصب
ماژولهای
شخص ثالث
مجاز است یا
خیر. به بخش
مستندات
../../admin/guide/modules.md#ejabberd-modules|ejabberd-modules
مراجعه
کنید. مقدار
پیشفرض true
است.
allow_multiple_connections: true | false
این
گزینه فقط
زمانی
استفاده
میشود که
حالت
ناشناس
فعال باشد.
تنظیم آن بر
روی true به این
معنی است که
در صورت
استفاده از
resource های مختلف
برای
اتصال،
همان نام
کاربری
میتواند
چندین بار
در حالت
ورود
ناشناس
استفاده
شود. این
گزینه فقط
در موارد
بسیار خاص
مفید است.
مقدار
پیشفرض false
است.
anonymous_protocol: login_anon | sasl_anon |
both
تعریف
میکند که
از کدام
پروتکل
authentication.md#anonymous-login-and-sasl-anonymous|anonymous
(ناشناس)
استفاده
خواهد شد:
•login_anon به
این معناست
که از روش
ورود
ناشناس
استفاده
خواهد شد.
•sasl_anon به
این معناست
که از روش SASL Anonymous
استفاده
خواهد شد.
•both به
این معنی
است که هم SASL Anonymous
و هم ورود
ناشناس
فعال
هستند.
مقدار
پیشفرض sasl_anon
است.
api_permissions: [Permission, ...]
تعریف
مجوزهای
دسترسی به API.
لطفاً به
مستندات ejabberd →
برای
توسعهدهندگان
→ ejabberd ReST API →
../../developer/ejabberd-api/permissions.md|API Permissions
مراجعه
کنید.
append_host_config: {Host: Options}
افزودن
چند گزینه
خاص به یک
../configuration/basic.md#virtual-hosting|میزبان
مجازی
مشخص.
auth_cache_life_time: timeout()
مشابه
cache_life_time، اما
فقط برای کش
احراز هویت
اعمال
میشود. در
صورتی که
تنظیم نشده
باشد،
مقدار از
cache_life_time
استفاده
خواهد شد.
auth_cache_missed: true | false
مشابه
cache_missed، اما فقط
برای کش
احراز هویت
اعمال
میشود. در
صورتی که
تنظیم نشده
باشد،
مقدار از cache_missed
استفاده
خواهد شد.
auth_cache_size: pos_integer() | infinity
مشابه
cache_size، اما فقط
برای کش
احراز هویت
اعمال
میشود. در
صورتی که
تنظیم نشده
باشد،
مقدار از cache_size
استفاده
خواهد شد.
auth_external_user_exists_check: true | false
توجه
درباره این
گزینه: در
نسخه 23.10
اضافه شده
است. بررسی
تکمیلی
برای وجود
کاربر بر
اساس
دادههای
mod_last، برای
روشهای
احراز
هویتی که
راهی مطمئن
برای تشخیص
وجود کاربر
ندارند
(مانند
احراز هویت
مبتنی بر jwt و
گواهینامه).
این قابلیت
در پردازش
پیامهای
آفلاین
برای آن
کاربران
کمک میکند.
مقدار
پیشفرض true
است.
auth_method: [mnesia | sql | anonymous | external | jwt
| ldap | pam, ...]
فهرستی
از روشهای
authentication.md|احراز
هویت برای
استفاده.
اگر چند روش
تعریف شده
باشند،
احراز هویت
زمانی موفق
تلقی
میشود که
حداقل یکی
از روشها
با موفقیت
انجام شود.
مقدار
پیشفرض [mnesia]
است.
auth_opts: [Option, ...]
این
گزینه توسط
ماژول
مشارکتی
ejabberd_auth_http که
میتوان از
مخزن گیت
../../admin/guide/modules.md#ejabberd-contrib|ejabberd-contrib
نصب کرد،
مورد
استفاده
قرار
میگیرد.
برای
جزئیات به
فایل README آن
ماژول
مراجعه
کنید.
auth_password_format: plain | scram
توجه
درباره این
گزینه: در
نسخه
20.01
بهبود
یافته است.
این گزینه
تعیین
میکند که
رمزهای
عبور
کاربران به
چه شکلی
ذخیره
شوند، به
صورت متن
ساده یا در
قالب
authentication.md#scram|SCRAM:
•plain: رمز
عبور به
صورت متن
ساده در
پایگاه
داده ذخیره
میشود. این
روش خطرناک
است زیرا در
صورت نفوذ
به پایگاه
داده،
رمزها قابل
خواندن
هستند. این
مقدار
پیشفرض
است. این
قالب به
کلاینتها
اجازه
میدهد با
استفاده از:
Jabber Non-SASL قدیمی (XEP-0078)،
SASL PLAIN، SASL DIGEST-MD5 و SASL SCRAM-SHA-1/256/512(-PLUS)
احراز هویت
کنند.
•scram: رمز
عبور ذخیره
نمیشود،
فقط
اطلاعاتی
که برای
تأیید هش
ارائهشده
توسط
کلاینت
لازم است
ذخیره
میشود.
بازیابی
رمز اصلی از
اطلاعات
ذخیرهشده
غیرممکن
است؛ به
همین دلیل،
پس از تنظیم
این مقدار،
دیگر
نمیتوان
آن را به plain
تغییر داد.
این قالب به
کلاینتها
اجازه
میدهد با
استفاده از:
SASL PLAIN و SASL SCRAM-SHA-1/256/512(-PLUS)
احراز هویت
کنند. نوع SCRAM
به گزینه
auth_scram_hash بستگی
دارد.
مقدار
پیشفرض plain
است.
auth_password_types_hidden_in_sasl1: [plain | scram_sha1
| scram_sha256 | scram_sha512]
توجه
درباره این
گزینه: در
نسخه 25.07
اضافه شده
است. فهرست
انواع رمز
عبوری که
نباید در
احراز هویت
SASL1 ارائه
شوند. از
آنجا که SASL1،
برخلاف SASL2،
نمیتواند
فهرست
مکانیزمهای
موجود را
متناسب با
هر کاربر
سفارشیسازی
کند، ممکن
است
مکانیزمهای
پیشنهادشده
با رمز
ذخیرهشده
سازگار
نباشند،
بهویژه
اگر نوع رمز
جدیدی
اخیراً
اضافه شده
باشد. این
گزینه
امکان
غیرفعالسازی
ارائه برخی
مکانیزمها
در SASL1 را
فراهم
میکند، تا
زمانی که
نوع رمز
جدید برای
همه
کاربران در
دسترس
باشد.
auth_scram_hash: sha | sha256 | sha512
الگوریتم
هش که باید
برای ذخیره
رمز عبور در
قالب authentication.md#scram|SCRAM
استفاده
شود. اگر از
قبل
رمزهایی با
الگوریتم
دیگری
تولید
شدهاند،
این مقدار
را تغییر
ندهید،
زیرا
کاربران
دارای آن
رمزها قادر
به احراز
هویت
نخواهند
بود. مقدار
پیشفرض sha
است.
auth_stored_password_types: [plain | scram_sha1 |
scram_sha256 | scram_sha512]
توجه
درباره این
گزینه: در
نسخه 25.03
اضافه شده
است. فهرست
انواع رمز
عبوری که
باید
بهطور
همزمان
برای هر
کاربر در
پایگاه
داده ذخیره
شوند.
هنگامی که
کاربر رمز
عبور حساب
خود را
تعیین
میکند،
پایگاه
داده
بهروزرسانی
میشود تا
رمز را در
قالبهای
سازگار با
هر نوع
فهرستشده
ذخیره کند.
این قابلیت
میتواند
برای
مهاجرت
رمزهای
کاربران به
قالب
امنتر
استفاده
شود. اگر این
گزینه
تنظیم شده
باشد،
مقادیر
تنظیمشده
در
گزینههای
auth_scram_hash و auth_password_format را
نادیده
میگیرد.
مقدار
پیشفرض [].
است.
auth_use_cache: true | false
مشابه
use_cache، اما فقط
برای کش
احراز هویت
اعمال
میشود. در
صورتی که
تنظیم نشده
باشد،
مقدار از use_cache
استفاده
خواهد شد.
c2s_cafile: Path
مسیر
کامل به
فایلی که
حاوی یک یا
چند گواهی CA
در قالب PEM
است. تمام
گواهیهای
کلاینت
باید توسط
یکی از این
گواهیهای CA
ریشه امضا
شده باشند و
JID(های) متناظر
را در فیلد
subjectAltName داشته
باشند.
مقدار
پیشفرضی
وجود
ندارد.
میتوانید
از host_config برای
تعیین این
گزینه به
ازای هر
میزبان
مجازی
استفاده
کنید.
برای
تنظیم یک
فایل خاص به
ازای هر
شنونده، از
گزینه
listen-options.md#cafile|cafile
شنونده
استفاده
کنید. توجه
داشته
باشید که c2s_cafile
گزینه cafile
شنونده را
نادیده
میگیرد.
c2s_ciphers: [Cipher, ...]
فهرستی
از رمزهای OpenSSL
برای
استفاده در
اتصالات c2s.
مقدار
پیشفرض در
مثال زیر
نشان داده
شده است:
مثال:
c2s_ciphers:
- HIGH
- "!aNULL"
- "!eNULL"
- "!3DES"
- "@STRENGTH"
c2s_dhfile: Path
مسیر
کامل به
فایلی که
حاوی
پارامترهای
DH سفارشی
برای
استفاده در
اتصالات c2s
است. چنین
فایلی
میتواند
با دستور "openssl
dhparam -out dh.pem 2048" ساخته
شود. اگر این
گزینه مشخص
نشده باشد،
گروه MODP 2048 بیتی
با زیرگروه
مرتبه اول 256
بیتی طبق
تعریف RFC5114 بخش 2.3
استفاده
خواهد شد.
c2s_protocol_options: [Option, ...]
فهرست
گزینههای
کلی SSL برای
استفاده در
اتصالات c2s.
این
گزینهها
به
set_options() در OpenSSL
نگاشت
میشوند.
مقدار
پیشفرض در
مثال زیر
نشان داده
شده است:
مثال:
c2s_protocol_options:
- no_sslv3
- cipher_server_preference
- no_compression
c2s_tls_compression: true | false
آیا
فشردهسازی
TLS برای
اتصالات c2s
فعال یا
غیرفعال
شود. مقدار
پیشفرض false
است.
ca_file: Path
مسیر به
فایل
گواهیهای
ریشه CA.
بهطور
پیشفرض در
صورت امکان
از فایل
تعریفشده
توسط سیستم
استفاده
میشود.
برای
اتصالات
سرور، این
گزینه ca_file
توسط گزینه
s2s_cafile نادیده
گرفته
میشود.
cache_life_time: timeout()
مدت زمان
نگهداری یک
آیتم در کش.
پس از
انقضا،
آیتم
متناظر از
کش پاک
میشود.
مقدار
پیشفرض 1 hour
(یک ساعت) است.
چند ماژول
گزینه
مشابهی
دارند؛ و
برخی
بخشهای
هستهای ejabberd
نیز از
گزینههای
مشابهی
پشتیبانی
میکنند،
ببینید:
auth_cache_life_time، oauth_cache_life_time،
router_cache_life_time، و
sm_cache_life_time.
cache_missed: true | false
آیا
جستجوهای
ناموفق کش
شوند یا خیر.
هنگامی که
سعی میشود
مقداری در
پایگاه
داده پیدا
شود و یافت
نشود و این
گزینه روی true
تنظیم
باشد، این
تلاش کش
میشود و تا
انقضای کش
(ببینید cache_life_time)
هیچ تلاشی
مجدد انجام
نخواهد شد.
معمولاً
نیازی به
تغییر این
گزینه نیست.
مقدار
پیشفرض true
است. چند
ماژول
گزینه
مشابهی
دارند؛ و
برخی
بخشهای
هستهای ejabberd
نیز از
گزینههای
مشابهی
پشتیبانی
میکنند،
ببینید:
auth_cache_missed، oauth_cache_missed،
router_cache_missed، و sm_cache_missed.
cache_size: pos_integer() | infinity
حداکثر
تعداد
آیتمها (نه
حافظه!) در کش.
بهعنوان
یک قاعده
کلی، برای
همه جداول
بهجز
فهرست
مخاطبان،
باید این
مقدار را
برابر با
حداکثر
تعداد
کاربران
آنلاین
مورد
انتظار
تنظیم کنید.
برای جدول
مخاطبان
این عدد را
در حدود ۲۰
ضرب کنید.
اگر اندازه
کش به این
آستانه
برسد،
بهطور
کامل پاک
میشود،
یعنی تمام
آیتمها
حذف
میشوند و
هشدار
مربوطه ثبت
میگردد.
باید از
پاکسازی
مکرر کش
خودداری
کنید، زیرا
عملکرد را
کاهش
میدهد.
مقدار
پیشفرض 1000
است. چند
ماژول
گزینه
مشابهی
دارند؛ و
برخی
بخشهای
هستهای ejabberd
نیز از
گزینههای
مشابهی
پشتیبانی
میکنند،
ببینید:
auth_cache_size، oauth_cache_size،
router_cache_size، و sm_cache_size.
captcha_cmd: Path | ModuleName
توجه
درباره این
گزینه: در
نسخه
23.01
بهبود
یافته است.
مسیر کامل
به
اسکریپتی
که تصاویر
basic.md#captcha|CAPTCHA تولید
میکند.
کلیدواژه
@VERSION@ با شماره
نسخه ejabberd در
قالب
XX.YY
جایگزین
میشود.
کلیدواژه
@SEMVER@ با شماره
نسخه ejabberd در
قالب semver
(هنگام
کامپایل با mix
الیکسیر) یا
قالب XX.YY (در
غیر این
صورت)
جایگزین
میشود.
همچنین
میتواند
نام ماژولی
باشد که
پشتیبانی CAPTCHA
در ejabberd را
پیادهسازی
کرده است.
مقدار
پیشفرضی
وجود ندارد:
هنگامی که
این گزینه
تنظیم نشده
باشد،
قابلیت CAPTCHA
کاملاً
غیرفعال
است.
مثالها:
هنگام
استفاده از
نصبکنندههای
ejabberd یا تصویر
کانتینر،
اسکریپتهای
نمونه captcha
میتوانند
به این شکل
استفاده
شوند:
captcha_cmd: /opt/ejabberd-@VERSION@/lib/ejabberd-@SEMVER@/priv/bin/captcha.sh
captcha_host: String
منسوخ
شده. به جای
آن از captcha_url
استفاده
کنید.
captcha_limit: pos_integer() | infinity
حداکثر
تعداد
تصاویر
basic.md#captcha|CAPTCHA
تولیدشده
در دقیقه
برای هر JID
مشخص. این
گزینه برای
محافظت از
سرور در
برابر
حملات DoS
مبتنی بر CAPTCHA
طراحی شده
است. مقدار
پیشفرض infinity
است.
captcha_url: URL | auto | undefined
توجه
درباره این
گزینه: در
نسخه 23.04
بهبود
یافته است.
آدرس URL که
درخواستهای
basic.md#captcha|CAPTCHA باید
به آن ارسال
شوند. توجه:
باید request_handlers را
نیز برای
شنونده ejabberd_http
پیکربندی
کنید. اگر
روی auto تنظیم
شود، URL با
استفاده از
یک request_handler از
قبل
فعالشده
ساخته
میشود، با
رمزگذاری
در صورت در
دسترس بودن.
اگر روی undefined
تنظیم شود، URL
با استفاده
از captcha_host
منسوخشده +
/captcha ساخته
میشود.
مقدار
پیشفرض auto
است.
certfiles: [Path, ...]
این
گزینه
فهرستی از
مسیرهای
فایل (با
امکان
استفاده از
wildcardها) حاوی
گواهیهای PEM
یا کلیدهای
خصوصی PEM را
میپذیرد.
در هنگام
راهاندازی
یا
بارگذاری
مجدد
پیکربندی،
ejabberd تمام
گواهیها
را از این
فایلها
میخواند،
مرتبسازی
میکند،
موارد
تکراری را
حذف
میکند،
کلیدهای
خصوصی
متناظر را
پیدا
میکند و
سپس
زنجیرههای
کامل گواهی
را برای
استفاده در
اتصالات TLS
بازسازی
میکند. از
این گزینه
زمانی
استفاده
کنید که TLS در
هر یک از
شنوندگان ejabberd
فعال است:
ejabberd_c2s،
ejabberd_http و
غیره. توجه:
اگر
فایلهای
گواهی را
تغییر
دادید یا
مقدار
گزینه را
عوض کردید،
برای
بازسازی و
بارگذاری
مجدد
زنجیرههای
گواهی،
ejabberdctl
reload-config را اجرا
کنید.
مثالها:
اگر از
گواهیهای
Let’s Encrypt برای
دامنه "domain.tld"
استفاده
میکنید،
پیکربندی
به این شکل
خواهد بود:
certfiles:
- /etc/letsencrypt/live/domain.tld/fullchain.pem
- /etc/letsencrypt/live/domain.tld/privkey.pem
cluster_backend: Backend
یک بکند
پایگاه
داده برای
ذخیره
اطلاعات
مربوط به
خوشهبندی.
تنها مقدار
موجود در
حال حاضر mnesia
است.
cluster_nodes: [Node, ...]
فهرستی
از گرههای
Erlang برای
اتصال
هنگام
راهاندازی
ejabberd. این گزینه
عمدتاً
برای
سفارشیسازی
ejabberd و
راهاندازیهای
پیچیده در
نظر گرفته
شده است.
مقدار
پیشفرض یک
فهرست خالی
است.
default_db: mnesia | sql
database.md#default-database|پایگاه
داده
پیشفرض
برای ذخیره
دادههای
پایدار در ejabberd.
برخی اجزا
میتوانند
با
گزینههای
سطح بالای
خاصی مانند
oauth_db_type
پیکربندی
شوند.
بسیاری از
ماژولها
میتوانند
با
گزینههای
خاص ماژول،
معمولاً با
نام db_type،
پیکربندی
شوند. مقدار
پیشفرض mnesia
است.
default_ram_db: mnesia | redis | sql
ذخیرهسازی
فرار (در
حافظه)
پیشفرض
برای ejabberd. برخی
اجزا
میتوانند
با
گزینههای
سطح بالای
خاصی مانند
router_db_type و sm_db_type
پیکربندی
شوند. برخی
ماژولها
میتوانند
با
گزینههای
خاص ماژول،
معمولاً با
نام ram_db_type،
پیکربندی
شوند. مقدار
پیشفرض mnesia
است.
define_keyword: {NAME: Value}
توجه
درباره این
گزینه: در
نسخه
25.03
اضافه شده
است. امکان
تعریف
../configuration/file-format.md#macros-and-keywords|کلیدواژههای
پیکربندی
را فراهم
میکند.
مثال:
define_keyword:
SQL_USERNAME: "eja.global"
host_config:
localhost:
define_keyword:
SQL_USERNAME: "eja.localhost"
sql_username: "prefix.@SQL_USERNAME@"
define_macro: {NAME: Value}
توجه
درباره این
گزینه: در
نسخه
25.03
بهبود
یافته است.
امکان
تعریف
../configuration/file-format.md#macros-and-keywords|ماکروهای
پیکربندی
را فراهم
میکند.
مثال:
define_macro:
DEBUG: debug
LOG_LEVEL: DEBUG
USERBOB:
user: bob@localhost
loglevel: LOG_LEVEL
acl:
admin: USERBOB
disable_sasl_mechanisms: [Mechanism, ...]
فهرستی
از
مکانیزمهای
SASL (مانند DIGEST-MD5
یا SCRAM-SHA1) را
مشخص کنید
که نباید به
کلاینت
ارائه شوند.
برای
راحتی،
مقدار Mechanism به
بزرگی و
کوچکی حروف
حساس نیست.
مقدار
پیشفرض یک
فهرست خالی
است، یعنی
بهطور
پیشفرض
هیچ
مکانیزمی
غیرفعال
نشده است.
disable_sasl_scram_downgrade_protection: true |
false
امکان
غیرفعالسازی
ارسال
دادههای
مورد نیاز
توسط XEP-0474: SASL SCRAM Downgrade
Protection را فراهم
میکند.
برخی
کلاینتهای
دارای باگ
شناختهشده
(مانند
آنهایی که
از strophejs 1.6.2
استفاده
میکنند)
هنگامی که
سرور
دادههای
این مشخصه
را ارسال
کند، قادر
به احراز
هویت
نخواهند
بود. این
گزینه به
سرور اجازه
میدهد آن
را غیرفعال
کند تا حتی
کلاینتهای
دارای باگ
بتوانند
متصل شوند،
اما در عوض
حفاظت MITM کاهش
مییابد.
مقدار
پیشفرض
این گزینه false
است که این
افزونه را
فعال
میکند.
domain_balancing: {Domain: Options}
الگوریتمی
برای
../guide/clustering.md#service-load-balancing|توزیع
بار اجزایی
که به یک
خوشه ejabberd متصل
شدهاند.
این یعنی
میتوانید
یک یا چند
نمونه از
همان
کامپوننت
را روی هر
گره ejabberd متصل
کنید و
ترافیک
بهطور
خودکار
توزیع شود.
الگوریتم
تحویل پیام
به
کامپوننت(ها)
را میتوان
با این
گزینه مشخص
کرد. برای هر
کامپوننت
متصل به
عنوان
Domain،
Options
موجود
عبارتند از:
component_number: 2..1000
تعداد
کامپوننتهایی
که باید
متوازن
شوند.
type: Value
نحوه
تحویل stanzaها
به
کامپوننتهای
متصل. مقدار
پیشفرض random
است. مقادیر
ممکن:
- bare_destination
بر اساس JID
ساده (بدون resource)
از مشخصه to
بسته
- bare_source
بر اساس JID
ساده (بدون resource)
از مشخصه from
بسته
استفاده
میشود
- destination
یک نمونه
بر اساس JID
کامل از
مشخصه to
بسته
انتخاب
میشود
- random
یک نمونه
بهطور
تصادفی
انتخاب
میشود
- source
بر اساس JID
کامل از
مشخصه from
بسته
مثال:
domain_balancing:
component.domain.tld:
type: destination
component_number: 5
transport.example.org:
type: bare_source
ext_api_headers: Headers
رشتهای
از
سرآیندها
(جدا شده با
ویرگول ,) که
ejabberd هنگام
ارسال
درخواستهای
ReST ارائه
خواهد داد.
مقدار
پیشفرض یک
رشته خالی
از
سرآیندها
است: "".
ext_api_http_pool_size: pos_integer()
اندازه
استخر HTTP را
تعریف
میکند،
یعنی
حداکثر
تعداد
نشستهایی
که سرویس ReST
در ejabberd بهطور
همزمان
مدیریت
خواهد کرد.
مقدار
پیشفرض: 100
است.
ext_api_path_oauth: Path
مسیر
پایه URI هنگام
انجام
درخواستهای
OAUTH ReST را تعریف
میکند.
مقدار
پیشفرض:
"/oauth" است.
ext_api_url: URL
extauth_pool_name: Name
پسوند
نام استخر
را در
authentication.md#external-script|احراز
هویت خارجی
تعریف
میکند،
بهطوری که
نام کامل
استخر extauth_pool_Name
خواهد بود.
مقدار
پیشفرض
نام میزبان
است.
extauth_pool_size: Size
این
گزینه
تعداد
نمونههای
برنامه
authentication.md#external-script|احراز
هویت خارجی
یکسان را
برای توزیع
بار بهتر
تعریف
میکند.
مقدار
پیشفرض
تعداد
هستههای CPU
موجود است.
extauth_program: Path
در این
گزینه مسیر
کامل به
authentication.md#external-script|اسکریپت
احراز هویت
خارجی را
مشخص کنید.
اسکریپت
باید توسط ejabberd
قابل اجرا
باشد.
fqdn: Domain
نام
دامنه
کاملاً
واجد شرایط
که در احراز
هویت SASL DIGEST-MD5
استفاده
خواهد شد.
بهطور
پیشفرض
بهصورت
خودکار
تشخیص داده
میشود.
hide_sensitive_log_data: true | false
یک گزینه
حریم خصوصی
برای
جلوگیری از
ثبت
دادههای
حساس
(عمدتاً
آدرسهای IP)
در لاگ.
مقدار
پیشفرض false
است برای
سازگاری با
نسخههای
قبلی.
host_config: {Host: Options}
این
گزینه برای
تعریف مجدد
Options برای
../configuration/basic.md#virtual-hosting|میزبان
مجازی Host
استفاده
میشود. در
مثال زیر
روش احراز
هویت LDAP برای
میزبان
مجازی
domain.tld و
روش SQL برای
میزبان
مجازی
example.org
استفاده
خواهد شد.
مثال:
hosts:
- domain.tld
- example.org
auth_method:
- sql
host_config:
domain.tld:
auth_method:
- ldap
hosts: [Domain1, Domain2, ...]
فهرستی
از یک یا چند
../configuration/basic.md#host-names|نام
میزبان (یا
دامنه) که ejabberd
سرویسدهی
خواهد کرد.
این یک
گزینه
اجباری
است.
hosts_alias: {Alias: Host}
توجه
درباره این
گزینه: در
نسخه
25.07
اضافه شده
است. تعریف
نامهای
مستعار
برای
میزبانهای
مجازی
موجود
مدیریتشده
توسط ejabberd. یک
نام مستعار
میتواند
یک عبارت regexp
باشد. این
گزینه فقط
توسط
شنونده
ejabberd_http
بررسی
میشود.
مثال:
hosts:
- domain.tld
- example.org
hosts_alias:
xmpp.domain.tld: domain.tld
jabber.domain.tld: domain.tld
mytest.net: example.org
"exa*": example.org
include_config_file: [Filename, ...] | {Filename:
Options}
خواندن و
../configuration/file-format.md#include-additional-files|الحاق
فایل اضافی
از
Filename. اگر
مقدار در
قالب
{Filename: Options}
ارائه شود،
Options باید یکی
از موارد
زیر باشد:
allow_only: [OptionName, ...]
فقط
استفاده از
آن
گزینهها
را در فایل
الحاقشده
Filename مجاز
میداند.
گزینههایی
که با این
معیار
مطابقت
ندارند
پذیرفته
نمیشوند.
مقدار
پیشفرض
شامل تمام
گزینهها
است.
disallow: [OptionName, ...]
استفاده
از آن
گزینهها
را در فایل
الحاقشده
Filename ممنوع
میکند.
گزینههایی
که با این
معیار
مطابقت
دارند
پذیرفته
نمیشوند.
مقدار
پیشفرض یک
فهرست خالی
است.
install_contrib_modules: [Module, ...]
توجه
درباره این
گزینه: در
نسخه
23.10
اضافه شده
است.
ماژولهایی
از
../../admin/guide/modules.md#ejabberd-modules|ejabberd-modules
که باید
بهطور
خودکار
هنگام
راهاندازی
نصب شوند.
مقدار
پیشفرض یک
فهرست خالی
از
ماژولها
است:
[].
مثال:
install_contrib_modules:
- mod_tombstones
modules:
mod_tombstones: {}
jwt_auth_only_rule: AccessName
این
قانون ACL
حسابهایی
را تعریف
میکند که
فقط
میتوانند
از روش
احراز هویت
authentication.md#jwt-authentication|JWT
استفاده
کنند، حتی
اگر
روشهای
دیگری نیز
در فایل
پیکربندی ejabberd
تعریف شده
باشند. به
عبارت دیگر:
اگر چند روش
احراز هویت
برای این
میزبان
فعال باشند
(JWT، SQL، ...)،
کاربرانی
که با این
قانون
مطابقت
دارند فقط
میتوانند
از JWT استفاده
کنند. مقدار
پیشفرض none
است.
jwt_jid_field: FieldName
بهطور
پیشفرض، JID
در فیلد "jid" JWT
تعریف
میشود. در
این گزینه
میتوانید
نام فیلد
دیگری در
authentication.md#jwt-authentication|JWT که JID
در آن تعریف
شده است را
مشخص کنید.
jwt_key: FilePath
مسیر به
فایلی که
حاوی کلید
authentication.md#jwt-authentication|JWT
است.
قالبهای
فایل
پشتیبانیشده:
•PEM format -
کلیدهای
رمزگذاریشده
استاندارد PEM
(RSA، EC، EdDSA و غیره)
•JWK (JSON Web Key) -
فرمت JSON
•JWK Set - JSON با
آرایه "keys"
(اما باید
دقیقاً یک
کلید داشته
باشد)
به طور
پیشفرض
هیچ مسیری
تعریف نشده
است، یعنی:
undefined.
language: Language
../configuration/basic.md#default-language|زبان
پیشفرض
رشتههای
سرور که
توسط
کلاینتهای
XMPP قابل
مشاهده
هستند را
تعریف
میکند. اگر
یک کلاینت XMPP
دارای
ویژگی xml:lang
نباشد، از
زبان
مشخصشده
استفاده
میشود.
مقدار
پیشفرض "en"
است.
ldap_backups: [Host, ...]
فهرستی
از
آدرسهای IP
یا نامهای DNS
سرورهای
پشتیبان LDAP
(به
../configuration/ldap.md#ldap-connection|اتصال
LDAP مراجعه
کنید).
هنگامی که
هیچکدام
از سرورهای
فهرستشده
در گزینه ldap_servers
قابل دسترس
نباشند، ejabberd
به این
سرورهای
پشتیبان
متصل
میشود.
پیشفرض یک
فهرست خالی
است، یعنی
هیچ سرور
پشتیبانی
مشخص نشده
است. توجه
داشته
باشید که ejabberd
تنها زمانی
به سرور
بعدی متصل
میشود که
اتصال
موجود قطع
شود؛ این
برنامه
تشخیص
نمیدهد که
یک سرور که
قبلاً تلاش
اتصال به آن
ناموفق
بوده،
دوباره در
دسترس شده
است.
ldap_base: Base
دایرکتوری
پایه LDAP که
حسابهای
کاربری را
ذخیره
میکند. هیچ
مقدار
پیشفرضی
وجود ندارد:
برای اینکه
اتصالات LDAP به
درستی کار
کنند، باید
این گزینه
را تنظیم
کنید.
ldap_deref_aliases: never | always | finding |
searching
تعیین
میکند که
آیا
نامهای
مستعار (alias)
ارجاعزدایی
شوند یا خیر.
مقدار
پیشفرض never
است.
ldap_dn_filter: {Filter: FilterAttrs}
این
فیلتر بر
روی نتایج
بازگشتی از
فیلتر اصلی
اعمال
میشود. این
فیلتر یک
جستجوی LDAP
اضافی
انجام
میدهد تا
نتیجه کامل
را تولید
کند. این
زمانی مفید
است که
نتوان تمام
قوانین
فیلتر را در
ldap_filter تعریف
کرد.
میتوان
متغیرهای
الگو
"%u"،
"%d"،
"%s" و
"%D" را در
Filter
تعریف کرد:
"%u" با بخش
کاربری JID
جایگزین
میشود،
"%d"
با دامنه
متناظر
(میزبان
مجازی)
جایگزین
میشود،
تمام
متغیرهای
"%s" به
ترتیب با
مقادیر
ویژگیهای
FilterAttrs جایگزین
میشوند و
"%D" با Distinguished Name از
مجموعه
نتایج
جایگزین
میشود. هیچ
مقدار
پیشفرضی
وجود
ندارد، به
این معنی که
نتیجه
فیلتر
نمیشود.
هشدار: از
آنجایی که
این فیلتر
جستجوهای
اضافی LDAP
انجام
میدهد،
تنها به
عنوان
آخرین
راهحل از
آن استفاده
کنید: در
صورت امکان
سعی کنید
تمام
قوانین
فیلتر را در
گزینه
ldap_filter
تعریف کنید.
مثال:
ldap_dn_filter:
"(&(name=%s)(owner=%D)(user=%u@%d))": [sn]
ldap_encrypt: tls | none
تعیین
میکند که
آیا اتصال LDAP
با TLS
رمزگذاری
شود یا خیر.
مقدار
پیشفرض none
است. توجه:
رمزگذاری STARTTLS
پشتیبانی
نمیشود.
ldap_filter: Filter
یک فیلتر
LDAP طبق تعریف
RFC4515. هیچ مقدار
پیشفرضی
وجود ندارد.
مثال:
"(&(objectClass=shadowAccount)(memberOf=XMPP Users))".
توجه:
فراموش
نکنید که
براکتها
را ببندید و
از فضاهای
خالی اضافی
استفاده
نکنید.
همچنین
نباید از
ویژگی "uid"
در فیلتر
استفاده
کنید زیرا
این ویژگی
به طور
خودکار به
فیلتر
اضافه
میشود.
ldap_password: Password
رمز عبور
اتصال (Bind password).
مقدار
پیشفرض یک
رشته خالی
است.
ldap_port: 1..65535
پورت
اتصال به
سرور LDAP. پورت
پیشفرض 389
در صورت
غیرفعال
بودن
رمزگذاری و
636 در صورت
فعال بودن
رمزگذاری
است.
ldap_rootdn: RootDN
Distinguished Name
اتصال (Bind).
مقدار
پیشفرض یک
رشته خالی
است که به
معنای
"اتصال
ناشناس"
است.
ldap_servers: [Host, ...]
فهرستی
از
آدرسهای IP
یا نامهای DNS
سرورهای LDAP
(به
../configuration/ldap.md#ldap-connection|اتصال
LDAP مراجعه
کنید). ejabberd
بلافاصله
به تمام
آنها متصل
میشود و در
صورت قطع
اتصال، به
طور
نامحدود
مجدداً
متصل
میشود.
مقدار
پیشفرض [localhost]
است.
ldap_tls_cacertfile: Path
مسیر
فایلی که
حاوی
گواهیهای CA
رمزگذاریشده
با PEM است. این
گزینه
هنگامی که
تأیید TLS فعال
است الزامی
میباشد.
ldap_tls_certfile: Path
مسیر
فایلی که
حاوی گواهی
رمزگذاریشده
با PEM به همراه
کلید خصوصی
رمزگذاریشده
با PEM است. این
گواهی
هنگامی که TLS
برای
اتصالات LDAP
فعال است
توسط ejabberd
ارائه
میشود. هیچ
مقدار
پیشفرضی
وجود
ندارد، به
این معنی که
هیچ گواهی
کلاینتی
ارسال
نمیشود.
ldap_tls_depth: Number
حداکثر
عمق تأیید
را هنگامی
که تأیید TLS
فعال است
مشخص
میکند،
یعنی تا چه
حدی در یک
زنجیره
گواهیها
میتوان
پیش رفت قبل
از اینکه
تأیید
شکستخورده
تلقی شود.
گواهی همتا =
0، گواهی CA = 1،
گواهی CA سطح
بالاتر = 2 و
غیره. مقدار
2 به این
معناست که
یک زنجیره
میتواند
حداکثر
شامل گواهی
همتا،
گواهی CA،
گواهی CA بعدی
و یک گواهی CA
اضافی باشد.
مقدار
پیشفرض 1
است.
ldap_tls_verify: false | soft | hard
این
گزینه
تعیین
میکند که
آیا گواهی
سرور LDAP
هنگامی که TLS
فعال است
تأیید شود
یا خیر.
هنگامی که hard
تنظیم شده
باشد، ejabberd در
صورت
نامعتبر
بودن گواهی
ادامه
نمیدهد.
هنگامی که soft
تنظیم شده
باشد، ejabberd حتی
اگر بررسی
ناموفق
باشد ادامه
میدهد.
مقدار
پیشفرض false
است که به
این معنی
است که هیچ
بررسیای
انجام
نمیشود.
ldap_uids: [Attr] | {Attr: AttrFormat}
ویژگیهای
LDAP که فهرستی
از
ویژگیها
برای
استفاده به
عنوان
جایگزین
دریافت JID را
نگه
میدارند،
که در آن Attr
یک ویژگی LDAP
است که بخش
کاربری JID را
نگه
میدارد و
AttrFormat باید
دقیقاً یک
متغیر الگو
"%u" داشته
باشد که با
بخش کاربری JID
جایگزین
میشود. به
عنوان
مثال،
"%u@example.org". اگر
مقدار به
شکل [Attr]
باشد، فرض
میشود AttrFormat
برابر با
"%u" است.
listen: [Options, ...]
گزینه
پیکربندی
شنوندگان.
برای
جزئیات به
بخش
listen.md|ماژولهای
Listen مراجعه
کنید.
log_burst_limit_count: Number
توجه
درباره این
گزینه: در
نسخه 22.10
اضافه شد.
تعداد
پیامهایی
که در بازه
زمانی log_burst_limit_window_time
پذیرفته
میشوند
قبل از
اینکه شروع
به رد کردن
آنها شود.
پیشفرض 500
است.
log_burst_limit_window_time: Number
توجه
درباره این
گزینه: در
نسخه 22.10
اضافه شد.
بازه زمانی
برای
محدودسازی
نرخ
پیامهای
گزارش.
پیشفرض 1
ثانیه است.
log_modules_fully: [Module, ...]
توجه
درباره این
گزینه: در
نسخه 23.01
اضافه شد.
فهرست
ماژولهایی
که همه چیز
را مستقل از
گزینه کلی loglevel
گزارش
میدهند.
log_rotate_count: Number
تعداد
فایلهای
گزارش
چرخشی که
نگه داشته
میشوند.
مقدار
پیشفرض 1
است، که به
این معنی
است که تنها
ejabberd.log.0، error.log.0 و crash.log.0
نگه داشته
میشوند.
log_rotate_size: pos_integer() | infinity
اندازه
(به بایت) یک
فایل گزارش
برای
فعالسازی
چرخش. اگر
روی infinity
تنظیم شود،
چرخش گزارش
غیرفعال
میشود.
مقدار
پیشفرض 10
مگابایت
برحسب بایت
است: 10485760.
loglevel: none | emergency | alert | critical | error |
warning | notice | info | debug
سطح
جزئیات
../configuration/basic.md#logging|گزارشگیری
ejabberd. مقدار
پیشفرض info
است. توجه:
نسخههای
قبلی ejabberd سطوح
گزارش را به
فرمت عددی
(0..5) تعریف
میکردند.
مقادیر
عددی هنوز
برای
سازگاری با
نسخههای
قدیمی
پذیرفته
میشوند،
اما توصیه
نمیشوند.
max_fsm_queue: Size
این
گزینه
حداکثر
تعداد
عناصر در صف FSM
(ماشین حالت
متناهی) را
مشخص
میکند. به
طور
تقریبی، هر
پیام در این
صفها
نشاندهنده
یک
استانزای XML
است که در صف
قرار گرفته
تا به جریان
خروجی
مربوطه
ارسال شود.
اگر اندازه
صف به حد
مجاز برسد
(به عنوان
مثال، زیرا
دریافتکننده
استانزاها
بسیار کند
است)، FSM و
اتصال
متناظر (در
صورت وجود)
خاتمه
مییابند و
پیام خطا
گزارش
میشود.
مقدار
مناسب برای
این گزینه
به
پیکربندی
سختافزاری
شما بستگی
دارد.
مقادیر
مجاز اعداد
صحیح مثبت
هستند.
مقدار
پیشفرض 10000
است.
modules: {Module: Options}
تمام
گزینههای
پیکربندی
modules.md|ماژولها
را تنظیم
میکند.
negotiation_timeout: timeout()
زمان
انتظار
برای تکمیل
مذاکره
جریان XMPP.
هنگامی که
وقت تمام
میشود،
جریان XMPP
متناظر
بسته
میشود.
مقدار
پیشفرض 120
ثانیه است.
net_ticktime: timeout()
این
گزینه
میتواند
برای تنظیم
پارامتر tick time
در net_kernel
استفاده
شود. به
ماشین
مجازی Erlang
میگوید که
گرهها چند
بار باید
بررسی کنند
که ارتباط
درونگرهای
قطع نشده
است. این
گزینه باید
مقدار
یکسانی در
تمام
گرهها
داشته
باشد،
وگرنه به
خطاهای
نامحسوس
منجر
میشود.
معمولاً
بهتر است
مقدار
پیشفرض
این گزینه
را بدون
تغییر رها
کنید، تنها
در صورتی که
میدانید
چه کاری
انجام
میدهید آن
را تنظیم
کنید. مقدار
پیشفرض 1 minute
است.
new_sql_schema: true | false
توجه
درباره این
گزینه: در
نسخه 25.10
منسوخ شد.
این گزینه
در ejabberd نسخه 25.10
به sql_schema_multihost
تغییر نام
یافت. لطفاً
پیکربندی
خود را
بهروز
کنید تا از
نام گزینه
جدید
استفاده
کنید.
oauth_access: AccessName
به طور
پیشفرض
ایجاد
توکنهای OAuth
مجاز نیست.
برای تعریف
اینکه کدام
کاربران
میتوانند
توکنهای OAuth
ایجاد
کنند،
میتوانید
به یک قانون
دسترسی ejabberd در
گزینه oauth_access
ارجاع دهید.
از all
استفاده
کنید تا همه
بتوانند
توکن ایجاد
کنند.
oauth_cache_life_time: timeout()
مانند
cache_life_time، اما
تنها برای
کش OAuth اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_life_time
استفاده
میشود.
oauth_cache_missed: true | false
مانند
cache_missed، اما
تنها برای
کش OAuth اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_missed
استفاده
میشود.
oauth_cache_rest_failure_life_time: timeout()
توجه
درباره این
گزینه: در
نسخه 21.01
اضافه شد.
مدت زمانی
که یک خطا در
OAuth ReST در کش نگه
داشته
میشود.
مقدار
پیشفرض infinity
است.
oauth_cache_size: pos_integer() | infinity
مانند
cache_size، اما
تنها برای
کش OAuth اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_size
استفاده
میشود.
oauth_client_id_check: allow | db | deny
تعریف
میکند که
آیا احراز
هویت
کلاینت
همیشه مجاز
است، رد
میشود، یا
بستگی دارد
به اینکه
آیا شناسه
کلاینت در
پایگاه
داده موجود
است. مقدار
پیشفرض db
است.
oauth_db_type: mnesia | sql
بکاند
پایگاه
داده برای
استفاده در
احراز هویت
OAuth. مقدار
پیشفرض از
گزینه default_db
گرفته
میشود، یا
اگر تنظیم
نشده باشد،
mnesia استفاده
میشود.
oauth_expire: timeout()
مدت
زمانی که
توکن OAuth
معتبر است،
به ثانیه. پس
از این مدت،
توکن منقضی
میشود و
اعتبارنامه
واگذاریشده
دیگر قابل
استفاده
نیست و از
پایگاه
داده حذف
میشود.
مقدار
پیشفرض 4294967
ثانیه است.
oauth_use_cache: true | false
مانند
use_cache، اما
تنها برای
کش OAuth اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار use_cache
استفاده
میشود.
oom_killer: true | false
فعال یا
غیرفعال
کردن OOM killer
(کشنده
حافظه
تمامشده).
هنگامی که
حافظه
سیستم از حد
تعریفشده
در گزینه oom_watermark
بالاتر
میرود، ejabberd OOM killer
را برای
خاتمه دادن
به
فرآیندهای
Erlang با
بیشترین
مصرف حافظه
فعال
میکند.
توجه داشته
باشید که
برای حفظ
عملکرد، ejabberd
تنها تلاش
میکند
فرآیندهای
موقت را
مانند
مدیریتکنندههای
نشستهای
کلاینت، s2s یا
اتصالات
پایگاه
داده را
پایان دهد.
مقدار
پیشفرض true
است.
oom_queue: Size
OOM killer را
هنگامی
فعال
میکند که
برخی از
فرآیندهای
Erlang در حال
اجرا صف
پیامهایی
بالاتر از
این Size داشته
باشند. توجه
داشته
باشید که
چنین
فرآیندهایی
کشته
نمیشوند
اگر گزینه
oom_killer روی false
تنظیم شده
باشد یا اگر
oom_watermark هنوز به
آن نرسیده
باشد.
oom_watermark: Percent
درصدی از
کل حافظه
سیستم که در
صورت مصرف، OOM
killer باید فعال
شود و برخی
از
فرآیندها
احتمالاً
کشته شوند
(به گزینه oom_killer
مراجعه
کنید).
بعداً،
هنگامی که
حافظه به
زیر این Percent
کاهش یابد، OOM
killer غیرفعال
میشود.
مقدار
پیشفرض 80
درصد است.
outgoing_s2s_families: [ipv6 | ipv4, ...]
توجه
درباره این
گزینه: در
نسخه 23.01
تغییر کرد.
مشخص
میکند که
کدام
خانوادههای
آدرس و به چه
ترتیبی
امتحان
شوند.
پیشفرض [ipv6, ipv4]
است که به
این معنی
است که
ابتدا
اتصال با IPv6
امتحان
میشود، و
در صورت
شکست از IPv4
استفاده
میشود. این
گزینه
هنگام
استفاده از
ejabberd نسخه 23.01 و Erlang/OTP 22
یا
نسخههای
جدیدتر
آنها
منسوخ و
نامرتبط
است.
outgoing_s2s_ipv4_address: Address
توجه
درباره این
گزینه: در
نسخه 20.12
اضافه شد.
آدرس IPv4 که
هنگام
برقراری
اتصال
خروجی S2S IPv4
استفاده
میشود را
مشخص
میکند، به
عنوان مثال
"127.0.0.1". مقدار
پیشفرض undefined
است.
outgoing_s2s_ipv6_address: Address
توجه
درباره این
گزینه: در
نسخه 20.12
اضافه شد.
آدرس IPv6 که
هنگام
برقراری
اتصال
خروجی S2S IPv6
استفاده
میشود را
مشخص
میکند، به
عنوان مثال
"::FFFF:127.0.0.1". مقدار
پیشفرض undefined
است.
outgoing_s2s_port: 1..65535
شماره
پورتی که
برای
اتصالات
خروجی s2s
هنگامی که
سرور مقصد
رکورد SRV
ندارد
استفاده
میشود.
مقدار
پیشفرض 5269
است.
outgoing_s2s_timeout: timeout()
وقفه
زمانی به
ثانیه برای
تلاشهای
اتصال
خروجی S2S.
مقدار
پیشفرض 10
ثانیه است.
pam_service: Name
این
گزینه نام
سرویس
authentication.md#pam-authentication|PAM را
تعریف
میکند.
برای
اطلاعات
بیشتر به
مستندات PAM
سیستمعامل
خود مراجعه
کنید. مقدار
پیشفرض ejabberd
است.
pam_userinfotype: username | jid
این
گزینه
تعریف
میکند که ejabberd
چه نوع
اطلاعاتی
درباره
کاربر به
سرویس
authentication.md#pam-authentication|PAM
ارائه
میدهد: فقط
نام
کاربری، یا JID
کاربر.
مقدار
پیشفرض username
است.
pgsql_users_number_estimate: true | false
تعیین
میکند که
آیا از
تخمین PostgreSQL
هنگام
شمارش
کاربران
ثبتنامشده
استفاده
شود. مقدار
پیشفرض false
است.
queue_dir: Directory
اگر
گزینه queue_type
روی file تنظیم
شده باشد،
از این Directory
برای ذخیره
صفهای
فایل
استفاده
میشود.
پیشفرض
این است که
صفها درون
دایرکتوری
Mnesia نگه داشته
شوند.
queue_type: ram | file
نوع
پیشفرض
صفها در ejabberd.
ماژولها
میتوانند
مقدار خاص
خود را برای
این گزینه
داشته
باشند.
مقدار ram به
این معنی
است که
صفها در
حافظه نگه
داشته
میشوند.
اگر مقدار file
تنظیم شود،
میتوانید
دایرکتوری
را در گزینه
queue_dir مشخص
کنید که
صفهای
فایل در آن
قرار
میگیرند.
مقدار
پیشفرض ram
است.
redis_connect_timeout: timeout()
وقفه
زمانی برای
انتظار جهت
برقراری
مجدد اتصال
به سرور
database.md#redis|Redis.
پیشفرض 1 second
است.
redis_db: Number
شماره
پایگاه
داده database.md#redis|Redis.
پیشفرض 0
است.
redis_password: Password
رمز عبور
سرور database.md#redis|Redis.
پیشفرض یک
رشته خالی
است، یعنی
بدون رمز
عبور.
redis_pool_size: Number
تعداد
اتصالات
همزمان به
سرور database.md#redis|Redis.
مقدار
پیشفرض 10
است.
redis_port: 1..65535
پورتی که
سرور database.md#redis|Redis
اتصالات را
روی آن
میپذیرد.
پیشفرض 6379
است.
redis_queue_type: ram | file
نوع صف
درخواست
برای سرور
database.md#redis|Redis. برای
توضیح به
شرح گزینه
queue_type مراجعه
کنید. مقدار
پیشفرض
همان مقدار
تعریفشده
در queue_type یا ram
در صورت عدم
تنظیم آن
است.
redis_server: Host | IP Address | Unix Socket
Path
توجه
درباره این
گزینه: در
نسخه 24.12
بهبود یافت.
نام
میزبان،
آدرس IP یا
مسیر سوکت
دامنه
یونیکس
سرور database.md#redis|Redis.
مسیر سوکت
دامنه
یونیکس را
اینگونه
تنظیم کنید:
"unix:/path/to/socket".
مقدار
پیشفرض localhost
است.
registration_timeout: timeout()
این یک
گزینه
سراسری
برای ماژول
mod_register است.
تعداد
دفعات
ثبتنام از
یک آدرس IP یا
نام کاربری
مشخص را
محدود
میکند.
بنابراین،
کاربری که
در این مدت
پس از
ثبتنام
قبلیاش از
همان آدرس IP
یا JID تلاش
میکند یک
حساب جدید
ثبت کند،
پیام خطایی
با توضیح
مربوطه
دریافت
میکند.
برای
غیرفعال
کردن این
محدودیت،
مقدار را
روی infinity
تنظیم کنید.
مقدار
پیشفرض 600 seconds
است.
replaced_connection_timeout: timeout()
توجه
درباره این
گزینه: در
نسخه 26.01
اضافه شد.
حداکثر
زمانی که
نشست جدید
منتظر
خاتمه
یافتن
نشستی که
جایگزین آن
میشود،
میماند.
این به نشست
قدیمی
اجازه
میدهد که
حضورهای
ناموجود
خود را به
درستی
ارسال کند و
به شرایط
رقابتی
احتمالی
بین
حضورهای
نشستهای
قدیمی و
جدید کمک
میکند.
resource_conflict: setresource | closeold |
closenew
توجه:
این گزینه
منسوخ شده
است و ممکن
است در
نسخههای
آینده حذف
شود. مقادیر
ممکن
دقیقاً با
سه احتمال
توصیفشده
در XMPP Core: بخش 7.7.2.2
مطابقت
دارند.
مقدار
پیشفرض closeold
است. اگر
کلاینت از
احراز هویت
قدیمی Jabber Non-SASL (XEP-0078)
استفاده
کند، این
گزینه
رعایت
نمیشود و
عملیات
انجامشده
closeold است.
rest_proxy: Host
توجه
درباره این
گزینه: در
نسخه 25.07
اضافه شد.
آدرس یک
پروکسی HTTP Connect که
توسط
ماژولهایی
که
فراخوانیهای
rest انجام
میدهند
(مانند ejabberd_oauth_rest)
استفاده
میشود.
rest_proxy_password: string()
توجه
درباره این
گزینه: در
نسخه 25.07
اضافه شد.
رمز عبور
مورد
استفاده
برای احراز
هویت به
پروکسی HTTP Connect که
توسط
ماژولهایی
که
فراخوانیهای
rest انجام
میدهند
(مانند ejabberd_oauth_rest)
استفاده
میشود.
rest_proxy_port: 1..65535
توجه
درباره این
گزینه: در
نسخه 25.07
اضافه شد.
پورت یک
پروکسی HTTP Connect که
توسط
ماژولهایی
که
فراخوانیهای
rest انجام
میدهند
(مانند ejabberd_oauth_rest)
استفاده
میشود.
rest_proxy_username: string()
توجه
درباره این
گزینه: در
نسخه 25.07
اضافه شد.
نام کاربری
مورد
استفاده
برای احراز
هویت به
پروکسی HTTP Connect که
توسط
ماژولهایی
که
فراخوانیهای
rest انجام
میدهند
(مانند ejabberd_oauth_rest)
استفاده
میشود.
router_cache_life_time: timeout()
مانند
cache_life_time، اما
تنها برای
کش جدول
مسیریابی
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_life_time
استفاده
میشود.
router_cache_missed: true | false
مانند
cache_missed، اما
تنها برای
کش جدول
مسیریابی
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_missed
استفاده
میشود.
router_cache_size: pos_integer() | infinity
مانند
cache_size، اما
تنها برای
کش جدول
مسیریابی
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_size
استفاده
میشود.
router_db_type: mnesia | redis | sql
بکاند
پایگاه
داده برای
استفاده در
اطلاعات
مسیریابی.
مقدار
پیشفرض از
گزینه default_ram_db
گرفته
میشود، یا
اگر تنظیم
نشده باشد،
mnesia استفاده
میشود.
router_use_cache: true | false
مانند
use_cache، اما
تنها برای
کش جدول
مسیریابی
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار use_cache
استفاده
میشود.
rpc_timeout: timeout()
وقفه
زمانی برای
فراخوانیهای
تابع از راه
دور بین
گرهها در
یک خوشه ejabberd.
احتمالاً
هرگز نباید
این مقدار
را تغییر
دهید زیرا
این
فراخوانیها
تنها برای
نیازهای
داخلی
استفاده
میشوند.
مقدار
پیشفرض 5
ثانیه است.
s2s_access: Access
این
basic.md#access-rules|قانون
دسترسی
تعریف
میکند که
اتصالات s2s به
کدام
سرورهای
راه دور
میتوانند
برقرار
شوند. مقدار
پیشفرض all
است؛ هیچ
محدودیتی
اعمال
نمیشود و
اتصال s2s به/از
تمام
سرورهای
راه دور
مجاز است.
s2s_cafile: Path
مسیر
فایلی با
گواهیهای
ریشه CA که
برای احراز
هویت
اتصالات s2s
استفاده
میشود. اگر
تنظیم نشده
باشد، از
مقدار ca_file
استفاده
میشود.
میتوانید
از host_config برای
تعیین این
گزینه به
ازای هر
میزبان
مجازی
استفاده
کنید.
s2s_ciphers: [Cipher, ...]
فهرستی
از رمزهای OpenSSL
برای
استفاده در
اتصالات s2s.
مقدار
پیشفرض در
مثال زیر
نشان داده
شده است:
مثال:
s2s_ciphers:
- HIGH
- "!aNULL"
- "!eNULL"
- "!3DES"
- "@STRENGTH"
s2s_dhfile: Path
مسیر
کامل به
فایلی که
حاوی
پارامترهای
DH سفارشی
برای
استفاده در
اتصالات s2s
است. چنین
فایلی
میتواند
با دستور "openssl
dhparam -out dh.pem 2048" ایجاد
شود. اگر این
گزینه مشخص
نشده باشد،
از گروه 2048
بیتی MODP با
زیرگروه
مرتبه اول 256
بیتی طبق
تعریف RFC5114 بخش 2.3
استفاده
میشود.
s2s_dns_retries: Number
تعداد
تلاش مجدد
برای حل DNS.
مقدار
پیشفرض 2
است.
s2s_dns_timeout: timeout()
وقفه
زمانی برای
حل DNS. مقدار
پیشفرض 10
ثانیه است.
s2s_max_retry_delay: timeout()
حداکثر
تأخیر مجاز
برای تلاش
مجدد اتصال s2s
پس از یک
تلاش
ناموفق.
مقدار
پیشفرض 300
ثانیه (5
دقیقه) است.
s2s_protocol_options: [Option, ...]
فهرست
گزینههای
کلی SSL برای
استفاده در
اتصالات s2s.
اینها به
set_options() OpenSSL نگاشت
میشوند.
مقدار
پیشفرض در
مثال زیر
نشان داده
شده است:
مثال:
s2s_protocol_options:
- no_sslv3
- cipher_server_preference
- no_compression
s2s_queue_type: ram | file
نوع صف
برای
بستههای s2s.
برای توضیح
به شرح
گزینه queue_type
مراجعه
کنید. مقدار
پیشفرض
همان مقدار
تعریفشده
در queue_type یا ram
در صورت عدم
تنظیم آن
است.
s2s_timeout: timeout()
زمان
انتظار قبل
از بستن یک
اتصال s2s
بیکار.
مقدار
پیشفرض 1
ساعت است.
s2s_tls_compression: true | false
تعیین
میکند که
آیا
فشردهسازی
TLS برای
اتصالات s2s
فعال یا
غیرفعال
شود. مقدار
پیشفرض false
است.
s2s_use_starttls: true | false | optional |
required
تعیین
میکند که
آیا از STARTTLS
برای
اتصالات s2s
استفاده
شود. مقدار
false به این
معنی است که
STARTTLS ممنوع است.
مقدار true یا
optional به این
معنی است که
STARTTLS فعال است
اما
اتصالات
ساده هنوز
مجاز هستند.
و مقدار required
به این معنی
است که تنها
اتصالات STARTTLS
مجاز هستند.
مقدار
پیشفرض false
است (به
دلایل
تاریخی).
s2s_zlib: true | false
تعیین
میکند که
آیا از
فشردهسازی
zlib (طبق تعریف
در XEP-0138)
استفاده
شود یا خیر.
مقدار
پیشفرض false
است. هشدار:
این نوع
فشردهسازی
امروزه
ناامن تلقی
میشود.
shaper: {ShaperName: Rate}
این
گزینه
مجموعهای
از
../configuration/basic.md#shapers|شکلدهندهها
را تعریف
میکند. هر
شکلدهنده
یک نام
ShaperName
دارد که
میتواند
در سایر
بخشهای
فایل
پیکربندی
مانند
گزینه
shaper_rules
استفاده
شود. خود
شکلدهنده
با
Rate تعریف
میشود، که
Rate
نشاندهنده
حداکثر نرخ
ورودی مجاز
به
بایت در
ثانیه است.
هنگامی که
یک اتصال از
این حد
بیشتر شود،
ejabberd خواندن از
سوکت را
متوقف
میکند تا
زمانی که
نرخ
میانگین
مجدداً به
زیر حد مجاز
برسد. در
مثال زیر
شکلدهنده
normal سرعت
ترافیک را
به 1000 بایت در
ثانیه و
شکلدهنده
fast سرعت
ترافیک را
به 50000 بایت در
ثانیه
محدود
میکند:
مثال:
shaper:
normal: 1000
fast: 50000
shaper_rules: {ShaperRuleName: {Number|ShaperName:
ACLName|ACLDefinition}}
این
گزینه
../configuration/basic.md#shaper-rules|قوانین
شکلدهنده
را برای
تطبیق با
کاربران/میزبانها
تعریف
میکند.
معناشناسی
مشابه
گزینه
access_rules
است، تنها
تفاوت این
است که به
جای
استفاده از
allow یا
deny،
باید از نام
یک
شکلدهنده
(تعریفشده
در گزینه
shaper)
یا یک عدد
مثبت
استفاده
کرد.
مثال:
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
sm_cache_life_time: timeout()
مانند
cache_life_time، اما
تنها برای
کش جدول
نشستهای
کلاینت
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_life_time
استفاده
میشود.
sm_cache_missed: true | false
مانند
cache_missed، اما
تنها برای
کش جدول
نشستهای
کلاینت
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_missed
استفاده
میشود.
sm_cache_size: pos_integer() | infinity
مانند
cache_size، اما
تنها برای
کش جدول
نشستهای
کلاینت
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار cache_size
استفاده
میشود.
sm_db_type: mnesia | redis | sql
بکاند
پایگاه
داده برای
استفاده در
اطلاعات
نشستهای
کلاینت.
مقدار
پیشفرض از
گزینه default_ram_db
گرفته
میشود، یا
اگر تنظیم
نشده باشد،
mnesia استفاده
میشود.
sm_use_cache: true | false
مانند
use_cache، اما
تنها برای
کش جدول
نشستهای
کلاینت
اعمال
میشود. اگر
تنظیم نشده
باشد، از
مقدار use_cache
استفاده
میشود.
sql_connect_timeout: timeout()
زمان
انتظار
برای
برقراری
اتصال به
سرور SQL. مقدار
پیشفرض 5
ثانیه است.
sql_database: DatabaseName | PathSqliteFile
توجه
درباره این
گزینه: در
نسخه 26.04
بهبود یافت.
نام پایگاه
داده SQL، که
مقدار
پیشفرض آن
ejabberd است. اگر
گزینه sql_type
روی sqlite
تنظیم شده
باشد، این
باید مسیر
کامل به یک
فایل
پایگاه
داده باشد،
با مقدار
پیشفرض:
'"@DATABASE_PATH@/sqlite/@HOST@.sqlite"
sql_flags: [mysql_alternative_upsert]
توجه
درباره این
گزینه: در
نسخه 24.02
اضافه شد.
این گزینه
فهرستی از
فلگهای SQL را
میپذیرد و
به طور
پیشفرض
خالی است.
mysql_alternative_upsert
پیادهسازی
جایگزین upsert
را در MySQL
اجبار
میکند.
sql_keepalive_interval: timeout()
بازهای
برای ارسال
یک درخواست SQL
ساختگی جهت
زنده نگه
داشتن
اتصالات به
پایگاه
داده. هیچ
مقدار
پیشفرضی
وجود
ندارد،
بنابراین
هیچ
درخواست keepalive
ارسال
نمیشود.
sql_odbc_driver: Path
توجه
درباره این
گزینه: در
نسخه 20.12
اضافه شد.
مسیر
درایور ODBC
برای اتصال
به پایگاه
داده Microsoft SQL Server.
این گزینه
تنها در
صورتی
اعمال
میشود که
گزینه sql_type
روی mssql تنظیم
شده باشد و
sql_server یک رشته
اتصال ODBC
نباشد.
مقدار
پیشفرض:
libtdsodbc.so
sql_password: Password
رمز عبور
برای احراز
هویت SQL.
پیشفرض یک
رشته خالی
است.
sql_pool_size: Size
تعداد
اتصالات به
سرور SQL که ejabberd
برای هر
میزبان
مجازی باز
میکند.
مقدار
پیشفرض 10
است. هشدار:
برای SQLite این
مقدار به
طور
پیشفرض 1
است و به
دلیل شرایط
رقابتی
احتمالی
توصیه
نمیشود آن
را تغییر
دهید.
sql_port: 1..65535
پورتی که
سرور SQL
اتصالات را
روی آن
میپذیرد.
پیشفرض 3306
برای MySQL، 5432
برای PostgreSQL و 1433
برای MS SQL است.
این گزینه
برای SQLite
تأثیری
ندارد.
sql_prepared_statements: true | false
توجه
درباره این
گزینه: در
نسخه 20.01
اضافه شد.
این گزینه
به طور
پیشفرض true
است و برای
غیرفعال
کردن
دستورات
آماده (prepared statements)
مفید است.
این گزینه
برای PostgreSQL و MySQL
معتبر است.
sql_query_timeout: timeout()
زمان
انتظار
برای پاسخ
یک کوئری SQL.
مقدار
پیشفرض 60
ثانیه است.
sql_queue_type: ram | file
نوع صف
درخواست
برای سرور SQL.
برای توضیح
به شرح
گزینه queue_type
مراجعه
کنید. مقدار
پیشفرض
همان مقدار
تعریفشده
در queue_type یا ram
در صورت عدم
تنظیم آن
است.
sql_schema_multihost: true | false
توجه
درباره این
گزینه: در
نسخه
25.10
تغییر نام
یافت. تعیین
میکند که
آیا از
database.md#singlehost-or-multihost|طرح SQL
چندمیزبانه
استفاده
شود. تمام
طرحها در
https://github.com/processone/ejabberd/tree/26.07/sql
قرار دارند.
دو طرح در
دسترس
هستند. طرح
قدیمی
singlehost یک
دامنه XMPP را
در یک
پایگاه
داده ejabberd
ذخیره
میکند. طرح
multihost
میتواند
چندین
دامنه XMPP را
در یک
پایگاه
داده ejabberd
مدیریت کند.
طرح
multihost
هنگام
ارائه
خدمات به
چندین
دامنه XMPP و/یا
تغییر
دامنهها
از وقت به
وقت ارجح
است. این از
نیاز به
مدیریت
چندین
پایگاه
داده و
پیچیدگیهای
تغییرات
پیکربندی
جلوگیری
میکند.
مقدار
پیشفرض به
فلگ
--enable-sql-schema-multihost در
../../admin/install/source.md#configure|./configure که
در زمان
کامپایل
تنظیم
میشود
بستگی
دارد.
sql_server: Host | IP Address | ODBC Connection String |
Unix Socket Path
توجه
درباره این
گزینه: در
نسخه 24.06
بهبود یافت.
نام میزبان
یا آدرس IP
سرور SQL. برای
sql_type های mssql یا
odbc میتواند
یک رشته
اتصال ODBC نیز
باشد.
هنگامی که
sql_type برابر با
mysql یا pgsql است،
میتواند
مسیر یک
سوکت دامنه
یونیکس
باشد که
اینگونه
بیان
میشود:
"unix:/path/to/socket".
مقدار
پیشفرض localhost
است.
sql_ssl: true | false
توجه
درباره این
گزینه: در
نسخه 20.03
بهبود یافت.
تعیین
میکند که
آیا از
اتصالات
رمزگذاریشده
SSL به سرور SQL
استفاده
شود. این
گزینه تنها
برای MySQL، MS SQL و PostgreSQL
در دسترس
است. مقدار
پیشفرض false
است.
sql_ssl_cafile: Path
مسیر
فایلی با
گواهیهای
ریشه CA که
برای تأیید
اتصالات SQL
استفاده
میشود. به
این معنی که
گزینههای
sql_ssl و sql_ssl_verify روی
true تنظیم
شدهاند.
هیچ مقدار
پیشفرضی
وجود ندارد
که به این
معنی است که
تأیید
گواهی
غیرفعال
است. این
گزینه برای MS
SQL تأثیری
ندارد.
sql_ssl_certfile: Path
مسیر
فایل گواهی
که برای
اتصالات SSL به
سرور SQL
استفاده
میشود. به
این معنی که
گزینه sql_ssl
روی true تنظیم
شده است. هیچ
مقدار
پیشفرضی
وجود ندارد
که به این
معنی است که
ejabberd هیچ گواهی
کلاینتی به
سرور SQL ارائه
نمیدهد.
این گزینه
برای MS SQL
تأثیری
ندارد.
sql_ssl_verify: true | false
تعیین
میکند که
آیا اتصال SSL
به سرور SQL در
برابر
گواهیهای
ریشه CA
تعریفشده
در گزینه
sql_ssl_cafile تأیید
شود. به این
معنی که
گزینه sql_ssl
روی true تنظیم
شده است. این
گزینه برای MS
SQL تأثیری
ندارد.
مقدار
پیشفرض false
است.
sql_start_interval: timeout()
زمان
انتظار قبل
از تلاش
مجدد برای
بازیابی
اتصال SQL
ناموفق.
مقدار
پیشفرض 30
ثانیه است.
sql_type: mssql | mysql | odbc | pgsql | sqlite
نوع
اتصال SQL.
پیشفرض odbc
است.
sql_username: Username
نام
کاربری
برای احراز
هویت SQL. مقدار
پیشفرض ejabberd
است.
trusted_proxies: all | [Network1, Network2, ...]
مشخص
میکند که
هنگامی که
یک درخواست HTTP
حاوی هدر
X-Forwarded-For است،
کدام
پروکسیها
مورد
اعتماد
هستند.
میتوانید
all را برای
اجازه دادن
به تمام
پروکسیها
مشخص کنید،
یا فهرستی
از IPها را
احتمالاً
با ماسک
مشخص کنید.
مقدار
پیشفرض یک
فهرست خالی
است. با
استفاده از
این گزینه
میتوانید IP
واقعی
درخواست را
برای اهداف
مدیریتی یا
پیکربندی
امنیتی
بدانید
(برای مثال
با استفاده
از mod_fail2ban). مهم:
پروکسی
باید
پیکربندی
شود که هدر
X-Forwarded-For را
تنظیم کند
اگر این
گزینه را
فعال کنید،
در غیر این
صورت
کلاینت
میتواند
آن را خودش
تنظیم کند و
در نتیجه
مقدار IP برای
قوانین
امنیتی در ejabberd
قابل
اعتماد
نیست.
update_sql_schema: true | false
توجه
درباره این
گزینه: در
نسخه 24.06
بهروز شد.
به ejabberd اجازه
میدهد طرح SQL
را در
پایگاه
دادههای MySQL،
PostgreSQL و SQLite بهروز
کند. این
گزینه در ejabberd
نسخه 23.10
اضافه شد و
از نسخه 24.06 به
طور
پیشفرض
فعال است.
مقدار
پیشفرض true
است.
update_sql_schema_timeout: timeout()
توجه
درباره این
گزینه: در
نسخه 24.07
اضافه شد.
زمان
اختصاصیافته
به
کوئریهای
بهروزرسانی
طرح SQL. مقدار
پیشفرض 5
دقیقه است.
use_cache: true | false
فعال یا
غیرفعال
کردن کش.
پیشفرض true
است. چندین
ماژول
گزینه
مشابهی
دارند؛ و
برخی
بخشهای
هسته ejabberd نیز
از
گزینههای
مشابه
پشتیبانی
میکنند،
به auth_use_cache، oauth_use_cache،
router_use_cache و sm_use_cache
مراجعه
کنید.
validate_stream: true | false
تعیین
میکند که
آیا هر بسته XML
ورودی طبق
طرحهای
افزونههای
پشتیبانیشده
XMPP
اعتبارسنجی
شود. هشدار:
این
اعتبارسنجی
تنها برای
استفاده
توسط
توسعهدهندگان
کلاینت در
نظر گرفته
شده است - آن
را در محیط
تولید فعال
نکنید.
مقدار
پیشفرض false
است.
version: string()
این
گزینه
میتواند
برای تنظیم
نسخه
سفارشی ejabberd
استفاده
شود که توسط
بخشهای
مختلف ejabberd
استفاده
میشود،
برای مثال
توسط ماژول
mod_version. مقدار
پیشفرض در
زمان
کامپایل از
سیستم
کنترل نسخه
زیربنایی
به دست
میآید.
websocket_origin: ignore | URL
این
گزینه
اعتبارسنجی
هدر
Origin را
برای
محافظت در
برابر
اتصالات از
دامنههای
دیگر غیر از
آنچه در
فایل
پیکربندی
مشخص شده
فعال
میکند. به
این ترتیب،
لود
بالانسر
لایه
پایینتر
میتواند
برای یک
پیادهسازی
خاص ejabberd
انتخاب شود
در حالی که
یک اتصال WebSocket
امن همچنان
فراهم
میشود.
مقدار
پیشفرض
ignore
است. یک مثال
از مقدار
URL
میتواند
"https://test.example.org:8081"
باشد.
websocket_ping_interval: timeout()
زمان بین
پینگهای
ارسالشده
از سرور به
کلاینت
(برای این
منظور از
پینگهای
سطح پروتکل
WebSocket استفاده
میشود)
برای زنده
نگه داشتن
اتصال را
تعریف
میکند. اگر
کلاینت به
دو پینگ
متوالی
پاسخ ندهد،
اتصال
بستهشده
تلقی
میشود.
مقدار 0
میتواند
برای
غیرفعال
کردن این
قابلیت
استفاده
شود. این
گزینه باعث
میشود
سرور
پینگها را
تنها برای
اتصالاتی
که از
پروتکل
مطابق با RFC
استفاده
میکنند
ارسال کند.
برای
اتصالات با
سبک
قدیمیتر،
سرور
انتظار
دارد که از
پینگهای
فضای خالی
برای این
منظور
استفاده
شود. مقدار
پیشفرض 60
ثانیه است.
websocket_timeout: timeout()
مدت زمان
بدون هیچ
ارتباطی که
پس از آن
اتصال بسته
میشود.
مقدار
پیشفرض 300
ثانیه است.
این بخش
گزینههای
ماژولهای
ejabberd 26.07 را توضیح
میدهد.
ماژولهایی
که در این
نسخه تغییر
کردهاند
با 🟠 مشخص
شدهاند.
def:ad-hoc command
: دستوری
که
میتواند
توسط یک
کلاینت XMPP با
استفاده از
XEP-0050 اجرا شود.
این ماژول
XEP-0050: Ad-Hoc Commands را
پیادهسازی
میکند. یک
ماژول کمکی
است و تنها
توسط برخی
از
ماژولهای
دیگر مورد
نیاز است.
گزینههای
موجود:
report_commands_node: true | false
آیتم Commands
را در Service Discovery
فراهم
میکند.
مقدار
پیشفرض: false.
توجه
درباره این
گزینه: در
نسخه 25.03
اضافه شده
است.
اجرای (def:API commands)
در یک
کلاینت XMPP با
استفاده از
XEP-0050: Ad-Hoc Commands. این
ماژول به mod_adhoc
(برای اجرای
دستورات)
نیاز دارد،
و استفاده
از mod_disco (برای
کشف
دستورات) را
توصیه
میکند.
گزینههای
موجود:
default_version: integer() | string()
نسخه API
مورد
استفاده.
اگر نسخه ejabberd
تنظیم شود،
از آخرین
نسخه API که در
آن نسخه (def:c2s) ejabberd
موجود بوده
استفاده
میکند. به
عنوان
مثال،
تنظیم "24.06"
در این
گزینه
معادل 2 است.
مقدار
پیشفرض
آخرین نسخه
است.
مثال:
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
این ماژول
دستورات
مدیریتی
اضافی
فراهم
میکند.
جزئیات
برخی
دستورات:
ban_account API: این
دستور تمام
نشستهای
متصل حساب
کاربری را
از سرور قطع
میکند.
همچنین رمز
عبور آنها
را به یک رمز
تصادفی
تغییر
میدهد تا
دیگر
نتوانند
وارد شوند
مگر اینکه
مدیر سرور
رمز عبور
آنها را
مجدداً
تغییر دهد.
امکان
تعریف دلیل
مسدودسازی
وجود دارد.
رمز عبور
جدید نیز
شامل دلیل و
تاریخ و
زمان
مسدودسازی
است. مثالی
در زیر آمده
است.
push_roster API (و push_roster_all API):
فایل roster باید
در صورت
استفاده از
Windows، در
دایرکتوری
نصب ejabberd قرار
گیرد: C:/Program Files/ejabberd یا
مشابه آن. در
صورت
استفاده از
سیستمعامل
دیگر، فایل
را در همان
دایرکتوری
که
فایلهای .beam
نصب
شدهاند
قرار دهید.
در زیر یک
فایل roster
نمونه آمده
است.
srg_create API: اگر
میخواهید
نام گروه را
با فاصله
وارد کنید،
از
کاراکترهای
"' و '" برای
مشخص کردن
شروع و
پایان نام
استفاده
کنید. مثالی
در زیر آمده
است.
این ماژول
گزینهای
ندارد.
مثالها:
با این
پیکربندی،
vCardها فقط با
دستورات mod_admin_extra
قابل تغییر
هستند:
acl:
adminextraresource:
- resource: "modadminextraf8x,31ad"
access_rules:
vcard_set:
- allow: adminextraresource
modules:
mod_admin_extra: {}
mod_vcard:
access_set: vcard_set
محتوای
فایل roster برای
push_roster API:
[{<<"bob">>, <<"example.org">>, <<"workers">>, <<"Bob">>},
{<<"mart">>, <<"example.org">>, <<"workers">>, <<"Mart">>},
{<<"Rich">>, <<"example.org">>, <<"bosses">>, <<"Rich">>}].
با این
فراخوانی،
نشستهای
حساب محلی
با JID boby@example.org قطع
میشوند و
رمز عبور آن
به چیزی
شبیه
BANNED_ACCOUNT—20080425T21:45:07—2176635—Spammed_rooms
تغییر
مییابد
ejabberdctl vhost example.org ban_account boby "Spammed rooms"
فراخوانی
srg_create API با
استفاده از
کوتیشنهای
دوتایی و
تکی:
ejabberdctl srg_create g1 example.org "'Group number 1'" this_is_g1 g1
برچسبهای
API:
../../developer/ejabberd-api/admin-tags.md#accounts|accounts,
../../developer/ejabberd-api/admin-tags.md#erlang|erlang,
../../developer/ejabberd-api/admin-tags.md#last|last,
../../developer/ejabberd-api/admin-tags.md#private|private,
../../developer/ejabberd-api/admin-tags.md#purge|purge,
../../developer/ejabberd-api/admin-tags.md#roster|roster,
../../developer/ejabberd-api/admin-tags.md#session|session,
../../developer/ejabberd-api/admin-tags.md#shared_roster_group|shared_roster_group,
../../developer/ejabberd-api/admin-tags.md#stanza|stanza,
../../developer/ejabberd-api/admin-tags.md#statistics|statistics,
../../developer/ejabberd-api/admin-tags.md#vcard|vcard
از این
ماژول
میتوان
برای تبدیل
پایگاه
داده SQL
موجود از
طرحواره
تکمیزبانه
به
چندمیزبانه
استفاده
کرد. برای
جزئیات بخش
database.md#singlehost-or-multihost|Singlehost or Multihost
را بررسی
کنید. توجه
داشته
باشید که
تنها MS SQL، MySQL و PostgreSQL
پشتیبانی
میشوند. پس
از
بارگذاری
ماژول از update_sql
API استفاده
کنید.
این ماژول
گزینهای
ندارد.
این ماژول
به کاربران
پیکربندیشده
امکان
میدهد
اعلانها
را پخش کنند
و پیام روز (MOTD)
را تنظیم
کنند.
کاربران
پیکربندیشده
میتوانند
این اعمال
را با یک
کلاینت XMPP،
یا از طریق Ad-Hoc
Commands یا ارسال
پیام به
JIDهای خاص
انجام دهند.
دستورات
معادل API نیز
موجود
هستند.
توجه
این ماژول
در
استقرارهای
بزرگ
میتواند
منابع
زیادی مصرف
کند زیرا
ممکن است
پیامهای
زیادی پخش
کند. این
ماژول باید
برای
نمونههای
ejabberd با صدها
هزار کاربر
غیرفعال
شود.
برای
ارسال
اعلانها
با استفاده
از XEP-0050: Ad-Hoc Commands، این
ماژول به mod_adhoc
(برای اجرای
دستورات)
نیاز دارد،
و استفاده
از mod_disco (برای
کشف
دستورات) را
توصیه
میکند.
برای
ارسال
اعلانها
از طریق
ارسال پیام
به JIDهای
خاص، JIDهای
مقصد به شرح
زیر هستند:
•example.org/announce/all:
پیام را به
تمام
کاربران
ثبتشده در
آن vhost ارسال
میکند. اگر
کاربر
آنلاین
باشد و به
چندین منبع
متصل باشد،
تنها منبع
با
بالاترین
اولویت
پیام را
دریافت
میکند. اگر
کاربر
ثبتشده
متصل
نباشد،
پیام به
صورت
آفلاین
ذخیره
میشود با
این فرض که
ذخیرهسازی
آفلاین
(مراجعه
کنید به mod_offline)
فعال باشد.
•example.org/announce/online:
پیام را به
تمام
کاربران
متصل ارسال
میکند. اگر
کاربر
آنلاین
باشد و به
چندین منبع
متصل باشد،
تمام منابع
پیام را
دریافت
میکنند.
•example.org/announce/motd:
پیام روز (MOTD)
را تنظیم
میکند که
هنگام ورود
به کاربران
ارسال
میشود.
همچنین
پیام را به
تمام
کاربران
متصل ارسال
میکند
(مشابه announce/online).
•example.org/announce/motd/update:
پیام روز (MOTD)
را تنظیم
میکند که
هنگام ورود
به کاربران
ارسال
میشود. این
گزینه پیام
را به هیچ
کاربر متصل
فعلی ارسال
نمیکند.
•example.org/announce/motd/delete:
پیام روز (MOTD)
موجود را با
ارسال یک
پیام به این JID
حذف
میکند.
JIDهای مقصد
مشابهی
برای اعمال
بر تمام
میزبانهای
مجازی در ejabberd
وجود دارد:
•example.org/announce/all-hosts/all:
ارسال به
تمام
حسابهای
ثبتشده
•example.org/announce/all-hosts/online:
ارسال به
نشستهای
آنلاین
•example.org/announce/all-hosts/motd:
تنظیم MOTD و
ارسال به
کاربران
آنلاین
•example.org/announce/all-hosts/motd/update:
بهروزرسانی
MOTD
•example.org/announce/all-hosts/motd/delete:
حذف MOTD
گزینههای
موجود:
access: AccessName
این
گزینه مشخص
میکند چه
کسی مجاز به
ارسال
اعلانها و
تنظیم پیام
روز است.
مقدار
پیشفرض none
است (یعنی
هیچکس
قادر به
ارسال چنین
پیامهایی
نیست).
cache_life_time: timeout()
مشابه
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
مشابه
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
مشابه
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
مشابه
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
مشابه
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
برچسبهای
API:
../../developer/ejabberd-api/admin-tags.md#announce|announce
توجه
درباره این
گزینه: در
نسخه 25.07
اضافه شده
است.
پیامهای
هرزنامه و
درخواستهای
اشتراک
دریافتی از
سرورهای
راه دور را
بر اساس
فهرستهای
بلوک
بلادرنگ (RTBL)،
فهرستهای JID
های اسپمر
شناختهشده
و/یا URLهای
ذکرشده در
پیامهای
هرزنامه
فیلتر
میکند.
ترافیک
طبقهبندیشده
به عنوان
هرزنامه با
یک خطا رد
میشود (و یک
پیام [info] ثبت
میگردد)
مگر اینکه
فرستنده در
حضور
گیرنده
مشترک
باشد.
گزینههای
موجود:
access_spam: Access
قانون
دسترسی که
کنترل
میکند چه
حسابهایی
ممکن است
پیامهای
هرزنامه
دریافت
کنند. اگر
این قانون
برای یک
گیرنده
مشخص allow
برگرداند،
پیامهای
هرزنامه
برای آن
گیرنده رد
نمیشوند.
مقدار
پیشفرض none
است، که به
این معنی
است که همه
گیرندگان
تحت بررسی
فیلتر
هرزنامه
قرار
میگیرند.
cache_size: pos_integer()
حداکثر
تعداد JID هایی
که به دلیل
ارسال URLهای
هرزنامه در
حافظه
پنهان
ذخیره
میشوند.
اگر این
محدودیت
بیش از حد
شود،
کماستفادهترین
ورودیها
از حافظه
پنهان حذف
میشوند.
تنظیم این
گزینه روی 0
ویژگی
ذخیرهسازی
موقت را
غیرفعال
میکند.
توجه داشته
باشید که
برای هر
میزبان
مجازی
حافظههای
پنهان
جداگانهای
استفاده
میشود و
این
حافظههای
پنهان در
بین
گرههای
خوشه توزیع
نمیشوند.
مقدار
پیشفرض 10000
است.
rtbl_services: [Service]
یک سرویس
RTBL را برای
دریافت
دامنههای
مسدود،
مانند آنچه
توسط xmppbl.org
ارائه
میشود،
پرسوجو
میکند.
لطفاً توجه
داشته
باشید که در
حال حاضر
این گزینه
فقط از یک
سرویس در آن
فهرست
پشتیبانی
میکند.
برای مسدود
کردن
هرزنامه و
سوءاستفاده
در
کانالهای
MUC، در حال
حاضر از
mod_muc_rtbl
استفاده
کنید. اگر
فقط میزبان
ارائه شود،
نام
گرههای
پیشفرض
فرض
میشوند.
اگر نام گره
با
spam_source_domains
متفاوت
باشد،
میتوانید
نام گره
سفارشی را
با گزینه
spam_source_domains_node تنظیم
کنید. مقدار
پیشفرض یک
فهرست خالی
از
سرویسها
است.
مثال:
rtbl_services:
- pubsub.server1.localhost:
spam_source_domains_node: actual_custom_pubsub_node
spam_domains_file: none | Path
مسیر یک
فایل متنی
ساده حاوی
فهرستی از
دامنههای
هرزنامه
شناختهشده،
یک دامنه در
هر خط.
پیامها و
درخواستهای
اشتراک
ارسالشده
از یکی از
دامنههای
فهرستشده
در صورتی که
فرستنده در
لیست
مخاطبین
گیرنده
نباشد به
عنوان
هرزنامه
طبقهبندی
میشوند.
این فهرست
دامنهها
با فهرست
بازیابیشده
توسط یک
میزبان RTBL در
صورت وجود
ادغام
میشود. از
یک مسیر
مطلق یا
کلیدواژه
از پیش
تعریفشده
@CONFIG_PATH@ استفاده
کنید اگر
فایل در
دایرکتوری
پیکربندی
موجود است.
مقدار
پیشفرض none
است.
spam_dump_file: false | true | Path
مسیر
فایلی برای
ذخیره
پیامهای
مسدودشده.
از یک مسیر
مطلق یا
کلیدواژه
از پیش
تعریفشده
@LOG_PATH@ استفاده
کنید تا
لاگها در
همان مکان
سایر
فایلهای
لاگ ejabberd ذخیره
شوند. اگر
روی false تنظیم
شود،
استانزاها
را ذخیره
نمیکند،
که پیشفرض
است. اگر روی
true تنظیم
شود، در
"@LOG_PATH@/spam_dump_@HOST@.log"
ذخیره
میکند.
spam_jids_file: none | Path
مسیر یک
فایل متنی
ساده حاوی
فهرستی از JID
های اسپمر
شناختهشده،
یک JID در هر خط.
پیامها و
درخواستهای
اشتراک
ارسالشده
از یکی از JID
های
فهرستشده
به عنوان
هرزنامه
طبقهبندی
میشوند.
پیامهای
حاوی حداقل
یکی از JID های
فهرستشده
نیز به
عنوان
هرزنامه
طبقهبندی
میشوند.
علاوه بر
این، JID
فرستنده در
حافظه
پنهان
ذخیره
میشود تا
ترافیک
آینده از آن JID
نیز به
عنوان
هرزنامه
طبقهبندی
شود. از یک
مسیر مطلق
یا
کلیدواژه
از پیش
تعریفشده
@CONFIG_PATH@ استفاده
کنید اگر
فایل در
دایرکتوری
پیکربندی
موجود است.
مقدار
پیشفرض none
است.
spam_urls_file: none | Path
مسیر یک
فایل متنی
ساده حاوی
فهرستی از
URLهایی که در
متن
پیامهای
هرزنامه
ذکر
شدهاند.
پیامهای
حاوی حداقل
یکی از URLهای
فهرستشده
به عنوان
هرزنامه
طبقهبندی
میشوند.
علاوه بر
این، JID
فرستنده در
حافظه
پنهان
ذخیره
میشود تا
ترافیک
آینده از آن JID
نیز به
عنوان
هرزنامه
طبقهبندی
شود. از یک
مسیر مطلق
یا
کلیدواژه
از پیش
تعریفشده
@CONFIG_PATH@ استفاده
کنید اگر
فایل در
دایرکتوری
پیکربندی
موجود است.
مقدار
پیشفرض none
است.
whitelist_domains_file: none | Path
مسیر یک
فایل حاوی
فهرستی از
دامنههایی
که باید از
مسدود شدن
معاف شوند،
یک دامنه در
هر خط. اگر
دامنهای
در spam_domains_file یا
واقعبینانهتر
در
دامنهای
ارسالشده
توسط یک
میزبان RTBL
(گزینه rtbl_services
را ببینید)
باشد، این
دامنه
نادیده
گرفته
میشود و
استانزاهای
آن مسدود
نمیشوند.
از یک مسیر
مطلق یا
کلیدواژه
از پیش
تعریفشده
@CONFIG_PATH@ استفاده
کنید اگر
فایل در
دایرکتوری
پیکربندی
موجود است.
مقدار
پیشفرض none
است.
مثال:
modules:
mod_antispam:
rtbl_services:
- xmppbl.org
spam_jids_file: "@CONFIG_PATH@/spam_jids.txt"
spam_dump_file: "@LOG_PATH@/spam/host-@HOST@.log"
توجه
درباره این
گزینه: در
نسخه 26.07
بهبود
یافته است.
این ماژول
پشتیبانی
از XEP-0484: Fast Authentication Streamlining Tokens
را اضافه
میکند که
به کاربران
اجازه
میدهد با
استفاده از
توکنهای
خودمدیریتی
احراز هویت
کنند.
گزینههای
موجود:
db_type 🟠: mnesia | sql
توجه
درباره این
گزینه: در
نسخه 26.07
بهبود
یافته است.
مشابه
گزینه سطح
بالای default_db
اما فقط
برای این
ماژول
اعمال
میشود.
token_lifetime: timeout()
مدت
زمانی که
توکنها
نگهداری
میشوند،
اندازهگیریشده
از زمان
ایجاد
آنها.
مقدار
پیشفرض ۳۰
روز تنظیم
شده است.
token_refresh_age: timeout()
این زمان
سن توکنی را
که واجد
شرایط
تجدید
خودکار است
تعیین
میکند.
مقدار
پیشفرض ۱
روز تنظیم
شده است.
مثال:
modules:
mod_auth_fast:
token_lifetime: 14days
هدف این
ماژول
رسیدگی به
کلاینتهای
XMPP قدیمی و
مدرنی است
که آواتار
ارسال
میکنند.
این فرآیند
در XEP-0398: User Avatar to vCard-Based Avatars Conversion
توضیح داده
شده است.
همچنین،
این ماژول
از تبدیل
بین
فرمتهای
تصویر
آواتار به
صورت آنی
پشتیبانی
میکند.
این ماژول
به mod_vcard، mod_vcard_xupdate و
mod_pubsub وابسته
است.
گزینههای
موجود:
convert: {From: To}
قوانین
تبدیل
تصویر را
تعریف
میکند:
فرمت در
From به
فرمت در
To
تبدیل
میشود.
مقدار
From
میتواند
default هم باشد
که یک قانون
همهچیز-مطابقت
است. توجه:
فهرست
فرمتهای
پشتیبانیشده
در زمان
کامپایل
بسته به
کتابخانههای
تصویر
نصبشده در
سیستم
تشخیص داده
میشود.
مثال:
convert:
webp: jpg
default: png
rate_limit: Number
هر JID
دادهشده
را بر اساس
تعداد
آواتارهایی
که
میتواند
در دقیقه
تبدیل کند
محدود
میکند. این
برای
محافظت از
سرور در
برابر DoS
تبدیل
تصویر است.
مقدار
پیشفرض 10
است.
این ماژول
هر پیامی که
از یک
موجودیت
ناشناخته
میآید را
مسدود و ثبت
میکند. اگر
یک موجودیت
نویسنده در
لیست
مخاطبین
شما نباشد،
میتوانید
اجازه دهید
این ماژول
پیام را رد
کند و/یا ثبت
کند. به طور
پیشفرض
پیام از آن
موجودیت
دریافت
نخواهید
کرد. اگر
میخواهید
پیامهای
هرزنامه را
رد کنید این
ماژول را
فعال کنید.
گزینههای
موجود:
access: AccessName
این
گزینه قرار
است زمانی
استفاده
شود که allow_local_users و
allow_transports کافی
نیستند. این
یک قانون
دسترسی است
که در آن deny
به معنای رد
شدن
استانزا
است؛
استثنایی
وجود دارد
اگر گزینه
captcha
پیکربندی
شده باشد. و
allow به این
معنا است که
فرستنده در
لیست سفید
قرار دارد و
استانزا
عبور خواهد
کرد. مقدار
پیشفرض none
است، که به
این معنی
است که هیچ
چیز در لیست
سفید قرار
ندارد.
allow_local_users: true | false
این
گزینه مشخص
میکند که
آیا افراد
ناشناس از
همان
میزبان
محلی باید
پذیرفته
شوند یا نه.
مقدار
پیشفرض true
است.
allow_transports: true | false
اگر روی
true تنظیم شود
و JID برخی
سرورها در
لیست
مخاطبین
کاربر
باشد،
پیامهای
هر کاربر از
آن سرور حتی
در صورت عدم
وجود
اشتراک
پذیرفته
میشوند.
مقدار
پیشفرض true
است.
captcha: true | false
آیا در
پاسخ به
درخواستهای
اشتراک
حضور ورودی
از افراد
ناشناس
چالشهای CAPTCHA
ایجاد شود.
همچنین بخش
basic.md#captcha|CAPTCHA از
راهنمای
پیکربندی
را ببینید.
مقدار
پیشفرض false
است.
drop: true | false
این
گزینه مشخص
میکند که
آیا
پیامهای
افراد
ناشناس
باید رد
شوند یا نه.
مقدار
پیشفرض true
است.
log: true | false
این
گزینه مشخص
میکند که
آیا
پیامهای
افراد
ناشناس
باید (به
عنوان پیام
info) در ejabberd.log ثبت
شوند. مقدار
پیشفرض false
است.
این ماژول
XEP-0191: Blocking Command را
پیادهسازی
میکند.
این ماژول
به mod_privacy
وابسته است
که در آن همه
پیکربندیها
انجام
میشود.
این ماژول
هیچ
گزینهای
ندارد.
این ماژول
XMPP over BOSH را
همانطور
که در XEP-0124 و XEP-0206
تعریف شده
پیادهسازی
میکند. BOSH
مخفف Bidirectional-streams Over Synchronous HTTP
است. این
امکان را
فراهم
میکند که
اتصالات
طولانیمدت
مورد نیاز XMPP
را از طریق
پروتکل HTTP
شبیهسازی
کنید. در
عمل، این
ماژول
امکان
استفاده از
XMPP را در
مرورگر
بدون
پشتیبانی WebSocket
فراهم
میکند و به
طور کلی
راهی برای
استفاده از
XMPP در عبور از
پروکسی HTTP
است.
گزینههای
موجود:
cache_life_time: timeout()
مشابه
گزینه سطح
بالای cache_life_time
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
مشابه
گزینه سطح
بالای cache_missed
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
مشابه
گزینه سطح
بالای cache_size
اما فقط
برای این
ماژول
اعمال
میشود.
json: true | false
این
گزینه هیچ
تأثیری
ندارد.
max_concat: pos_integer() | infinity
این
گزینه
تعداد
استانزاهایی
که سرور در
یک درخواست bosh
ارسال
میکند را
محدود
میکند.
مقدار
پیشفرض unlimited
است.
max_inactivity: timeout()
این
گزینه
حداکثر
دوره عدم
فعالیت را
تعریف
میکند.
مقدار
پیشفرض 30
ثانیه است.
max_pause: pos_integer()
حداکثر
مدت توقف
موقت جلسه
(بر حسب
ثانیه) که یک
کلاینت
میتواند
درخواست
کند را نشان
میدهد.
مقدار
پیشفرض 120
است.
prebind: true | false
اگر فعال
شود،
کلاینت
میتواند
بدون گذر از
احراز هویت
جلسه ایجاد
کند. اساساً
یک جلسه
جدید با
احراز هویت
ناشناس
ایجاد
میکند.
مقدار
پیشفرض false
است.
queue_type: ram | file
مشابه
گزینه سطح
بالای queue_type
اما فقط
برای این
ماژول
اعمال
میشود.
ram_db_type: mnesia | sql | redis
مشابه
گزینه سطح
بالای default_ram_db
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
مشابه
گزینه سطح
بالای use_cache
اما فقط
برای این
ماژول
اعمال
میشود.
مثال:
listen:
-
port: 5222
module: ejabberd_c2s
-
port: 5443
module: ejabberd_http
request_handlers:
/bosh: mod_bosh
modules:
mod_bosh: {}
این ماژول
XEP-0115: Entity Capabilities را
پیادهسازی
میکند. هدف
اصلی این
ماژول
ارائه
قابلیت PEP
است (به mod_pubsub
مراجعه
کنید).
گزینههای
موجود:
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time
است، اما
فقط برای
این ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed
است، اما
فقط برای
این ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size
است، اما
فقط برای
این ماژول
اعمال
میشود.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db
است، اما
فقط برای
این ماژول
اعمال
میشود.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache
است، اما
فقط برای
این ماژول
اعمال
میشود.
این ماژول
XEP-0280: Message Carbons را
پیادهسازی
میکند. این
ماژول
پیامها را
در تمام
منابع
(دستگاههای)
متصل کاربر
پخش
میکند.
این ماژول
هیچ
گزینهای
ندارد.
این ماژول
امکان
صفبندی
انواع خاصی
از
استانزاها
را فراهم
میکند،
زمانی که
کلاینت
نشان
میدهد که
کاربر در
حال حاضر
بهطور
فعال از
کلاینت
استفاده
نمیکند (به
XEP-0352: Client State Indication
مراجعه
کنید). این
قابلیت
میتواند
پهنای باند
و منابع را
صرفهجویی
کند.
یک
استانزا از
صف حذف
میشود اگر
بهطور
مؤثر توسط
یک
استانزای
جدید منسوخ
شود (مثلاً
یک
استانزای
حضور جدید،
استانزای
قدیمی از
همان
کلاینت را
جایگزین
میکند). صف
خالی
میشود اگر
استانزایی
برسد که در
صف قرار
نمیگیرد،
یا اگر
اندازه صف
به حد معینی
برسد (در حال
حاضر ۱۰۰
استانزا)،
یا اگر
کلاینت
دوباره
فعال شود.
گزینههای
موجود:
queue_chat_states: true | false
اعلانهای
وضعیت چت
«مستقل»
(همانطور
که در XEP-0085: Chat State Notifications
تعریف شده)
را در حالت
عدم فعالیت
کلاینت در
صف قرار
میدهد.
مقدار
پیشفرض true
است.
queue_pep: true | false
اعلانهای
PEP را در حالت
عدم فعالیت
کلاینت در
صف قرار
میدهد.
هنگامی که
صف خالی
میشود،
فقط
جدیدترین
اعلان یک
گره PEP مشخص
تحویل داده
میشود.
مقدار
پیشفرض true
است.
queue_presence: true | false
در حالت
عدم فعالیت
کلاینت،
استانزاهای
حضور که
نشاندهنده
در دسترس
بودن یا
نبودن
هستند را در
صف قرار
میدهد.
مقدار
پیشفرض true
است.
توجه
درباره این
گزینه: در
نسخه ۲۵.۱۰
بهبود
یافته است.
این ماژول
قابلیتهای
پیکربندی
کارگزار را
با استفاده
از XEP-0030: Service Discovery و XEP-0050: Ad-Hoc
Commands فراهم
میکند:
•فهرست و
کشف
اتصالات s2s
خروجی،
نشستهای
کلاینت
آنلاین و
تمام
حسابهای
کاربری
ثبتشده
•اکثر
دستورات ad-hoc
تعریفشده
در XEP-0133: Service Administration
•دستورات
ad-hoc سفارشی
اضافی
مخصوص ejabberd
دستورات ad-hoc
از XEP-0133 که
رفتار
متفاوتی
نسبت به XEP
دارند:
•get-user-roster: به
جای
آیتمهای
فهرست
مخاطبان که
کلاینت
نمیتواند
نمایش دهد،
فیلدهای
استاندارد
برمیگرداند
آن
دستورات ad-hoc
از XEP-0133 که
کلاینت
اجراکننده
دستور را در
پاسخ شامل
نمیشوند:
•get-active-users-num
•get-idle-users-num
•get-active-users
•get-idle-users
آن
دستورات ad-hoc
از XEP-0133 که
پیادهسازی
نشدهاند:
•edit-blacklist
•edit-whitelist
•edit-admin
این ماژول
به mod_adhoc (برای
اجرای
دستورات)
نیاز دارد،
و استفاده
از mod_disco (برای
کشف
دستورات)
توصیه
میشود.
توجه
داشته
باشید که
تمام
دستورات ad-hoc
پیادهسازیشده
توسط این
ماژول،
معادل یک
دستور API
دارند که
میتوانید
با استفاده
از mod_adhoc_api یا هر
رابط API
دیگری اجرا
کنید.
گزینههای
موجود:
access: AccessName
توجه
درباره این
گزینه: در
نسخه ۲۵.۰۳
اضافه شده
است. این
گزینه
تعیین
میکند که
کدام قانون
دسترسی
برای کنترل
اینکه چه
کسی مجاز به
دسترسی به
قابلیتهای
ارائهشده
توسط این
ماژول است،
استفاده
میشود.
مقدار
پیشفرض configure
است.
مثال:
acl:
admin:
user: sun@localhost
access_rules:
configure:
allow: admin
modules:
mod_configure:
access: configure
توجه
درباره این
گزینه: در
نسخه ۲۵.۰۷
بهبود
یافته است.
این ماژول
یک صفحه
ساده برای
کلاینت وب XMPP
به نام Converse
ارائه
میدهد.
برای
استفاده از
این ماژول،
علاوه بر
افزودن آن
به بخش modules،
باید آن را
در listen → ejabberd_http →
listen-options.md#request_handlers|request_handlers
نیز فعال
کنید.
مطمئن
شوید که mod_bosh
یا listen.md#ejabberd_http_ws|ejabberd_http_ws
حداقل در یک
request_handlers فعال
باشد.
وقتی conversejs_css و
conversejs_script روی auto
تنظیم
شدهاند،
بهطور
پیشفرض به
کلاینت
عمومی Converse
اشاره
میکنند.
وقتی این
ماژول در modules
فعال
میشود،
بهطور
خودکار یک request
handler و لینک در WebAdmin
اضافه
میکند. .
این ماژول
از نسخه ejabberd 21.12
در دسترس
است.
گزینههای
موجود:
bosh_service_url: auto | BoshURL
آدرس URL
سرویس BOSH که Converse
میتواند
به آن متصل
شود.
کلیدواژه @HOST@
با نام
میزبان
مجازی
واقعی
جایگزین
میشود. اگر
روی auto تنظیم
شود، URL اولین
request handler BOSH
پیکربندیشده
را میسازد.
مقدار
پیشفرض auto
است.
conversejs_css: auto | URL
آدرس URL
فایل CSS مربوط
به Converse.
کلیدواژه @HOST@
با نام
میزبان
جایگزین
میشود.
مقدار
پیشفرض auto
است.
conversejs_options: {Name: Value}
توجه
درباره این
گزینه: در
نسخه ۲۲.۰۵
اضافه شده
است.
گزینههای
اضافی را
برای ارسال
به Converse مشخص
میکند. به
پیکربندی Converse
مراجعه
کنید. فقط
مقادیر boolean،
عدد صحیح و
رشته
پشتیبانی
میشوند؛
لیستها
پشتیبانی
نمیشوند.
conversejs_plugins: [Filename]
فهرستی
از
فایلهای
محلی اضافی
که به عنوان
اسکریپت در
صفحه اصلی
گنجانده
میشوند.
لطفاً
مطمئن شوید
که این
فایلها در
مسیر
مشخصشده
در گزینه
conversejs_resources ، در
زیردایرکتوری
plugins/ موجود
هستند. توجه
داشته
باشید که libsignal
فقط برای
رمزگذاری OMEMO
در Converse نسخه ۱۳
یا
پایینتر
لازم است؛ Converse
نسخه ۱۴ از
libomemo استفاده
میکند و آن
را شامل
میشود. اگر
از کلاینت
عمومی Converse
استفاده
میکنید،
"libsignal" با URL
کتابخانه
عمومی
جایگزین
میشود.
مقدار
پیشفرض []
است.
conversejs_resources: Path
توجه
درباره این
گزینه: در
نسخه ۲۲.۰۵
اضافه شده
است. مسیر
محلی به
فایلهای Converse.
اگر تنظیم
نشود، از
کلاینت
عمومی Converse
استفاده
خواهد شد.
conversejs_script: auto | URL
آدرس URL
اسکریپت
اصلی Converse.
کلیدواژه @HOST@
با نام
میزبان
جایگزین
میشود.
مقدار
پیشفرض auto
است.
default_domain: Domain
یک دامنه
را به عنوان
پیشفرض
برای JIDهای
کاربری
مشخص
میکند.
کلیدواژه @HOST@
با نام
میزبان
جایگزین
میشود.
مقدار
پیشفرض @HOST@
است.
websocket_url: auto | WebSocketURL
یک آدرس URL
WebSocket که Converse
میتواند
به آن متصل
شود.
کلیدواژه @HOST@
با نام
میزبان
مجازی
واقعی
جایگزین
میشود. اگر
روی auto تنظیم
شود، URL اولین
request handler WebSocket
پیکربندیشده
را میسازد.
مقدار
پیشفرض auto
است.
مثالها:
تنظیم
دستی آدرس URL
WebSocket و استفاده
از کلاینت
عمومی Converse:
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"
میزبانی
محلی Converse و
تشخیص
خودکار
آدرسهای URL
WebSocket و Converse:
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
پیکربندی
برخی
گزینههای
اضافی برای
Converse
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
این ماژول
پیادهسازی
XEP-0355: Namespace Delegation است.
تاکنون
تنها حالت
مدیریتی (admin mode)
پیادهسازی
شده است.
واگذاری
فضای نام (Namespace
delegation) به
سرویسهای
خارجی
اجازه
میدهد تا IQ
با فضای نام
مشخصی را
مدیریت
کنند. این
قابلیت
ممکن است
برای سرویس
PEP خارجی به
کار رود.
هشدار
مسئله
امنیتی:
واگذاری
فضای نام به
کامپوننتها
دسترسی به
دادههای
حساس را
فراهم
میکند،
بنابراین
مجوزها
باید با
احتیاط و
تنها در
صورت
اعتماد به
کامپوننت
اعطا شوند.
توجه
این ماژول
مکمل mod_privilege
است اما
میتواند
به صورت
مستقل نیز
استفاده
شود.
گزینههای
موجود:
namespaces: {Namespace: Options}
اگر
میخواهید
فضاهای نام
را به یک
کامپوننت
واگذار
کنید،
آنها را در
این گزینه
مشخص کرده و
به یک قانون
دسترسی
مرتبط
سازید.
Options
عبارتند از:
access: AccessName
این
گزینه
تعیین
میکند
کدام
کامپوننتها
برای
واگذاری
فضای نام
مجاز هستند.
مقدار
پیشفرض none
است.
filtering: Attributes
فهرست
ویژگیها.
در حال حاضر
استفاده
نمیشود.
مثالها:
مطمئن
شوید که یک
فضای نام را
به چندین
سرویس به
صورت
همزمان
واگذار
نمیکنید.
همانطور
که در مثال
زیر نشان
داده شده،
برای اینکه
کامپوننت
sat-pubsub.example.org به
درستی کار
کند، ماژول
mod_pubsub را
غیرفعال
کنید.
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
این ماژول
پشتیبانی
از XEP-0030: Service Discovery را
اضافه
میکند. با
فعال بودن
این ماژول،
سرویسهای
موجود در
کارگزار
شما توسط
کلاینتهای
XMPP قابل کشف
هستند.
گزینههای
موجود:
extra_domains: [Domain, ...]
با این
گزینه
میتوانید
فهرستی از
دامنههای
اضافی را
مشخص کنید
که به فهرست
آیتمهای Service
Discovery افزوده
میشوند.
مقدار
پیشفرض یک
فهرست خالی
است.
name: Name
نام
کارگزار در
Service Discovery. این نام
تنها توسط
کلاینتهای
XMPP خاص نمایش
داده
میشود.
مقدار
پیشفرض ejabberd
است.
server_info: [Info, ...]
اطلاعات
اضافی
درباره
کارگزار را
مشخص
میکند،
همانطور
که در XEP-0157: Contact Addresses for XMPP
Services توضیح
داده شده
است. هر عنصر
Info در فهرست
از
گزینههای
زیر ساخته
میشود:
modules: all | [Module, ...]
مقدار
میتواند
کلیدواژه all
باشد که در
آن صورت
اطلاعات در
همه
سرویسها
گزارش
میشود، یا
فهرستی از
ماژولهای
ejabberd که در آن
صورت
اطلاعات
تنها برای
سرویسهای
ارائه شده
توسط آن
ماژولها
مشخص
میشود.
name: Name
نام فیلد
var که تعریف
خواهد شد.
برای
نامهای
استاندارد
شده به XEP-0157
مراجعه
کنید.
urls: [URI, ...]
فهرستی
از URIهای
تماس،
مانند URLهای
HTTP، URIهای XMPP و
موارد
مشابه.
مثال:
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
این ماژول
آدرسهای IP
که
نشانههای
مخرب نشان
میدهند را
مسدود
میکند. در
حال حاضر
تنها
شکستهای
احراز هویت
C2S شناسایی
میشوند.
برخلاف
برنامه
مستقل، mod_fail2ban
پس از گذشت
مدتی از
اولین شکست
یا در صورت
احراز هویت
موفق،
سابقه
شکستهای
احراز هویت
را پاک
میکند.
همچنین به
جای مسدود
کردن ساده
ترافیک
شبکه، یک
پیام خطای
توصیفی
برای
کلاینت
ارسال
میکند.
هشدار
نباید از
این ماژول
پشت یک
پروکسی یا load
balancer استفاده
کنید. ejabberd
شکستها را
از دیدگاه load
balancer میبیند و
هنگامی که
آستانه
شکستهای
احراز هویت
به حد مجاز
رسید، تمام
اتصالات از
load balancer را رد
خواهد کرد.
استفاده از
این ماژول
پشت یک
پروکسی
میتواند
باعث شود
همه
کاربران
شما از ejabberd قفل
شوند.
گزینههای
موجود:
access: AccessName
یک قانون
دسترسی
برای لیست
سفید کردن
آدرسهای IP
یا شبکهها
مشخص
میکند. اگر
قانون برای
یک آدرس IP خاص
allow
برگرداند،
آن آدرس
هرگز مسدود
نخواهد شد.
AccessName باید از
نوع ip باشد.
مقدار
پیشفرض none
است.
c2s_auth_ban_lifetime: timeout()
مدت زمان
مسدودیت IP
ناشی از
تعداد زیاد
شکستهای
احراز هویت C2S.
مقدار
پیشفرض 1
ساعت است.
c2s_max_auth_failures: Number
تعداد
شکستهای
احراز هویت C2S
برای
فعالسازی
مسدودیت IP.
مقدار
پیشفرض 20
است.
برچسبهای
API:
../../developer/ejabberd-api/admin-tags.md#accounts|accounts
توجه
درباره این
گزینه: در
نسخه 22.05
اضافه شده
است.
این ماژول
فایلهای
کوچک host-meta را
همانطور
که در XEP-0156: Discovering Alternative XMPP
Connection Methods توضیح
داده شده،
ارائه
میدهد.
برای
استفاده از
این ماژول،
علاوه بر
افزودن آن
به بخش modules،
باید آن را
در listen → ejabberd_http →
listen-options.md#request_handlers|request_handlers
نیز فعال
کنید.
توجه
داشته
باشید که
این ماژول
تنها زمانی
کار میکند
که listen.md#ejabberd_http|ejabberd_http
دارای listen-options.md#tls|tls
فعال باشد.
گزینههای
موجود:
bosh_service_url: undefined | auto | BoshURL
URL سرویس BOSH
برای اعلام.
کلیدواژه @HOST@
با نام
واقعی
میزبان
مجازی
جایگزین
میشود. اگر
روی auto تنظیم
شود، URL اولین
کنترلکننده
درخواست BOSH
پیکربندی
شده را
میسازد.
مقدار
پیشفرض auto
است.
websocket_url: undefined | auto | WebSocketURL
URL WebSocket برای
اعلام.
کلیدواژه @HOST@
با نام
واقعی
میزبان
مجازی
جایگزین
میشود. اگر
روی auto تنظیم
شود، URL اولین
کنترلکننده
درخواست WebSocket
پیکربندی
شده را
میسازد.
مقدار
پیشفرض auto
است.
مثال:
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"
این ماژول
یک رابط ReST
برای
فراخوانی
دستورات
../../developer/ejabberd-api/index.md|ejabberd API با
استفاده از
دادههای JSON
فراهم
میکند.
برای
استفاده از
این ماژول،
علاوه بر
افزودن آن
به بخش modules،
باید آن را
در listen → ejabberd_http →
listen-options.md#request_handlers|request_handlers
نیز فعال
کنید.
برای
استفاده از
نسخه API خاص N،
هنگام
تعریف مسیر
URL در request_handlers، یک vN
اضافه کنید.
به عنوان
مثال: /api/v2: mod_http_api.
برای
اجرای یک
دستور، یک
درخواست POST
به URL مربوطه
ارسال کنید:
http://localhost:5280/api/COMMAND-NAME
گزینههای
موجود:
default_version: integer() | string()
توجه
درباره این
گزینه: در
نسخه 24.12
اضافه شده
است. تعیین
میکند که
هنگامی که
هیچ
نسخهای در
مسیر URL مشخص
نشده، از
کدام نسخه API
استفاده
شود. اگر یک
نسخه ejabberd
تنظیم شود،
از آخرین
نسخه API که در
آن نسخه ejabberd
موجود بوده
استفاده
خواهد کرد.
به عنوان
مثال،
تنظیم "24.06"
در این
گزینه به
معنای 2 است.
مقدار
پیشفرض
آخرین نسخه
است.
مثال:
listen:
-
port: 5280
module: ejabberd_http
request_handlers:
/api: mod_http_api
modules:
mod_http_api:
default_version: 2
توجه
درباره این
گزینه:
بهبود docroot در
نسخه ۲۶.۰۱.
این ماژول
ساده،
فایلها را
از دیسک
محلی از
طریق HTTP
ارائه
میدهد.
گزینههای
موجود:
accesslog: Path
فایلی
برای ثبت
دسترسیها
با فرمت
مشابه Apache. اگر
این گزینه
مشخص نشود،
هیچ گزارشی
ثبت نخواهد
شد.
content_types: {Extension: Type}
نگاشت
پسوند به
نوع محتوا
را مشخص
میکند.
چندین نوع
محتوا از
پیش تعریف
شدهاند. با
این گزینه
میتوانید
تعاریف
جدید اضافه
کنید یا
تعاریف
موجود را
تغییر دهید.
مقادیر
پیشفرض
عبارتند از:
مثال:
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
custom_headers: {Name: Value}
سرآیندهای
سفارشی HTTP که
باید در
تمام
پاسخها
گنجانده
شوند را
مشخص
میکند.
بهطور
پیشفرض
هیچ سرآیند
سفارشی
وجود
ندارد.
default_content_type: Type
نوع
محتوا برای
پسوندهای
ناشناخته
را مشخص
میکند.
مقدار
پیشفرض
application/octet-stream است.
directory_indices: [Index, ...]
یک یا
چند فایل
فهرست
دایرکتوری
را مشخص
میکند،
مشابه
متغیر DirectoryIndex
در Apache. هنگامی
که یک
درخواست HTTP به
جای فایل
معمولی به
یک
دایرکتوری
میرسد،
این
فایلهای
فهرست به
ترتیب
جستجو
میشوند و
اولین مورد
یافتشده
بازگردانده
میشود.
مقدار
پیشفرض یک
لیست خالی
است.
docroot: PathDir | {PathURL, PathDir}
توجه
درباره این
گزینه:
بهبود
یافته در
نسخه ۲۶.۰۱.
دایرکتوری
برای ارائه
فایلها،
یا نگاشتی
از چندین
مسیر URL (طبق
مشخصات
listen-options.md#request_handlers|request_handlers) و
دایرکتوریهای
متناظر
آنها. این
یک گزینه
اجباری است.
مثال:
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
must_authenticate_with: [{Username, Hostname},
...]
فهرست
حسابهایی
که مجاز به
استفاده از
این سرویس
هستند.
مقدار
پیشفرض: [].
مثالها:
این
پیکربندی
نمونه،
فایلها را
از
دایرکتوری
محلی /var/www در
آدرس http://example.org:5280/pub/content/
ارائه
میدهد. در
این مثال یک
نوع محتوای
جدید ogg
تعریف شده،
png بازتعریف
شده و تعریف
jpg حذف شده
است:
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's a widely-believed fact!"
content_types:
.ogg: audio/ogg
.png: image/png
default_content_type: text/html
توجه
درباره این
گزینه: content_types
در نسخه
۲۶.۰۱ اضافه
شد.
این ماژول
امکان
درخواست
مجوز برای
آپلود فایل
از طریق HTTP را
فراهم
میکند،
طبق XEP-0363: HTTP File Upload.
اگر
درخواست
پذیرفته
شود،
کلاینت یک URL
برای آپلود
فایل و یک URL
دیگر برای
دانلود آن
فایل
دریافت
میکند.
برای
استفاده از
این ماژول،
باید در listen →
ejabberd_http →
listen-options.md#request_handlers|request_handlers
فعالسازی
شود.
گزینههای
موجود:
access: AccessName
این
گزینه
قانون
دسترسی را
برای محدود
کردن
افرادی که
مجاز به
استفاده از
سرویس
آپلود HTTP
هستند
تعریف
میکند.
مقدار
پیشفرض local
است. اگر
قانون
دسترسی با
آن نام وجود
نداشته
باشد، هیچ
کاربری
مجاز به
استفاده از
سرویس
نخواهد
بود.
append_module_config 🟠: {UploadHost:
Options}
توجه
درباره این
گزینه: در
نسخه ۲۶.۰۷
اضافه شد.
چند گزینه
خاص را به یک
هاست آپلود
مشخص که
پیشتر در
گزینه
hosts
ماژول mod_http_upload
تعریف شده،
اضافه
میکند. در
حال حاضر
فقط
name و
vcard
میتوانند
اینجا
تعریف شوند.
این مشابه
گزینه سطح
بالای
append_host_config
است، با این
تفاوت که
روی
گزینههای
این ماژول
اعمال
میشود.
مثال:
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"
content_types: {Extension: Type}
توجه
درباره این
گزینه: در
نسخه ۲۶.۰۱
اضافه شد.
نگاشت
پسوند به
نوع محتوا
را مشخص
میکند،
مشابه
گزینه content_types در
mod_http_fileserver.
custom_headers: {Name: Value}
این
گزینه
فیلدهای
سرآیند
اضافی را که
باید در
تمام
پاسخهای HTTP
گنجانده
شوند مشخص
میکند.
بهطور
پیشفرض
هیچ سرآیند
سفارشی
وجود
ندارد.
dir_mode: Permission
این
گزینه
بیتهای
مجوز
دایرکتوری
docroot و هر
دایرکتوری
ایجادشده
در هنگام
آپلود فایل
را تعریف
میکند.
بیتها به
صورت عدد
مبنای هشت
(مراجعه
کنید به
صفحه
راهنمای
chmod(1))
داخل گیومه
دوتایی
مشخص
میشوند. به
عنوان مثال:
"0755". مقدار
پیشفرض
تعریفنشده
است، یعنی
هیچ مجوز
صریحی
تنظیم
نخواهد شد.
docroot: Path
فایلهای
آپلودشده
در زیر
دایرکتوری
مشخصشده
(به عنوان
مسیر مطلق)
با این
گزینه
ذخیره
میشوند.
کلیدواژه @HOME@
با
دایرکتوری
خانگی
کاربری که ejabberd
را اجرا
میکند
جایگزین
میشود، و
کلیدواژه @HOST@
با نام هاست
مجازی.
مقدار
پیشفرض
"@HOME@/upload" است.
external_secret: Text
این
گزینه
امکان
واگذاری
تمام
پردازشهای
HTTP Upload به یک سرور
HTTP جداگانه را
فراهم
میکند. هر
دو سرور ejabberd و
سرور HTTP باید
این رمز
مشترک را
داشته
باشند و
دقیقاً طبق
مشخصات Prosody’s
mod_http_upload_external: Implementation عمل
کنند. هیچ
مقدار
پیشفرضی
وجود
ندارد.
file_mode: Permission
این
گزینه
بیتهای
مجوز
فایلهای
آپلودشده
را تعریف
میکند.
بیتها به
صورت عدد
مبنای هشت
(مراجعه
کنید به
صفحه
راهنمای
chmod(1))
داخل گیومه
دوتایی
مشخص
میشوند. به
عنوان مثال:
"0644". مقدار
پیشفرض
تعریفنشده
است، یعنی
هیچ مجوز
صریحی
تنظیم
نخواهد شد.
get_url: URL
این
گزینه بخش
ابتدایی
URLهای GET که
برای
دانلود
فایلها
استفاده
میشوند را
مشخص
میکند.
مقدار
پیشفرض undefined
است. هنگامی
که این
گزینه undefined
باشد،
مقدار آن با
مقدار put_url
یکسان
تنظیم
میشود.
کلیدواژه @HOST@
با نام هاست
مجازی
جایگزین
میشود.
توجه: اگر
درخواستهای
GET توسط این
ماژول
پردازش
شوند، get_url
باید با put_url
مطابقت
داشته باشد.
تنظیم آن به
مقدار
متفاوت
تنها زمانی
منطقی است
که از یک
وبسرور
خارجی یا
mod_http_fileserver برای
ارائه
فایلهای
آپلودشده
استفاده
شود.
host
منسوخ
شده. به جای
آن از hosts
استفاده
کنید.
hosts: [Host, ...]
این
گزینه
شناسههای
Jabber سرویس را
تعریف
میکند. اگر
گزینه hosts
مشخص نشود،
تنها شناسه
Jabber، نام هاست
مجازی با
پیشوند "upload."
خواهد بود.
کلیدواژه @HOST@
با نام هاست
مجازی
واقعی
جایگزین
میشود.
jid_in_url: node | sha1
وقتی این
گزینه روی node
تنظیم شود،
شناسه گره JID
کاربر (یعنی
نام کاربری)
در URLهای GET و PUT
تولیدشده
توسط mod_http_upload
گنجانده
میشود. در
غیر این
صورت، به
جای آن یک هش
SHA-1 از JID ساده
کاربر
گنجانده
میشود.
مقدار
پیشفرض sha1
است.
max_size: Size
این
گزینه
حداکثر حجم
قابل قبول
فایل را
محدود
میکند.
باید یک عدد
بایت
(بزرگتر از
صفر) یا infinity
مشخص شود.
مقدار
پیشفرض 104857600
است.
name: Name
نام
سرویس در Service Discovery.
مقدار
پیشفرض "HTTP File
Upload" است. توجه
داشته
باشید که
این نام
تنها توسط
برخی
کلاینتهای
XMPP نمایش داده
میشود.
put_url: URL
این
گزینه بخش
ابتدایی
URLهای PUT که
برای آپلود
فایل
استفاده
میشوند را
مشخص
میکند.
کلیدواژه
@HOST@
با نام هاست
مجازی
جایگزین
میشود. و
@HOST_URL_ENCODE@ با نام
هاست
کدگذاریشده
برای URL
جایگزین
میشود، که
برای
هاستهای
مجازی حاوی
کاراکترهای
غیرلاتین
مفید است.
توجه:
هاستهای
مجازی
مختلف
نمیتوانند
از یک URL PUT
یکسان
استفاده
کنند. مقدار
پیشفرض
"https://@HOST@:5443/upload" است.
rm_on_unregister: true | false
این
گزینه مشخص
میکند که
آیا
فایلهای
آپلودشده
توسط یک
کاربر
هنگام لغو
ثبتنام آن
کاربر باید
حذف شوند یا
خیر. مقدار
پیشفرض true
است.
secret_length: Length
این
گزینه طول
رشته
تصادفی
گنجاندهشده
در URLهای GET و PUT
تولیدشده
توسط mod_http_upload را
تعریف
میکند.
حداقل طول 8
کاراکتر
است، اما
توصیه
میشود
مقدار
بزرگتری
انتخاب شود.
مقدار
پیشفرض 40
است.
service_url
منسوخ
شده.
thumbnail: true | false
این
گزینه مشخص
میکند که
آیا ejabberd باید
تصاویر
کوچک (thumbnail) از
تصاویر
آپلودشده
ایجاد کند
یا خیر. اگر
یک تصویر
کوچک ایجاد
شود، یک
عنصر <thumbnail/> که
حاوی <uri/>
دانلود و
برخی
متادیتا
است، همراه
با پاسخ PUT
بازگردانده
میشود.
مقدار
پیشفرض false
است.
vcard: vCard
یک vCard
سفارشی
برای سرویس
که توسط
برخی
کلاینتهای
XMPP در Service Discovery
نمایش داده
میشود.
مقدار
vCard یک
نگاشت YAML است
که از نمایش XML
یک vCard ساخته
شده. از آنجا
که این
نمایش فاقد
ویژگی (attribute)
است، نگاشت
ساده است.
مثال:
# This XML representation of vCard:
# <vCard xmlns='vcard-temp'>
# <FN>Conferences</FN>
# <ADR>
# <WORK/>
# <STREET>Elm Street</STREET>
# </ADR>
# </vCard>
#
# is translated to:
vcard:
fn: Conferences
adr:
-
work: true
street: Elm Street
مثال:
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"
این ماژول
پشتیبانی
از سهمیه (quota)
را برای mod_http_upload
اضافه
میکند.
این ماژول
به mod_http_upload
وابسته
است.
گزینههای
موجود:
access_hard_quota: AccessName
این
گزینه
تعریف
میکند که
کدام قانون
دسترسی
برای تعیین
«سهمیه
سخت» (hard quota) برای
JIDهای مطابق
استفاده
میشود. آن
قانون باید
برای هر JIDی که
قرار است
محدودیت
سهمیه
داشته
باشد، یک
عدد مثبت
برگرداند.
این عدد،
مقدار
مگابایتی
است که
کاربر
مربوطه
میتواند
آپلود کند.
هنگامی که
این آستانه
از حد تجاوز
کند، ejabberd
قدیمیترین
فایلهای
آپلود شده
توسط آن
کاربر را
حذف میکند
تا مصرف
دیسک آنها
برابر یا
کمتر از
سهمیه نرم (soft quota)
مشخص شده
شود (همچنین
گزینه access_soft_quota
را ببینید).
مقدار
پیشفرض
hard_upload_quota است.
access_soft_quota: AccessName
این
گزینه
تعریف
میکند که
کدام قانون
دسترسی
برای تعیین
«سهمیه
نرم» (soft quota) برای
JIDهای مطابق
استفاده
میشود. آن
قانون باید
برای هر JIDی که
قرار است
محدودیت
سهمیه
داشته
باشد، یک
عدد مثبت بر
حسب
مگابایت
برگرداند.
برای
جزئیات
بیشتر
توضیحات
گزینه access_hard_quota
را ببینید.
مقدار
پیشفرض
soft_upload_quota است.
max_days: Days
اگر عددی
بزرگتر از
صفر مشخص
شود، هر
فایل (و
دایرکتوری)
که
قدیمیتر
از این
تعداد روز
باشد، یک
بار در روز
از
زیردایرکتوریهای
دایرکتوری
docroot حذف
میشود.
مقدار
پیشفرض infinity
است.
مثالها:
توجه
داشته
باشید که
برای
استفاده از
قابلیت
سهمیه،
لازم نیست
گزینههای
access_hard_quota و access_soft_quota را
مشخص کنید.
میتوانید
از نامهای
پیشفرض
استفاده
کنید و فقط
قوانین
دسترسی
مانند این
مثال را
تعریف
کنید:
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
توجه در
مورد این
گزینه:
بهبودیافته
در نسخه 26.07.
این ماژول
دعوتنامه
کاربر و
ایجاد حساب
کاربری را
برای ایجاد
لینکهای
خارج از
باند (out-of-band) جهت
عضویت
دیگران در
شبکه XMPP و
برقراری
اشتراک
متقابل
فراهم
میکند. این
ماژول XEP-0379: Pre-Authenticated Roster
Subscription، XEP-0401: Ad-hoc Account Invitation Generation و
XEP-0445: Pre-Authenticated In-Band Registration را
پیادهسازی
میکند.
این
دعوتنامهها
به صورت URI
های XMPP، از
طریق
دستورات ad-hoc
یا دستورات
API (مانند API generate_invite
و API generate_invite_with_username)
ایجاد
میشوند و
سپس قرار
است به صورت
خارج از
باند ارسال
شوند.
کاربر
دریافتکننده
باید یک
کلاینت نصب
کرده باشد
که از این
دعوتنامهها
پشتیبانی
کند. از آنجا
که این
موضوع به یک
مانع رایج
برای
استقرار
آسان تبدیل
شده است،
این ماژول
با یک
پارامتر
صفحه فرود
اختیاری
ارائه
میشود که
میتواند
یا یک سرویس
خارجی
مانند نصب
easy-xmpp-invitation، یک
سرویس شخص
ثالث مانند
JoinJabber یا برای
راحتی یک
سرویس
داخلی باشد.
این صفحه
فرود سپس
گیرنده را
در
راهاندازی
یک کلاینت و
در صورت
نیاز ایجاد
یک حساب
کاربری
راهنمایی
میکند.
برای
استفاده از
قابلیت
صفحه فرود
داخلی،
باید landing_page را
روی auto یا یک
قالب URL
مانند https://{{ host }}/invites/{{
invite.token }} تنظیم
کنید، اگر
تنظیمات
سرور شما
شامل یک
پروکسی
معکوس (reverse proxy)
است. علاوه
بر این،
باید این
ماژول را به
عنوان یک
هندلر برای
شنونده ejabberd_http
متصل کنید،
همانطور که
در مثال زیر
نشان داده
شده است.
برای
راحتی،
اکنون یک
صفحه شروع
نیز در هر
جایی که mod_invites
را در هندلر
ejabberd_http متصل
میکنید
گنجانده
شده است. این
صفحه شروع
به افراد
اجازه
میدهد با
وارد کردن
نام کاربری
و رمز عبور
خود،
دعوتنامه
تولید کنند.
به همین
دلیل URL باید
توسط HTTPS
محافظت شود.
مورد
استفاده
اصلی زمانی
است که
افراد فقط
کلاینتهایی
دارند که از
تولید
دعوتنامه
به صورت
بومی
پشتیبانی
نمیکنند.
اگر ترجیح
میدهید از
یک سرویس
خارجی
استفاده
کنید، landing_page را
روی چیزی
مانند http://{{ host
}}:8080/easy-xmpp-invites/#{{ invite.uri|strip_protocol }} یا
https://invites.joinjabber.org/#{{ invite.uri|strip_protocol }}
تنظیم
کنید.
گزینههای
موجود:
access_create_account: Access Rule Name
این نام
یک قانون
دسترسی است
که مشخص
میکند چه
کسی مجاز به
ایجاد
دعوتنامههای
create account است.
مقدار
پیشفرض none
است، یعنی
هیچکس
قادر به
ایجاد چنین
دعوتنامههایی
نیست. علاوه
بر این، این
گزینه بر
دعوتنامههای
roster اعمال
میشود و
اگر کاربر
فرستنده
توسط این
قانون مجاز
باشد،
ثبتنام
درونباند (IBR)
را نیز
امکانپذیر
میکند.
کاربران از ACL
admin همیشه
مجاز به
ایجاد این
دعوتنامهها
هستند.
مثال:
mod_invites:
access_create_account: local
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
landing_page: none | auto |
LandingPageURLTemplate
آیا برای
دعوتنامههایی
که ایجاد
میشوند از
یک صفحه
فرود
استفاده
شود یا خیر.
در صورت
استفاده از
یک قالب 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
است.
max_invites: pos_integer() | infinity
حداکثر
تعداد
دعوتنامههای
create account که یک
کاربر
منفرد
میتواند
ایجاد کند.
کاربرانی
که با ACL admin
مطابقت
دارند از
این
محدودیت
معاف هستند.
علاوه بر
این،
استفاده از
دعوتنامههای
roster برای
ایجاد حساب
کاربری را
محدود
میکند.
مقدار
پیشفرض infinity
است.
site_name: Site Name
یک نام
قابل
خواندن
توسط انسان
برای سایت
شما. مثلاً "My
Beautiful Laundrette". در
قالبهای
صفحه فرود
استفاده
میشود.
templates_dir: Path
دایرکتوری
حاوی
قالبها و
فایلهای
ایستا که
برای صفحه
فرود و فرم
ثبتنام وب
استفاده
میشوند.
فقط در
صورتی باید
تنظیم شود
که بخواهید
مجموعه
قالبهای
خود یا
فهرست
برنامههای
توصیهشده
خود را
ارسال
کنید.
token_expire_seconds: pos_integer()
تعداد
ثانیهها
تا انقضای
توکن. مقدار
پیشفرض 432000
است (یعنی
پنج روز: 5 * 24 * 60 * 60).
webchat_url: none | auto | Webchat URL
توجه در
مورد این
گزینه:
اضافهشده
در نسخه 26.03. URL به
یک کلاینت
وبچت. در
هنگام
ثبتنام
دستی از
طریق فرم
وب، این
گزینه برای
شروع کار
توصیه
میشود. اگر
auto انتخاب
شود، mod_conversejs از
بخش
شنوندگان
انتخاب
میشود.
مقدار
پیشفرض auto
است.
مثالها:
پیکربندی
پایه با
صفحه فرود
اما بدون
ایجاد حساب
کاربری،
فقط
دعوتنامههای
roster:
listen:
-
port: 5281
module: ejabberd_http
request_handlers:
/invites: mod_invites
# [...]
modules:
mod_invites:
landing_page: auto
برای
اینکه فقط
کاربران admin
بتوانند
دعوتنامههای
create account ایجاد
کنند و
ثبتنام
درونباند
معمولی را
غیرفعال
کنید،
پیکربندی
زیر را
خواهید
داشت:
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
اگر
میخواهید
همه
کاربران
شما
بتوانند
دعوتنامههای
create account ارسال
کنند، به
جای آن سرور
خود را
اینگونه
پیکربندی
کنید. توجه
داشته
باشید که
نام قوانین
دسترسی فقط
مثال هستند
و شما آزاد
هستید
آنها را
تغییر
دهید.
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
این ماژول
به
کلاینتهای
XMPP اجازه
میدهد از
سرور
بخواهند که
یک JID را طبق
قوانین
مشخصشده
در RFC 6122: XMPP Address Format
نرمالسازی
کند. این
ممکن است
برای
کلاینتهایی
در
محیطهای
محدود خاص،
یا برای
اهداف
آزمایشی
مفید باشد.
گزینههای
موجود:
access: AccessName
این
گزینه
تعریف
میکند که
کدام قانون
دسترسی
برای کنترل
اینکه چه
کسی مجاز به
استفاده از
این سرویس
است
استفاده
میشود.
مقدار
پیشفرض local
است.
این ماژول
پشتیبانی
از XEP-0012: Last Activity را
اضافه
میکند.
میتوان از
آن برای کشف
آخرین زمان
دسترسی یک
کاربر
قطعشده به
سرور،
دانستن
آخرین
فعالیت یک
کاربر متصل
روی سرور،
یا پرسوجو
از مدت زمان
فعالیت
سرور ejabberd
استفاده
کرد.
گزینههای
موجود:
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
این ماژول
XEP-0078: Non-SASL Authentication را
پیادهسازی
میکند.
توجه
این نوع
احراز هویت
در سال ۲۰۰۸
منسوخ شد و
احتمالاً
نیازی به
این ماژول
ندارید مگر
اینکه چیزی
مانند
رباتهای
جبر قدیمی
داشته
باشید.
این ماژول
هیچ
گزینهای
ندارد.
این ماژول
XEP-0313: Message Archive Management و XEP-0441: Message Archive
Management Preferences را
پیادهسازی
میکند.
کلاینتهای
XMPP سازگار
میتوانند
از آن برای
ذخیره
تاریخچه چت
خود در سرور
استفاده
کنند.
توجه
پشتیبان Mnesia
برای mod_mam
توصیه
نمیشود:
محدود به ۲
گیگابایت
است و اغلب
هنگام
رسیدن به
این
محدودیت
خراب
میشود.
پشتیبان SQL
توصیه
میشود. به
طور خاص،
برای
سرورهای
کوچک SQLite
انتخاب
ترجیحی است
زیرا
پیکربندی
آن بسیار
آسان است.
گزینههای
موجود:
access_preferences: AccessName
این
قانون
دسترسی
تعریف
میکند که
چه کسی مجاز
به تغییر
تنظیمات MAM
است. مقدار
پیشفرض all
است.
archive_muc_as_mucsub: true | false
توجه در
مورد این
گزینه:
اضافهشده
در نسخه 25.10.
هنگامی که
این گزینه
فعال است،
پیامهای groupchat
دریافتی
برای
کاربرانی
که اشتراک mucsub
در اتاقی
دارند که
پیام از آن
نشأت
گرفته، پس
از تبدیل به
پیامهای
رویداد mucsub
بایگانی
میشوند.
مقدار
پیشفرض false
است.
assume_mam_usage: true | false
این
گزینه
تعیین
میکند که
کد مدیریت
جریان ejabberd (به
mod_stream_mgmt مراجعه
کنید) چگونه
پیامهای
تأییدنشده
را هنگام از
دست رفتن
اتصال
مدیریت کند.
معمولاً
چنین
پیامهایی
یا برگشت
داده
میشوند یا
مجدداً
ارسال
میشوند. با
این حال،
اگر این
گزینه روی true
تنظیم شود،
هیچکدام
از این
کارها برای
پیامهایی
که در
بایگانی MAM
کاربر
ذخیره
شدهاند
انجام
نمیشود. در
این حالت، ejabberd
فرض میکند
که آن
پیامها از
بایگانی
بازیابی
خواهند شد.
مقدار
پیشفرض false
است.
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
clear_archive_on_room_destroy: true | false
آیا
هنگام
نابودی
بایگانی
پیام یک
اتاق (به mod_muc
مراجعه
کنید)، آن
بایگانی
حذف شود.
مقدار
پیشفرض true
است.
compress_xml: true | false
هنگامی
که فعال
است،
پیامهای
جدید
اضافهشده
به
بایگانیها
با استفاده
از یک
الگوریتم
فشردهسازی
سفارشی
فشرده
میشوند.
این قابلیت
فقط با
پشتیبانهای
SQL کار میکند.
مقدار
پیشفرض false
است.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
default: always | never | roster
این
گزینه
سیاست
پیشفرض
برای
تاریخچه چت
را تعریف
میکند.
هنگامی که
always تنظیم
شود، هر
پیام چت
ذخیره
میشود. با
roster فقط
تاریخچه چت
با مخاطبین
موجود در roster
کاربر
ذخیره
میشود. و never
تاریخچه چت
را به طور
کامل
غیرفعال
میکند.
توجه داشته
باشید که یک
کلاینت
میتواند
سیاست خود
را از طریق
دستورات
پروتکل
تغییر دهد.
مقدار
پیشفرض never
است.
request_activates_archiving: true | false
اگر
مقدار true
باشد، تا
زمانی که
کلاینت
کاربر یک
درخواست MAM
صادر نکند،
هیچ پیامی
برای آن
کاربر
ذخیره
نمیشود،
صرف نظر از
مقدار
گزینه default. پس
از اینکه
سرور یک
درخواست
دریافت
کرد،
پیامهای
آن کاربر
طبق معمول
بایگانی
میشوند.
مقدار
پیشفرض false
است.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
user_mucsub_from_muc_archive: true | false
هنگامی
که این
گزینه
غیرفعال
است، برای
هر مشترک
منفرد یک
پیام mucsub
جداگانه
ذخیره
میشود. با
فعال بودن
این گزینه،
هنگامی که
کاربر
بایگانی
مجازی mucsub را
دریافت
میکند،
پیامها از
بایگانیهای
muc تولید
میشوند.
مقدار
پیشفرض false
است.
برچسبهای
API: ../../developer/ejabberd-api/admin-tags.md#mam|mam،
../../developer/ejabberd-api/admin-tags.md#purge|purge
توجه
درباره این
گزینه:
بهبودیافته
در نسخه
۲۵.۰۸.
دروازه Matrix.
از
نسخههای
اتاق ۹، ۱۰ و
۱۱ از ejabberd 25.03
پشتیبانی
میکند؛ از
نسخههای
اتاق ۴ و
بالاتر از ejabberd
25.07؛ از نسخه
اتاق ۱۲
(اتاقهای hydra)
از ejabberd 25.08. برای
استفاده از
این ماژول،
Erlang/OTP 25 یا
بالاتر
لازم است.
این ماژول
از ejabberd 24.02 در
دسترس است.
گزینههای
موجود:
host: Host
این
گزینه
شناسههای
Jabber سرویس را
تعریف
میکند. اگر
گزینه host
مشخص نشود،
شناسه Jabber
همان نام
میزبان
مجازی با
پیشوند "matrix."
خواهد بود.
کلیدواژه @HOST@
با نام
واقعی
میزبان
مجازی
جایگزین
میشود.
key: string()
مقدار
کلید امضای
matrix، به صورت base64.
key_name: string()
نام کلید
امضای matrix.
leave_timeout: integer()
تأخیر به
ثانیه بین
خروج کاربر
از اتاق MUC و
ارسال
رویداد leave در
Matrix.
matrix_domain: Domain
یک دامنه
در
فدراسیون Matrix
مشخص
میکند.
کلیدواژه @HOST@
با نام
میزبان
جایگزین
میشود.
مقدار
پیشفرض @HOST@
است.
matrix_id_as_jid: true | false
اگر روی
true تنظیم
شود، تمام
بستههایی
که تحویل
آنها از
طریق اتصال
سرور به
سرور XMPP
ناموفق
است، با
ترجمه
شناسه Jabber user@matrixdomain.tld
به شناسه
کاربری Matrix
@user:matrixdomain.tld به
دروازه Matrix
هدایت
میشوند.
وقتی روی false
تنظیم شود،
پیامها
باید
صریحاً به
شناسه Jabber
سرویس
دروازه matrix
ارسال شوند
تا به سرور Matrix
راه دور
هدایت
گردند. در
این صورت،
برای ارسال
پیام به
کاربر Matrix
@user:matrixdomain.tld،
کلاینت
باید پیامی
به JID
user%matrixdomain.tld@matrix.myxmppdomain.tld
ارسال کند،
که در آن
matrix.myxmppdomain.tld همان JID
سرویس
دروازه است
که توسط
گزینه host
تعیین
میشود.
مقدار
پیشفرض false
است.
notary_servers: [Server, ...]
فهرستی
از سرورهای
notary.
مثال:
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
این ماژول
رویدادها
را به
پشتیبان
خارجی
ارسال
میکند (در
حال حاضر
فقط grapherl
پشتیبانی
میشود).
رویدادهای
پشتیبانیشده
عبارتند
از:
•sm_register_connection
•sm_remove_connection
•user_send_packet
•user_receive_packet
•s2s_send_packet
•s2s_receive_packet
•register_user
•remove_user
•offline_message
وقتی فعال
باشد، هر
فراخوانی
به این
هوکها یک
رویداد
شمارنده را
به پشتیبان
خارجی
ارسال
میکند.
گزینههای
موجود:
ip: IPv4Address
آدرس IPv4
محلی که
پشتیبان در
آن قرار
دارد. مقدار
پیشفرض 127.0.0.1
است.
port: Port
شماره
پورت
اینترنتی
که پشتیبان
برای
دریافت
اتصالات/بستههای
ورودی روی
آن گوش
میدهد.
مقدار
پیشفرض 11111
است.
توجه
درباره این
گزینه:
اضافهشده
در ۱۶.۰۳ و
بهبودیافته
در ۱۹.۰۲.
این ماژول
یک
پیادهسازی
آزمایشی از
XEP-0369: Mediated Information eXchange (MIX) است.
ادعا
میشود که
پروتکل MIX در
آینده
جایگزین
پروتکل MUC
خواهد شد
(نگاه کنید
به mod_muc).
برای
آشنایی
بیشتر با
نحوه
استفاده از
این
قابلیت،
میتوانید
به آموزش ما
مراجعه
کنید: ../../tutorials/mix-010.md|Getting
started with MIX
این ماژول
به mod_mam
وابسته
است.
گزینههای
موجود:
access_create: AccessName
یک قانون
دسترسی
برای کنترل
ایجاد
کانالهای MIX.
مقدار
پیشفرض all
است.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
host
منسوخشده.
به جای آن از
hosts استفاده
کنید.
hosts: [Host, ...]
این
گزینه
شناسههای
Jabber سرویس را
تعریف
میکند. اگر
گزینه hosts
مشخص نشود،
تنها شناسه
Jabber همان نام
میزبان
مجازی با
پیشوند "mix."
خواهد بود.
کلیدواژه @HOST@
با نام
واقعی
میزبان
مجازی
جایگزین
میشود.
name: Name
نام
سرویس در Service Discovery.
این نام فقط
توسط
کلاینتهای
XMPP خاص نمایش
داده
میشود.
مقدار
پیشفرض Channels
است.
این ماژول
XEP-0405: Mediated Information eXchange (MIX): Participant Server
Requirements را
پیادهسازی
میکند. این
ماژول در
صورتی لازم
است که
کلاینتهای
سازگار با MIX
روی سرور
شما قصد
پیوستن به
کانالهای MIX
را داشته
باشند (چه
روی سرور
شما و چه روی
سرورهای
راه دور).
توجه
mod_mix برای
کارکرد این
ماژول لازم
نیست، اما
بدون mod_mix_pam
قابلیت MIX
کلاینتهای
XMPP محلی شما
دچار اشکال
خواهد شد.
گزینههای
موجود:
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
این ماژول
پشتیبانی
از پروتکل
../guide/mqtt/index.md|MQTT
نسخههای
3.1.1 و 5.0 را
اضافه
میکند. به
یاد داشته
باشید که mod_mqtt
را در
بخشهای modules
و listen
پیکربندی
کنید.
گزینههای
موجود:
access_publish: {TopicFilter: AccessName}
قوانین
دسترسی
برای
محدودکردن
دسترسی به
موضوعات
برای
ناشران. به
طور
پیشفرض
هیچ
محدودیتی
وجود
ندارد.
access_subscribe: {TopicFilter: AccessName}
قوانین
دسترسی
برای
محدودکردن
دسترسی به
موضوعات
برای
مشترکین. به
طور
پیشفرض
هیچ
محدودیتی
وجود
ندارد.
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
match_retained_limit: pos_integer() | infinity
این
گزینه
تعداد
پیامهای
نگهداشتهشدهای
را که هنگام
اشتراک در
یک فیلتر
موضوع به
کلاینت
بازگردانده
میشود
محدود
میکند.
مقدار
پیشفرض 1000
است.
max_queue: Size
حداکثر
اندازه صف
برای
بستههای
خروجی.
مقدار
پیشفرض 5000
است.
max_topic_aliases: 0..65535
حداکثر
تعداد نام
مستعاری که
یک کلاینت
میتواند
با موضوعات
مرتبط کند.
مقدار
پیشفرض 100
است.
max_topic_depth: Depth
حداکثر
عمق موضوع،
یعنی تعداد
اسلشها (/)
در موضوع.
مقدار
پیشفرض 8
است.
queue_type: ram | file
همانند
گزینه سطح
بالای queue_type،
اما فقط
برای این
ماژول
اعمال
میشود.
ram_db_type: mnesia
همانند
گزینه سطح
بالای default_ram_db،
اما فقط
برای این
ماژول
اعمال
میشود.
session_expiry: timeout()
این
گزینه مدت
زمان
انتظار
برای از
سرگیری
نشست MQTT را
مشخص
میکند.
وقتی روی 0
تنظیم شود،
نشست با
بسته شدن
اتصال
زیرین
کلاینت از
بین میرود.
مقدار
پیشفرض 5
دقیقه است.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
این ماژول
قابلیت
همگامسازی
موضوعات (topics)
محلی MQTT با
دادههای
روی
سرورهای
راهدور را
اضافه
میکند.
میتواند
هنگامی که
کاربر محلی
موضوع محلی
را بهروز
میکند،
موضوعات را
روی
سرورهای
راهدور
بهروز
کند، یا
میتواند
مشترک
تغییرات
سرور
راهدور
شود و نسخه
محلی را
هنگام
بهروزرسانی
دادههای
راهدور
بهروز کند.
این ماژول
از ejabberd 23.01 در
دسترس است.
گزینههای
موجود:
replication_user: JID
شناسه
کاربری که
به عنوان
مالک
تغییرات
محلی تعیین
خواهد شد.
servers: {ServerUrl: {Key: Value}}
اعلان
دادههای
مشترک برای
هر ServerUrl.
آدرسهای URL
سرور
میتوانند
از
طرحوارههای
زیر
استفاده
کنند:
mqtt,
mqtts (mqtt
با tls),
mqtt5,
mqtt5s (هر
دو برای
فعالسازی
پروتکل v5),
ws,
wss,
ws5,
wss5. کلیدها
باید به شرح
زیر باشند:
authentication: {AuthKey: AuthValue}
فهرست
اطلاعات
احراز هویت
که AuthKey
میتواند
باشد: username و password
یا certfile که به
گواهینامه
کلاینت
اشاره
میکند.
احراز هویت
با
گواهینامه
فقط با mqtts, mqtt5s, wss, wss5
قابل
استفاده
است.
publish: {LocalTopic: RemoteTopic}
باید publish یا
subscribe یا هر دو
تنظیم
شوند.
subscribe: {RemoteTopic: LocalTopic}
باید publish یا
subscribe یا هر دو
تنظیم
شوند.
مثال:
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 'localA' will be replicated on remote server as 'remoteA'
"topicB": "topicB"
subscribe:
"remoteB": "localB" # changes to 'remoteB' on remote server will be stored as 'localB' on local server
توجه
درباره این
گزینه:
ماژول mod_muc_occupantid
در نسخه 26.02
ادغام شد.
این ماژول
پشتیبانی
از چت
چندکاربره
(MUC) را فراهم
میکند.
کاربران
میتوانند
اتاقهای
موجود را
کشف کنند،
به آنها
بپیوندند
یا اتاق
جدید ایجاد
کنند.
حاضران در
اتاق
میتوانند
به صورت
عمومی چت
کنند یا
مکالمات
خصوصی
داشته
باشند.
پروتکلهای
پیادهسازی
شده در این
ماژول:
•XEP-0045: Multi-User Chat
•XEP-0249: Direct MUC Invitations
•XEP-0421: Occupant identifiers for semi-anonymous
MUCs
•XEP-0486: MUC Avatars
•Muc/Sub: Multi-User Chat Subscriptions
سرویس MUC به
هر Jabber ID اجازه
میدهد یک
ناممستعار
(nickname) ثبت کند
تا هیچکس
دیگری
نتواند از
آن
ناممستعار
در هیچ
اتاقی در
سرویس MUC
استفاده
کند. برای
ثبت
ناممستعار،
کشف سرویس
را در
کلاینت XMPP
خود باز
کنید و در
سرویس MUC
ثبتنام
کنید.
همچنین
امکان ثبت
ناممستعار
در یک اتاق
وجود دارد
تا هیچکس
دیگری
نتواند از
آن
ناممستعار
در آن اتاق
استفاده
کند. اگر یک
ناممستعار
در سرویس MUC
ثبت شده
باشد،
نمیتوان
آن
ناممستعار
را در هیچ
اتاقی ثبت
کرد، و
بالعکس:
ناممستعاری
که در یک
اتاق ثبت
شده،
نمیتواند
در سرویس MUC
ثبت شود.
این ماژول
از
خوشهبندی
و توازن بار
پشتیبانی
میکند. یک
نمونه
ماژول
میتواند
برای هر گره
خوشه
راهاندازی
شود.
اتاقها در
زمان ایجاد
بر روی تمام
نمونههای
ماژول MUC
موجود
توزیع
میشوند.
ماژول چت
چندکاربره
خوشهبندی
شده است اما
خود
اتاقها نه
خوشهبندی
شدهاند و
نه مقاوم در
برابر
خرابی: اگر
گره
مدیریتکننده
مجموعهای
از اتاقها
خاموش شود،
اتاقها
حذف
میشوند و
در اولین
تلاش برای
اتصال روی
گره موجود
دیگری
بازسازی
خواهند شد.
گزینههای
موجود:
access: AccessName
میتوانید
مشخص کنید
چه کسانی
مجاز به
استفاده از
سرویس چت
چندکاربره
هستند. به
طور
پیشفرض
همه مجاز به
استفاده از
آن هستند.
access_admin: AccessName
این
گزینه مشخص
میکند چه
کسانی مجاز
به مدیریت
سرویس چت
چندکاربره
هستند.
مقدار
پیشفرض none
است، به این
معنی که فقط
سازنده
اتاق
میتواند
اتاق خود را
مدیریت کند.
مدیران
میتوانند
یک پیام
معمولی به JID
سرویس
ارسال کنند
و در تمام
اتاقهای
فعال به
عنوان پیام
سرویس
نمایش داده
خواهد شد.
مدیران
میتوانند
یک پیام groupchat به
JID یک اتاق
فعال ارسال
کنند و پیام
به عنوان
پیام سرویس
در اتاق
نمایش داده
خواهد شد.
access_create: AccessName
برای
پیکربندی
اینکه چه
کسانی مجاز
به ایجاد
اتاقهای
جدید در
سرویس چت
چندکاربره
هستند،
میتوان از
این گزینه
استفاده
کرد. مقدار
پیشفرض all
است، به این
معنی که همه
مجاز به
ایجاد اتاق
هستند.
access_mam: AccessName
برای
پیکربندی
اینکه چه
کسانی مجاز
به تغییر
گزینه اتاق
mam هستند.
مقدار
پیشفرض all
است، به این
معنی که همه
مجاز به
تغییر آن
گزینه
هستند.
access_persistent: AccessName
برای
پیکربندی
اینکه چه
کسانی مجاز
به تغییر
گزینه اتاق
persistent هستند.
مقدار
پیشفرض all
است، به این
معنی که همه
مجاز به
تغییر آن
گزینه
هستند.
access_register: AccessName
توجه
درباره این
گزینه: در
نسخه 23.10
بهبود یافت.
این گزینه
مشخص
میکند چه
کسانی مجاز
به ثبت
ناممستعار
در سرویس چت
چندکاربره
و اتاقها
هستند.
مقدار
پیشفرض all
برای
سازگاری با
نسخههای
قبلی است،
به این معنی
که هر
کاربری
مجاز است هر
ناممستعار
آزادی را در
سرویس MUC و در
اتاقها
ثبت کند.
append_module_config 🟠: {MUCHost:
Options}
توجه
درباره این
گزینه: در
نسخه
26.07
اضافه شد.
چند گزینه
خاص را به یک
MUC host مشخص که
قبلاً در
گزینه
hosts
ماژول mod_muc
تعریف شده
اضافه
میکند. این
مشابه
گزینه سطح
بالای
append_host_config
است، اما در
این مورد
برای
گزینههای
mod_muc اعمال
میشود.
مثال:
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"
cleanup_affiliations_on_start: true | false
توجه
درباره این
گزینه: در
نسخه 22.05
اضافه شد. در
هنگام
راهاندازی،
وابستگیها
(affiliations) برای
کاربران
محلی
غیرموجود
حذف
میشوند.
مقدار
پیشفرض false
است.
db_type: mnesia | sql
مانند
گزینه سطح
بالای default_db ،
اما فقط
برای این
ماژول
اعمال
میشود.
default_room_options: Options
گزینههای
پیشفرض
اتاق را
تعریف
میکند.
توجه داشته
باشید که
سازنده
اتاق
میتواند
در هر زمان
با استفاده
از یک
کلاینت XMPP با
قابلیت MUC،
گزینههای
اتاق خود را
تغییر دهد.
گزینههای
Options عبارتند
از:
allow_change_subj: true | false
به
حاضران
اجازه
میدهد
موضوع را
تغییر دهند.
مقدار
پیشفرض true
است.
allow_private_messages_from_visitors: anyone |
moderators | nobody
بازدیدکنندگان
میتوانند
پیام خصوصی
برای سایر
حاضران
ارسال کنند.
مقدار
پیشفرض anyone
است که به
این معنی
است که
بازدیدکنندگان
میتوانند
برای هر
حاضری پیام
خصوصی
ارسال
کنند.
allow_query_users: true | false
حاضران
میتوانند
پرسوجوهای
IQ برای سایر
حاضران
ارسال کنند.
مقدار
پیشفرض true
است.
allow_subscription: true | false
به
کاربران
اجازه
میدهد
مشترک
رویدادهای
اتاق شوند
همانطور
که در
../../developer/xmpp-clients-bots/extensions/muc-sub.md|Multi-User Chat
Subscriptions توضیح
داده شده
است. مقدار
پیشفرض false
است.
allow_user_invites: true | false
به
حاضران
اجازه
میدهد
دعوتنامه
ارسال کنند.
مقدار
پیشفرض false
است.
allow_visitor_nickchange: true | false
به
بازدیدکنندگان
اجازه
میدهد
ناممستعار
را تغییر
دهند. مقدار
پیشفرض true
است.
allow_visitor_status: true | false
به
بازدیدکنندگان
اجازه
میدهد متن
وضعیت را در
بهروزرسانیهای
حضور ارسال
کنند. اگر
غیرمجاز
باشد، متن
وضعیت قبل
از ارسال
بهروزرسانی
حضور به
تمام
حاضران
اتاق، حذف
میشود.
مقدار
پیشفرض true
است.
allow_voice_requests: true | false
به
بازدیدکنندگان
در
اتاقهای
کنترلشده
اجازه
میدهد
درخواست حق
صحبت کنند.
مقدار
پیشفرض true
است.
allowpm: anyone | participants | moderators |
none
چه کسانی
میتوانند
پیام خصوصی
ارسال کنند.
مقدار
پیشفرض anyone
است.
anonymous: true | false
اتاق
ناشناس است:
حاضران JID
واقعی سایر
حاضران را
نمیبینند.
توجه داشته
باشید که
مدیران
اتاق همیشه
میتوانند JID
واقعی
حاضران را
ببینند.
مقدار
پیشفرض true
است.
captcha_protected: true | false
وقتی
کاربری
تلاش
میکند به
اتاقی
بپیوندد که
در آن هیچ
وابستگی
ندارد (نه
مالک، نه
مدیر و نه
عضو)، اتاق
از او
میخواهد
یک چالش CAPTCHA را
تکمیل کند
(به بخش basic.md#captcha|CAPTCHA
مراجعه
کنید) تا
پیوستن وی
به اتاق
پذیرفته
شود. مقدار
پیشفرض false
است.
description: Room Description
توضیح
کوتاهی از
اتاق. مقدار
پیشفرض
رشته خالی
است.
enable_hats: true | false
توجه
درباره این
گزینه: در
نسخه 25.10
بهبود یافت.
اجازه
میدهد
نقشهای
گستردهای
که در XEP-0317: Hats
تعریف
شدهاند،
استفاده
شوند. برای
نسخههای ejabberd
قدیمیتر
از 25.10 به صفحه
../../tutorials/muc-hats.md|MUC Hats
مراجعه
کنید. مقدار
پیشفرض true
است.
lang: Language
زبان
ترجیحی
برای
بحثهای
اتاق. فرمت
زبان باید
مطابق RFC 5646
باشد. هیچ
مقدار
پیشفرضی
وجود
ندارد.
logging: true | false
پیامهای
عمومی با
استفاده از
mod_muc_log ثبت
میشوند.
مقدار
پیشفرض false
است.
mam: true | false
بایگانی
پیام را
فعال
میکند.
مستلزم
فعال بودن mod_mam
است. مقدار
پیشفرض false
است.
max_users: Number
حداکثر
تعداد
حاضران در
اتاق. مقدار
پیشفرض 200
است.
members_by_default: true | false
حاضرانی
که وارد
اتاق
میشوند به
طور
پیشفرض
شرکتکننده
هستند،
بنابراین
"حق صحبت"
دارند.
مقدار
پیشفرض true
است.
members_only: true | false
فقط
اعضای اتاق
میتوانند
وارد شوند.
مقدار
پیشفرض false
است.
moderated: true | false
فقط
حاضرانی که
"حق صحبت"
دارند
میتوانند
پیام عمومی
ارسال کنند.
مقدار
پیشفرض true
است.
password: Password
رمز عبور
اتاق.
مستلزم
تنظیم
گزینه password_protected
بر روی true
است. هیچ
مقدار
پیشفرضی
وجود
ندارد.
password_protected: true | false
برای
ورود به
اتاق رمز
عبور لازم
است. مقدار
پیشفرض false
است.
persistent: true | false
اتاق حتی
اگر آخرین
شرکتکننده
خارج شود
باقی
میماند.
مقدار
پیشفرض false
است.
presence_broadcast: [Role]
فهرست
نقشهایی
که حضورشان
به همه
اعلام
میشود.
فهرست
میتواند
یک یا چند
مورد از
موارد زیر
را شامل شود:
moderator,
participant,
visitor.
مقدار
پیشفرض در
مثال زیر
نشان داده
شده است:
مثال:
presence_broadcast:
- moderator
- participant
- visitor
public: true | false
اتاق در
فهرست
سرویس MUC
عمومی است و
قابل کشف
است. مدیران MUC
و
شرکتکنندگان
اتاق،
اتاقهای
خصوصی را در
کشف سرویس
میبینند
اگر کلاینت XMPP
آنها از
این ویژگی
پشتیبانی
کند. مقدار
پیشفرض true
است.
public_list: true | false
فهرست
شرکتکنندگان
بدون نیاز
به ورود به
اتاق،
عمومی است.
مقدار
پیشفرض true
است.
pubsub: PubSub Node
URI از XMPP گره
Publish/Subscribe مرتبط.
مقدار
پیشفرض
رشته خالی
است.
title: Room Title
عنوان
قابل
خواندن
توسط انسان
برای اتاق.
هیچ مقدار
پیشفرضی
وجود
ندارد.
vcard: vCard
یک vCard
سفارشی
برای اتاق.
به گزینه
معادل آن در
mod_muc مراجعه
کنید. مقدار
پیشفرض
رشته خالی
است.
vcard_xupdate: undefined | external | AvatarHash
هش تصویر
آواتار را
تنظیم
میکند.
مقدار
پیشفرض undefined
است.
voice_request_min_interval: Number
حداقل
فاصله بین
درخواستهای
حق صحبت، بر
حسب ثانیه.
مقدار
پیشفرض 1800
است.
hibernation_timeout: infinity | Seconds
مهلت
زمانی قبل
از به حالت
خواب بردن
فرآیند
اتاق، بر
حسب ثانیه.
مقدار
پیشفرض infinity
است.
history_size: Size
یک
تاریخچه
کوچک از بحث
جاری
هنگامی که
کاربران
وارد اتاق
میشوند
برای آنها
ارسال
میشود. با
این گزینه
میتوانید
تعداد
پیامهای
تاریخچهای
که باید
نگهداری و
برای
کاربرانی
که به اتاق
میپیوندند
ارسال شود
را تعریف
کنید. این
مقدار یک
عدد صحیح
غیرمنفی
است. تنظیم
مقدار به 0
ویژگی
تاریخچه را
غیرفعال
میکند و در
نتیجه هیچ
چیزی در
حافظه
نگهداری
نمیشود.
مقدار
پیشفرض 20
است. این
مقدار بر
تمام
اتاقهای
سرویس
تأثیر
میگذارد.
توجه:
کلاینتهای
مدرن XMPP به
بایگانی
پیام (XEP-0313) متکی
هستند،
بنابراین
اگر فقط از
کلاینتهای
مدرن
استفاده
میکنید و
ماژول mod_mam را
بارگذاری
کردهاید،
میتوانید
آزادانه
ویژگی
تاریخچه را
غیرفعال
کنید.
host
منسوخ
شده. به جای
آن از hosts
استفاده
کنید.
hosts: [Host, ...]
این
گزینه Jabber IDهای
سرویس را
تعریف
میکند. اگر
گزینه hosts
مشخص نشود،
تنها Jabber ID نام
میزبان
مجازی با
پیشوند
"conference." خواهد
بود.
کلیدواژه @HOST@
با نام
واقعی
میزبان
مجازی
جایگزین
میشود.
max_captcha_whitelist: Number
توجه
درباره این
گزینه: در
نسخه 21.01
اضافه شد.
این گزینه
حداکثر
تعداد
کاراکترهایی
که Captcha Whitelist هنگام
پیکربندی
اتاق
میتواند
داشته باشد
را تعریف
میکند.
مقدار
پیشفرض infinity
است.
max_password: Number
توجه
درباره این
گزینه: در
نسخه 21.01
اضافه شد.
این گزینه
حداکثر
تعداد
کاراکترهایی
که رمز عبور
هنگام
پیکربندی
اتاق
میتواند
داشته باشد
را تعریف
میکند.
مقدار
پیشفرض infinity
است.
max_room_desc: Number
این
گزینه
حداکثر
تعداد
کاراکترهایی
که توضیحات
اتاق هنگام
پیکربندی
اتاق
میتواند
داشته باشد
را تعریف
میکند.
مقدار
پیشفرض infinity
است.
max_room_id: Number
این
گزینه
حداکثر
تعداد
کاراکترهایی
که Room ID هنگام
ایجاد اتاق
جدید
میتواند
داشته باشد
را تعریف
میکند.
مقدار
پیشفرض infinity
است.
max_room_name: Number
این
گزینه
حداکثر
تعداد
کاراکترهایی
که نام اتاق
هنگام
پیکربندی
اتاق
میتواند
داشته باشد
را تعریف
میکند.
مقدار
پیشفرض infinity
است.
max_rooms_discoitems: Number
وقتی
تعداد
اتاقها از
این Number
بیشتر
باشد، فقط
اتاقهای
غیرخالی در
پرسوجوی
کشف سرویس
برگردانده
میشوند.
مقدار
پیشفرض 100
است.
max_user_conferences: Number
این
گزینه
حداکثر
تعداد
اتاقهایی
که هر کاربر
میتواند
به آنها
بپیوندد را
تعریف
میکند.
مقدار
پیشفرض 100
است. این
گزینه برای
جلوگیری از
سوءاستفادههای
احتمالی
استفاده
میشود.
توجه داشته
باشید که
این یک
محدودیت
نرم است:
برخی
کاربران
گاهی اوقات
میتوانند
در
پیکربندیهای
خوشهای به
کنفرانسهای
بیشتری
بپیوندند.
max_users: Number
این
گزینه در
سطح سرویس،
حداکثر
تعداد
کاربران
مجاز در هر
اتاق را
تعریف
میکند.
میتوان آن
را در
پیکربندی
هر اتاق
کاهش داد
اما
نمیتوان
در
پیکربندی
اتاقهای
منفرد
افزایش داد.
مقدار
پیشفرض 200
است.
max_users_admin_threshold: Number
این
گزینه
تعداد
مدیران
سرویس یا
مالکان
اتاق مجاز
به ورود به
اتاق را
وقتی که
حداکثر
تعداد
حاضران
مجاز رسیده
است تعریف
میکند.
محدودیت
پیشفرض 5
است.
max_users_presence: Number
این
گزینه
تعریف
میکند که
پس از چه
تعداد
کاربر در
اتاق، اتاق
شلوغ محسوب
میشود.
وقتی یک
اتاق MUC شلوغ
محسوب
میشود،
ارسال
اعلانهای
حضور محدود
میشود تا
بار،
ترافیک و
"طوفان" بیش
از حد حضور
دریافتی
توسط
شرکتکنندگان
کاهش یابد.
مقدار
پیشفرض 1000
است.
min_message_interval: Number
این
گزینه
حداقل
فاصله بین
دو پیام
ارسال شده
توسط یک
حاضر را بر
حسب ثانیه
تعریف
میکند. این
گزینه
سراسری است
و برای تمام
اتاقها
معتبر است.
میتوان از
یک مقدار
اعشاری
استفاده
کرد. وقتی
این گزینه
تعریف نشده
باشد، نرخ
پیام محدود
نمیشود.
این ویژگی
میتواند
برای
محافظت از
یک سرویس MUC در
برابر
سوءاستفاده
حاضران و
محدود کردن
تعداد
پیامهایی
که توسط
سرویس
ارسال
میشود
استفاده
شود. یک
مقدار
مناسب برای
این حداقل
فاصله پیام
0.4 ثانیه است.
اگر یک حاضر
سعی کند
پیامها را
سریعتر
ارسال کند،
یک خطا
ارسال
میشود که
توضیح
میدهد
پیام دور
انداخته
شده و دلیل
غیرقابل
قبول بودن
پیام را شرح
میدهد.
min_presence_interval: Number
این
گزینه
حداقل زمان
بین
تغییرات
حضور از یک
حاضر مشخص
را بر حسب
ثانیه
تعریف
میکند. این
گزینه
سراسری است
و برای تمام
اتاقها
معتبر است.
میتوان از
یک مقدار
اعشاری
استفاده
کرد. وقتی
این گزینه
تعریف نشده
باشد، هیچ
محدودیتی
اعمال
نمیشود.
این گزینه
میتواند
برای
محافظت از
یک سرویس MUC در
برابر
سوءاستفاده
حاضران
استفاده
شود. اگر یک
حاضر سعی
کند حضور
خود را
بیشتر از
فاصله مشخص
شده تغییر
دهد، حضور
توسط ejabberd کش
میشود و
فقط آخرین
حضور پس از
انقضای
تأخیر
فاصله به
تمام
حاضران
اتاق ارسال
میشود.
بستههای
حضور میانی
بیسروصدا
دور
انداخته
میشوند. یک
مقدار
مناسب برای
این گزینه 4
ثانیه است.
name: string()
مقدار
نام سرویس.
این نام فقط
در برخی
کلاینتهایی
که از XEP-0030: Service Discovery
پشتیبانی
میکنند
قابل
مشاهده است.
مقدار
پیشفرض Chatrooms
است.
preload_rooms: true | false
آیا همه
اتاقهای
ماندگار
هنگام
راهاندازی
در حافظه
بارگذاری
شوند. اگر
غیرفعال
باشد، اتاق
فقط در
اولین
پیوستن
شرکتکننده
بارگذاری
میشود.
مقدار
پیشفرض true
است.
غیرفعال
کردن
پیشبارگذاری
اتاق وقتی
تعداد
اتاقها
زیاد است
منطقی است:
این کار
زمان
راهاندازی
سرور و مصرف
حافظه را
بهبود
میدهد.
queue_type: ram | file
مانند
گزینه سطح
بالای queue_type ،
اما فقط
برای این
ماژول
اعمال
میشود.
ram_db_type: mnesia | sql
مانند
گزینه سطح
بالای default_ram_db ،
اما فقط
برای این
ماژول
اعمال
میشود.
regexp_room_id: string()
این
گزینه
عبارت
منظمای را
تعریف
میکند که Room ID
باید برای
اجازه
ایجاد
اتاق، آن را
ارضا کند.
مقدار
پیشفرض
رشته خالی
است.
room_shaper: none | ShaperName
این
گزینه
شکلدهنده
(shaper) برای
اتاقهای MUC
را تعریف
میکند.
مقدار
پیشفرض none
است.
user_message_shaper: none | ShaperName
این
گزینه
شکلدهنده
(shaper) برای
پیامهای
کاربران را
تعریف
میکند.
مقدار
پیشفرض none
است.
user_presence_shaper: none | ShaperName
این
گزینه
شکلدهنده
(shaper) برای
حضورهای
کاربران را
تعریف
میکند.
مقدار
پیشفرض none
است.
vcard: vCard
یک vCard
سفارشی
برای سرویس
که توسط
برخی
کلاینتهای
XMPP در کشف
سرویس
نمایش داده
خواهد شد.
مقدار
vCard یک
نگاشت YAML است
که از نمایش XML
یک vCard ساخته
شده است. از
آنجا که
نمایش هیچ
خصیصهای
ندارد،
نگاشت ساده
است.
مثال:
# This XML representation of vCard:
# <vCard xmlns='vcard-temp'>
# <FN>Conferences</FN>
# <ADR>
# <WORK/>
# <STREET>Elm Street</STREET>
# </ADR>
# </vCard>
#
# is translated to:
vcard:
fn: Conferences
adr:
-
work: true
street: Elm Street
این ماژول
دستوراتی
برای
مدیریت
سرویسهای MUC
محلی و
اتاقهای MUC
آنها
فراهم
میکند.
همچنین
صفحات ساده
WebAdmin برای
مشاهده
اتاقهای
موجود
ارائه
میدهد.
این ماژول
به mod_muc
وابسته
است.
گزینههای
موجود:
subscribe_room_many_max_users: Number
توجه
درباره این
گزینه: در
نسخه 22.05
اضافه شده
است. تعداد
کاربرانی
که
میتوانند
به طور
همزمان با
استفاده از API
subscribe_room_many در یک
اتاق مشترک
شوند. مقدار
پیشفرض 50
است.
برچسبهای
API: ../../developer/ejabberd-api/admin-tags.md#muc|muc,
../../developer/ejabberd-api/admin-tags.md#muc_room|muc_room,
../../developer/ejabberd-api/admin-tags.md#muc_sub|muc_sub
این ماژول
ثبت
اختیاری
مکالمات
عمومی Multi-User Chat (MUC)
در قالب HTML را
فعال
میکند. پس
از
فعالسازی
این ماژول،
کاربران
میتوانند
با استفاده
از یک
کلاینت XMPP با
قابلیت MUC به
اتاق
بپیوندند و
در صورت
داشتن
دسترسیهای
لازم،
میتوانند
فرم
پیکربندی
را درخواست
کنند که در
آن
میتوانند
گزینه
فعالسازی
ثبت اتاق را
تنظیم
کنند.
ویژگیها:
•جزئیات
اتاق در
بالای هر
صفحه نمایش
داده
میشود:
عنوان
اتاق، JID،
نویسنده،
موضوع و
پیکربندی.
•JID اتاق
در HTML تولید
شده پیوندی
برای
پیوستن به
اتاق است (با
استفاده از XMPP
URI).
•تغییرات
موضوع و
پیکربندی
اتاق
ردیابی و
نمایش داده
میشوند.
•پیوستنها،
خروجها،
تغییر نام
مستعار،
اخراجها،
مسدودسازیها
و /me ردیابی و
نمایش داده
میشوند،
از جمله
دلیل آنها
در صورت
وجود.
•فایلهای
HTML تولید شده
با XHTML 1.0 Transitional و CSS
سازگار
هستند.
•برچسبهای
زمانی
پیوندهای
خود-ارجاعی
هستند.
•پیوندهایی
در بالا
برای
ناوبری
سریعتر:
روز قبل،
روز بعد،
بالا.
•CSS برای
تعریف سبک
استفاده
میشود و
میتوان از
یک فایل CSS
سفارشی
استفاده
کرد.
•URLها در
پیامها و
موضوعات به
لینکهای
قابل کلیک
تبدیل
میشوند.
•منطقه
زمانی
استفاده
شده در
برچسبهای
زمانی در
فایلهای
ثبت نمایش
داده
میشود.
•میتوان
یک پیوند
سفارشی در
بالای هر
صفحه اضافه
کرد.
این ماژول
به mod_muc
وابسته
است.
گزینههای
موجود:
access_log: AccessName
این
گزینه مشخص
میکند که
کدام
کاربران
اتاق مجاز
به فعال یا
غیرفعال
کردن ثبت
اتاق هستند.
مقدار
پیشفرض muc_admin
است. توجه:
برای این
تنظیم
پیشفرض
باید یک
قانون
دسترسی
برای muc_admin
تعریف کرده
باشید تا
اثرگذار
باشد.
cssfile: Path | URL
با این
گزینه
میتوانید
تعیین کنید
که
فایلهای HTML
باید از یک
فایل CSS
سفارشی
استفاده
کنند یا از CSS
توکار.
مقادیر
مجاز یا Path به
فایل محلی
یا یک URL به
فایل راه
دور هستند.
به طور
پیشفرض یک CSS
از پیش
تعریف شده
در صفحه HTML
تعبیه
میشود.
dirname: room_jid | room_name
نام
دایرکتوری
اتاق را
پیکربندی
میکند. اگر
روی room_jid
تنظیم شود،
نام
دایرکتوری
اتاق، JID کامل
اتاق خواهد
بود. در غیر
این صورت،
نام
دایرکتوری
اتاق فقط
نام اتاق
خواهد بود و
نام سرویس MUC
در آن درج
نمیشود.
مقدار
پیشفرض room_jid
است.
dirtype: subdirs | plain
نوع
دایرکتوریهای
ایجاد شده
را میتوان
با این
گزینه مشخص
کرد. اگر روی
subdirs تنظیم
شود، برای
هر سال و ماه
زیردایرکتوریهایی
ایجاد
میشوند. در
غیر این
صورت،
نامهای
فایلهای
ثبت شامل
تاریخ کامل
هستند و
زیردایرکتوری
وجود ندارد.
مقدار
پیشفرض subdirs
است.
file_format: html | plaintext
قالب
فایلهای
ثبت را
تعریف
میکند: html در
قالب HTML ذخیره
میکند، plaintext
در قالب متن
ساده ذخیره
میکند.
مقدار
پیشفرض html
است.
file_permissions: {mode: Mode, group: Group}
مجوزهایی
که هنگام
ایجاد
فایلهای
ثبت باید
استفاده
شوند را
تعریف
میکند: عدد
حالت، و
شناسه عددی
گروهی که
مالک
فایلها
خواهد بود.
مقدار
پیشفرض در
مثال زیر
نشان داده
شده است:
مثال:
file_permissions:
mode: 644
group: 33
outdir: Path
این
گزینه مسیر
کامل
دایرکتوریای
را که
فایلهای HTML
باید در آن
ذخیره شوند
تنظیم
میکند.
مطمئن شوید
که کاربر daemon ejabberd
دسترسی
نوشتن به آن
دایرکتوری
را دارد.
مقدار
پیشفرض www/muc
است.
spam_prevention: true | false
اگر روی
true تنظیم
شود، یک
ویژگی خاص
به لینکها
اضافه
میشود که
از ایندکس
شدن آنها
توسط
موتورهای
جستجو
جلوگیری
میکند.
مقدار
پیشفرض true
است، به این
معنی که
ویژگیهای
nofollow به
لینکهای
ارسال شده
توسط کاربر
اضافه
خواهند شد.
timezone: local | universal
منطقه
زمانی برای
ثبتها با
این گزینه
قابل
پیکربندی
است. اگر روی
local تنظیم
شود، زمان
محلی که
سیستمعامل
به موتور Erlang
گزارش
میدهد
استفاده
خواهد شد. در
غیر این
صورت، زمان UTC
استفاده
میشود.
مقدار
پیشفرض local
است.
top_link: {URL: Text}
با این
گزینه
میتوانید
پیوند گوشه
بالا سمت
راست هر
فایل ثبت را
سفارشی
کنید. مقدار
پیشفرض در
مثال زیر
نشان داده
شده است:
مثال:
url: URL
یک URL سطح
بالا که
کلاینت
میتواند
از طریق آن
به ثبتهای
یک کنفرانس
خاص دسترسی
داشته باشد.
اگر گزینه
dirname روی room_name
تنظیم شده
باشد، نام
کنفرانس به URL
الحاق
میشود، در
غیر این
صورت JID
کنفرانس به
URL الحاق
میشود.
مقدار
پیشفرضی
وجود
ندارد.
توجه
درباره این
ماژول: در
نسخه 23.04
اضافه شده
است.
این ماژول
لیستهای
مسدودسازی
بلادرنگ (Real-time
blocklists) را برای
اتاقهای MUC
پیادهسازی
میکند.
با مشاهده
گره pubsub راه
دور مطابق
با مشخصات
توصیف شده
در https://xmppbl.org کار
میکند.
گزینههای
موجود:
rtbl_node: PubsubNodeName
نام گره pubsub
که باید
برای
ردیابی
کاربران
مسدود شده
استفاده
شود. مقدار
پیشفرض
muc_bans_sha256 است.
rtbl_server: Domain
دامنه
سرور XMPP که
لیست
مسدودسازی
را ارائه
میدهد.
مقدار
پیشفرض xmppbl.org
است.
این ماژول
یک سرویس
برای XEP-0033: Extended Stanza Addressing
پیادهسازی
میکند.
گزینههای
موجود:
access: Access
قانون
دسترسی
برای محدود
کردن اینکه
چه کسانی
میتوانند
بستهها را
به سرویس multicast
ارسال کنند.
مقدار
پیشفرض: all.
host
منسوخ
شده. به جای
آن از hosts
استفاده
کنید.
hosts: [Host, ...]
این
گزینه Jabber IDهای
سرویس را
تعریف
میکند. اگر
گزینه hosts
مشخص نشده
باشد، تنها
Jabber ID نام
میزبان vhost
مجازی با
پیشوند "multicast."
خواهد بود.
کلیدواژه @HOST@
با نام
واقعی vhost
مجازی
جایگزین
میشود.
لطفاً توجه
داشته
باشید: این
ماژول فقط
از اولین vhost
تعریف شده
در این
گزینه
استفاده
میکند.
limits: Sender: Stanza: Number
فهرستی
از
محدودیتهای
سفارشی را
مشخص
میکند که
محدودیتهای
پیشفرض
تعریف شده
در XEP-0033 را
بازنویسی
میکنند.
محدودیتها
بر اساس نوع
فرستنده و
نوع stanza تعریف
میشوند،
که در آن:
•sender
میتواند
باشد: local یا
remote.
•stanza
میتواند
باشد: message یا
presence.
•
number
میتواند
یک عدد صحیح
مثبت یا
infinite
باشد.
مثال:
# Default values:
local:
message: 100
presence: 100
remote:
message: 20
presence: 20
name
نام
سرویس برای
ارائه در
پرسش Info به
کشف سرویس (Service
Discovery). پیشفرض
"Multicast" است.
vcard
عنصر vCard
برای
بازگشت
هنگام پرسش.
مقدار
پیشفرض undefined
است.
مثال:
# 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
این ماژول
پیادهسازی
XEP-0160: بهترین
روشها
برای
مدیریت
پیامهای
آفلاین و XEP-0013:
بازیابی
انعطافپذیر
پیامهای
آفلاین را
فراهم
میکند. این
بدان
معناست که
تمام
پیامهای
ارسالی به
کاربر
آفلاین تا
زمانی که آن
کاربر
دوباره
آنلاین شود
در کارگزار
ذخیره
خواهند شد.
بنابراین
بسیار شبیه
به نحوه
کارکرد
ایمیل است.
یک کاربر
آفلاین در
نظر گرفته
میشود اگر
هیچ نشستی
با اولویت presence
بزرگتر از
۰ در حال
حاضر باز
نباشد.
API delete_expired_messages
امکان حذف
پیامهای
منقضی شده
را میدهد،
و API delete_old_messages
پیامهای
قدیمیتر
را حذف
میکند.
گزینههای
موجود:
access_max_user_messages: AccessName
این
گزینه
تعریف
میکند که
کدام قانون
دسترسی
برای محدود
کردن
حداکثر
تعداد
پیامهای
آفلاینی که
یک کاربر
میتواند
داشته باشد
(سهمیه)
اعمال
خواهد شد.
هنگامی که
کاربر
پیامهای
آفلاین بیش
از حد دارد،
هر پیام
جدیدی که
دریافت
میکند دور
انداخته
میشود و
خطای <resource-constraint/>
به فرستنده
بازگردانده
میشود.
مقدار
پیشفرض
max_user_offline_messages است.
bounce_groupchat: true | false
این
گزینه برای
غیرفعال
کردن یک
بهینهسازی
استفاده
میشود که
از
بازگرداندن
پیامهای
خطا هنگامی
که
پیامهای
گروهی
نمیتوانند
به صورت
آفلاین
ذخیره شوند
جلوگیری
میکند. این
بار اتاق
گفتگو را
بدون هیچ
اشکالی در
موارد
استفاده
استاندارد
کاهش
میدهد.
مقدار
پیشفرض را
فقط در
صورتی
تغییر دهید
که یک ماژول
سفارشی
داشته
باشید که از
قلاب
آفلاین پس
از mod_offline
استفاده
میکند. این
گزینه
میتواند
هم برای MUC
استاندارد
و هم برای MucSub
مفید باشد،
اما احتمال
وقوع bounce در
زمینه MucSub
بسیار
بیشتر است،
بنابراین
فعال کردن
آن در
سرویسهای
بزرگ MucSub
اهمیت
بیشتری
دارد. مقدار
پیشفرض false
است، به این
معنا که
بهینهسازی
فعال است.
cache_life_time: timeout()
مانند
گزینه سطح
بالای cache_life_time
است، اما
فقط برای
این ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
مانند
گزینه سطح
بالای cache_size
است، اما
فقط برای
این ماژول
اعمال
میشود.
db_type: mnesia | sql
مانند
گزینه سطح
بالای default_db
است، اما
فقط برای
این ماژول
اعمال
میشود.
store_empty_body: true | false |
unless_chat_state
آیا
پیامهایی
که فاقد
عنصر <body/>
هستند
ذخیره شوند
یا خیر.
مقدار
پیشفرض
unless_chat_state است، که
به ejabberd
میگوید
پیامها را
حتی اگر
فاقد عنصر
<body/> باشند
ذخیره کند،
مگر اینکه
فقط شامل یک
اعلان
وضعیت
گفتگو
باشند
(همانطور که
در XEP-0085:
اعلانهای
وضعیت
گفتگو
تعریف شده
است).
store_groupchat: true | false
آیا
پیامهای
گروهی
ذخیره شوند
یا خیر.
مقدار
پیشفرض false
است.
use_cache: true | false
مانند
گزینه سطح
بالای use_cache
است، اما
فقط برای
این ماژول
اعمال
میشود.
use_mam_for_storage: true | false
این یک
گزینه
آزمایشی
است. با فعال
کردن این
گزینه، این
ماژول از
جدول archive از
mod_mam به جای
جدول spool خود
برای
بازیابی
پیامهای
دریافتی در
زمانی که
کاربر
آفلاین بود
استفاده
میکند. این
به
توسعهدهندگان
کلاینت
اجازه
میدهد تا
به تدریج XEP-0160
را کنار
بگذارند و
به جای آن به
XEP-0313 تکیه کنند.
همچنین
فضای
ذخیرهسازی
مورد نیاز
را هنگام
فعال کردن MucSub
بیشتر کاهش
میدهد.
فعال کردن
این گزینه
در حال حاضر
یک اشکال
شناختهشده
دارد: اکثر
پرسشهای
بازیابی
انعطافپذیر
پیام کار
نمیکنند
(آنهایی که
امکان
بازیابی/حذف
پیامها بر
اساس شناسه
را
میدهند)،
اما این
مشخصه به
طور گسترده
استفاده
نمیشود.
مقدار
پیشفرض false
است تا
رفتار قبلی
به عنوان
پیشفرض
حفظ شود.
مثالها:
این مثال
به کاربران
قدرتمند
اجازه
میدهد تا
۵۰۰۰ پیام
آفلاین، به
مدیران تا
۲۰۰۰، و به
سایر
کاربران تا
۱۰۰ پیام
داشته
باشند:
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
...
تگهای API:
../../developer/ejabberd-api/admin-tags.md#offline|offline
این ماژول
پشتیبانی
از XEP-0199: XMPP Ping و
keepaliveهای
دورهای را
پیادهسازی
میکند.
هنگامی که
این ماژول
فعال است، ejabberd
به درستی به
درخواستهای
ping پاسخ
میدهد،
همانطور که
در پروتکل
تعریف شده
است.
گزینههای
موجود:
ping_ack_timeout: timeout()
چه مدت
باید صبر
کرد قبل از
اینکه
تشخیص داده
شود که یک
کلاینت به
یک درخواست ping
کارگزار
پاسخ نداده
است. توجه:
هنگامی که
mod_stream_mgmt
بارگذاری
شده و
مدیریت
جریان توسط
کلاینت
فعال شده
باشد، این
مقدار
نادیده
گرفته
میشود و به
جای آن ack_timeout
اعمال
میشود.
مقدار
پیشفرض undefined
است.
ping_interval: timeout()
هر چند
وقت یکبار ping
به
کلاینتهای
متصل ارسال
شود، در
صورتی که
گزینه send_pings
روی true تنظیم
شده باشد.
اگر اتصال
یک کلاینت
در این بازه
زمانی هیچ stanza
ای ارسال یا
دریافت
نکند، یک
درخواست ping به
کلاینت
ارسال
میشود.
مقدار
پیشفرض ۱
دقیقه است.
send_pings: true | false
اگر این
گزینه روی true
تنظیم شود،
کارگزار به
کلاینتهای
متصلی که در
بازه زمانی
تعریف شده
در گزینه ping_interval
فعال
نیستند، ping
ارسال
میکند. این
برای زنده
نگه داشتن
اتصالات
کلاینت یا
بررسی
دسترسپذیری
مفید است.
مقدار
پیشفرض false
است.
timeout_action: none | kill
هنگامی
که یک
کلاینت در
مدت زمان
کمتر از
دوره تعریف
شده در
گزینه ping_ack_timeout
به درخواست ping
کارگزار
پاسخ
نمیدهد چه
اقدامی
انجام شود: kill
به معنای از
بین بردن
اتصال
زیرین است،
none به معنای
انجام هیچ
کاری نیست.
توجه:
هنگامی که
mod_stream_mgmt
بارگذاری
شده و
مدیریت
جریان توسط
کلاینت
فعال شده
باشد، کشتن
اتصال
کلاینت به
معنای کشتن
نشست
کلاینت
نیست - نشست
برای دادن
فرصت به
کلاینت جهت
از سرگیری
آن زنده نگه
داشته
میشود.
مقدار
پیشفرض none
است.
مثال:
modules:
mod_ping:
send_pings: true
ping_interval: 4 min
timeout_action: kill
این ماژول
سیل/هرزنامه
در ترافیک
اشتراکهای
presence را تشخیص
میدهد. اگر
یک کاربر در
یک بازه
زمانی مشخص
بیش از حد
مجاز از این
stanzaها ارسال
یا دریافت
کند، stanzaهای
اضافی
بیصدا دور
انداخته
میشوند و
یک هشدار در
گزارش ثبت
میشود.
گزینههای
موجود:
count: Number
تعداد
stanzaهای presence
اشتراک (subscribe،
unsubscribe، subscribed، unsubscribed)
مجاز برای
هر جهت
(ورودی یا
خروجی) در
مدت زمان
تعریف شده
در گزینه interval.
لطفاً توجه
داشته
باشید که دو
کاربر که به
یکدیگر
اشتراک
میزنند
معمولاً ۴ stanza
تولید
میکنند،
بنابراین
مقدار
توصیه شده
۴ یا بیشتر
است. مقدار
پیشفرض ۵
است.
interval: timeout()
بازه
زمانی.
مقدار
پیشفرض ۱
دقیقه است.
مثال:
modules:
mod_pres_counter:
count: 5
interval: 30 secs
این ماژول
پیادهسازی
XEP-0016: Privacy Lists است.
توجه
امروزه
کلاینتهای
مدرن XMPP به XEP-0191: Blocking
Command متکی
هستند که
توسط mod_blocking
پیادهسازی
شده است. با
این حال،
برای اینکه
mod_blocking کار
کند،
همچنان
باید mod_privacy
بارگذاری
شده باشد.
گزینههای
موجود:
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache
اما فقط
برای این
ماژول
اعمال
میشود.
این ماژول
پشتیبانی
از XEP-0049: Private XML Storage را
اضافه
میکند.
با
استفاده از
این روش،
موجودیتهای
XMPP
میتوانند
دادههای
خصوصی را
روی سرور
ذخیره
کنند، هر
زمان که
لازم بود
آنها را
بازیابی
کنند و بین
چندین
کلاینت
متصل یک
کاربر به
اشتراک
بگذارند.
دادههای
ذخیرهشده
میتوانند
هر چیزی
باشند، تا
زمانی که XML
معتبر
باشند. یک
کاربرد
رایج،
ذخیره
نشانکهای
کنفرانسهای
کاربر است (XEP-0048:
Bookmarks).
همچنین
تبدیل
نشانکهای
توصیفشده
در XEP-0402: PEP Native Bookmarks را
پیادهسازی
میکند، به
API bookmarks_to_pep مراجعه
کنید.
گزینههای
موجود:
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
همانند
گزینه سطح
بالای default_db
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache
اما فقط
برای این
ماژول
اعمال
میشود.
API Tags:
../../developer/ejabberd-api/admin-tags.md#private|private
توجه
درباره این
گزینه: در
نسخه 24.10
بهبود
یافته است.
این ماژول
پیادهسازی
XEP-0356: Privileged Entity است.
این افزونه
به
کامپوننتها
امکان
میدهد
دسترسی
ممتاز به
دادههای
موجودیتهای
دیگر داشته
باشند
(ارسال پیام
از طرف سرور
یا از طرف
کاربر،
دریافت/تنظیم
لیست
مخاطبین
کاربر،
دسترسی به
اطلاعات
حضور و غیره).
این ویژگی
ممکن است
برای نوشتن
کامپوننتهای
خارجی
قدرتمند
مورد
استفاده
قرار گیرد،
مانند
پیادهسازی
یک سرویس PEP
یا MAM خارجی.
به طور
پیشفرض یک
کامپوننت
هیچ دسترسی
ممتازی
ندارد.
شایان ذکر
است که
مجوزها به
کامپوننت
دسترسی به
یک نوع داده
خاص برای
تمام
کاربران
هاست
مجازیای
که mod_privilege روی
آن
بارگذاری
شده است را
میدهند.
مطمئن
شوید که یک
شنونده
برای اتصال
کامپوننت
پیکربندی
کردهاید.
برای
اطلاعات
بیشتر بخش
مربوط به
پورتهای
شنونده را
بررسی
کنید.
هشدار
مسئله
امنیتی:
دسترسی
ممتاز به
کامپوننتها
دسترسی به
دادههای
حساس
میدهد،
بنابراین
مجوزها
باید با
احتیاط و
تنها در
صورت
اعتماد به
کامپوننت
اعطا شوند.
توجه
این ماژول
مکمل mod_delegation
است، اما
میتواند
به تنهایی
نیز
استفاده
شود.
گزینههای
موجود:
iq: {Namespace: Options}
این
گزینه
فضاهای نام
و مجوزهای IQ
آنها را
تعریف
میکند. به
طور
پیشفرض
هیچ مجوزی
داده
نمیشود.
Options
عبارتند از:
both: AccessName
اجازه
ارسال
استانزاهای
IQ از نوع get و set
را میدهد.
مقدار
پیشفرض none
است.
get: AccessName
اجازه
ارسال
استانزاهای
IQ از نوع get را
میدهد.
مقدار
پیشفرض none
است.
set: AccessName
اجازه
ارسال
استانزاهای
IQ از نوع set را
میدهد.
مقدار
پیشفرض none
است.
message: Options
این
گزینه
مجوزهای
پیامها را
تعریف
میکند. به
طور
پیشفرض
هیچ مجوزی
داده
نمیشود.
Options
عبارتند از:
outgoing: AccessName
این
گزینه یک
قانون
دسترسی
برای ارسال
پیامهای
خروجی توسط
کامپوننت
تعریف
میکند.
مقدار
پیشفرض none
است.
presence: Options
این
گزینه
مجوزهای
حضور را
تعریف
میکند. به
طور
پیشفرض
هیچ مجوزی
داده
نمیشود.
Options
عبارتند از:
managed_entity: AccessName
یک قانون
دسترسی که
به
کامپوننت
مجوز
دریافت
حضورهای
سرور را
میدهد.
مقدار
پیشفرض none
است.
roster: AccessName
یک قانون
دسترسی که
به
کامپوننت
مجوز
دریافت
حضور هر دو
گروه
کاربران و
مخاطبین
موجود در
لیست
مخاطبین
آنها را
میدهد.
مقدار
پیشفرض none
است.
roster: Options
این
گزینه
مجوزهای
لیست
مخاطبین را
تعریف
میکند. به
طور
پیشفرض
هیچ مجوزی
داده
نمیشود.
Options
عبارتند از:
both: AccessName
دسترسی
خواندن/نوشتن
به لیست
مخاطبین
کاربر را
تنظیم
میکند.
مقدار
پیشفرض none
است.
get: AccessName
دسترسی
خواندن به
لیست
مخاطبین
کاربر را
تنظیم
میکند.
مقدار
پیشفرض none
است.
set: AccessName
دسترسی
نوشتن به
لیست
مخاطبین
کاربر را
تنظیم
میکند.
مقدار
پیشفرض none
است.
مثال:
modules:
mod_privilege:
iq:
http://jabber.org/protocol/pubsub:
get: all
roster:
get: all
presence:
managed_entity: all
message:
outgoing: all
توجه
درباره این
گزینه: در
نسخه 25.08
اضافه شده
است.
این ماژول
فایلهای JSON
provider API نسخه v2 را
همانطور
که توسط XMPP Providers
توصیف شده،
ارائه
میدهد.
این ماژول
تلاش
میکند
برخی
خصوصیات را
با
جمعآوری
مقادیر به
صورت
خودکار از
پیکربندی
موجود ejabberd شما
پر کند.
ماژول را
فعال کنید،
مقادیر
نمایش
دادهشده
را بررسی
کنید و سپس
با استفاده
از
گزینهها
سفارشیسازی
کنید.
برای
استفاده از
این ماژول،
علاوه بر
افزودن آن
به بخش modules،
باید آن را
در listen → ejabberd_http →
listen-options.md#request_handlers|request_handlers
نیز فعال
کنید. توجه
داشته
باشید که
باید در
listen.md#ejabberd_http|ejabberd_http
گزینه listen-options.md#tls|tls
را فعال
کنید.
گزینههای
موجود:
alternativeJids: [string()]
فهرستی
از JIDها
(دامنههای
سرور XMPP) که یک
ارائهدهنده
برای
ثبتنام
علاوه بر JID
اصلی خود
ارائه
میدهد.
مقدار
پیشفرض []
است.
busFactor: integer()
ضریب
اتوبوس
سرویس XMPP
(یعنی حداقل
تعداد
اعضای تیمی
که سرویس
نمیتواند
از دست دادن
آنها را
تحمل کند) یا
-1 برای
نامشخص.
مقدار
پیشفرض -1
است.
freeOfCharge: true | false
آیا
سرویس XMPP
میتواند
به صورت
رایگان
استفاده
شود. مقدار
پیشفرض false
است.
languages: [string()]
فهرست
کدهای
زبانی که
صفحات شما
در آنها در
دسترس
هستند. برخی
گزینهها URLی
تعریف
میکنند که
در آن
کلیدواژه
@LANGUAGE_URL@ با هر یک
از آن کدهای
زبانی
جایگزین
میشود.
مقدار
پیشفرض یک
فهرست با
زبان
تنظیمشده
در گزینه language
است، برای
مثال: [en].
legalNotice: string()
صفحه وب
اطلاعیه
حقوقی (به
ازای هر
زبان).
کلیدواژه
@LANGUAGE_URL@ با هر
زبان
جایگزین
میشود.
مقدار
پیشفرض ""
است.
maximumHttpFileUploadStorageTime: integer()
حداکثر
مدت
ذخیرهسازی
هر فایل به
اشتراکگذاشتهشده
(عدد به روز،
0 برای بدون
محدودیت یا
-1 برای کمتر
از ۱ روز).
مقدار
پیشفرض
همانند
گزینه max_days از
ماژول mod_http_upload_quota
است، یا در
غیر این
صورت 0.
maximumHttpFileUploadTotalSize: integer()
حداکثر
اندازه کل
فایلهای
به
اشتراکگذاشتهشده
برای هر
کاربر (عدد
به مگابایت
(MB)، 0 برای
بدون
محدودیت یا
-1 برای کمتر
از ۱ MB). توجه:
از MB به جای MiB
استفاده
میشود
(مثلاً 104,857,600
بایت = 100 MiB ≈ 104 MB).
این خصوصیت
درباره
حداکثر
اندازه هر
فایل به
اشتراکگذاشتهشده
نیست، که از
طریق XMPP
بازیابی
میشود.
مقدار
پیشفرض
مقدار shaper
گزینه access_hard_quota
از ماژول
mod_http_upload_quota است، یا
در غیر این
صورت 0.
maximumMessageArchiveManagementStorageTime:
integer()
حداکثر
مدت
ذخیرهسازی
هر پیام
مبادلهشده
(عدد به روز،
0 برای بدون
محدودیت یا
-1 برای کمتر
از ۱ روز).
مقدار
پیشفرض 0
است.
organization: string()
نوع
سازمان
ارائهدهنده
سرویس XMPP.
مقادیر
مجاز
عبارتند از:
company، "commercial person"،
"private person"، governmental،
"non-governmental" یا "".
مقدار
پیشفرض ""
است.
passwordReset: string()
صفحه وب
بازنشانی
رمز عبور (به
ازای هر
زبان) که
برای
بازنشانی
خودکار رمز
عبور (مثلاً
از طریق
ایمیل) یا
توضیح نحوه
بازنشانی
دستی رمز
عبور (مثلاً
با تماس با
ارائهدهنده)
استفاده
میشود.
کلیدواژه
@LANGUAGE_URL@ با هر
زبان
جایگزین
میشود.
مقدار
پیشفرض یک URL
است که در
صورت
پیکربندی
mod_register_web به
عنوان request_handler
به صورت
خودکار
ساخته
میشود، یا
در غیر این
صورت "".
professionalHosting: true | false
آیا سرور
XMPP با سرعت
اتصال
اینترنت
خوب، منبع
تغذیه بدون
وقفه،
حفاظت از
دسترسی و
پشتیبانگیری
منظم
میزبانی
میشود.
مقدار
پیشفرض false
است.
serverLocations: [string()]
فهرست
کدهای
زبانی
مکانهای
سرور/پشتیبان.
مقدار
پیشفرض یک
فهرست خالی
است: [].
serverTesting: true | false
آیا
آزمایشها
روی سرور
ارائهدهنده
مجاز هستند
(مثلاً
بررسی
گواهینامه
و نظارت بر
زمان فعال
بودن). مقدار
پیشفرض false
است.
since: string()
تاریخی
که سرویس XMPP
از آن در
دسترس است.
مقدار
پیشفرض یک
رشته خالی
است: "".
website: string()
وبسایت
ارائهدهنده.
کلیدواژه
@LANGUAGE_URL@ با هر
زبان
جایگزین
میشود.
مقدار
پیشفرض ""
است.
مثال:
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@"
این ماژول
XEP-0065: SOCKS5 Bytestreams را
پیادهسازی
میکند. این
ماژول به ejabberd
اجازه
میدهد به
عنوان یک
پروکسی
انتقال
فایل بین دو
کلاینت XMPP
عمل کند.
گزینههای
موجود:
access: AccessName
یک قانون
دسترسی
برای
آغازکنندگان
انتقال
فایل تعریف
میکند.
مقدار
پیشفرض all
است. ممکن
است
بخواهید
دسترسی را
فقط به
کاربران
سرور خود
محدود کنید
تا از سوء
استفاده از
پروکسی
توسط
کاربران
سرورهای
راه دور
جلوگیری
شود.
append_module_config: {ProxyHost: Options}
توجه
درباره این
گزینه: در
نسخه 25.xx
اضافه شده
است. چند
گزینه خاص
به یک
میزبان
آپلود مشخص
که قبلاً در
گزینه
hosts
ماژول mod_proxy65
تعریف شده
است اضافه
میکند. در
حال حاضر
فقط
name و
vcard
میتوانند
اینجا
تعریف شوند.
این مشابه
گزینه سطح
بالای
append_host_config
است، اما در
این مورد به
گزینههای
این ماژول
اعمال
میشود.
مثال:
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"
auth_type: anonymous | plain
نوع
احراز هویت
SOCKS5. مقدار
پیشفرض anonymous
است. اگر روی
plain تنظیم
شود، ejabberd از
پشتیبان
احراز هویت
مانند SASL PLAIN
استفاده
خواهد کرد.
host
منسوخ
شده. به جای
آن از hosts
استفاده
کنید.
hostname: Host
یک نام
میزبان که
هنگام
برقراری
ارتباط با
کلاینتها
توسط
پروکسی
ارائه
میشود را
تعریف
میکند. این
گزینه
زمانی مفید
است که
پروکسی را
پشت NAT اجرا
میکنید.
کلمه کلیدی
@HOST@ با نام
میزبان
مجازی
جایگزین
میشود.
پیشفرض
استفاده از
مقدار
گزینه ip است.
مثالها:
proxy.mydomain.org, 200.150.100.50.
hosts: [Host, ...]
این
گزینه
شناسههای
Jabber سرویس را
تعریف
میکند. اگر
گزینه hosts
مشخص نشده
باشد، تنها
شناسه Jabber،
نام میزبان
مجازی با
پیشوند "proxy."
خواهد بود.
کلمه کلیدی
@HOST@ با نام
واقعی
میزبان
مجازی
جایگزین
میشود.
ip: IPAddress
این
گزینه مشخص
میکند که
کدام رابط
شبکه برای
گوش دادن
استفاده
شود. مقدار
پیشفرض
آدرس IP نام DNS
سرویس است،
یا در صورت
شکست، 127.0.0.1.
max_connections: pos_integer() | infinity
حداکثر
تعداد
اتصالات
فعال به
ازای هر
آغازکننده
انتقال
فایل. مقدار
پیشفرض infinity
است.
name: Name
مقدار
نام سرویس.
این نام فقط
در برخی
کلاینتهایی
که از XEP-0030: Service Discovery
پشتیبانی
میکنند
قابل
مشاهده است.
پیشفرض "SOCKS5
Bytestreams" است.
port: 1..65535
شماره
پورت برای
گوش دادن به
اتصالات
ورودی.
مقدار
پیشفرض 7777
است.
ram_db_type: mnesia | redis | sql
مانند
گزینه سطح
بالای default_ram_db ،
اما فقط
برای این
ماژول
اعمال
میشود.
recbuf: Size
اندازه
بافر برای
بستههای
ورودی. اگر
یک shaper تعریف
میکنید،
مقدار این
گزینه را
برابر
اندازه shaper
تنظیم کنید
تا از
افزایش
ناگهانی
ترافیک در
انتقال
فایل
جلوگیری
شود. مقدار
پیشفرض 65536
بایت است.
shaper: Shaper
این
گزینه یک shaper
برای
همتایان
انتقال
فایل تعریف
میکند. shaper با
حداکثر
پهنای باند
انتخاب
خواهد شد.
پیشفرض none
است، یعنی
بدون shaper.
sndbuf: Size
اندازه
بافر برای
بستههای
خروجی. اگر
یک shaper تعریف
میکنید،
مقدار این
گزینه را
برابر
اندازه shaper
تنظیم کنید
تا از
افزایش
ناگهانی
ترافیک در
انتقال
فایل
جلوگیری
شود. مقدار
پیشفرض 65536
بایت است.
vcard: vCard
یک vCard
سفارشی
برای سرویس
که توسط
برخی
کلاینتهای
XMPP در Service Discovery
نمایش داده
میشود.
مقدار vCard یک
نگاشت YAML است
که از نمایش XML
vCard ساخته شده
است. از آنجا
که این
نمایش فاقد
ویژگی است،
نگاشت ساده
است.
مثال:
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
این ماژول
سرویسی
برای XEP-0060: Publish-Subscribe
ارائه
میدهد.
قابلیتهای
mod_pubsub
میتوانند
با استفاده
از
افزونهها
گسترش
یابند.
افزونهای
که PEP (XEP-0163: Personal Eventing via Pubsub)
را
پیادهسازی
میکند در
فایل
پیکربندی
پیشفرض ejabberd
فعال است و
به mod_caps نیاز
دارد.
گزینههای
موجود:
access_createnode: AccessName
این
گزینه
محدود
میکند که
کدام
کاربران
مجاز به
ایجاد
گرههای pubsub
با استفاده
از acl و access
هستند. به
طور
پیشفرض هر
حساب
کاربری در
سرور محلی ejabberd
مجاز به
ایجاد
گرههای pubsub
است. مقدار
پیشفرض: all
است.
append_module_config 🟠: {PubSubHost:
Options}
توجه
درباره این
گزینه: در
نسخه
26.07
اضافه شده
است. چند
گزینه خاص
به یک
میزبان PubSub
مشخص که
قبلاً در
گزینه
hosts
ماژول mod_pubsub
تعریف شده
است اضافه
میکند. در
حال حاضر
فقط
name و
vcard
میتوانند
اینجا
تعریف شوند.
این مشابه
گزینه سطح
بالای
append_host_config
است، اما در
این مورد به
گزینههای
این ماژول
اعمال
میشود.
مثال:
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"
db_type: mnesia | sql
مانند
گزینه سطح
بالای default_db ،
اما فقط
برای این
ماژول
اعمال
میشود.
default_node_config: List of Key:Value
برای
بازنویسی
پیکربندی
پیشفرض
گره، صرف
نظر از
افزونه گره.
مقدار یک
لیست از
تعاریف
کلید-مقدار
است.
پیکربندی
گره همچنان
از
پیکربندی
پیشفرض
تعریف شده
توسط
افزونه گره
استفاده
میکند و هر
آیتم را با
مقدار
تعریف شده
در این لیست
قابل
پیکربندی
بازنویسی
میکند.
force_node_config: List of Node and the list of its
Key:Value
پیکربندی
برای
گرههای
داده شده را
تعریف
میکند.
مقدار
پیشفرض:
[]
است.
مثال:
force_node_config:
## Avoid buggy clients to make their bookmarks public
storage:bookmarks:
access_model: whitelist
host
منسوخ
شده. به جای
آن از hosts
استفاده
کنید.
hosts: [Host, ...]
این
گزینه
شناسههای
Jabber سرویس را
تعریف
میکند. اگر
گزینه hosts
مشخص نشده
باشد، تنها
شناسه Jabber،
نام میزبان
مجازی با
پیشوند "pubsub."
خواهد بود.
کلمه کلیدی
@HOST@ با نام
واقعی
میزبان
مجازی
جایگزین
میشود.
ignore_pep_from_offline: false | true
مشخص
میکند که
آیا باید
آخرین
آیتمهای PEP
منتشر شده
از کاربران
موجود در
لیست
مخاطبین ما
که هنگام
اتصال ما
آفلاین
هستند را
دریافت
کنیم یا نه.
مقدار true یا
false است. اگر
تعریف نشده
باشد، pubsub
مقدار true را
فرض
میکند،
بنابراین
فقط آخرین
آیتمهای
مخاطبین
آنلاین را
دریافت
میکنیم.
last_item_cache: false | true
مشخص
میکند که
آیا pubsub باید
آخرین
آیتمها را
کش کند یا نه.
مقدار true یا
false است. اگر
تعریف نشده
باشد، pubsub
آخرین
آیتمها را
کش نمیکند.
در
سیستمهایی
با گرههای
نه چندان
زیاد، کش
کردن آخرین
آیتمها pubsub
را سرعت
میبخشد و
به شما
امکان
میدهد نرخ
اتصال
کاربر را
افزایش
دهید. هزینه
آن مصرف
حافظه است،
زیرا هر
آیتم در
حافظه
ذخیره
میشود.
max_item_expire_node: timeout() | infinity
توجه
درباره این
گزینه: در
نسخه 21.12
اضافه شده
است. حداکثر
زمان
انقضای
آیتم را
مشخص
میکند.
مقدار
پیشفرض: infinity
است.
max_items_node: non_neg_integer() | infinity
حداکثر
تعداد
آیتمهایی
که
میتوانند
در یک گره
ذخیره شوند
را تعریف
میکند.
مقدار
پیشفرض: 1000
است.
max_nodes_discoitems: pos_integer() | infinity
حداکثر
تعداد
گرههایی
که در یک
پاسخ discoitem
بازگردانده
میشوند.
مقدار
پیشفرض: 100
است.
max_subscriptions_node: MaxSubs
حداکثر
تعداد
اشتراکهایی
که توسط یک
گره مدیریت
میشوند را
تعریف
میکند.
مقدار
پیشفرض
بدون
محدودیت
است: undefined.
name: Name
مقدار
نام سرویس.
این نام فقط
در برخی
کلاینتهایی
که از XEP-0030: Service Discovery
پشتیبانی
میکنند
قابل
مشاهده است.
پیشفرض vCard User
Search است.
nodetree: Nodetree
مشخص
میکند که
کدام nodetree
استفاده
شود. اگر
تعریف نشده
باشد، nodetree
پیشفرض pubsub
استفاده
میشود:
tree.
فقط یک nodetree
میتواند
به ازای هر
میزبان
استفاده
شود و بین
همه
افزونههای
گره به
اشتراک
گذاشته
میشود.
•tree
ذخیرهساز
گره nodetree
پیکربندی و
روابط گره
را در
پایگاه
داده ذخیره
میکند. flat
گرهها
بدون هیچ
رابطهای
ذخیره
میشوند، و
hometree گرهها
میتوانند
گرههای
فرزند
داشته
باشند.
•virtual nodetree
گرهها را
در پایگاه
داده ذخیره
نمیکند.
این منابع
را در
سیستمهایی
با تعداد
زیادی گره
ذخیره
میکند. در
صورت
استفاده از
virtual nodetree، تنها
میتوانید
این
افزونههای
گره را فعال
کنید: [flat, pep] یا
[flat]؛ هر
پیکربندی
افزونه
دیگری کار
نخواهد کرد.
همچنین،
تمام
گرهها
پیکربندی
پیشفرض
خواهند
داشت و این
قابل تغییر
نیست.
استفاده از
virtual nodetree نیاز
دارد که از
یک پایگاه
داده تمیز
شروع کنید،
اگر قبلاً
از tree nodetree
پیشفرض
استفاده
کرده باشید
کار نخواهد
کرد.
pep_mapping: List of Key:Value
در این
گزینه
میتوانید
فهرستی از
جفت
کلید-مقدار
برای
انتخاب
افزونههای
گره
تعریفشده
روی فضانام PEP
مشخص ارائه
دهید. مثال
زیر از
node_tune به
جای
node_pep برای
هر گره PEP با
فضانام tune
استفاده
میکند:
مثال:
modules:
...
mod_pubsub:
pep_mapping:
http://jabber.org/protocol/tune: tune
...
plugins: [Plugin, ...]
برای
تعیین
اینکه کدام
افزونههای
گره pubsub
استفاده
شوند. اولین
مورد در
فهرست به
طور
پیشفرض
استفاده
میشود. اگر
این گزینه
تعریف نشده
باشد،
فهرست
افزونههای
پیشفرض
عبارت است
از:
[flat].
کلاینتهای
PubSub
میتوانند
هنگام
ایجاد یک
گره مشخص
کنند که از
کدام
افزونه
استفاده
شود: ویژگی
type='plugin-name' را به
عنصر
استانزای
create
اضافه کنید.
•افزونه
flat رفتار
پیشفرض را
مدیریت
میکند و از
پیادهسازی
استاندارد
XEP-0060 پیروی
میکند.
•افزونه
pep پسوندی
برای
مدیریت
پروتکل
رویداد
شخصی (XEP-0163) به
موتور PubSub
اضافه
میکند.
وقتی فعال
شود، PEP به طور
خودکار
مدیریت
میشود.
vcard: vCard
یک vCard
سفارشی از
کارگزار که
توسط برخی
کلاینتهای
XMPP در کشف
سرویس
نمایش داده
میشود.
مقدار
vCard یک
نگاشت YAML است
که از نمایش XML
یک vCard ساخته
شده است. از
آنجایی که
این نمایش
هیچ
ویژگیای
ندارد،
نگاشت ساده
است.
مثال:
# This XML representation of vCard:
# <vCard xmlns='vcard-temp'>
# <FN>Conferences</FN>
# <ADR>
# <WORK/>
# <STREET>Elm Street</STREET>
# </ADR>
# </vCard>
#
# is translated to:
vcard:
fn: Conferences
adr:
-
work: true
street: Elm Street
مثالها:
مثال
پیکربندی
که از
گرههای flat
به عنوان
پیشفرض
استفاده
میکند و
اجازه
استفاده از
گرههای flat،
hometree و pep را
میدهد:
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
استفاده
از پایگاه
داده
رابطهای
نیاز به
استفاده از
mod_pubsub با db_type sql
دارد. تنها
افزونههای
flat، hometree و pep از SQL
پشتیبانی
میکنند.
مثال زیر
پیکربندی
قبلی را با
استفاده از
SQL نشان
میدهد:
modules:
mod_pubsub:
db_type: sql
access_createnode: pubsub_createnode
ignore_pep_from_offline: true
last_item_cache: false
plugins:
- flat
- pep
API Tags:
../../developer/ejabberd-api/admin-tags.md#purge|purge
توجه
درباره این
گزینه: در
نسخه 25.07
اضافه شده
است.
این ماژول
پشتیبانی
از XEP-0485: PubSub Server Information را
برای افشای
اطلاعات S2S
از طریق
سرویس Pub/Sub
اضافه
میکند.
اتصالات
فعال S2S در یک
گره PubSub محلی
منتشر
میشوند. در
حال حاضر
نام گره به
صورت ثابت
"serverinfo" تعریف
شده است.
اتصالاتی
که از این
ویژگی
پشتیبانی
میکنند با
نام
دامنههایشان
نشان داده
میشوند،
در غیر این
صورت به
عنوان
گرههای
ناشناس
نمایش داده
میشوند. در
زمان
راهاندازی
فهرستی از
کارگزارهای
عمومی
شناختهشده
دریافت
میشود.
آنها حتی
اگر از این
ویژگی
پشتیبانی
نکنند، به
عنوان
ناشناس
نشان داده
نمیشوند.
توجه
داشته
باشید که
این ماژول
فقط
اتصالات S2S
برقرارشده
در حین
اجرای
ماژول را
نشان
میدهد. اگر
ماژول را در
زمان اجرا
نصب کنید، API
stop_s2s_connections را
اجرا کنید
یا ejabberd را
مجدداً
راهاندازی
کنید تا
اتصالات S2S
مجدداً
برقرار
شوند و
ماژول
آنها را
شناسایی و
منتشر کند.
این ماژول
به mod_pubsub و mod_disco
وابسته
است.
گزینههای
موجود:
pubsub_host: undefined | string()
از این
هاست PubSub محلی
برای تبلیغ
اتصالات S2S
استفاده
کنید. این
باید یک
هاست محلی
برای این
سرویس باشد
که توسط mod_pubsub
مدیریت
میشود. این
گزینه تنها
در صورتی
لازم است که
پیکربندی
شما بیش از
یک هاست در
گزینه hosts mod_pubsub
داشته باشد.
مقدار
پیشفرض
اولین هاست
تعریفشده
در گزینه hosts
mod_pubsub است.
مثال:
modules:
mod_pubsub_serverinfo:
pubsub_host: custom.pubsub.domain.local
این ماژول
بخش
کارگزار XMPP
از راهحل
اعلانهای
فشاری
مشخصشده
در XEP-0357: Push Notifications را
پیادهسازی
میکند. به
عنوان
مثال،
اعلانهای
APNS یا FCM را
مستقیماً
تولید
نمیکند. در
عوض، طراحی
شده تا با به
اصطلاح
"سرورهای
برنامه" که
توسط
فروشندگان
شخص ثالث
اپلیکیشنهای
موبایل
اداره
میشوند
کار کند. آن
سرورهای
برنامه
معمولاً
تحویل
اعلان به
دستگاه
موبایل
کاربر را با
استفاده از
سرویسهای
بکاند
وابسته به
پلتفرم
مانند FCM یا APNS
فعال
میکنند.
گزینههای
موجود:
cache_life_time: timeout()
مانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
مانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
مانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
مانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
include_body: true | false | Text
اگر این
گزینه روی true
تنظیم شده
باشد، متن
پیام در
اعلانهای
فشاری
تولیدشده
برای
پیامهای
دریافتی
دارای متن
گنجانده
میشود. این
گزینه
میتواند
به جای آن
روی یک Text
ثابت تنظیم
شود، که در
این صورت
متن
مشخصشده
به جای متن
واقعی پیام
گنجانده
خواهد شد.
این
میتواند
برای
سیگنال
دادن به
سرور
برنامه در
مورد اینکه
آیا اعلان
توسط یک
پیام دارای
متن (در
مقابل
انواع دیگر
ترافیک)
فعال شده
است، بدون
افشای
محتوای
واقعی
پیام، مفید
باشد. مقدار
پیشفرض "New
message" است.
include_sender: true | false
اگر این
گزینه روی true
تنظیم شده
باشد، JID
فرستنده در
اعلانهای
فشاری
تولیدشده
برای
پیامهای
دریافتی
دارای متن
گنجانده
میشود.
مقدار
پیشفرض false
است.
notify_on: messages | all
توجه
درباره این
گزینه: در
نسخه 23.10
اضافه شده
است. اگر این
گزینه روی
messages تنظیم
شده باشد،
اعلانها
فقط برای
پیامهای
چت واقعی
دارای متن
(یا برخی
محتوای
رمزگذاریشده)
تولید
میشوند.
اگر روی all
تنظیم شده
باشد، هر
نوع
استانزای XMPP
یک اعلان را
فعال
میکند. اگر
مطمئن
نیستید،
اکیداً
توصیه
میشود با all
بمانید که
مقدار
پیشفرض
است.
use_cache: true | false
مانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
API Tags:
../../developer/ejabberd-api/admin-tags.md#purge|purge
این ماژول
سعی میکند
نشست
مدیریت
جریان (به
mod_stream_mgmt مراجعه
کنید) یک
کلاینت
موبایل
قطعشده را
زنده نگه
دارد، اگر
کلاینت
اعلانهای
فشاری را
برای آن
نشست فعال
کرده باشد.
با این حال،
زمانبندی
از سرگیری
نشست
معمولی پس
از صدور
اعلان
فشاری
بازیابی
میشود،
بنابراین
نشست در
صورتی که
کلاینت به
اعلانهای
فشاری پاسخ
ندهد بسته
خواهد شد.
این ماژول
به mod_push
وابسته
است.
گزینههای
موجود:
resume_timeout: timeout()
این
گزینه مدت
زمانی را
مشخص
میکند که
پس از آن
نشست یک
کلاینت
فشاری
قطعشده
منقضی
میشود. این
زمانبندی
فقط تا
زمانی که
هیچ اعلان
فشاری صادر
نشده باشد
معتبر است.
پس از وقوع
آن،
زمانبندی
از سرگیری
پیکربندیشده
برای mod_stream_mgmt
بازیابی
میشود.
مقدار
پیشفرض 72
ساعت است.
wake_on_start: true | false
اگر این
گزینه روی true
تنظیم شده
باشد، در
طول
راهاندازی
کارگزار
برای تمام
کلاینتهای
فشاری
ثبتشده
اعلان
تولید
میشود. این
گزینه
نباید در
کارگزارهایی
با تعداد
زیادی
کلاینت
فشاری فعال
شود زیرا
میتواند
بار قابل
توجهی بر
سرویسهای
فشاری
درگیر و خود
کارگزار
ایجاد کند.
مقدار
پیشفرض false
است.
wake_on_timeout: true | false
اگر این
گزینه روی true
تنظیم شده
باشد، کمی
قبل از
اینکه نشست
طبق گزینه
resume_timeout منقضی
شود، یک
اعلان
تولید
میشود.
مقدار
پیشفرض true
است.
این ماژول
پشتیبانی
از XEP-0077: In-Band Registration را
اضافه
میکند. این
پروتکل به
کاربران
نهایی
امکان
میدهد از
یک کلاینت XMPP
برای موارد
زیر
استفاده
کنند:
•ثبت یک
حساب
کاربری
جدید روی
کارگزار.
•تغییر
رمز عبور یک
حساب
کاربری
موجود روی
کارگزار.
•حذف یک
حساب
کاربری
موجود روی
کارگزار.
این ماژول
همچنین
گزینه سطح
بالای registration_timeout
که به صورت
سراسری
برای
کارگزار
تعریف شده
را
میخواند،
بنابراین
مستندات آن
گزینه را
نیز بررسی
کنید.
گزینههای
موجود:
access: AccessName
قوانینی
را برای
محدود کردن
نامهای
کاربری
قابل ثبت
مشخص
میکند. اگر
یک قانون
برای نام
کاربری
درخواستشده
مقدار deny را
برگرداند،
ثبت آن نام
کاربری رد
میشود. به
طور
پیشفرض
هیچ
محدودیتی
وجود ندارد.
اگر AccessName
برابر none
باشد، ثبت
حسابهای
کاربری
جدید از
طریق In-Band Registration
غیرفعال
میشود و
ویژگی
جریان
مربوطه به
کلاینتها
اعلام
نمیشود.
access_from: AccessName
به طور
پیشفرض، ejabberd
به کلاینت
اجازه
نمیدهد که
حسابهای
کاربری
جدید را از
طریق جلسات s2s
یا c2s موجود
ثبت کند.
میتوانید
با تعریف
قانون
دسترسی در
این گزینه
آن را تغییر
دهید. با
احتیاط
استفاده
کنید: اجازه
دادن به ثبت
از طریق s2s
منجر به
ایجاد
انبوه
حسابهای
کاربری
کنترلنشده
توسط
کاربران
مخرب
میشود.
access_remove: AccessName
قوانینی
را برای
محدود کردن
دسترسی به
لغو ثبت
کاربران
مشخص
میکند. به
طور
پیشفرض هر
کاربری
میتواند
حساب
کاربری خود
را لغو ثبت
کند.
allow_modules: all | [Module, ...]
توجه
درباره این
گزینه: در
نسخه 21.12
اضافه شده
است. فهرستی
از
ماژولهایی
که
میتوانند
حسابهای
کاربری ثبت
کنند، یا all.
مقدار
پیشفرض all
است که
معادل چیزی
شبیه به [mod_register,
mod_register_web] است.
captcha_protected: true | false
ثبتنام
را با basic.md#captcha|CAPTCHA
محافظت
میکند.
مقدار
پیشفرض false
است.
ip_access: AccessName
قوانینی
را برای
اجازه یا رد
ثبت حساب
کاربری بر
اساس آدرس IP
کلاینت XMPP
تعریف
میکند. AccessName
باید از نوع
ip باشد.
مقدار
پیشفرض all
است.
password_strength: Entropy
این
گزینه
حداقل
آنتروپی
شانون برای
رمزهای
عبور را
تعیین
میکند.
مقدار Entropy
تعداد
بیتهای
آنتروپی
است. حداقل
توصیهشده
۳۲ بیت است.
پیشفرض 0
است، یعنی
هیچ بررسی
انجام
نمیشود.
redirect_url: URL
این
گزینه
تغییر مسیر
ثبتنام را
طبق تعریف
در XEP-0077: In-Band Registration: Redirection
فعال
میکند.
registration_watchers: [JID, ...]
این
گزینه
فهرستی از
JIDها را تعریف
میکند که
هر بار که
حساب
کاربری
جدیدی ثبت
شود،
اطلاعرسانی
میشوند.
welcome_message: {subject: Subject, body: Body}
یک پیام
خوشآمدگویی
تنظیم
میکند که
برای هر
حساب
کاربری
تازه
ثبتشده
ارسال
میشود.
پیام دارای
موضوع
Subject و
متن
Body خواهد
بود.
مثال:
modules:
mod_register:
welcome_message:
subject: "Welcome!"
body: |-
Hi!
Welcome to this XMPP server
این ماژول
یک صفحه وب
فراهم
میکند که
کاربران
میتوانند
در آن:
•یک حساب
کاربری
جدید روی
کارگزار
ثبت کنند.
•رمز
عبور یک
حساب
کاربری
موجود روی
کارگزار را
تغییر
دهند.
•یک حساب
کاربری
موجود روی
کارگزار را
لغو ثبت
کنند.
این ماژول
از basic.md#captcha|CAPTCHA
برای ثبت
حساب
کاربری
جدید
پشتیبانی
میکند.
برای فعال
کردن این
ویژگی،
گزینههای
سطح بالای
captcha_cmd و captcha_url را
پیکربندی
کنید.
به عنوان
مثال
کاربرد،
کاربران
میزبان localhost
میتوانند
از صفحه:
https://localhost:5280/register/
بازدید
کنند. مهم
است که
کاراکتر /
پایانی را
در URL درج
کنید، در
غیر این
صورت آدرس
زیرصفحات
اشتباه
خواهد بود.
این ماژول
در listen → ejabberd_http →
listen-options.md#request_handlers|request_handlers
فعال
میشود.
نیازی به
فعال کردن
این ماژول
در modules نیست،
اما یک لینک
به صفحه
ثبتنام در
منوی WebAdmin
اضافه
میکند. این
ماژول به
mod_register وابسته
است که تمام
پیکربندی
در آن انجام
میشود.
این ماژول
هیچ
گزینهای
ندارد.
مثال:
listen:
-
port: 5280
module: ejabberd_http
request_handlers:
/register: mod_register_web
modules:
mod_register: {}
این ماژول
مدیریت
فهرست
مخاطبین را
طبق تعریف
در RFC6121 بخش ۲
پیادهسازی
میکند. این
ماژول
همچنین
پشتیبانی
از XEP-0237: Roster Versioning را
اضافه
میکند.
گزینههای
موجود:
access: AccessName
این
گزینه
میتواند
برای تعیین
قوانین
محدود کردن
مدیریت
فهرست
مخاطبین
پیکربندی
شود. اگر
قانون برای
نام کاربری
درخواستشده
مقدار deny را
برگرداند،
آن کاربر
نمیتواند
فهرست
مخاطبین
شخصی خود را
تغییر دهد،
یعنی
نمیتواند
مخاطبین را
اضافه/حذف/ویرایش
کند یا
درخواستهای
حضور ارسال
کند. مقدار
پیشفرض all
است، یعنی
هیچ
محدودیتی
وجود
ندارد.
cache_life_time: timeout()
مانند
گزینه سطح
بالای cache_life_time ،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
مانند
گزینه سطح
بالای cache_missed ،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
مانند
گزینه سطح
بالای cache_size ،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
مانند
گزینه سطح
بالای default_db ،
اما فقط
برای این
ماژول
اعمال
میشود.
store_current_id: true | false
اگر این
گزینه روی true
تنظیم شود،
شماره نسخه
فعلی فهرست
مخاطبین در
پایگاه
داده ذخیره
میشود. اگر
روی false تنظیم
شود، شماره
نسخه فهرست
مخاطبین هر
بار به صورت
پویا
محاسبه
میشود.
فعال کردن
این گزینه
بار هر دو ejabberd و
پایگاه
داده را
کاهش
میدهد. این
گزینه هیچ
تأثیری بر
کلاینت
ندارد. این
گزینه تنها
زمانی مفید
است که
گزینه versioning
روی true تنظیم
شده باشد.
مقدار
پیشفرض false
است. مهم: اگر
از mod_shared_roster یا
mod_shared_roster_ldap
استفاده
میکنید،
باید مقدار
این گزینه
را false تنظیم
کنید.
use_cache: true | false
مانند
گزینه سطح
بالای use_cache ،
اما فقط
برای این
ماژول
اعمال
میشود.
versioning: true | false
Roster Versioning را
فعال/غیرفعال
میکند.
مقدار
پیشفرض false
است.
مثال:
modules:
mod_roster:
versioning: true
store_current_id: false
برچسبهای
API: ../../developer/ejabberd-api/admin-tags.md#roster|roster
توجه
درباره این
گزینه: در
نسخه 24.10
اضافه شده
است.
این ماژول
پشتیبانی
از XEP-0288: Bidirectional Server-to-Server Connections
را اضافه
میکند که
امکان
استفاده از
یک اتصال s2s
برای
ارتباط در
هر دو جهت را
فراهم
میکند.
این ماژول
هیچ
گزینهای
ندارد.
مثال:
modules:
mod_s2s_bidi: {}
این ماژول
پشتیبانی
از XEP-0220: Server Dialback را
برای فراهم
کردن تأیید
هویت
کارگزار بر
اساس DNS
اضافه
میکند.
هشدار
تأیید
هویت مبتنی
بر DNS در
برابر
مسمومسازی
کش DNS
آسیبپذیر
است،
بنابراین
کارگزارهای
مدرن بر
تأیید هویت
مبتنی بر
گواهینامههای
PKIX تکیه
میکنند. از
این رو این
ماژول تنها
برای
سازگاری با
نسخههای
قدیمیتر
کارگزارهایی
که
نرمافزار
قدیمی را
اجرا
میکنند یا
کارگزارهای
بدون TLS یا
آنهایی با
گواهینامههای
نامعتبر
توصیه
میشود (تا
زمانی که
ریسکها را
میپذیرید،
مثلاً فرض
میکنید که
کارگزار
راه دور
دارای
گواهینامه
نامعتبر به
دلیل
مدیریت
ضعیف است و
نه به این
دلیل که به
خطر افتاده
است).
گزینههای
موجود:
access: AccessName
یک قانون
دسترسی که
میتواند
برای محدود
کردن dialback برای
برخی
کارگزارها
استفاده
شود. مقدار
پیشفرض all
است.
مثال:
modules:
mod_s2s_dialback:
access:
allow:
server: legacy.domain.tld
server: invalid-cert.example.org
deny: all
توجه
درباره این
گزینه: در
نسخه 24.10
اضافه شده
است.
این ماژول
پشتیبانی
از XEP-0480: SASL Upgrade Tasks را
اضافه
میکند که
به کاربران
اجازه
میدهد
رمزهای
عبور خود را
به نمایش
امنتری
ارتقا
دهند.
گزینههای
موجود:
offered_upgrades: list(sha256, sha512)
فهرستی
از انواع
ارتقا که
باید
پیشنهاد
شوند
مثال:
modules:
mod_scram_upgrade:
offered_upgrades:
- sha256
- sha512
این ماژول
نسخههایی
از تمام
stanzaها را به
سرورها یا
اجزای XMPP از
راه دور
ارسال
میکند. هر stanza
در قالب
عنصر <forwarded/> طبق
توضیحات XEP-0297: Stanza
Forwarding کپسوله
میشود.
گزینههای
موجود:
loggers: [Domain, ...]
فهرستی
از سرورها
یا اجزای
متصل که
stanzaها به
آنها
ارسال
خواهند شد.
مثال:
modules:
mod_service_log:
loggers:
- xmpp-server.tld
- component.domain.tld
این ماژول
به شما
امکان
میدهد
گروههای
فهرست
مخاطبین
مشترک
ایجاد کنید:
گروههایی
از
حسابهای
کاربری که
میتوانند
اعضای
گروههای
(دیگر) را در
فهرست
مخاطبین
خود
ببینند.
مزیتهای
بزرگ این
ویژگی این
است که
کاربران
نهایی
نیازی به
افزودن
دستی همه
کاربران به
فهرست
مخاطبین
خود ندارند
و
نمیتوانند
کاربران را
بهطور
دائم از
گروههای
فهرست
مشترک حذف
کنند. یک
گروه فهرست
مشترک
میتواند
اعضایی از
هر سرور XMPP
داشته
باشد، اما
حضور تنها
از اعضای
همان
میزبان
مجازی که
گروه در آن
ایجاد شده
است، در
دسترس
خواهد بود.
این ویژگی
همچنان به
کاربران
اجازه
میدهد
مخاطبین
خود را
داشته
باشند یا
اضافه
کنند، زیرا
جایگزین
فهرست
مخاطبین
استاندارد
نمیشود. در
عوض،
مخاطبین
فهرست
مشترک
هنگام
بازیابی به
فهرست
مخاطبین
کاربران
مربوطه
ادغام
میشوند.
بنابراین
فهرست
مخاطبین
استاندارد
کاربر بدون
تغییر باقی
میماند.
گروههای
فهرست
مشترک را
میتوان از
طریق پنل
مدیریت وب
ویرایش کرد
و برخی
دستورات API
با پیشوند
srg_، مانند API
srg_add وجود
دارند. هر
گروه یک نام
منحصربهفرد
و این
پارامترها
دارد:
•Label: در
فهرست
مخاطبینی
که این گروه
در آن نمایش
داده
میشود
استفاده
میشود.
•Description:
توضیح گروه
که تأثیری
ندارد.
•Members:
فهرستی از
JIDهای اعضای
گروه که در
پنل مدیریت
وب هر کدام
در یک خط
وارد
میشوند.
دستورالعمل
خاص عضو @all@
نماینده
همه
کاربران
ثبتنامشده
در میزبان
مجازی است؛
که فقط برای
سرور کوچک
با چند صد
کاربر
توصیه
میشود.
دستورالعمل
خاص عضو @online@
نماینده
کاربران
آنلاین در
میزبان
مجازی است.
با این دو
دستورالعمل،
فهرست
واقعی اعضا
در آن
فهرستهای
مشترک
بهصورت
پویا در
زمان
بازیابی
تولید
میشود.
•Displayed:
فهرستی از
گروههایی
که در فهرست
مخاطبین
اعضای این
گروه
خواهند بود.
یک گروه از vhost
دیگر را
میتوان با
groupid@vhost شناسایی
کرد.
این ماژول
به mod_roster
وابسته است.
اگر فعال
نباشد،
پرسشهای
فهرست
مخاطبین
خطای 503
برمیگردانند.
گزینههای
موجود:
cache_life_time: timeout()
مانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
مانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
مانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql
مانند
گزینه سطح
بالای default_db،
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
مانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
مثالها:
فرض کنید
یک باشگاه
کامپیوتر
میخواهد
همه اعضایش
یکدیگر را
در فهرست
مخاطبین
خود ببینند.
برای این
منظور،
باید یک
گروه فهرست
مشترک
مشابه این
ایجاد
کنند:
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
در حالت
دیگری،
شرکتی
داریم که سه
بخش دارد:
مدیریت،
بازاریابی
و فروش. همه
اعضای گروه
باید همه
اعضای دیگر
را در فهرست
مخاطبین
خود ببینند.
علاوه بر
این، همه
مدیران
باید همه
افراد
بازاریابی
و فروش را در
فهرست
مخاطبین
خود داشته
باشند.
همزمان،
همه
بازاریابها
و کل تیم
فروش باید
همه مدیران
را ببینند.
این سناریو
را میتوان
با ایجاد
گروههای
فهرست
مشترک
بهصورت
نشان
دادهشده
در
فهرستهای
زیر محقق
کرد:
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
این ماژول
به مدیر
سرور اجازه
میدهد
فهرست
مخاطبین
(لیست
مخاطبین)
کاربران را
بهطور
خودکار بر
اساس
کاربران و
گروههای
تعریفشده
در یک
دایرکتوری
مبتنی بر LDAP
پر کند.
توجه
mod_shared_roster_ldap به
فعال بودن
mod_roster وابسته
است. اگر mod_roster
فعال
نباشد،
پرسشهای
فهرست
مخاطبین
خطای 503
برمیگردانند.
این ماژول
گزینههای
پیکربندی
زیادی
میپذیرد.
برخی از
آنها، در
صورت مشخص
نشدن، به
مقادیر
تعیینشده
در سطح
بالای
پیکربندی
پیشفرض
میشوند.
این به شما
اجازه
میدهد از
مشخص کردن
مواردی
مانند رمز
عبور bind در
چندین مکان
اجتناب
کنید.
•فیلترها:
ldap_rfilter، ldap_ufilter،
ldap_gfilter، ldap_filter. این
گزینهها
فیلترهای LDAP
مورد
استفاده
برای پرسش
اطلاعات
فهرست
مشترک را
مشخص
میکنند.
همه آنها
در برابر ldap_base
اجرا
میشوند.
•ویژگیها:
ldap_groupattr، ldap_groupdesc،
ldap_memberattr، ldap_userdesc،
ldap_useruid. این
گزینهها
نام
ویژگیهایی
را که
دادههای
مهم را در
ورودیهای
برگشتی از
اجرای
فیلترهای
مشخصشده
نگه
میدارند،
مشخص
میکنند.
•پارامترهای
کنترلی:
ldap_auth_check، ldap_group_cache_validity،
ldap_memberattr_format، ldap_memberattr_format_re،
ldap_user_cache_validity. این
پارامترها
رفتار
ماژول را
کنترل
میکنند.
•پارامترهای
اتصال: این
ماژول
همچنین
پارامترهای
اتصال را
میپذیرد
که همه
آنها در
صورت مشخص
نشدن به
پارامتر
سطح بالای
با همان نام
پیشفرض
میشوند.
برای
اطلاعات
بیشتر بخش
ldap.md#ldap-connection|LDAP Connection را
ببینید.
همچنین
برای
جزئیات
بازیابی
فهرست
مخاطبین و
مثالهای
پیکربندی
شامل Flat DIT و Deep DIT،
بخش ldap.md#ldap-examples|Configuration examples
را بررسی
کنید.
گزینههای
موجود:
cache_life_time
مانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed
مانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size
مانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_auth_check: true | false
آیا
ماژول باید
(از طریق
زیرسیستم
احراز هویت
ejabberd) وجود هر
کاربر در
فهرست
مشترک LDAP را
بررسی کند.
در صورتی که
میخواهید
بررسی را
غیرفعال
کنید، به false
تنظیم کنید.
مقدار
پیشفرض true
است.
ldap_backups
مانند
گزینه سطح
بالای ldap_backups،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_base
مانند
گزینه سطح
بالای ldap_base،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_deref_aliases
مانند
گزینه سطح
بالای ldap_deref_aliases،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_encrypt
مانند
گزینه سطح
بالای ldap_encrypt،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_filter
فیلتر
اضافی که با
عملگر AND با «User
Filter» و «Group Filter»
ترکیب
میشود.
برای
اطلاعات
بیشتر بخش
ldap.md#filters|Filters LDAP را
بررسی
کنید.
ldap_gfilter
«Group Filter»،
هنگام
بازیابی
نام
قابلخواندن
توسط انسان
(معروف به «Display
Name») و اعضای
یک گروه
استفاده
میشود.
همچنین
پارامترهای
ldap_groupattr، ldap_groupdesc و
ldap_memberattr را
ببینید. در
صورت مشخص
نشدن، به
پارامتر
سطح بالای
با همان نام
پیشفرض
میشود. اگر
آن هم مشخص
نشده باشد،
فیلتر
دقیقاً
مانند «User Filter»
ساخته
میشود.
ldap_groupattr
نام
ویژگیای
که نام گروه
را نگه
میدارد و
برای تمایز
بین آنها
استفاده
میشود. از
نتایج «Roster Filter»
و «Group Filter»
بازیابی
میشود.
پیشفرض cn
است.
ldap_groupdesc
نام
ویژگیای
که نام گروه
قابلخواندن
توسط انسان
را در
اشیایی که
برای نمایش
گروهها
استفاده
میکنید
نگه
میدارد. از
نتایج «Group Filter»
بازیابی
میشود.
پیشفرض
همان
مقداری است
که برای ldap_groupattr
تنظیم شده
است.
ldap_memberattr
نام
ویژگیای
که
شناسههای
اعضای یک
گروه را نگه
میدارد. از
نتایج «Group Filter»
بازیابی
میشود.
پیشفرض memberUid
است. نام
ویژگی بسته
به objectClass مورد
استفاده
برای اشیای
گروه
متفاوت
است، برای
مثال: posixGroup →
memberUid؛ groupOfNames → member؛
groupOfUniqueNames → uniqueMember.
ldap_memberattr_format
قالب globbing
برای
استخراج
شناسه
کاربر از
مقدار
ویژگیای
که توسط ldap_memberattr
نامگذاری
شده است.
پیشفرض %u
است، به این
معنی که کل
مقدار
شناسه عضو
است. اگر آن
را به چیز
دیگری
تغییر
دهید، ممکن
است نیاز
باشد
فیلترهای User و
Group را هم
بهصورت
دستی مشخص
کنید؛ بخش Filters
را ببینید.
ldap_memberattr_format_re
یک عبارت
منظم برای
استخراج
شناسه
کاربر از
مقدار
ویژگیای
که توسط ldap_memberattr
نامگذاری
شده است. بخش
ldap.md#control-parameters|Control Parameters LDAP را
بررسی
کنید.
ldap_password
مانند
گزینه سطح
بالای ldap_password،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_port
مانند
گزینه سطح
بالای ldap_port،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_rfilter
به
اصطلاح «Roster
Filter». برای
یافتن
نامهای
همه
گروههای
«فهرست
مشترک»
استفاده
میشود.
همچنین
پارامتر ldap_groupattr
را ببینید.
در صورت
مشخص نشدن،
به پارامتر
سطح بالای
با همان نام
پیشفرض
میشود.
باید آن را
در جایی در
پیکربندی
مشخص کنید،
هیچ مقدار
پیشفرضی
وجود
ندارد.
ldap_rootdn
مانند
گزینه سطح
بالای ldap_rootdn،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_servers
مانند
گزینه سطح
بالای ldap_servers،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_cacertfile
مانند
گزینه سطح
بالای ldap_tls_cacertfile،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_certfile
مانند
گزینه سطح
بالای ldap_tls_certfile،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_depth
مانند
گزینه سطح
بالای ldap_tls_depth،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_verify
مانند
گزینه سطح
بالای ldap_tls_verify،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_ufilter
«User Filter»،
برای
بازیابی
نام
قابلخواندن
توسط انسان
از
ورودیهای
فهرست
مخاطبین
(معمولاً
نام کامل
افراد در
فهرست)
استفاده
میشود.
همچنین
پارامترهای
ldap_userdesc و ldap_useruid را
ببینید.
برای
اطلاعات
بیشتر بخش
ldap.md#filters|Filters LDAP را
بررسی
کنید.
ldap_uids
مانند
گزینه سطح
بالای ldap_uids،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_userdesc
نام
ویژگیای
که نام
قابلخواندن
توسط انسان
را نگه
میدارد. از
نتایج «User Filter»
بازیابی
میشود.
پیشفرض cn
است.
ldap_userjidattr
نام
ویژگیای
که برای
نگاشت
شناسه
کاربر به XMPP jid
استفاده
میشود. اگر
مشخص نشده
باشد (که
مقدار
پیشفرض
این گزینه
است)، jid کاربر
از شناسه
کاربر و
میزبان این
ماژول
ساخته
میشود.
ldap_useruid
نام
ویژگیای
که شناسه یک
آیتم فهرست
مخاطبین را
نگه
میدارد.
مقدار این
ویژگی در
اشیای آیتم
فهرست
مخاطبین
باید با
شناسه
بازیابیشده
از ویژگی
ldap_memberattr یک شیء
گروه
مطابقت
داشته باشد.
از نتایج «User
Filter» بازیابی
میشود.
پیشفرض cn
است.
use_cache
مانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
این ماژول
پشتیبانی
از XEP-0279: Server IP Check را
اضافه
میکند. این
پروتکل به
کلاینت
امکان
میدهد
آدرس IP خارجی
خود را کشف
کند.
هشدار
این
افزونه
پروتکل به
تعویق
افتاده و به
نظر میرسد
هیچ
کلاینتی از
آن
پشتیبانی
نمیکند،
بنابراین
استفاده از
این ماژول
توصیه
نمیشود و
علاوه بر
این، ممکن
است در
آینده حذف
شود.
این ماژول
هیچ
گزینهای
ندارد.
این ماژول
پشتیبانی
از
پراکسی/ثبتکننده
SIP را برای
هاست مجازی
مربوطه
اضافه
میکند.
توجه
صرفاً
بارگذاری
این ماژول
کافی نیست.
باید
شنوندگان و
رکوردهای DNS
را نیز به
درستی
پیکربندی
کنید. برای
جزئیات به
بخش مربوط
به ماژول
شنوند
listen.md#ejabberd_sip|ejabberd_sip در
مستندات ejabberd
مراجعه
کنید.
گزینههای
موجود:
always_record_route: true | false
همیشه
هدر "Record-Route" را
در
پیامهای SIP
درج میکند.
با این
رویکرد،
دور زدن
NAT/فایروالها
کمی
آسانتر
میشود.
مقدار
پیشفرض true
است.
flow_timeout_tcp: timeout()
این
گزینه یک
تایمر keep-alive
برای
اتصالات TCP در
SIP outbound تنظیم
میکند.
مقدار
پیشفرض 2
دقیقه است.
flow_timeout_udp: timeout()
این
گزینه یک
تایمر keep-alive
برای
اتصالات UDP در
SIP outbound تنظیم
میکند.
مقدار
پیشفرض 29
ثانیه است.
record_route: URI
هنگامی
که گزینه
always_record_route روی true
تنظیم شده
یا از SIP outbound
استفاده
میشود، ejabberd
فیلد هدر
"Record-Route" را با
این URI در
پیام SIP درج
میکند.
پیشفرض یک URI
SIP است که از
هاست مجازی
که ماژول
روی آن
بارگذاری
شده، ساخته
میشود.
routes: [URI, ...]
میتوانید
فهرستی از URI
های SIP برای
مسیرهایی
که به این
سرور
پراکسی SIP
اشاره
دارند
تنظیم کنید.
پیشفرض
فهرستی
شامل یک URI SIP
است که از
هاست مجازی
که ماژول
روی آن
بارگذاری
شده، ساخته
میشود.
via: [URI, ...]
فهرستی
برای ساخت
هدرهای "Via"
جهت درج در
پیامهای SIP
خروجی. این
گزینه در
صورتی مفید
است که
پراکسی SIP شما
در یک
توپولوژی
شبکه
غیراستاندارد
اجرا
میشود. هر
عنصر URI در
فهرست باید
به صورت
"scheme://host:port" باشد،
که در آن "transport"
باید tls، tcp،
یا udp باشد،
"host" باید یک
نام دامنه
یا آدرس IP
باشد و "port"
باید یک
شماره پورت
اینترنتی
باشد. توجه
داشته
باشید که
تمام
بخشهای URI
اجباری
هستند
(مثلاً
نمیتوانید
"port" یا "scheme" را
حذف کنید).
مثال:
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
این ماژول
پشتیبانی
از XEP-0039: Statistics Gathering را
اضافه
میکند. این
پروتکل به
شما امکان
میدهد
آمارهای
زیر را از
سرور ejabberd خود
دریافت
کنید:
•تعداد
کل کاربران
ثبتشده در
هاست مجازی
فعلی (users/total).
•تعداد
کل کاربران
ثبتشده در
تمام
هاستهای
مجازی (users/all-hosts/total).
•تعداد
کل کاربران
آنلاین در
هاست مجازی
فعلی (users/online).
•تعداد
کل کاربران
آنلاین در
تمام
هاستهای
مجازی (users/all-hosts/online).
توجه
این
افزونه
پروتکل به
تعویق
افتاده و به
نظر میرسد
حتی تعداد
کمی از
کلاینتهایی
که از آن
پشتیبانی
میکردند
اکنون رها
شدهاند.
بنابراین
استفاده از
این ماژول
چندان
منطقی
نیست.
این ماژول
هیچ
گزینهای
ندارد.
این ماژول
پشتیبانی
از XEP-0198: Stream Management را
اضافه
میکند. این
پروتکل
امکان
مدیریت
فعال یک
جریان XML بین
دو موجودیت
XMPP را فراهم
میکند، از
جمله
ویژگیهایی
برای تأیید
استانزا و
از سرگیری
جریان.
گزینههای
موجود:
ack_timeout: timeout()
مدت زمان
انتظار
برای تأیید
استانزاها.
تنظیم آن
روی infinity
عملاً
تایماوت
را غیرفعال
میکند.
مقدار
پیشفرض 1
دقیقه است.
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
مقدار
پیشفرض 48 hours
است.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
max_ack_queue: Size
این
گزینه
حداکثر
تعداد
استانزاهای
تأیید
نشدهای که
برای
احتمال
ارسال مجدد
در صف قرار
میگیرند
را مشخص
میکند.
هنگامی که
این
محدودیت از
حد گذشت،
نشست
کلاینت
خاتمه
مییابد.
مقادیر
مجاز اعداد
صحیح مثبت و
infinity هستند.
باید در
تنظیم این
مقدار دقت
کنید زیرا
نباید خیلی
کم تنظیم
شود، در غیر
این صورت
ممکن است
نشستها را
در یک حلقه
متوقف
کنید، قبل
از اینکه
فرصت پایان
دادن صحیح
به
راهاندازی
نشست را
داشته
باشند.
قطعاً باید
بالاتر از
اندازه صف
آفلاین
تنظیم شود
(برای مثال
حداقل ۳
برابر
مقدار
حداکثر صف
آفلاین و
هرگز کمتر
از 1000 نباشد).
مقدار
پیشفرض 5000
است.
max_resume_timeout: timeout()
یک
کلاینت
میتواند
مدت زمانی
را که یک
نشست در
صورت قطع
اتصال
تایماوت
میشود
مشخص کند. در
این مدت
زمان،
کلاینت
میتواند
نشست خود را
از سر بگیرد.
این گزینه
مدت زمانی
را که
کلاینت
مجاز است
درخواست
کند محدود
میکند.
باید روی
مقداری
مساوی یا
بزرگتر از
resume_timeout پیشفرض
تنظیم شود.
به طور
پیشفرض،
روی همان
مقدار
گزینه resume_timeout
تنظیم
میشود.
queue_type: ram | file
همانند
گزینه سطح
بالای queue_type،
اما فقط
برای این
ماژول
اعمال
میشود.
resend_on_timeout: true | false | if_offline
اگر این
گزینه روی true
تنظیم شود،
هر
استانزای
پیامی که
توسط
کلاینت
تأیید نشده
باشد در
هنگام
تایماوت
نشست
مجدداً
ارسال
میشود. این
رفتار ممکن
است اغلب
مطلوب
باشد، اما
در برخی
شرایط
میتواند
نتایج
غیرمنتظرهای
داشته باشد.
برای مثال،
پیامی که به
دو منبع
ارسال شده
ممکن است به
یکی از
آنها
مجدداً
ارسال شود
اگر دیگری
تایماوت
شود.
بنابراین
مقدار
پیشفرض
این گزینه false
است، که به ejabberd
میگوید به
جای آن یک
پیام خطا
تولید کند.
به عنوان
جایگزین،
گزینه ممکن
است روی if_offline
تنظیم شود.
در این
حالت،
پیامهای
تأیید نشده
تنها در
صورتی
مجدداً
ارسال
میشوند که
هیچ منبع
دیگری
هنگام
تایماوت
نشست
آنلاین
نباشد. در
غیر این
صورت،
پیامهای
خطا تولید
میشوند.
resume_timeout: timeout()
این
گزینه دوره
زمانی
(پیشفرض) را
تنظیم
میکند که
در صورت قطع
اتصال، یک
نشست
تایماوت
میشود. در
این مدت
زمان،
کلاینت
میتواند
نشست خود را
از سر بگیرد.
توجه داشته
باشید که
کلاینت
میتواند
مقدار
تایماوت
متفاوتی
درخواست
کند، به
گزینه max_resume_timeout
مراجعه
کنید. تنظیم
آن روی 0
عملاً از
سرگیری
نشست را
غیرفعال
میکند.
مقدار
پیشفرض 5
دقیقه است.
توجه
درباره این
گزینه: در
نسخه 20.04
اضافه شده
است.
این ماژول
به
کلاینتهای
XMPP امکان
میدهد
سرویسهای
STUN/TURN را کشف
کنند و
اعتبارنامههای
موقت برای
استفاده از
آنها طبق XEP-0215:
External Service Discovery دریافت
کنند.
گزینههای
موجود:
access: AccessName
این
گزینه مشخص
میکند
کدام قانون
دسترسی
برای کنترل
اینکه چه
کسی مجاز به
کشف
سرویسهای
STUN/TURN و درخواست
اعتبارنامههای
موقت است،
استفاده
میشود.
مقدار
پیشفرض local
است.
credentials_lifetime: timeout()
مدت
اعتبار
اعتبارنامههای
موقت ارائه
شده به
کلاینتها.
اگر از
سرویس TURN
داخلی ejabberd
استفاده
شود،
رلههای TURN
اختصاصیافته
با
اعتبارنامههای
موقت
بلافاصله
پس از
انقضای
اعتبارنامهها
خاتمه
مییابند.
مقدار
پیشفرض 12 hours
است. توجه
داشته
باشید که
راهاندازی
مجدد گره ejabberd
هر
اعتبارنامه
موقتی که
قبل از
راهاندازی
مجدد ارائه
شده را باطل
میکند،
مگر اینکه
یک secret مشخص
شده باشد (به
زیر مراجعه
کنید).
offer_local_services: true | false
این
گزینه مشخص
میکند که
آیا
سرویسهای
محلی STUN/TURN که به
عنوان
شنوند ejabberd
پیکربندی
شدهاند
باید به
صورت
خودکار
اعلام شوند.
توجه داشته
باشید که
این
سرویسهای
فعالشده
با TLS را شامل
نمیشود،
که باید با
استفاده از
گزینه services به
صورت دستی
پیکربندی
شوند (به زیر
مراجعه
کنید). برای
سرویسهای TURN
غیرناشناس،
اعتبارنامههای
موقت به
کلاینت
ارائه
میشوند.
مقدار
پیشفرض true
است.
secret: Text
رمز مورد
استفاده
برای تولید
اعتبارنامههای
موقت. اگر
این گزینه
مشخص نشود،
یک رمز به
صورت
خودکار
تولید
میشود. با
این حال،
اگر
سرویسهای TURN
غیرناشناس
روی سایر
گرههای ejabberd
و/یا services TURN
خارجی
پیکربندی
شده باشند،
باید یک رمز
به صورت
صریح مشخص
شود. همچنین
توجه داشته
باشید که
رمزهای
تولیدشده
به صورت
خودکار
هنگام
راهاندازی
مجدد گره از
دست
میروند،
که هر
اعتبارنامهای
که قبل از
راهاندازی
مجدد ارائه
شده را باطل
میکند.
بنابراین
توصیه
میشود اگر
کلاینتها
اعتبارنامههای
دریافتشده
را برای
استفاده
بعدی در
سراسر
راهاندازی
مجدد سرویس
ذخیره
میکنند،
یک رمز به
صورت صریح
مشخص شود.
services: [Service, ...]
فهرست
سرویسهای
ارائه شده
به
کلاینتها.
این فهرست
میتواند
شامل
سرویسهای
STUN/TURN روی هر گره
ejabberd و/یا
سرویسهای
خارجی باشد.
با این حال،
اگر هر
سرویس TURN
فهرستشدهای
که روی گره ejabberd
محلی اجرا
نمیشود
نیاز به
احراز هویت
داشته
باشد، باید
یک
secret به
صورت صریح
مشخص شود و
با آن سرویس
به اشتراک
گذاشته شود.
این تنها با
سرور داخلی
STUN/TURN ejabberd و با
سرورهای
خارجی که از
همان REST API For Access To TURN Services
پشتیبانی
میکنند
کار خواهد
کرد. مگر
اینکه
offer_local_services
روی
false تنظیم
شود،
سرویسهای
فهرستشده
به صورت
صریح علاوه
بر
سرویسهایی
که به صورت
خودکار
اعلام
میشوند
ارائه
خواهند شد.
host: Host
نام هاست
یا آدرس IP که
سرویس STUN/TURN روی
آن گوش
میدهد.
برای
سرویسهای
غیر TLS، توصیه
میشود یک
آدرس IP مشخص
شود (برای
جلوگیری از
تأخیر
اضافی
جستجوی DNS در
سمت کلاینت).
برای
سرویسهای
TLS، نام هاست
(یا آدرس IP)
باید با
گواهی
مطابقت
داشته باشد.
مشخص کردن
گزینه host
اجباری
است.
port: 1..65535
شماره
پورتی که
سرویس STUN/TURN روی
آن گوش
میدهد.
شماره پورت
پیشفرض
برای
سرویسهای
غیر TLS 3478 و برای
سرویسهای TLS
5349 است.
restricted: true | false
این
گزینه
تعیین
میکند که
آیا
اعتبارنامههای
موقت برای
دسترسی به
سرویس
ارائه
میشوند.
پیشفرض
برای
سرویسهای
STUN/STUNS false و برای
سرویسهای
TURN/TURNS true است.
transport: tcp | udp
پروتکل
انتقال
پشتیبانیشده
توسط سرویس.
پیشفرض
برای
سرویسهای
غیر TLS udp و
برای
سرویسهای TLS
tcp است.
type: stun | turn | stuns | turns
نوع
سرویس. برای
سرویسهای
غیر TLS باید stun
یا turn و برای
سرویسهای TLS
باید stuns یا turns
باشد. نوع
پیشفرض stun
است.
مثال:
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
این ماژول
پشتیبانی
از XEP-0202: Entity Time را
اضافه
میکند. به
عبارت
دیگر،
ماژول زمان
سیستم سرور
را گزارش
میدهد.
این ماژول
هیچ
گزینهای
ندارد.
این ماژول
به کاربران
نهایی
اجازه
میدهد vCard
خود را
ذخیره و
بازیابی
کنند، و vCard
سایر
کاربران را
نیز
بازیابی
نمایند،
همانطور
که در XEP-0054: vcard-temp
تعریف شده
است. همچنین
این ماژول
یک
دایرکتوری
ساده
کاربران Jabber
بر اساس vCard
این
کاربران
پیادهسازی
میکند.
علاوه بر
این، سرور
را قادر
میسازد تا
در صورت
درخواست، vCard
خود را
ارسال کند.
گزینههای
موجود:
allow_return_all: true | false
این
گزینه به
شما امکان
میدهد
مشخص کنید
که آیا
عملیات
جستجو با
فیلدهای
ورودی خالی
باید تمام
کاربرانی
را که
اطلاعاتی
به vCard خود
اضافه
کردهاند
برگرداند
یا خیر.
مقدار
پیشفرض false
است.
append_module_config 🟠: {VcardHost:
Options}
نکته
درباره این
گزینه: در
نسخه
26.07
اضافه شده
است. چند
گزینه خاص
را به یک
هاست آپلود
مشخص که
قبلاً در
گزینه
hosts در
mod_vcard تعریف شده
اضافه
میکند. در
حال حاضر
فقط
name
میتواند
اینجا
تعریف شود.
این مشابه
گزینه سطح
بالای
append_host_config
است، اما در
این حالت
برای
گزینههای
این ماژول
اعمال
میشود.
مثال:
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"
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time ،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed ،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size ،
اما فقط
برای این
ماژول
اعمال
میشود.
db_type: mnesia | sql | ldap
همانند
گزینه سطح
بالای default_db ،
اما فقط
برای این
ماژول
اعمال
میشود.
host
منسوخ
شده. به جای
آن از hosts
استفاده
کنید.
hosts: [Host, ...]
این
گزینه
شناسههای
Jabber سرویس را
تعریف
میکند. اگر
گزینه hosts
مشخص نشده
باشد، تنها
شناسه Jabber،
نام هاست
میزبان
مجازی با
پیشوند "vjud."
خواهد بود.
کلیدواژه @HOST@
با نام
واقعی
میزبان
مجازی
جایگزین
میشود.
matches: pos_integer() | infinity
با این
گزینه،
تعداد
نتایج
جستجوی
گزارششده
را میتوان
محدود کرد.
اگر مقدار
گزینه روی
infinity تنظیم
شود، تمام
نتایج
جستجو
گزارش
میشوند.
مقدار
پیشفرض 30
است.
name: Name
مقدار
نام سرویس.
این نام فقط
در برخی
کلاینتهایی
که از XEP-0030: Service Discovery
پشتیبانی
میکنند
نمایش داده
میشود.
پیشفرض vCard User
Search است.
search: true | false
این
گزینه مشخص
میکند که
آیا قابلیت
جستجو فعال
است یا خیر.
در صورت
غیرفعال
بودن،
گزینههای
hosts ، name و vcard
نادیده
گرفته
میشوند و
سرویس
دایرکتوری
کاربران Jabber
در فهرست
آیتمهای Service
Discovery ظاهر
نخواهد شد.
مقدار
پیشفرض false
است.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache ،
اما فقط
برای این
ماژول
اعمال
میشود.
vcard: vCard
یک vCard
سفارشی از
سرور که
توسط برخی
کلاینتهای
XMPP در Service Discovery
نمایش داده
میشود.
مقدار
vCard یک
نقشه YAML است
که از نمایش XML
یک vCard ساخته
میشود. از
آنجا که این
نمایش هیچ
ویژگیای
ندارد،
نگاشت ساده
است.
مثال:
# This XML representation of vCard:
#
# <vCard xmlns='vcard-temp'>
# <FN>Conferences</FN>
# <ADR>
# <WORK/>
# <STREET>Elm Street</STREET>
# </ADR>
# </vCard>
#
# is translated to:
#
vcard:
fn: Conferences
adr:
-
work: true
street: Elm Street
گزینههای
موجود برای
پشتیبان ldap:
ldap_backups
همانند
گزینه سطح
بالای ldap_backups ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_base
همانند
گزینه سطح
بالای ldap_base ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_deref_aliases
همانند
گزینه سطح
بالای ldap_deref_aliases ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_encrypt
همانند
گزینه سطح
بالای ldap_encrypt ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_filter
همانند
گزینه سطح
بالای ldap_filter ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_password
همانند
گزینه سطح
بالای ldap_password ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_port
همانند
گزینه سطح
بالای ldap_port ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_rootdn
همانند
گزینه سطح
بالای ldap_rootdn ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_search_fields: {Name: Attribute, ...}
این
گزینه فرم
جستجو و
ویژگیهای LDAP
برای جستجو
در آنها را
تعریف
میکند.
Name
نام یک فیلد
فرم جستجو
است که
بهطور
خودکار با
استفاده از
فایلهای
ترجمه
ترجمه
میشود
(برای کلمات
موجود به
msgs/*.msg
مراجعه
کنید).
Attribute
ویژگی LDAP یا
الگوی
%u است.
مثالها:
مقدار
پیشفرض:
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
ldap_search_reported: {SearchField: VcardField},
...}
این
گزینه
تعریف
میکند که
کدام
فیلدهای
جستجو باید
گزارش شوند.
SearchField نام یک
فیلد فرم
جستجو است
که بهطور
خودکار با
استفاده از
فایلهای
ترجمه
ترجمه
میشود
(برای کلمات
موجود به
msgs/*.msg
مراجعه
کنید).
VcardField نام
فیلد vCard
تعریفشده
در گزینه
ldap_vcard_map است.
مثالها:
مقدار
پیشفرض:
"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
ldap_servers
همانند
گزینه سطح
بالای ldap_servers ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_cacertfile
همانند
گزینه سطح
بالای ldap_tls_cacertfile ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_certfile
همانند
گزینه سطح
بالای ldap_tls_certfile ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_depth
همانند
گزینه سطح
بالای ldap_tls_depth ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_tls_verify
همانند
گزینه سطح
بالای ldap_tls_verify ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_uids
همانند
گزینه سطح
بالای ldap_uids ،
اما فقط
برای این
ماژول
اعمال
میشود.
ldap_vcard_map: {Name: {Pattern, LDAPattributes},
...}
با این
گزینه
میتوانید
جدولی که
ویژگیهای LDAP
را به
فیلدهای vCard
نگاشت
میکند
تنظیم کنید.
Name نام نوع vCard
است که در RFC 2426
تعریف شده
است.
Pattern
رشتهای
است که شامل
متغیرهای
الگو
%u ،
%d یا
%s میشود.
LDAPattributes لیستی
است که
ویژگیهای LDAP
را در بر
میگیرد.
متغیرهای
الگو
%s
بهطور
متوالی با
مقادیر
ویژگیهای LDAP
از
List_of_LDAP_attributes
جایگزین
میشوند،
%u
با بخش
کاربری یک JID
جایگزین
میشود، و
%d
با بخش
دامنه یک JID
جایگزین
میشود.
مثالها:
مقدار
پیشفرض:
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]}
گزینههای
موجود برای
پشتیبان mnesia:
search_all_hosts: true | false
آیا
جستجو روی
تمام
میزبانهای
مجازی
انجام شود
یا خیر.
مقدار
پیشفرض true
است.
کلاینت
کاربر
میتواند
یک آواتار
را در vCard
کاربر
ذخیره کند.
پروتکل
آواتارهای
مبتنی بر vCard (XEP-0153)
روشی برای
کلاینتها
فراهم
میکند تا
به مخاطبین
اطلاع دهند
که مقدار هش
آواتار
چیست. با این
حال،
کلاینتهای
ساده یا
کوچک ممکن
است این
پروتکل را
پیادهسازی
نکنند.
اگر این
ماژول فعال
باشد، تمام
استانزاهای
presence خروجی
کلاینت
بهطور
خودکار هش
آواتار را
از طرف
کلاینت
دریافت
میکنند.
بنابراین،
مخاطبین
استانزاهای
presence را با Update Data
شرحدادهشده
در XEP-0153 دریافت
میکنند،
انگار که
کلاینت
خودش آن را
درج کرده
بود. اگر
کلاینت از
قبل چنین
عنصری را در
استانزای presence
قرار داده
بود، با
عنصر
تولیدشده
توسط ejabberd
جایگزین
میشود.
با
فعالسازی
این ماژول،
هر تغییر در
vCard موجب
محاسبه
مجدد هش
میشود، و
هر presence
ارسالشده
توسط
کلاینت
موجب
بازیابی هش
و بازنویسی
استانزای presence
میشود. به
همین دلیل،
فعالسازی
این ماژول
سربار
محاسباتی
را در
سرورهایی
با
کلاینتهایی
که بهطور
مکرر presence خود
را تغییر
میدهند
افزایش
میدهد. با
این حال،
استفاده از
حافظه نهان
این سربار
را بهطور
قابل توجهی
کاهش
میدهد،
بنابراین
احتمالاً
نمیخواهید
use_cache را روی false
تنظیم
کنید.
این ماژول
به mod_vcard
وابسته
است.
توجه
امروزه XEP-0153
عمدتاً
بهصورت
«فقط
خواندنی»
استفاده
میشود،
یعنی
کلاینتهای
مدرن
آواتارهای
خود را درون
vCard منتشر
نمیکنند.
بنابراین
در اکثر
موارد این
ماژول فقط
در کنار mod_avatar
برای تأمین
سازگاری با
نسخههای
قدیمی
استفاده
میشود.
گزینههای
موجود:
cache_life_time: timeout()
همانند
گزینه سطح
بالای cache_life_time،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_missed: true | false
همانند
گزینه سطح
بالای cache_missed،
اما فقط
برای این
ماژول
اعمال
میشود.
cache_size: pos_integer() | infinity
همانند
گزینه سطح
بالای cache_size،
اما فقط
برای این
ماژول
اعمال
میشود.
use_cache: true | false
همانند
گزینه سطح
بالای use_cache،
اما فقط
برای این
ماژول
اعمال
میشود.
این ماژول
XEP-0092: Software Version را
پیادهسازی
میکند. در
نتیجه،
هنگام
دریافت
درخواست،
نسخه ejabberd را
پاسخ
میدهد.
گزینههای
موجود:
show_os: true | false
آیا
سیستمعامل
فاش شود یا
خیر. مقدار
پیشفرض true
است.