lebaudantoine 988e5aa256 (backend) add telephony service for automatic SIP dispatch rules
Implemented a service that automatically creates a SIP dispatch rule when
the first WebRTC participant joins a room and removes it when the room
becomes empty.

Why? I don’t want a SIP participant to join an empty room.
The PIN code could be easily leaked, and there is currently no lobby
mechanism available for SIP participants.

A WebRTC participant is still required to create a room.
This behavior is inspired by a proprietary tool. The service uses LiveKit’s
webhook notification system to react to room lifecycle events. This is
a naive implementation that currently supports only a single SIP trunk and
will require refactoring to support multiple trunks. When no trunk is
specified, rules are created by default on a fallback trunk.

@rouja wrote a minimal Helm chart for LiveKit SIP with Asterisk, which
couldn’t be versioned yet due to embedded credentials. I deployed it
locally and successfully tested the integration with a remote
OVH SIP trunk.

One point to note: LiveKit lacks advanced filtering capabilities when
listing dispatch rules. Their recommendation is to fetch all rules and
filter them within your backend logic. I’ve opened a feature request asking
for at least the ability to filter dispatch rules by room, since filtering
by trunk is already supported, room-based filtering feels like a natural
addition.

Until there's an update, I prefer to keep the implementation simple.
It works well at our current scale, and can be refactored when higher load
or multi-trunk support becomes necessary.

While caching dispatch rule IDs could be a performance optimization,
I feel it would be premature and potentially error-prone due to the complexity
of invalidation. If performance becomes an issue, I’ll consider introducing
caching at that point. To handle the edge case where multiple dispatch rules
with different PIN codes are present, the service performs an extensive
cleanup during room creation to ensure SIP routing remains clean and
predictable. This edge case should not happen.

In the 'delete_dispatch_rule' if deleting one rule fails, method would exit
without deleting the other rules. It's okay IMO for a first iteration.
If multiple dispatch rules are often found for room, I would enhance this part.
2025-07-07 19:21:39 +02: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-03-13 19:48:31 +01:00
2025-05-03 19:05:05 +02: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%