Asterpanel is software for monitoring the queues of a virtual switchboard based on Asterisk.
Its two main features are the real-time panel and reporting. I built the product from scratch while working for Voice@work, starting from a very concrete business need: providing a modern tool to manage the queues of an inbound call center.
The software was used by important Italian companies in the insurance and automotive sectors. I stopped working on it in July 2021.
Real-time panel
The real-time control screen shows the main information about queues: how many people are waiting, which calls are in progress, which operators are available, and which are paused.
Staying on the same screen, a user with the right privileges can pause an operator or change the queues assigned to them.
The view essentially supports two roles: a master profile, able to see everything and intervene where needed, and an individual user, who sees the basic information and can pause themselves.
Reporting
Asterpanel collects data about switchboard operations and turns it into reports that help understand which queues work, where waiting time accumulates, and which parts of the process can be improved.
The goal of reporting is to give call center managers a concrete basis for improving the handling of inbound calls.
View profiles
A convenient feature for users is the ability to create view profiles.
A switchboard can have dozens of queues for sales, complaints, support, and other departments. The sales manager, however, may only want to see the queues for their own department. For this reason, Asterpanel lets users choose which queues and users to monitor, both in the real-time panel and in reporting.
Multi-tenant
The software is multi-tenant: it can connect to multiple switchboards at the same time, including remotely.
At the top of the interface, a menu lets the user choose which switchboard to view. This allows a company with multiple switchboards to move quickly from one to another and, at the same time, reduces infrastructure costs.
Technical challenges
The hardest part was the data model. During development, I had to rewrite important parts of the software to fix early decisions that did not hold up well against the real complexity of the domain.
Interpreting data from the Asterisk AMI was also demanding: documentation was limited, and more than once I had to read Asterisk's source code directly.
For real-time updates in the browser, I used WebSocket, implemented server-side with Django Channels. In 2020 and 2021, though, that choice proved less solid than it initially seemed and created several operational issues.
I took two lessons from that project: design the data model better before going too far, and be more cautious with dependencies that are not yet mature when the product has to support commercial use.