Ring2all and possible switch to Freeswitch/Kamailio

I missed Cluecon last week and Joseph’s talk just popped up on my YouTube timeline. This is literally the first time I’m hearing about Ring2all or even the switch to FS/Kamailio. Was there some communication about it I missed? Really interested about this switch to proper multitenancy and probably understand why FS over Asterisk. I’m aware of a different carrier grade solution and the only difference is that they used Asterisk. Asterisk is capable of supporting multitenancy so I’m not yet clear why the switch to FS. Overall though, I’m positive about where Vital is headed with Ring2all but I’d like some more specifics, especially around how the platform would work. Would it support resellers and whitelabel? Support phone provisioning? Separate “From” email address for voicemail to email? Separate admin (and user) portals for each tenant? And by that, separate SSL certs per domain/url? WebRTC support? Able to connect to AI platforms like Retell/Vapi over SIP?

Hello,

Currently Ring2all is under active development and internal testing as we continue to refine its architecture, features, performance and overall user experiencie.,

As part of this work, we presented Ring2all at ClueCon 2026 , where we discussed the technical roadmap and the approach we are taking to scale VoIP infrastructure beyond many of the limitations of traditional deployments. The presentation provides more details about the architecture, scalability, and future direction of the project:

Ring2all is being built with scalability and flexibility as key priorities. FreeSWITCH provides several advantages for large-scale VoIP environments, particularly when dealing with high numbers of concurrent calls, horizontal scaling, distributed deployments, and multi-tenant architectures.

Ring2all will also provide extensive branding and customization options. The objective is to make it possible to adapt the platform to different business and branding requirements, rather than limiting users to a fixed interface or configuration.

Planned capabilities include:

  • Extensive branding and white-label customization
  • Custom domains and tenant-specific configurations
  • Phone provisioning support
  • Separate administration and portal users
  • Multi-tenant administration and management
  • Separate SSL/TLS certificates per domain
  • WebRTC support
  • Additional customization options for portals and user interfaces

AI is also an important part of the Ring2all roadmap. Our team is actively working on integrating a comprehensive set of AI-powered features into the platform. We are exploring ways AI can enhance communications, administration, automation, monitoring, and other aspects of the VoIP experience.

Please stay tuned to our official communication channels for the latest Ring2all news, development updates, announcements, and release information

Thank you for the response. I see Ring2all and Kalixor. Two different products for two different target markets. I will spin up separate instance of both to “play” with.

I’m coming from dsiprouter and opensips SBC CE backgrounds so Kalixor still has some catching up to do. Is there a production map for both products?

Is there a repo to report issues? First issue noticed, switching to light mode seems to have issues as shown:

Edit: I don’tt know if the above was as a result of a fresh install, but the issue seems to have resolved itself and light mode displays properly now across all screens. Please ignore

Possible to make Time Groups flexible? Right now trying to set multiple “schedules” for a Holiday Time Group and I can’t name the Holiday for each schedule in the Time group. Also, unless I am doing this wrong, I don’t see how to set something like “Last Monday in June” or “4th Thursday in November”.

The dark mode issue has been fixed.,

Thank you for your suggestions., We really appreciate your feedback., These are great ideas and are commonly used in business telephony, so we are definitely taking them into account., Our team is currently reviewing them and evaluating how they could be included in future improvements,

I will provide more feedback as I test. I had incorrectly assumed that the SBC was built in to the Softswitch. I will open a new thread for the SBC to document issues I ran into. And I’d be a bit greedy to (in future) ask for some kind of increase in number of extensions available in the community edition and number of concurrent calls available in community edition of the SBC (:see_no_evil_monkey:)

Looks like WireGuard functionality (for peering with Kalixor) is not properly enabled. Attempting to import the wg0.conf generated from Kalixor returns:

ENOENT: no such file or directory, open '/etc/wireguard/wg0.conf'.

Installed wireguard with

sudo apt install wireguard-tools

and tried to import the wireguard conf but ran into permission issues. Granted the softswitch user Read/write access to /etc/wireguard and tried importing but ran into the following error

Command failed: sudo wg-quick up wg0 sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper sudo: a password is required

Fixed that by editing /etc/sudoers.d/softswitch-wireguard and adding softswitch ALL=(root) NOPASSWD: /usr/bin/wg-quick up wg0, /usr/bin/wg-quick down wg0

when I try to import the wg0 conf file from the GUI, I get EROFS: read-only file system, open ‘/etc/wireguard/wg0.conf’

I copy the wg0.conf file using the CLI, and I’m able to start up WireGuard and establish a connection to the Kalixor WG server. On the Ring2all GUI, the configuration is seen as Loaded and clicking Connect establishes the WG connection (which I can verify on the command line), but the GUI never updates to show that the tunnel is connected and never shows the last handshake. On Kalixor I can see the peer connection as active.

Renaming the default tenant to anything other than Main breaks the entire system

I had to run

sudo -u postgres psql -d ss_admin -v ON_ERROR_STOP=1 -c "
BEGIN;

UPDATE tenants
SET slug = 'main',
    updated_at = NOW()
WHERE id = 1
  AND is_primary = TRUE
  AND slug = 'tenant1';

COMMIT;
"

to restore access after renaming the default tenant from Main to Tenant1

This post topic has been moved over to the Ring2All category.