At CALLR, we have been working with many technologies, some ancient, some modern, and I think it is time to share some of our work with the world.
CALLR is a Global Voice and SMS telco carrier. We provide our services via an API, Web apps, and telecom gateways (SIP, IAX).
In these blog posts, we will share our experience with some technologies, tools, and methods. Things that failed, things that worked, things that scaled (and things that didn’t).
We will open source some of our code and tools.
It always felt like the “web” community was really open, sharing experiences, code, configs, tutorials, whereas the “telco” community was more of “private” experiences, sharing very few tips. It is time to change that.
In the telco world, latency is key. If your webapp is overloaded and requests take 5s to reply, it sucks, but it still works. With a phone call, latency will eventually break up the line. A 250 ms delay is enough to make the line choppy.
On this blog, we will explore technologies we chose, and how we build it together to create a sustainable and scalable telecom platform, operated by very few people.
We have a hybrid platform with our own hardware in French data centers + AWS.
DELL servers + Cisco and Juniper for switching, routing, and fire walling.
- OS: VMware ESXi, Debian
- Web/reverse proxies: Nginx
- Telco: Kamailio, rtpengine, FreeSWITCH, Asterisk, Homer
- Backend: Go, PHP, Redis, RabbitMQ, MySQL, Memcached
- Frontend: from CodeIgniter + jQuery to Laravel to Angular to VueJS (interesting story to come)
- DevOps: Docker, Gitlab CI
- Automation: Ansible
- Monitoring: Prometheus + Grafana
- Operating: custom back office, scripts, ES + kibana
We are using Docker here and there, but definitely not everywhere. More on that later.
You can expect blog post on every part on the stack!