65 lines
3.8 KiB
Plaintext
65 lines
3.8 KiB
Plaintext
# ============================================================
|
|
# 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
|
|
|
|
# TLS (turns:) معطّل افتراضياً عمداً: بلا شهادة صالحة يرفض coturn تشغيل
|
|
# مستمع TLS ويكتفي بتسجيل خطأ، فيصير عنوان turns: في قائمة ICE مساراً
|
|
# ميتاً يُبطئ التفاوض بلا فائدة. لتفعيله: ضع شهادة النطاق وامنح الحاوية
|
|
# قراءتها، ثم أزل التعليق عن الأسطر الثلاثة، واضبط TURN_TLS_ENABLED=true
|
|
# في .env كي يُعلنه الباك إند للتطبيق.
|
|
# tls-listening-port=5349
|
|
# 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 على جدار الحماية وإلا فشل التمرير بصمت.
|
|
min-port=49160
|
|
max-port=49300
|
|
|
|
# ── تقييد الوجهات ──────────────────────────────────────────
|
|
# بلا هذا يصير 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
|