Se possibile muniti di buon senso, abbiamo la possibilità di “spiare” le conversazioni attive sul nostro server asterisk (bridged calls) servendoci della funzione chanspy().
Il caso più classico dove questa funzionalità trova applicazione è nei sistemi per call center, dove il supervisore ha la necessità di interagire con l’operatore principalmente al fine di:
- Controllare la qualità: Il supervisore monitorizza il servizio che l’operatore offre al cliente.
- Training: Il supervisore interagisce con l’operatore al fine di aiutarlo ad offrire un buon servizio telefonico (whisper mode).
Asterisk implementa la funzione chanspy(). Analizziamo il seguente esempio per capire come funziona:
[macro-spy]
exten => s,1,Answer(1)
exten => s,n,Authenticate(1234)
exten => s,n,ChanSpy(SIP/${ARG1}|o)
exten => s,n,Hangup
In questo esempio, la macro “spy” viene protetta con password (1234) grazie alla funzione Authenticate di Asterisk. L’accesso alle funzionalità di monitoraggio quindi rimane ristretta a tutti coloro che conoscono la chiave d’accesso.
La macro “spy” si aspetta un valore ${ARG1} che risulta essere l’estensione che si desidera ascoltare.
Nel dialplan associato alle estensioni del centralino telefonico aggiungiamo una linea simile alla seguente:
exten => _*666X.,1,Macro(spy,${EXTEN:4})
Il supervisore quindi, semplicemente digita *666 seguito dall’estensione, digiterà la password e potrà iniziare l’ascolto telefonico.
La funzione ChanSpy ha differenti opzioni. Riportiamo le principali e più utili:
- b: Si spia solo i canali attivi su bridged calls.
- r([basename]): Registra la sessione di monitorizzazione nella directory spool di asterisk nel caso non sia presente un basename differente.
- w: ‘whisper’, il supervisore può parlare con l’agente che si sta spiando.
- W: ‘private ‘whisper’, il supervisore può parlare con l’agente che si sta spiando ma non può ascoltare il cliente.