Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Enhanced Support for TURN Multiplexing with Cloudflare Calls in Jitsi Meet Deployment #3483

Open
gitayam opened this issue Aug 19, 2024 · 0 comments

Comments

@gitayam
Copy link

gitayam commented Aug 19, 2024

Background:

I'm currently setting up a TURN server to optimize one-to-one calls in Jitsi Meet, aiming to bypass the Jitsi Videobridge (JVB) where possible. As part of this setup, I am integrating a TURN server with a multiplexing setup using Nginx to ensure compatibility with networks that only allow TCP connections on port 443. I have chosen to use Cloudflare Calls TURN service as part of my infrastructure, which requires configuring TURN multiplexing properly.

Request:

I would like to request enhanced support for integrating Cloudflare Calls into the existing Jitsi Meet deployment playbook, with a focus on the following areas:

  1. TURN Multiplexing Configuration:

    • Modify the roles that would go into matrix-docker-ansible-deploy/inventory/domain/vars.yml playbook to include configuration options for TURN multiplexing with Cloudflare Calls.
    • Provide support for easy configuration of Nginx or other reverse proxies to manage multiplexing for WebRTC PeerConnections.
  2. TURN Server Integration:

    • Add support for using Cloudflare’s TURN servers instead of self-hosted ones.
    • Ensure the roles/matrix-coturn and roles/jitsi playbooks can be easily configured to use Cloudflare's global network infrastructure for TURN.
  3. Documentation Update:

    • Provide documentation and examples in the docs/configuring-playbook-turn.md and docs/configuring-playbook-jitsi.md files for setting up Cloudflare Calls with TURN multiplexing.
    • Update examples in examples/reverse-proxies/nginx to reflect Cloudflare integration and multiplexing configurations.

Code Snippet for inventory/vars.yml:

matrix_coturn_enabled: false
matrix_synapse_turn_uris:
  - "stun:stun.cloudflare.com:3478"
  - "turn:turn.cloudflare.com:3478?transport=udp"
  - "turn:turn.cloudflare.com:3478?transport=tcp"
  - "turns:turn.cloudflare.com:5349?transport=tcp"

This configuration disables the self-hosted coturn server and uses Cloudflare's TURN and STUN services instead. These services will route WebRTC traffic through Cloudflare's network for optimal performance.

Link to Cloudflare Calls Documentation:

Possible Files Affected:

  • roles/matrix-coturn/tasks/main.yml
  • roles/jitsi/tasks/setup_jitsi_base.yml
  • inventory/vars.yml
  • examples/reverse-proxies/nginx/matrix.conf
  • Documentation files (docs/configuring-playbook-turn.md, docs/configuring-playbook-jitsi.md)

Expected Outcome:

  • Seamless integration of Cloudflare Calls TURN service into the Jitsi Meet deployment via Ansible.
  • Simplified setup process for users leveraging Cloudflare's global network and multiplexing capabilities.
  • Clear documentation for users, reducing complexity when configuring TURN servers for WebRTC.

By implementing these features, users can benefit from improved call quality, reduced latency, and increased connection stability, particularly in restricted network environments. Leveraging Cloudflare's infrastructure will enhance the overall performance of Jitsi Meet deployments for global users.

Some users are of course not looking to use cloudflare more than needed so providing this as a non default option would be ideal.

Thank you for considering this feature request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant