Asterisk: Applicazione per richiesta di un Pin Code

Quello che vi mostrerò è un pezzo di codice per extensions_custom.conf che non fa altro che rispondere a una chiamata e richiedere un pin.

[pin_auth]
exten => s,1,Answer
exten => s,n,Set(VALIDPIN=1234)
exten => s,n,Read(PIN,vm-password,,,,)
exten => s,n,Gotoif($[${PIN}=${VALIDPIN}]?valid)
exten => s,n,NoOp(PIN:NOK)
exten => s,n,Wait(1)
exten => s,n,Hangup
exten => s,n(valid),NoOp(PIN:OK)
exten => s,n,Wait(1)
exten => s,n,Hangup
exten => h,1,Hangup

Nel Dettaglio:

    • Risponde
    • Si mette in memoria il PIN (1234)
    • Parte una voce che dice “Password”
    • Aspetta il PIN digitato
    • Controlla se il PIN digitato è uguale a quello in memoria e di conseguenza risponde OK o NOK
    • Chiude la chiamata

Su asterisk poi si può agganciare questa “App” a un interno chiamabile, ovviamente il codice lo si può modificare a piacimento per effettuare altri tipi di servizi, io l’ho applicato per fare una “Strong Authentication”:

    • l’utente si logga su una pagina web, se l’utente e la password sono riconosciuti, viene chiamato il telefono dell’utente e richiesto il PIN (diverso per ogni utente), se il PIN è corretto vieni autenticato se no ricevi un bel “Access Denied”.

Per far si che il servizio web faccia scaturire la chiamata uso un file “numero.call generato dalla pagina in php con owner e gruppo asterisk e che viene messo dentro /var/spool/asterisk/outgoing

Il contenuto del file è questo:

Channel: DAHDI/0/123456789
Context: from-internal
Extension: 1000
Priority: 1

Cosa avviene:

    • asterisk vede il file e occupa il canale DAHDI 0 per chiamare il numero 123456789 e appena risponde ci cortocircuita l’interno 1000 che non è altro che l’“App” per la richiesta del PIN.

See you! Bye! :-)

One Reply to “Asterisk: Applicazione per richiesta di un Pin Code”

  1. Surfed with Google Chrome 12.0.742.122 Google Chrome 12.0.742.122 on Mac OS X  10.6.8 Mac OS X 10.6.8
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30

    Carina!
    ER