تخطي للذهاب إلى المحتوى

مكالمات الصوت والفيديو من تطبيق أودو للهاتف: إعداد الوكيل العكسي

المتطلب الوحيد على الخادم في XProERP، وأسطر nginx التي تلبيه
4 نوفمبر 2026 بواسطة
مكالمات الصوت والفيديو من تطبيق أودو للهاتف: إعداد الوكيل العكسي
Xsquare

لا يثبّت XProERP شيئاً على خادمكم. الشيء الوحيد الذي يحتاجه إلى جانب عنوان HTTPS يمكن الوصول إليه هو ما يحتاجه المتصفح للمميزات نفسها: اتصال أودو الحي، الذي تقدمه عملية gevent على مسار /websocket، يجب أن يمر عبر الوكيل العكسي. بدونه تعمل المحادثة بالاستطلاع، لكن مكالمات الصوت والفيديو لا تتصل.

كتلة nginx

يشغل أودو منفذي HTTP: الرئيسي (8069 افتراضياً) ومنفذ gevent أو الاستطلاع الطويل (8072). يجب أن يذهب مسار /websocket إلى المنفذ الثاني مع ترويسات الترقية. هذا هو الإعداد الأدنى داخل كتلة خادم HTTPS لديكم:

map $http_upgrade $connection_upgrade {
  default upgrade;
  ""      close;
}

upstream odoo      { server 127.0.0.1:8069; }
upstream odoochat  { server 127.0.0.1:8072; }

server {
  listen 443 ssl http2;
  server_name odoo.example.com;

  location /websocket {
    proxy_pass http://odoochat;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
  }

  location / {
    proxy_pass http://odoo;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_redirect off;
  }
}

في odoo.conf اضبطوا proxy_mode = True وتأكدوا أن workers أكبر من صفر، لأن عملية gevent لا توجد إلا في وضع تعدد العمليات. تكشف صور Docker ولوحات الاستضافة عادةً المنفذين بالفعل؛ تحققوا مع مزودكم أي منفذ هو منفذ gevent.

كيف تختبرونه

  • من الطرفية: curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Version: 13" -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" https://odoo.example.com/websocket ينبغي أن يجيب 101 Switching Protocols، أو على الأقل لا 404 ولا 502.
  • في عميل الويب بالمتصفح، افتحوا Discuss وراقبوا تبويب الشبكة: يجب أن يبقى اتصال websocket إلى /websocket مفتوحاً.
  • في XProERP، افتحوا Discuss وابدؤوا مكالمة مع زميل في المتصفح؛ تتصل المكالمة خلال ثوانٍ.

أخطاء شائعة

  • يشير مسار /websocket إلى المنفذ الرئيسي بدل منفذ gevent: تعمل المحادثة بالاستطلاع وتفشل المكالمات.
  • Cloudflare أو شبكة توصيل أخرى أمام الخادم مع تعطيل websockets: فعّلوها في إعدادات الشبكة.
  • جدار حماية في الشركة يحذف ترويسة Upgrade: تعمل المكالمات على 4G لا على واي فاي المكتب.
  • لا خادم STUN أو TURN مضبوط في أودو: قد لا تتصل المكالمات بين هاتفين خلف NAT صارم؛ اضبطوا خوادم ICE في إعدادات Discuss أو دعوا التطبيق يستخدم خوادم STUN العامة من Google.

إن كنتم تفضلون عدم لمس الوكيل لديكم، فخطط دعم XSquare تشمل هذا الإعداد. وكل شيء آخر في XProERP يعمل بدونه.

أودو 19 على أندرويد وiOS: ما يعمل في XProERP
جولة في الشاشات والمحادثة وDiscuss ونقطة البيع على قاعدة بيانات أودو كوميونيتي حديثة