Integrare SugarCRM e Asterisk in Java – Primi passi (03/03/2009)
Introduzione
Per quelli di voi che conoscono beanizer.org, il presente articolo non sarà una sorpresa, ma una naturale ed ovvia evoluzione di alcuni dei precedenti articoli. In particolare rappresenta un punto di convergenza per due di essi
- Integrare SugarCRM con applicativi Java
- Un semplice motore di “scripting” con Asterisk-Java
Panoramica Ciò che vogliamo ottenere è una struttura di base di una sorta di monitor per asterisk. Il nostro programma si metterà in ascolto in attesa di nuovi eventi lanciati da asterisk, e quando una chiamata verrà ricevuta, intercetteremo il numero di telefono chiamante, interrogheremo SugarCRM per vedere se esista un Account corrispondente, e in caso affermativo otterremo alcuni dati su di esso. Il lato Asterisk
La Asterisk-Java Manager API ci permette di interrogare Asterisk e cambiarne lo stato. Per poterla utilizzare dobbiamo abilitarla sul server Asterisk. Il come lo leggete qui .
La Manager API espone eventi per i quali possiamo metterci in ascolto; in questo caso siamo interessati all’intercettazione dell’arrivo di una nuova chiamata. Gli eventi interessanti per i quali è possibile ottenere notifica in caso di vhiamata in ingresso sono:
- Un nuovo “ChannelEvent” per il canale che connette il chiamante esterno con il nostro server asterisk.
- Un evento “CallerId” indicante un tentativo di identificazione del chiamante per il canale appena creato (il canale di origine)
- Un nuovo “ChannelEvent” per il canale che connette il server asterisk e la nostra “extension” (softphone, ip phone o altro)
- Un evento “Dial”, che contiene gli identificativi unici dei 2 canali(originece e destinazione) più altri dati
- Un evento “CallerId” indicante un tentativo di identificazione della destinazione per il canale appena creato (il canale di destinazione)
Per semplicità ci occuperemo solo dell’evento “Dial”, anche perchè espone il numero del chiamante, che è l’unico che ci interessi al momento. In una situazione di maggior complessità dovremmo anche controllare che la destinazione della chiamata siamo proprio noi e non un’altro interno. Dò per scontato cha la postazione di destinazione sia online, altrimenti l’evento “Dial” non verrebbe neanche lanciato.
L’articolo completo su Beanizer.org

