• Home
  • Blog
    • Technews
    • Pensiero del giorno
  • Informatica
  • Fotografie
    • Concerti
    • Vacanze
    • Varie
  • Acqua
  • La Wishlist

Asterisk: Chi mi chiama? (updated)

Sabato 21 Novembre 2009 12:28

Dopo mesi di assenza torno con un breve articolo tecnico su come integrare banalmente in Asterisk la verifica del chiamante su Pagine Bianche o un qualsiasi altro database online. Si tratta di una soluzione semplice e probabilmente da perfezionare, ma quest'oggi mi sono fatto prendere da questa cosa finendo per sbaglio su questo link dove si parla del medesimo lookup in america tramite alcuni servizi locali. In pratica è possibile determinare il nome del chiamante facendo fare ad asterisk il classico lavoro di ricerca online, visualizzando il risultato (se presente) sul display del proprio telefono SIP/IAX/H323.

La modifica fatta è banale e probabilmente avrà bisogno di manutenzione se il sito di riferimento, Pagine Bianche per semplicità, cambierà il layout dei risultati. Non avevo però molta voglia di fare ulteriori analisi ma volevo semplicemente vedere l'effetto che fa. Lo script modificato è calleridname.pl (per poterlo scaricare agevolmente è in formato txt, va copiato e rinominato nella directory agi-bin di Asterisk) e si integra nel proprio asterisk in questa maniera:

per prima cosa si inserisce un nuovo context per il lookup:

{xtypo_code}
[cidname-lookup]
exten => s,1,NoOp(looking up callerid name)
exten => s,n,GotoIf($["${CALLERID(NAME)}" = "${CALLERID(NUM)}" ]?getname)
exten => s,n,NoOp(caller id name exists as ${CALLERID(NAME)})
exten => s,n,Return
exten => s,n(getname),AGI(calleridname.pl,${CALLERID(NUM)})
exten => s,n,NoOp(Caller ID Name is now ${CALLERID(NAME)})
exten => s,n,Return

{/xtypo_code}

e poi nel proprio context di ingresso, ad esempio incoming, si aggiunge il lookup:

{xtypo_code}
[incoming]
exten => s,1,NoOp()
exten => s,n,Gosub(cidname-lookup,s,1)
...dial vari...
exten => s,n,HangUp()

{/xtypo_code}

A questo punto è necessario farsi chiamare da qualche amico/parente o comunque numero presente nel database telefonico online per veder apparire il nome associato senza alcuna necessità di utilizzare la rubrica interna di asterisk.

Update 21/11/2009 ore 15.30:  la versione 0.2 ora online effettua ulteriori ricerche togliendo una, due o tre cifre (controllabile dalla variabile $accorcia) ed aggiungendo un "1" finale al numero accorciato per identificare meglio alcun numeri aziendali

Update  27/11/2009: la versione 0.3 utilizza come ulteriore base dati anche il file /var/lib/asterisk/gcontacts.txt. Questo file può essere popolato giornalmente con lo script gcontacts.pl. Per chi come me ha l'iPhone o Blackberry e lo sincronizza tramite NuevaSync, Sync'a'Blink o la sincronizzazione nativa di Google è possibile identificare i chiamanti anche attraverso la propria rubrica telefonica.

Twitter status

: me ne lamento sempre, ma avere dei clienti con consulenti incompetenti ha degli indubbi vantaggi
perde un amico
LUI "cara aspettiamo ospiti a casa?", LEI "si... perché?", LUI "ora si spiega perché non ci sono scarpe sparse per l'ingresso"
 

Meteo

Anguillara Sabazia: 21.0 °C
Genova Albaro: 29.2 °C

Temperatura Casa: 27.9 °C
Pressione Casa: 973.0 hPa
Umidità Casa: 89 %
Pioggia ultime 24h: 0.0 mm