Author here: The first priority of the project is to offer a solid generic audio-only calling experience to our users. This includes all functionality that people would expect from a softphone. At the same time, we want to build something that is generic and useful to any SIP-over-wss provider in the short term. The build mechanism and module-system should accomodate this. It is still under construction (https://github.com/vialer/vialer-js/tree/feature/restructure...), but most of the hardcoded dependencies are already dealt with.
Besides the current SIP Call implementation, we are preparing the codebase for additional signalling implementations as well. The centralized SIP Call implementation is great to use with all the functionalities a PBX offers (queues, on-hold, transfers, being available to any device), but browser-to-browser p2p also has its strong points. Privacy-aware chat, video and file transfer seem easier to implement and maintain with nothing more than JavaScript and another browser as a backend. The signalling part will be a bit of a design challenge. Ideally, this would be p2p and encrypted too, so people don't need to rely on one server/provider to find their contacts and setup connections with.
> The core of the software is designed around the notion of a generic 'Call' abstraction, that allows it to be flexible about using different technology stacks
This quote is from the website linked from the GitHub repository. I skimmed the code to try to find the abstractions to switch out the technology stack, but could not find anything. Could you provide some pointers?
I need to change that description, because it is too premature at the moment. The main Calls handling code is in https://github.com/vialer/vialer-js/blob/develop/src/js/bg/m... and still relies on SIP. It is a small step to add the required abstractions for alternative signalling mechanisms though, because most of the SIP-related logic is centralized already.
It is a proprietary API-based click-to-dial calling method(which still need to be moved to its own repo) that doesn't use SIP or WebRTC, but uses the same call flow nevertheless.
At the moment, most of the focus is on stabilizing the SIP-based softphone. We're about to complete a first working opensource build without proprietary modules this week.
The Calls-related code will be dealt with when there is an alternative signalling mechanism available. It would be interesting to investigate existing networking solutions like Matrix, but also to experiment a bit with p2p overlay networks ourselves. I did some prior R&D on the subject (https://wearespindle.com/articles/end-to-end-encryption-betw...) to tackle issues like ECDH encryption with WebCrypto, but there are still a lot of uncertainties and unhandled topics that need to be addressed. Work in progress :-)
Besides the current SIP Call implementation, we are preparing the codebase for additional signalling implementations as well. The centralized SIP Call implementation is great to use with all the functionalities a PBX offers (queues, on-hold, transfers, being available to any device), but browser-to-browser p2p also has its strong points. Privacy-aware chat, video and file transfer seem easier to implement and maintain with nothing more than JavaScript and another browser as a backend. The signalling part will be a bit of a design challenge. Ideally, this would be p2p and encrypted too, so people don't need to rely on one server/provider to find their contacts and setup connections with.