Asterpanel - Voice@Work

Software real-time per il controllo delle code su un centralino virtuale

Dal 01 Novembre 2020 al 30 Luglio 2021


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.

asterpanel - controllo real time
pannello di controllo real-time

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.

asterpanel - reportistica
esempio di una tabella della reportistica

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.

asterpanel - profili (sezione reportistica)
nella barra superiore, è possibile creare un profilo di visualizzazione

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)

Ritorna alla lista progetti