Asterpanel è un software per il controllo delle code di un centralino virtuale, basato su Asterisk.
Le funzionalità principali sono:
- il pannello di controllo real-time
- la reportistica
Ho scritto questo software da zero, lavorando per Voice@work, guidato dalla loro esigenza di business e da un'idea del titolare.
L'esigenza è avere un software moderno che permettese, in modo semplice, di gestire le code di un call-center inbound.
Questo software è stato utilizzato da importanti aziende italiane nel settore assicurativo e automotive, per la gestione dei loro call-center inbound.
Ho smesso di lavorare su questo software a Luglio 2021.
Il pannello real-time
Dalla schermata di controllo real-time è possibile controllare tutte le informazioni sulla situazione delle code, come quante persone sono in attesa e le chiamate in corso.
Rimanendo sempre all'interno di questa schermata, è possibile mettere in pausa un operatore o modificare le code a lui assegnate.
Il focus di questo pannello è la gestione di un call-center inbound.
Questa schermata prevede, essenzialmente, due ruoli: un master in grado di controllare tutto e operare dove necessario e un utente singolo, che può vedere le informazioni di base e mettersi in pausa se necessario.
Reportistica
Il software è in grado di raccogliere tutti i dati sull'operatività del centralino e fornire dati utili, per capire quali sono le code più efficienti e perchè.
L'obbiettivo in questo caso è permettere di vedere cosa funziona e cosa no, per migliorare la gestione delle telefonate in ingresso.
Profili di visualizzazione
Una funzionalità comoda per gli utenti è la possibilità di creare profili, per controllare quello che viene visualizzato a schermo.
Ad esempio, alcuni centralini possono avere decine di code relative a vendite, reclami, assistenza, ecc... ma il responsabile delle vendite vorrà vedere solo le code relative al suo dipartimento.
Asterpanel offre la possibilità, nel pannello real time e nella reportistica, di indicare quali sono le code e gli utenti che si vogliono monitorare.
Multi tenant
Una caratteristica utile è che il software è multi-tenant, dunque è in grado di collegarsi a più centralini alla volta, eventualmente anche da remoto via rete.
Nella parte superiore è infatti disponibile un menù che permette di visualizzare i vari centralini del quale si dispone l'accesso ("Current Switchboard").
In questo modo, se l'azienda dispone di più centralini, è possibile saltare facilemente da uno all'altro.
Inoltre, il fatto di essere multi-tenant permette anche un notevole risparmio sui costi d'infrastruttura.
Sfide tecniche
Realizzare il modello dei dati è stata probabilmente la parte più difficile, durante lo sviluppo mi sono ritrovato a dover riscrivere (praticamente da zero) alcune parti del software, a causa di decisioni sbagliate.
Inoltre, l'interpretazione e l'elaborazione dei dati provenienti dall'AMI è stata complessa, dal momento che la documentazione è alquanto ridotta. Non raramente, sono stato costretto a leggere il codice sorgente di Asterisk (in C).
Infine, per realizzare gli aggiornamenti real-time sul browser ho utilizzato i web socket, implementati lato server con Django Channels.
Il problema è che nel 2020/2021 Django Channels, che all'apparenza era la soluzione più comoda per il mio stack, si è dimostrato un modulo un po' immaturo che mi ha costretto a non pochi grattacapi.
Un paio di lezioni me le sono portate a casa:
- devo migliorare la mia capacità di progettare un modello dati
- preferire moduli ben testati e documentati, production ready almento da diversi anni (va bene sperimentare ma per un progetto commerciale meglio aspettare)