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! :-)

VoIP e ISDN una storia senza fine..

Anche questa giornata sta per finire e sinceramente non me la sono passata malaccio..gli unici grossi problemi sono con l’ISDN..il centralino asterisk (una TrixBox) con una B410P della digium..ogni tanto si impalla..e non riusciamo a trovare soluzione..è sicuramente un problema di configurazione ma dove??! Va bè..

Stasera cena per il compleanno di Ste e domani torno a sbatterci la testa :)

ByeBye

Edit: Dopo l’aggiornamento degli ultimi driver misdn e di asterisk il problema non si è piu’ manifestato :)

Edit 24/10/2012: Da inizio anno abbiamo smesso di usare TrixBox in favore della più recente AsteriskNOW e per quanto riguarda la ISDN abbiamo iniziato ad usare i dispositivi Patton che parlano ISDN e si interfacciano ad Asterisk via SIP, in questo modo si possono proporre dei centralini su VM risparmiando il costo del server.