Voici le contexte :

je voudrais faire des appels externes sur demande. Je pourrais prendre un call file ou la commande Originate. Comme je veux lancer mes appels à partir du web, je pensais utiliser l'action Originate. Comme je veux aussi garder une trace des appels qui ont été fait et non répondu. Je vais utiliser MySQL pour faire le suivi.

Je cherche des commentaires de personnes ayant de l'expérience sur le sujet.

Voici les cas dont j'ai pensé.. mais je ne sais pas ce qui est de mieux, (je pense que le diaplan plan être plus facile à modifier en temps-reel au besoin)

cas 1 :

faire un insert dans MySQl.. genre : status=0,
faire l'action Originate
si le résultat de OriginateResponse == SUCCESS status=1, sinon status=2
et faire le update dans la DB pour ce numéro de téléphone.

cas 2 :

faire l'action Originate mais appeller un script AGI (je n'ai rien fait que l'exemple Hello world.. donc pas sur comment ca marche) et faire les inserts MYSQL dans le script.. si possible

cas 3 : exemple prit ici : http://forums.digium.com/viewtopic.php?t=23834
OriginateAction dial = new OriginateAction();
dial.setChannel("Local/DIAL@my_context");
dial.setContext("my_context");
dial.setExten("ANSWERED");
dial.setPriority(1);
dial.setAsync(true);
dial.setCallerId("5555551212");
dial.setVariable("dial_string","SIP/+15555551213@myprovider.com");

[my_context]
exten => DIAL,1,Verbose(1,About to perform outdial)
exten => DIAL,n,Dial(${dial_string},30)
exten => DIAL,n,Agi(agi://127.0.0.1/MyAGI.agi?dial_result=${DIALSTATUS})
exten => DIAL,n,Hangup()

exten => ANSWERED,1,Answer()
exten => ANSWERED,n,Agi(agi://127.0.0.1/MyAGI.agi?dial_result=ANSWER)
exten => ANSWERED,n,Hangup()

ou je pourrais bien remplacer le call AGI, par les insert mysql.

Qu'est-ce que vous en pensez ?