Asterisk PBX 1.6.2.X: Como autorizzare le chiamate internazionali con un PIN e l'applicazione Authenticate

Versione adatta alla stampaSend to friendPDF version

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

  • Il primo parametro definisce il nome della cartella e del file che contiene le password.
  • L’opzione a definisce che nel registro delle chiamate, il campo Accountcode conterrà il nome dell’impiegato ( in questo modo possiamo controllare tutte le chiamate fatte da ogni impiegato indipendentemente dall’interno che ha utilizzato).
  • L’opzione m definisce che il file di testo contiene le password cifrate con MD5.
  • L’ultimo parametro indica che il numero di cifre del PIN sono 4 evitando di dove utilizzare il tasto cancelletto per confermare la password digitata.

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

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Questa domanda è per verificare se sei un umano (anche se troll)
Image CAPTCHA
Enter the characters shown in the image.
Condividi contenuti