Forward-facing tech stack

Tools that stand the test of time

A few words about our tools

When our clients ask us for some help to solve a complex problem, build a product or assert an existing solution, we always bring our toolbox. The tools in our toolbox are not fixed and don’t define us, we are not holistic nor obsessed with our tools. Each programming language, library, or framework is yet another tool for us and the decisions we make regarding which one to use when, is based on the nature of the problem we are trying to solve, the spirit of the team and the culture of the company.

However, we do have some preferences when working with VoIP and network applications in general. Such applications need high availability, require maximum reliability, tend to become complex while their network interactions have a completely asynchronous and unreliable nature. All those properties create an explosive mix that if not addressed properly could lead to unexpected, hard to reproduce, bugs. Our experience has shown that specific tools can actually make a difference.

Composition of viska framework

Viska SIP framework

The Viska SIP framework is a tool that was built internally in Televiska after realizing that existing SIP tools are hard to modify and stretch to the client’s requirements, very difficult to test, almost impossible to move in the Cloud and in general are not developer friendly products but more of a devops/sysadmin tools. Modern VoIP applications need something more than that. Viska is an extremely flexible, high performance SIP framework that is written in Rust.

Televiska on GitHub

Extensible by nature

Although Viska can be run as a service using a config file, like any other SIP server, its real power comes from the fact that it’s yet another Rust library: it can be extended in any possible way, employed as a simple (mico)service, embedded in an existing Rust codebase, all while keeping the regular software engineer methodologies, like test-driven development, code reviewing, being part of a CI/CD pipeline etc.

Block by block

In addition, it utilizes an internal architecture that enables us to modify or even replace any component of the SIP stack to match the client’s requirements. Building a SIP proxy, an SBC, a B2BUA, a you-name-it SIP element or even abusing SIP to find vulnerable spots on your architecture? Everything is possible.

Based on Rust

Rust is our main vehicle for delivering our solutions to any of your problems. It is a modern language that tries to address many pain points of C/C++ family of languages regarding safety, concurrency, memory access violations and security, almost always introduced by the developers. Rust addresses those issues using a novel, but complex, type system that makes such errors visible to the developers and forces them to address all issues before any release.

Rust’s unique properties are so novel compared to other languages that it has already been embraced by the Big Tech. It is already influencing new emerging languages, like Google’s Carbon. Rust is employed whenever building complex concurrent network systems that require high performance without sacrificing reliability: services that should seldom fail, if ever. Even though Rust is targeted for systems programming, the language itself offers a lot of features that usually can be found in higher-level languages like Ruby and Python that ease the development of complex systems a lot.

Say hello, hej or hei!

We are friendly and responsive,
contact us via email at

hello@televiska.com
Hand waving