تفعيل الإجتماعات المرئية على أودو 15 وتثبيت خادم Turn على ديبيان/أوبنتو



ينقسم هذا المقال إلى قسمين أولهم هو تثبيت خادم ال Turn server على النظام وإعداده ,ثم إعداد نظام الأودو لكي نتمكن من إستخدام الإجتماعات المرئية الموجودة في أودو 15.
أولا إعداد ال Turn server
قبل البدء في الشرح سنتطرق إلى بعض التعريفات لفهم ما هو خادم ال Turn
لكي تستطيع عمل إتصالات في الوقت الفعلي من خلال المُتصفحات والهواتف الجوالة دون الحاجة إلى أي إضافات خارجية ظهر مشروع WebRTC بهدف توفير واجهات برمجية APIs تسمح بإجراء مكالمات مرئية (صوت وصورة) من داخل المُتصفح.
ولكي نستطيع الإستفادة من هذا البروتوكول يتم إستخدام أدوات كـ STUN (Session Traversal Utilities for NAT) وهي عبارة عن مجموعة موحدة من الأساليب ، بما في ذلك بروتوكول الشبكة ، لاجتياز بوابات مترجم عنوان الشبكة (NAT) في تطبيقات الصوت والفيديو والرسائل والاتصالات التفاعلية الأخرى في الوقت الفعلي.
ويُمكن كذلك إستخدام أداة كـ TURN (Traversal Using Relays around NAT) هو بروتوكول يساعد في اجتياز مترجمي عناوين الشبكة (NAT) أو جدران الحماية لتطبيقات الوسائط المتعددة. يمكن استخدامه مع بروتوكول التحكم في الإرسال (TCP) وبروتوكول مخطط بيانات المستخدم (UDP). إنه مفيد للغاية للعملاء على الشبكات التي تتنكر فيها أجهزة NAT المتماثلة. لا تساعد TURN في تشغيل الخوادم على منافذ معروفة في الشبكة الخاصة من خلال NAT ؛ إنه يدعم اتصال مستخدم خلف NAT بنظير واحد فقط ، كما هو الحال في الاتصالات الهاتفية ، على سبيل المثال.
في هذا المقال سنتستخدم برمجية Coturn وهي توفر كلا الأداتين STUN و TURN
سنشرح في هذا المقال كيفية تثبيت خادم Turn على ديبيان وما بني عليها كأوبنتو
أولا نقوم بتحديث النظام عن طريق الأمر
sudo apt-get update
ثانيا نقوم بتثبيت البرمجيات المطلوبة عن طريق الأمر التالي
sudo apt-get install openssl certbot coturn
قمنا بتثبيت البرمجية المطلوبة وهي Coturn وكذلك OpenSSL و Certbot لتشفير الإتصال وإنشاء شهادة للدومين المُستخدم
ثالثاً نقوم بإنشاء شهادة خاصة عن طريق الأمر التالي
sudo certbot certonly –standalone
سيظهر لنا معالج يسأل بعض الأسئلة كالدومين والبريد نقوم بملئ البيانات المطلوبة لإنشاء الشهادة
بذلك نكون ةقد أنشئنا شهادة SSL/TLS يمكنك العثور عليها في المسار
/etc/letsencrypt/live/YOUR_DOMAIN/
بعد ذلك نقوم بإنشاء ملف DH بمعيار تشفير 2048 بت بإستخدام OpenSSL بالأوامر التالية
cd /etc/letsencrypt/live/YOUR_DOMAIN/
sudo openssl dhparam -out dhparam.pem 2048
رابعاً إعداد ال Coturn
نبدئها بعمل نسخه إحتياطية من ملف الإعدادات
sudo mv /etc/turnserver.conf /etc/turnserver.bak
بعد ذلك ننشئ ملف جديد عن طريق الأمر
nano /etc/turnserver.conf
# إستبدل البيانات بما يناسب الخادم الخاص بك
realm=YOUR_SERVER_DOMAIN #دومين الخادم
fingerprint
listening-ip=0.0.0.0
external-ip=SERVER_Public_IP #الآيبي الخارجي للخادم
listening-port=3478
tls-listening-port=5349
min-port=32769
max-port=65535
log-file=/var/log/turnserver.log #مسار ملف السجلات
verbose
no-cli
no-loopback-peers
no-multicast-peers
# إعدادات ال SSL
cert=/etc/letsencrypt/live/YOUR_DOMAIN/cert.pem
pkey=/etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem
dh-file=/etc/letsencrypt/live/YOUR_DOMAIN/dhparam.pem
cipher-list=”ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384″
#Long Term Credential Mechanism authentication
lt-cred-mech
user1=username1:password1 # إسم المستخدم الذي تريد إنشائة
نحفظ الملف بالضغط على ctrl+x ثم y ثم enter
بعد ذلك نقوم بعمل إعادة تشغيل للخدمة عن طريق الأمر التالي
service coturn restart
ونتأكد من عمل الخدمة عن طريق الأمر التالي
service coturn status
يُمكننا إختبار الخدمة عن طريق الرابط التالي
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
نقوم بملئ البيانات كما في الصورة
ثم نضغك على زر Gather candidates
في حالة إذا كان كل شئ على ما يرام سترى كلمة Done وفي حالة الخطأ برجاء مراجعة الخطوات السابقة بتأني وتأكد من أن المنافذ المطلوبة مفتوحة في الجدار الناري الخاص بك
وبذلك نكون قد انتهينا من النصف الأول من الشرح وهو تثبيت وإعداد ال Coturn
ننتقل إلى الجزء الثاني من الشرح وهو إعداد نظام الأودو.
نقوم بفتح الإعدادات الخاصة بالنظام ثم فتح الإعدادات العامة General settings
بعد ذلك ننزل حتى الجزء الخاصة بإعدادات المحادثة Discuss ونضغط على ICE Servers
نقوم بإنشاء جديد ثم نضع البيانات التالية
نقوم بملئ البيانات بما يتناسب مع ما أدخلناه في ملف الإعدادات /etc/turnserver.conf
وبذلك ينتهي إعداد الجزء الخاص بإعداد أودو يُمكنك الآن الاستمتاع بإجتماعات أودو المرئية بدون أي خدمات خارجية بالاعتماد على خدمتك الخاصة
المراجع:
1- https://en.wikipedia.org/wiki/WebRTC
2- https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT
3- https://en.wikipedia.org/wiki/STUN
4- https://arstech.net/how-to-install-turn-server-on-ubuntu-for-webrtc/
السلام عليكم ، عندي موقع لعمل اجتماعات تفاعلية آنية بالصورة و الصوت و لكن توجد مشكلة في عدم استقرار تواصل الإجهزة حيث لا تظهر الصورة و لا ينتقل الصوت خلال الاجتماع، اريد منك المساعدة في حل هذه المشكلة و بمقابل مادي و شكرا.