I’ve opened a thread here to discuss best strategies for handling unstable connections in mediasoup (built-in MiroTalk SFU server).

MiroTalk
Posts
-
reconnecting to the meeting randomly -
System requirements for SFU for bigger audiences?Hello David,
MiroTalk SFU supports up to
100 concurrent participants per CPU
you can extending the port ranges in the config.js file if needed, or alternatively, you can enable the WebRTCServer (optional).In terms of moderation, the first participant to join the room automatically becomes the presenter. If you prefer to use a predefined list of presenters instead of this default behavior, you can configure it in the
config.js
file. The presenter has access to moderation options in the settings, and additional management actions can be accessed by clicking the dedicated button on participants in the chat.You can also adjust options like Theme and Language in the settings section, and these preferences will be saved for future sessions. Additionally, the Follow Me feature is on our roadmap, which will ensure that moderator actions, such as pinning a user, are reflected for all participants in the room.
For more information on customizing your instance, refer to the config.js template.
-
What are the differences between Mirotalk and the SFU version?@EXT-OWL said in What are the differences between Mirotalk and the SFU version?:
thank you so much !!
You're welcome!
-
Bug: MiroTalk SFU & OIDC & Alias Domain@nebulon said in Bug: MiroTalk SFU & OIDC & Alias Domain:
this is great! I've tested it and it required to trust the proxy
Merged, thank you so much!
-
Q: Is a different app package required for a license?@luckow said in Q: Is a different app package required for a license?:
donate money for your fantastic work
Support the Future of MiroTalk!
First off, a huge thank you for your interest in supporting MiroTalk! Our work is driven by a passion for innovation, and every contribution helps us continue developing and improving our WebRTC solutions.
Do I Need a Different App Package?
No! The package remains the same, the difference lies in the license. By purchasing a license, you’re not just getting official support and updates, but also directly fueling the growth of MiroTalk. More about licensing option here: https://docs.mirotalk.com/license/licensing-options/How Can You Support Us?
We offer multiple ways for you to contribute and keep our projects thriving:GitHub Sponsors – Support us directly with no platform fees: https://github.com/sponsors/miroslavpejic85
Codecanyon – Purchase a license if you prefer this marketplace: https://codecanyon.net/user/miroslavpejic85/portfolio
PayPal Donation – Send your support directly via PayPal. https://www.paypal.com/paypalme/mirotalk?country.x=EN&locale.x=en_EN
Bitcoin Contribution – Support us with cryptocurrency.
bc1q6agpf8prsf6gppjmf8h87xnqgvtykuuryrexd3
Your support allows us to keep pushing the boundaries of real-time communication. Whether it’s through a license, a donation, or simply spreading the word, every bit makes a difference!
️
Thank you for be part of the MiroTalk journey!
-
Bug: MiroTalk SFU & OIDC & Alias DomainDone: Enabled OIDC support for alias domains with dynamic baseURL in both MiroTalk P2P v1.4.75 and MiroTalk SFU v1.7.22.
-
Bug: MiroTalk SFU & OIDC & Alias Domain@nebulon correct me if i understand well?
In the next release, I will integrate OpenID Connect (OIDC)
dynamically
. This will allow the authentication flow to work seamlessly with multiple alias domains. ThebaseURL
will be set dynamically based on the incoming request's host, ensuring that the app supports various domains and subdomains.To ensure proper functionality, It's needed to update the OIDC provider’s callback URL settings to include all valid URLs, including aliases. This way, no matter which domain the user accesses, the OIDC authentication flow will work without issues.
Steps to Update Callback URLs:
- Go to your OIDC provider's dashboard (e.g., Auth0).
- Navigate to
Applications
>Your Application
. - Under Settings, locate Allowed Callback URLs.
- Add all valid callback URLs, for example:
http://app.example.com/auth/callback, http://alias1.example.com/auth/callback, http://localhost:3010/auth/callback
- If your aliases follow a consistent pattern, consider using wildcards like
http://*.example.com/auth/callback
to simplify the process.
By following these steps, we'll ensure that the authentication flow works smoothly across multiple domains and aliases.
-
What are the differences between Mirotalk and the SFU version?@EXT-OWL said in What are the differences between Mirotalk and the SFU version?:
However, I have no idea what the difference between the normal one and SFU are
The key difference between MiroTalk P2P and MiroTalk SFU lies in the way they handle the transmission of media streams between participants in a video conferencing environment. Here's a breakdown:
1. MiroTalk P2P (Peer-to-Peer)
- Architecture: Directly connects each participant to every other participant in the session.
- How it works:
- Each participant sends their audio/video stream directly to every other participant.
- For example, in a 3-person room, each person sends their stream to 2 others and receives 2 streams.
- Pros:
- Low latency due to direct connections.
- No centralized server is required for media relay, reducing infrastructure costs.
- Good for small group meetings (2-4 participants).
- Cons:
- Not scalable: Bandwidth usage grows significantly with more participants since each participant must upload multiple streams (N-1 streams, where N is the number of participants).
- Participants with limited upload bandwidth may experience performance issues in larger rooms.
2. MiroTalk SFU (Selective Forwarding Unit)
- Architecture: Uses a centralized server to manage media streams.
- How it works:
- Each participant sends their audio/video stream to the MiroTalk SFU built in server, which then selectively forwards streams to other participants.
- For example, in a 3-person room, each person sends 1 stream to the SFU, and the SFU distributes the streams to the others.
- Pros:
- Scalable: Each participant uploads only one stream regardless of the number of participants, as the SFU handles distribution.
- Better suited for larger meetings or when participants have limited upload bandwidth.
- Allows for additional features like transcoding and quality control (e.g., adaptive bitrate).
- Cons:
- Introduces some latency since streams are relayed through a server.
- Requires server resources and maintenance, increasing infrastructure costs.
When to Use Each?
-
MiroTalk P2P:
- Ideal for small, private calls (e.g., 1-on-1 consultations or small meetings).
- Lower infrastructure costs and simpler setup.
-
MiroTalk SFU:
- Suitable for larger rooms or scenarios where bandwidth efficiency and scalability are crucial.
- Offers more advanced features compared to P2P.
We have developed a range of MiroTalk solutions, including SFU, P2P, C2C, BRO, and WEB, allowing users to select the most suitable option based on their specific use cases and requirements. For an in-depth look at our WebRTC architecture, please visit our documentation.
-
Are alias-domains possible for Mirotalk?MiroTalk with Alias Domains
I'm not tested but I think can be archived with something like this:
Use alias domains (e.g.,
talk.customerdomain.com
) for your MiroTalk instance on the same server. Here's how:1. DNS Configuration
- A Record: Point
talk.customerdomain.com
to your server's IPv4 address. - CNAME Record: Alternatively, alias
talk.customerdomain.com
tomiro.example.com
.
2. Web Server Configuration
Nginx Configuration:
server { listen 80; server_name miro.example.com talk.customerdomain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
Apache Configuration:
<VirtualHost *:80> ServerName miro.example.com ServerAlias talk.customerdomain.com ProxyPreserveHost On ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ </VirtualHost>
3. SSL Configuration
Generate SSL certificates for both domains using Certbot:
sudo certbot --nginx -d miro.example.com -d talk.customerdomain.com # OR sudo certbot --apache -d miro.example.com -d talk.customerdomain.com
Ensure your web server is configured to include SSL settings for both domains.
4. Cross-Origin Requests (CORS)
If necessary, adjust MiroTalk or web server settings to allow CORS for
talk.customerdomain.com
.5. Testing
- Verify that
talk.customerdomain.com
resolves to your server. - Access MiroTalk through both
miro.example.com
andtalk.customerdomain.com
to ensure everything works as expected.
- A Record: Point
-
Are alias-domains possible for Mirotalk?@msbt said in Are alias-domains possible for Mirotalk?:
I have a Mirotalk instance that I use for my own stuff on miro.example.com. Is it possible to add alias domains, so a customer could use talk.customerdomain.com with the same instance as mine?
You can embedding your MiroTalk instance into any website (talk.customerdomain.com) or app easily using an iframe:
<iframe allow="camera; microphone; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay" src="https://miro.example.com/newroom" style="width: 100vw; height: 100vh; border: 0px;"> </iframe>
You can check the MiroTalk SFU example here, or MiroTalk P2P example here.
This functionality would greatly streamline the management of multiple domains while maintaining a single instance.
-
when creating room no auth prompt@mdc773 said in when creating room no auth prompt:
all URLs should be protected not just the main root
In the OIDC settings, there is a parameter to make it possible
oidc: { config: { authRequired: true, // Set to true if authentication is required for all routes } }
-
when creating room no auth prompt@jdaviescoates said in when creating room no auth prompt:
I'm not certain, but I think that license is probably mostly about the support you get from @MiroTalk
With the purchase of a license or for those who support the project in some way, my Direct support is included for any questions or concerns regarding MiroTalk. However, if your intention is to
rebrand
it by changing the logo, name, description, etc., a Regular License is required for personal, non-commercial projects. For commercial purposes or if you intend to charge end users, the Extended License is necessary.Note: No monthly subscriptions are required; it's a
one-time fee
.For more details about MiroTalk's licensing options, please visit: https://docs.mirotalk.com/license/licensing-options/
Thank you, and I take this opportunity to wish everyone a Happy 2025!
-
when creating room no auth prompt@jdaviescoates said in when creating room no auth prompt:
If I just go to https://mirotalk.ud.coop/ in a private browser window I get prompted to login, but if I go to https://mirotalk.ud.coop/wherever I don't
Should be
fixed
in the latest MiroTalk SFU release (v1.6.69). -
reconnecting to the meeting randomly@robi said in reconnecting to the meeting randomly:
grab some logs before you tag the dev?
I agree. If anyone believe something is not working as expected, please follow this template to report it to us.
Thank you for your collaboration.
-
reconnecting to the meeting randomly@mdc773 said in reconnecting to the meeting randomly:
myself and others in the community sometimes get reconnected to the room
The cause could be:
- Network Instability: Temporary internet disruptions, such as mobile devices switching between 3G and 4G, or high latency, may lead to participants reconnecting.
- Server Restarts: If the server is restarted, for instance, after updates, participants may reconnect when the MiroTalk instance becomes available again.
- WebRTC Behavior: WebRTC may renegotiate connections under certain conditions, which can appear as reconnections.
-
redirects -
redirectsUsers can now join MiroTalk SFU (v1.6.52) and MiroTalk P2P (v1.4.12) rooms by visiting a simplified URL, such as
meet.mysite/allwelcome
, which will automatically redirect them tomeet.mysite/join?room=allwelcome
.The Docker images will be updated and available in about an hour.
-
redirects@jdaviescoates said in redirects:
What @mdc773 wants to be able to is to enable their users to just be able to type
https://sfu.mirotalk.com/allwelcome into their browser bar
And for the that to automatically redirect to https://sfu.mirotalk.com/join?room=allwelcome
Now I get it, I will make it possible in the next release!
-
redirectslike meet.mysite/join?room=allwelcome
You can easily join a room by using this link with the query parameters:
https://sfu.mirotalk.com/join?room=allwelcome
For more ways to customize your room join process with different options, check out the full guide here: MiroTalk SFU Join Room Documentation.
-
Use Cloudron Logins for host protected settings@Neiluj If you have OIDC enabled, you can safely remove the entire
host: { ... }
section from your configuration. Simply rely on OIDC for authentication, and let me know if everything works as expected. Thank you!