Files
2026-08-09 16:56:13 +03:00

69 lines
4.1 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# turnserver.conf — خادم TURN (coturn) لمكالمات تربز الصوتية
# ------------------------------------------------------------
# لماذا TURN أصلاً: STUN وحده يكفي فقط حين يستطيع الطرفان رؤية بعضهما
# مباشرة. سائق وزبون كلاهما على بيانات الجوال يقعان غالباً خلف CGNAT
# (Symmetric NAT)، فتفشل المسارات المباشرة وتبقى المكالمة صامتة رغم
# نجاح الإشارات. TURN يمرّر الصوت عبر الخادم كملاذ أخير.
#
# المصادقة: use-auth-secret (بيانات مؤقتة عبر HMAC) — لا كلمات مرور
# ثابتة في التطبيق. المفتاح السرّي يُمرَّر من docker-compose، ونفسه
# يستعمله backend/ride/call/turn_credentials.php لتوليد البيانات.
#
# ⚠️ بورتات تربز مختلفة عن نسخة سيرو على نفس السيرفر:
# سيرو: listening-port=3478 relay 49160–49300
# تربز: listening-port=3479 relay 49301–49400
# ============================================================
listening-port=3479
# TLS (turns:) معطّل افتراضياً عمداً: بلا شهادة صالحة يرفض coturn تشغيل
# مستمع TLS ويسجّل خطأ فقط، فيصير عنوان turns: في قائمة ICE مساراً
# ميتاً يبطئ التفاوض. لتفعيله: ضع شهادة النطاق وامنح الحاوية قراءتها،
# ثم أزل التعليق عن الأسطر الثلاثة، واضبط TURN_TLS_ENABLED=true في .env
# كي يُعلنه الباك إند للتطبيق.
# tls-listening-port=5350
# cert=/keys/turn/fullchain.pem
# pkey=/keys/turn/privkey.pem
fingerprint
use-auth-secret
# static-auth-secret و realm و external-ip تُمرَّر كوسائط من docker-compose
# (من .env) حتى لا يُخزَّن السر داخل ملف متعقَّب في Git.
# نطاق منافذ التمرير — كل مكالمة تحجز منفذاً أو اثنين.
# يجب فتح هذا النطاق UDP على جدار الحماية وإلا فشل التمرير بصمت.
# (النطاق 49160–49300 محجوز لنسخة سيرو على السيرفر نفسه)
min-port=49301
max-port=49400
# ── تقييد الوجهات ──────────────────────────────────────────
# بلا هذا يصير TURN بوابة تصل للشبكة الداخلية: أي مستخدم يملك بيانات
# اعتماد صالحة يطلب من السلر فتح مسار إلى 127.0.0.1 أو 172.x فيصل
# إلى mysql/redis/الحاويات. نمنع كل النطاقات الخاصة صراحةً.
no-multicast-peers
denied-peer-ip=0.0.0.0-0.255.255.255
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=127.0.0.0-127.255.255.255
denied-peer-ip=169.254.0.0-169.254.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=100.64.0.0-100.127.255.255
denied-peer-ip=::1
denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
# ── حدود الاستهلاك ─────────────────────────────────────────
# TURN يمرّر كل بايت من الصوت، فبلا سقف تصير الفاتورة والنطاق مفتوحين.
# مكالمة صوتية Opus ≈ 40 kbps لكل اتجاه — 500 kbps سقف سخيّ جداً للصوت
# ويقطع أي وقت يستعمله الخادم كبروكسي فيديو أو تنزيل.
user-quota=12
total-quota=1200
max-bps=64000
bps-capacity=0
# ── تشغيل ──────────────────────────────────────────────────
no-cli
stale-nonce=600
# لا نُسجّل كل مسارات — الأخطاء فقط
simple-log