lebaudantoine 3e93f5924c (backend) add 10-digit PIN codes on rooms for telephony
Enable users to join rooms via SIP telephony by:
- Dialing the SIP trunk number
- Entering the room's PIN followed by '#'

The PIN code needs to be generated before the LiveKit room is created,
allowing the owner to send invites to participants in advance.

With 10-digit PINs (10^10 combinations) and a large number of rooms
(e.g., 1M), collisions become statistically inevitable. A retry mechanism
helps reduce the chance of repeated collisions but doesn't eliminate
the overall risk.

With 100K generated PINs, the probability of at least one collision exceeds
39%, due to the birthday paradox.

To scale safely, we’ll later propose using multiple trunks. Each trunk
will handle a separate PIN namespace, and the combination of trunk_id and PIN
will ensure uniqueness. Room assignment will be evenly distributed across
trunks to balance load and minimize collisions.

Following XP principles, we’ll ship the simplest working version of this
feature. The goal is to deliver value quickly without over-engineering.

We’re not solving scaling challenges we don’t currently face.
Our production load is around 10,000 rooms — well within safe limits for
the initial implementation.

Discussion points:
- The `while` loop should be reviewed. Should we add rate limiting
  for failed attempts?
- A systematic existence check before `INSERT` is more costly for a rare
  event and doesn't prevent race conditions, whereas retrying on integrity
  errors is more efficient overall.
- Should we add logging or monitoring to track and analyze collisions?

I tried to balance performance and simplicity while ensuring the
robustness of the PIN generation process.
2025-05-15 17:17:55 +02:00
2025-05-15 17:17:07 +02:00
2025-03-25 13:18:44 +01:00
2024-06-25 12:48:54 +02:00
2024-06-25 12:48:54 +02:00
2025-03-21 15:25:37 +01:00
2024-10-09 11:14:11 +02:00
2025-02-12 11:54:08 +01:00
2025-03-13 19:48:31 +01:00
2025-05-03 19:05:05 +02:00
2025-01-21 11:20:29 +01:00
2025-03-13 19:48:31 +01:00
2024-06-25 12:48:54 +02:00

meet logo

PRs Welcome GitHub commit activity GitHub closed issues GitHub closed issues

LiveKit - Chat with us - Roadmap - Changelog - Bug reports

La Suite Meet Demonstration

La Suite Meet: Simple Video Conferencing

Powered by LiveKit, La Suite Meet offers Zoom-level performance with high-quality video and audio. No installation required—simply join calls directly from your browser. Check out LiveKit's impressive optimizations in their blog post.

Features

  • Optimized for stability in large meetings (+100 p.)
  • Support for multiple screen sharing streams
  • Non-persistent, secure chat
  • End-to-end encryption (coming soon)
  • Meeting recording (coming soon)
  • Meeting transcription (currently in beta)
  • Telephony integration (in development)
  • Secure participation with robust authentication and access control
  • LiveKit Advances features including :
    • speaker detection
    • simulcast
    • end-to-end optimizations
    • selective subscription
    • SVC codecs (VP9, AV1)

La Suite Meet is fully self-hostable and released under the MIT License, ensuring complete control and flexibility. It's simple to get started or request a demo.

Were continuously adding new features to enhance your experience, with the latest updates coming soon!

Table of Contents

Get started

Sign up for La Suite Meet Cloud, designed for french public servants. Hosted on SecNumCloud-compliant providers and accessible via government SSO, ProConnect. The easiest way to try our product. Reach out if your entity isn't connected yet to our sso.

Open-source deployment (Advanced)

Deploy La Suite Meet on your own infrastructure using our self-hosting guide. Our open-source deployment is optimized for Kubernetes, and we're working on supporting additional deployment options. Keycloak integration and any SSO are supported. We offer customer support for open-source setups—just reach out for assistance.

Docs

We're currently working on both technical and user documentation for La Suite Meet. In the meantime, many of the essential aspects are already well covered by the LiveKit documentation and their self-hosting guide. Stay tuned for more updates!

Contributing

We <3 contributions of any kind, big and small:

Philosophy

Were relentlessly focused on building the best open-source video conferencing product—La Suite Meet. Growth comes from creating something people truly need, not just from chasing metrics.

Our users come first. Were committed to making La Suite Meet as accessible and easy to use as proprietary solutions, ensuring it meets the highest standards.

Most of the heavy engineering is handled by the incredible LiveKit team, allowing us to focus on delivering a top-tier product. We follow extreme programming practices, favoring pair programming and quick, iterative releases. Challenge our tech and architecture—simplicity is always our top priority.

Open-source

Gov 🇫🇷 supports open source! This project is available under MIT license.

All features we develop will always remain open-source, and we are committed to contributing back to the LiveKit community whenever feasible. To learn more, don't hesitate to reach out.

Help us!

Come help us make La Suite Meet even better. We're growing fast and would love some help.

Contributors 🧞

Credits

We're using the awesome LiveKit implementation. We're also thankful to the teams behind Django Rest Framework, Vite.js, and React Aria — Thanks for your amazing work!

License

Code in this repository is published under the MIT license by DINUM (Direction interministériel du numérique). Documentation (in the docs/) directory is released under the Etalab-2.0 license.

Description
No description provided
Readme 21 MiB
Languages
TypeScript 45%
Python 44.7%
JavaScript 6.8%
Shell 0.9%
CSS 0.7%
Other 1.9%