Thanks Michael, I was looking for code examples to receive events over ESL, and found them in libs/esl/.<div><br></div><div>I'm still not clear on the following:</div><div><ol><li>I have a controller script that originates calls; it runs "show channels" between calls and parses out the number of active channels. If below threshold, originate next call. If not, wait a couple seconds and run "show channels" again, repeating till below threshold. Is this the best way? Can this be done more efficiently through events? How?</li>
<li>For placing missed calls to SIP endpoints, it sounds like<i> </i>I can wait for a signal 180 or 183 to know when to hang up. How do I check for those signals? Is this another job for events?</li><li>For placing missed calls over openzap/PRI, it sounds like I can check for call states PROGRESS or ALERTING? Where are those states from, and how do I check them? Again, can I use events? The other option you gave is checking for endpoint_disposition. This is in the cdr, but how do I use it for detecting when I should hang up for a missed call? Is there an event associated with it? What are the call states it goes through?</li>
</ol><div>-Neil</div><br><div class="gmail_quote">On Wed, May 12, 2010 at 2:47 PM, Michael Collins <span dir="ltr"><<a href="mailto:msc@freeswitch.org">msc@freeswitch.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br><div class="gmail_quote"><div class="im">On Wed, May 12, 2010 at 11:59 AM, Neil Patel <span dir="ltr"><<a href="mailto:neilp@cs.stanford.edu" target="_blank">neilp@cs.stanford.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
Thanks for the tips.<div><br></div><div>Where are there examples of using ESL to register and handle events? For e.g. I don't see any example of how to register for a change in channel variable endpoint_disposition. Or even to check the CHANNEL_STATE event.</div>
<div><br></div><div>-Neil<br><br></div></blockquote></div><div>Neil,<br><br>Check out the event socket documentation, specifically the "events plain all" and "filter" commands. You can listen to all events or just specific ones:<br>
<a href="http://wiki.freeswitch.org/wiki/Event_socket" target="_blank">http://wiki.freeswitch.org/wiki/Event_socket</a><br><br>If you want to experiment with the event socket and the various events then use fs_cli. Connect with fs_cli and then issue "/log 0" which turns off all debug messages. Now you have basically a raw event socket. Try some of these commands:<br>
</div></div><br>/event plain all<br><br>watch the fun messages fly. :)<br><br>You can filter them as well:<br><br>/filter Event-Name CHANNEL_STATE<br>/filter Event-Name CHANNEL_HANGUP<br><br>when you apply a filter you will receive only those things you choose. A it's a "filter in" not filter out. Another way of saying it is "show me events named CHANNEL_STATE" and "show me events named CHANNEL_HANGUP"<br>
<br>just note that in your script you will be using the ESL abstractions for these:<br><br><a href="http://wiki.freeswitch.org/wiki/Esl#ESLconnection_Object" target="_blank">http://wiki.freeswitch.org/wiki/Esl#ESLconnection_Object</a><br>
<br>I hope that helps! Have fun.<br><font color="#888888">-MC<br>
</font><br>_______________________________________________<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br></div>