PDA

Voir la version complète : Programme java à l'écoute à asterisk



TrixBoxUser
17/01/2011, 11h16
Salut,
Je travaille sur un petit programme sur java dont le but est: se connecter à asterisk et rester à l'écoute, si un appel arrive une fenêtre s'ouvre pour donné le numéro de l'appelant.
Est ce que je dois utilisé des socket client/serveur?
Pour le moment, si un appel est arrivé à asterisk et je lance mon programme java , tout va bien, mais moi je veux que je lance mon programme une fois pour toute et reste à l'écoute à asterisk et affiche le numéro de l'appelant à chaque fois il y a un appel.
Ne me dites pas faire un while(true) dans le main de mon programme !!!

ffossard
17/01/2011, 11h53
Tu peux utiliser "asterisk-java" ou en étudier le fonctionnement:
http://asterisk-java.org/latest/tutorial.html
(voir plus bas dans la page, le manager et les events)

TrixBoxUser
17/01/2011, 15h51
oui c ce que j'ai utilisé, je me suis servi de HelloLiveEverything class de cette page. La question n'est pas comment lire le N° appelant à partir de asterisk ou de l'afficher dans une fenêtre, la question comment mettre un programme à l'écoute à asterisk.
Merci en tt cas

Reaper
18/01/2011, 01h29
Bonjour, je vous conseille de vous documenter sur asterisk AMI
En gros c'est du socket, tu parse les events et les traite.

TrixBoxUser
18/01/2011, 13h00
J'ai vu asterisk AMI, cependant je pense que c pas ce que je voulais parce que cette AMI utilise des navigateurs pour envoyer les actions et afficher la réponse et moi je veux utiliser du java.
ché pas si je suis clair ou non?

therebel23
18/01/2011, 17h05
Non AMI apparemment accepte une connexion TCP/IP provenant d'un client, donc pas de problème pour l'utiliser en java.

Il y'a même une librairie java qui l'utilise apparemment mais je sais pas ce que ça vaut :

http://asterisk-java.org/

TrixBoxUser
19/01/2011, 11h41
Le problème c pas comment interroger Asterisk pour avoir des informations, le problème comment l'interroger d'une manière permanente et à chaque fois il y aura un appel, hop le numéro de l'appelant est affiché dans une fenêtre.
Je pense qu'il faut utiliser le while(true) dans main avec un peu de contrôle? qu'est ce que vous pensez?
En fait moi je veux afficher, avec numéro appelant, le numéro SDA associé au numéro de l'appelant et jusqu'à mnt j'ai pas pu l'afficher. Quelqu'un sait comment le récupérer avec l'API asterisk-java ?

cedricscha
19/01/2011, 12h50
je fais pas de java, mais perso, je fais une connexion tcp sur mon asterisk, avec AMI, et ensuite j'ecoute tout ce qu'il me transmets, pour traiter selon les besoins de mon application.

cela ne t'aidera pas beaucoup, mais cela te donnera peut etre une direction dans laquelle regarder.:gratgrat:

therebel23
20/01/2011, 13h52
Le problème c pas comment interroger Asterisk pour avoir des informations, le problème comment l'interroger d'une manière permanente et à chaque fois il y aura un appel, hop le numéro de l'appelant est affiché dans une fenêtre.

Comme la communication AMI est basé sur l'ouverture d'un socket TCP/IP (permanent donc sauf accident), tu peux coder en java des gestionnaires d'évenements comme par exemple "OnReceive" quand une trame TCP/IP arrive au niveau de ton client java. Je pense que quand un appel arrive, une trame TCP/IP doit être envoyé sur le socket à ton client ..