In molte imprese si presenta spesso il problema di come controllare le chiamate fatte dagli impiegati, soprattutto le internazionali.
In questo articolo vedremo come autenticare un impiegato utilizzando l’applicazione Authenticate di Asterisk.
Per conoscere la sintassi del comando:
asterisk –rvvvvvvvvvvvvvv
CLI> core show application authenticate
[Syntax]
Authenticate(password[,options[,maxdigits[,prompt]]])
[Arguments]
password
Password the user should know
options
a: Set the channels' account code to the password that is entered
d: Interpret the given path as database key, not a literal file
m: Interpret the given path as a file which contains a list of account
codes and password hashes delimited with ':', listed one per line in the
file. When one of the passwords is matched, the channel will have its
account code set to the corresponding account code in the file.
r: Remove the database key upon successful entry (valid with 'd'
only)
maxdigits
maximum acceptable number of digits. Stops reading after maxdigits
have been entered (without requiring the user to press the '#' key).
Defaults to 0 - no limit - wait for the user press the '#' key.
prompt Override the agent-pass prompt file.
Come si può vedere l’opzione password può contenere un valore o riferirsi a un file di testo che contiene una lista di nomi con le rispettive password separati dal carattere : (due punti).
Supponiamo che dobbiamo creare i PIN per tre impiegati
|
Nome |
PIN |
| Tizio | 1234 |
| Caio | 1235 |
| Sempronio | 1236 |
Adesso cifriamo le password utilizzando l’algoritmo MD5:
echo -n "1234" | md5sum
Il risultato sarà:
81dc9bdb52d04dc20036dbd8313ed055
Continuiamo con le due password che rimangono:
echo -n "1235" | md5sum
9996535e07258a7bbfd8b132435c5962
echo -n "1236" | md5sum
7bccfde7714a1ebadf06c5f4cea752c1
Creiamo un file di testo con i nomi degli impiegati e le rispettive password cifrate:
nano /tmp/pin.txt
copiamo le seguenti linee:
Tizio:81dc9bdb52d04dc20036dbd8313ed055
Caio:9996535e07258a7bbfd8b132435c5962
Sempronio:7bccfde7714a1ebadf06c5f4cea752c1
Salviamo le modifiche.
Adesso possiamo cambiare il dialplan e creare un blocco dedicato all’autenticazione per le chiamate internazionali. Supponendo che il contesto che si utilizza per le chiamate internazionali è “Internaz”, aggiungiamo:
nano /etc/asterisk/extensions.conf
[internaz]
exten => _00.,1,NoOP
same => n,Authenticate(/tmp/pin.txt,am,4)
same => n,Dial(SIP/providerVoIP/${FILTER(0-9,${EXTEN})})
same => n,Hangup
Se la password digitata è presente nel file di testo creato, il dialplan passerà alla linea che segue dove si inizierà la chiamata (supponendo che per le chiamate internazionali si utilizza la sintassi: 00 + prefisso paese + numero), se la password digitata non esiste, la chiamata verrà terminata dal sistema.
Si salvano le modifiche e si aggiorna il dialplan:
asterisk –rvvvvvvvvvv
CLI> dialplan reload
Adesso da un telefono IP o softphone connesso al server Asterisk possiamo fare le nostre prove.
Commenti
Invia nuovo commento