<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html><head><meta http-equiv="Content-Type" content="text/html;charset=us-ascii">
<style>BODY{font:10pt Tahoma, Verdana, sans-serif}</style></head><body>
<DIV>This may be a bug, but ManagedSession really is not the right way to do this from API context. Because of the APP_DOMAIN issue its much easier to just do Api.ExecuteString("originate ... "). If you need to get to the "managed session of the leg you have two options:</DIV>
<DIV>&nbsp;</DIV>
<DIV>For getting to it before the originate set the variable execute_on_originate to call a managed AppPlugin, or:</DIV>
<DIV>&nbsp;</DIV>
<DIV>For getting results at the end of the call in API code, set the variable API_HANGUP_HOOK. </DIV>
<DIV>&nbsp;</DIV>
<DIV>Both of these methoods are much easier to do from API context in mod_managed, and you won't have to worry about crossing app domain boundries, and you won't have do do any cleanup on the leg.</DIV><BR>
<BLOCKQUOTE style="BORDER-LEFT: #0000ff 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
<HR>
<B>From:</B> Anthony Minessale [mailto:anthony.minessale@gmail.com]<BR><B>To:</B> FreeSWITCH Users Help [mailto:freeswitch-users@lists.freeswitch.org]<BR><B>Sent:</B> Tue, 04 Sep 2012 11:37:54 -0700<BR><B>Subject:</B> Re: [Freeswitch-users] Problem with originated calls hanging in CS_SOFT_EXEC state<BR><BR>now that you have a jira do not continue this thread it doubles the<BR>work effort, see comments there<BR><BR>On Tue, Sep 4, 2012 at 1:00 PM, Phillip Boles<BR>&lt;<A href="mailto:freeswitch-users@vocalspace.com">freeswitch-users@vocalspace.com</A>&gt; wrote:<BR>&gt; I have tried to get the Current HEAD to run mod_managed with this to the top of switch_core.h<BR>&gt; #define SWITCH_DEBUG_RWLOCKS 1<BR>&gt;<BR>&gt; I am getting this error now.<BR>&gt;<BR>&gt; 2012-09-04 12:57:38.318859 [CRIT] switch_loadable_module.c:1310 Error Loading module /usr/local/freeswitch/mod/mod_managed.so<BR>&gt; **/usr/local/freeswitch/mod/mod_managed.so: undefined symbol: switch_core_session_read_lock**<BR>&gt;<BR>&gt; Thoughts?<BR>&gt;<BR>&gt; Thanks!<BR>&gt; On Aug 31, 2012, at 5:20 PM, Anthony Minessale wrote:<BR>&gt;<BR>&gt;&gt; add this to the top of switch_core.h<BR>&gt;&gt; #define SWITCH_DEBUG_RWLOCKS 1<BR>&gt;&gt;<BR>&gt;&gt; rebuild and get a full log of the call<BR>&gt;&gt; look for sign of unhandled rwlock<BR>&gt;&gt;<BR>&gt;&gt; and put this on jira why I am i helping you over ml .... &gt;=0<BR>&gt;&gt;<BR>&gt;&gt;<BR>&gt;&gt; On Fri, Aug 31, 2012 at 4:16 PM, Phillip Boles<BR>&gt;&gt; &lt;<A href="mailto:freeswitch-users@vocalspace.com">freeswitch-users@vocalspace.com</A>&gt; wrote:<BR>&gt;&gt;&gt; Sorry Yes using the latest.<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; Using commit a8ce9ac29f3ba000bf42ab2286be04cc7bf9f509<BR>&gt;&gt;&gt; Author: Anthony Minessale &lt;<A href="mailto:anthm@freeswitch.org">anthm@freeswitch.org</A>&gt;<BR>&gt;&gt;&gt; Date: Thu Aug 30 17:17:15 2012 -0500<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; Changes made switch_cpp.cpp starting at Line 1000<BR>&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Calling CoreSession::destroy\n");<BR>&gt;&gt;&gt; if (session) {<BR>&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "We still have valid session\n");<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; if (!channel) {<BR>&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Channel is undefined! Trying to get it!\n");<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; channel = switch_core_session_get_channel(session);<BR>&gt;&gt;&gt; }<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; if (channel) {<BR>&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,<BR>&gt;&gt;&gt; "%s destroy/unlink session from object\n", switch_channel_get_name(channel));<BR>&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,<BR>&gt;&gt;&gt; "%s destroy/unlink uuid\n", switch_channel_get_uuid(channel));<BR>&gt;&gt;&gt; switch_channel_set_private(channel, "CoreSession", NULL);<BR>&gt;&gt;&gt; if (switch_channel_up(channel) &amp;&amp; switch_test_flag(this, S_HUP) &amp;&amp; !switch_channel_test_flag(channel, CF_TRANSFER)) {<BR>&gt;&gt;&gt; switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);<BR>&gt;&gt;&gt; }<BR>&gt;&gt;&gt; } else {<BR>&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Channel is undefined! We Failed to get it!\n");<BR>&gt;&gt;&gt; }<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; [CRIT] switch_cpp.cpp:1000 Calling CoreSession::destroy<BR>&gt;&gt;&gt; [CRIT] switch_cpp.cpp:1002 We still have valid session<BR>&gt;&gt;&gt; [DEBUG] switch_cpp.cpp:1011 sofia/external/12146635351 destroy/unlink session from object<BR>&gt;&gt;&gt; [DEBUG] switch_cpp.cpp:1013 83451093-e04f-49c1-9f55-5dd966bc4ba9 destroy/unlink uuid<BR>&gt;&gt;&gt; [DEBUG] switch_core_state_machine.c:92 sofia/external/XXXXXXXXXX Standard REPORTING, cause: NORMAL_CLEARING<BR>&gt;&gt;&gt; [DEBUG] switch_core_state_machine.c:703 (sofia/external/XXXXXXXXXX ) State REPORTING going to sleep<BR>&gt;&gt;&gt; [DEBUG] switch_core_state_machine.c:423 (sofia/external/XXXXXXXXXX ) State Change CS_REPORTING -&gt; CS_DESTROY<BR>&gt;&gt;&gt; [DEBUG] switch_core_session.c:1210 Send signal sofia/external/XXXXXXXXXX [BREAK]<BR>&gt;&gt;&gt; [DEBUG] switch_core_session.c:1415 Session 2 (sofia/external/XXXXXXXXXX ) Locked, Waiting on external entities<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; channel remains hung<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; P<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; On Aug 31, 2012, at 12:26 PM, Anthony Minessale wrote:<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; 1) You did not answer the question if you are on latest GIT HEAD. If<BR>&gt;&gt;&gt;&gt; you are on anything else update...<BR>&gt;&gt;&gt;&gt; 2) Add some debugging to switch_cpp.cpp about line 1000<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; use lines like this to follow the code paths when you call destroy<BR>&gt;&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "BLAH\n");<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; The part I am concerned with is when you call destroy you dont see the<BR>&gt;&gt;&gt;&gt; log line you should:<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,<BR>&gt;&gt;&gt;&gt; "%s destroy/unlink session from<BR>&gt;&gt;&gt;&gt; object\n", switch_channel_get_name(channel));<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; This makes me wonder if you are some older version...<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; On Fri, Aug 31, 2012 at 11:57 AM, Phillip Boles<BR>&gt;&gt;&gt;&gt; &lt;<A href="mailto:freeswitch-users@vocalspace.com">freeswitch-users@vocalspace.com</A>&gt; wrote:<BR>&gt;&gt;&gt;&gt;&gt; var session = ManagedSession.OriginateHandleHangup(s, dialString, ts, (y)<BR>&gt;&gt;&gt;&gt;&gt; =&gt; {<BR>&gt;&gt;&gt;&gt;&gt; try {<BR>&gt;&gt;&gt;&gt;&gt; Log.WriteLine(LogLevel.Info, "Hanging UP: "+ y.GetUuid());<BR>&gt;&gt;&gt;&gt;&gt; y.SetAutoHangup(true);<BR>&gt;&gt;&gt;&gt;&gt; y.flushDigits();<BR>&gt;&gt;&gt;&gt;&gt; y.flushEvents();<BR>&gt;&gt;&gt;&gt;&gt; y.destroy();<BR>&gt;&gt;&gt;&gt;&gt; y.Dispose();<BR>&gt;&gt;&gt;&gt;&gt; GC.Collect();<BR>&gt;&gt;&gt;&gt;&gt; } catch( Exception ) {<BR>&gt;&gt;&gt;&gt;&gt; Log.WriteLine(LogLevel.Critical, "Exception While Trying to handup");<BR>&gt;&gt;&gt;&gt;&gt; }<BR>&gt;&gt;&gt;&gt;&gt; });<BR>&gt;&gt;&gt;&gt;&gt; Changes yield no fix. Neither .Dispose() or .destroy() separately or<BR>&gt;&gt;&gt;&gt;&gt; together destroy the channel. I see in the log the hangup<BR>&gt;&gt;&gt;&gt;&gt; 11da29f3-2d9e-4b74-a439-a96ba60f2db1 but this is what I get from show<BR>&gt;&gt;&gt;&gt;&gt; channels.<BR>&gt;&gt;&gt;&gt;&gt; The last log lines of the debug is:<BR>&gt;&gt;&gt;&gt;&gt; 2012-08-31 11:25:52.109393 [DEBUG] switch_core_state_machine.c:407<BR>&gt;&gt;&gt;&gt;&gt; (sofia/external/XXXXXXXXXX) State Change CS_REPORTING -&gt; CS_DESTROY<BR>&gt;&gt;&gt;&gt;&gt; 2012-08-31 11:25:52.109393 [DEBUG] switch_core_session.c:1224 Send signal<BR>&gt;&gt;&gt;&gt;&gt; sofia/external/XXXXXXXXXX [BREAK]<BR>&gt;&gt;&gt;&gt;&gt; 2012-08-31 11:25:52.109393 [DEBUG] switch_core_session.c:1424 Session 1<BR>&gt;&gt;&gt;&gt;&gt; (sofia/external/XXXXXXXXXX) Locked, Waiting on external entities<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:freeswitch@fs03.int.colo">freeswitch@fs03.int.colo</A>&gt; show channels<BR>&gt;&gt;&gt;&gt;&gt; 11da29f3-2d9e-4b74-a439-a96ba60f2db1,outbound,2012-08-31<BR>&gt;&gt;&gt;&gt;&gt; 11:25:24,1346430324,sofia/external/12146635351,CS_SOFT_EXECUTE,Vocalspace,2223334444,,12146635351,,,,default,PCMU,8000,64000,PCMU,8000,64000,,fs03.int.colo,,,ACTIVE,Outbound<BR>&gt;&gt;&gt;&gt;&gt; Call,12146635351,,,,<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:freeswitch@fs03.int.colo">freeswitch@fs03.int.colo</A>&gt; uuid_kill 11da29f3-2d9e-4b74-a439-a96ba60f2db1<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; -ERR No Such Channel!<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; I am calling this from "managed CustomModule.Api"<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; Calling GC.Collect() later in the execution does not resolve either.<BR>&gt;&gt;&gt;&gt;&gt; //------------------------------------------------------<BR>&gt;&gt;&gt;&gt;&gt; // Entrypoint for blocking API execution<BR>&gt;&gt;&gt;&gt;&gt; //------------------------------------------------------<BR>&gt;&gt;&gt;&gt;&gt; public void Execute (ApiContext context) {<BR>&gt;&gt;&gt;&gt;&gt; context.Arguments, context.Event == null ? "&lt;none&gt;" :<BR>&gt;&gt;&gt;&gt;&gt; context.Event.GetEventType ()));<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; // this contains the above code<BR>&gt;&gt;&gt;&gt;&gt; Run(ParseArguments(context.Arguments));<BR>&gt;&gt;&gt;&gt;&gt; GC.Collect();<BR>&gt;&gt;&gt;&gt;&gt; }<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; Thanks!<BR>&gt;&gt;&gt;&gt;&gt; Suggestions appreciated.<BR>&gt;&gt;&gt;&gt;&gt; On Aug 30, 2012, at 5:22 PM, Dave R. Kompel wrote:<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; Actually, all the managed objects are derived from IDisposable, so you<BR>&gt;&gt;&gt;&gt;&gt; should use the .Dispose() method, and let the wrapper do it's job.<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; ________________________________<BR>&gt;&gt;&gt;&gt;&gt; From: Anthony Minessale [mailto:<A href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</A>]<BR>&gt;&gt;&gt;&gt;&gt; To: FreeSWITCH Users Help [mailto:<A href="mailto:freeswitch-users@lists.freeswitch.org">freeswitch-users@lists.freeswitch.org</A>]<BR>&gt;&gt;&gt;&gt;&gt; Sent: Thu, 30 Aug 2012 13:48:07 -0700<BR>&gt;&gt;&gt;&gt;&gt; Subject: Re: [Freeswitch-users] Problem with originated calls hanging in<BR>&gt;&gt;&gt;&gt;&gt; CS_SOFT_EXEC state<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; destroy method should have a log line about (destroy/unlink session from<BR>&gt;&gt;&gt;&gt;&gt; object)<BR>&gt;&gt;&gt;&gt;&gt; try calling your garbage collector, this is common issue with scripts<BR>&gt;&gt;&gt;&gt;&gt; and make sure you are on latest GIT build<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; On Thu, Aug 30, 2012 at 3:24 PM, Phillip Boles<BR>&gt;&gt;&gt;&gt;&gt; &lt;<A href="mailto:freeswitch-users@vocalspace.com">freeswitch-users@vocalspace.com</A>&gt; wrote:<BR>&gt;&gt;&gt;&gt;&gt;&gt; Sorry for the excessive logs. Here is my call to originate.<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; var session = ManagedSession.OriginateHandleHangup(s, dialString, ts, (y)<BR>&gt;&gt;&gt;&gt;&gt;&gt; =&gt; {<BR>&gt;&gt;&gt;&gt;&gt;&gt; try {<BR>&gt;&gt;&gt;&gt;&gt;&gt; Log.WriteLine(LogLevel.Info, "Hanging UP: "+ y.GetUuid());<BR>&gt;&gt;&gt;&gt;&gt;&gt; y.SetAutoHangup(true);<BR>&gt;&gt;&gt;&gt;&gt;&gt; y.destroy();<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; } catch( Exception ) {<BR>&gt;&gt;&gt;&gt;&gt;&gt; Log.WriteLine(LogLevel.Critical, "Exception While Trying to handup");<BR>&gt;&gt;&gt;&gt;&gt;&gt; }<BR>&gt;&gt;&gt;&gt;&gt;&gt; });<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; My hangup callback is getting hit and I am destroying the session<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; 2012-08-28 10:49:27.296108 [INFO] switch_cpp.cpp:1227 Handing UP:<BR>&gt;&gt;&gt;&gt;&gt;&gt; e315f2e8-1fa8-4fd9-849b-f687dad8aed5<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; This is the only call on the system as it is a develpment machine and I<BR>&gt;&gt;&gt;&gt;&gt;&gt; see<BR>&gt;&gt;&gt;&gt;&gt;&gt; the call state being changed.<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; 2012-08-28 10:49:27.296108 [DEBUG] switch_core_state_machine.c:79<BR>&gt;&gt;&gt;&gt;&gt;&gt; sofia/external/XXXXXXXXXXX Standard REPORTING, cause: NORMAL_CLEARING<BR>&gt;&gt;&gt;&gt;&gt;&gt; 2012-08-28 10:49:27.296108 [DEBUG] switch_core_state_machine.c:682<BR>&gt;&gt;&gt;&gt;&gt;&gt; (sofia/external/XXXXXXXXXXX) State REPORTING going to sleep<BR>&gt;&gt;&gt;&gt;&gt;&gt; 2012-08-28 10:49:27.296108 [DEBUG] switch_core_state_machine.c:407<BR>&gt;&gt;&gt;&gt;&gt;&gt; (sofia/external/XXXXXXXXXXX) State Change CS_REPORTING -&gt; CS_DESTROY<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; If I call show channels after the above output it show there is a session<BR>&gt;&gt;&gt;&gt;&gt;&gt; sitting in CS_SOFT_EXEC corresponding to UUID<BR>&gt;&gt;&gt;&gt;&gt;&gt; e315f2e8-1fa8-4fd9-849b-f687dad8aed5.<BR>&gt;&gt;&gt;&gt;&gt;&gt; Is there something else I need to do to release the lock on this session<BR>&gt;&gt;&gt;&gt;&gt;&gt; to<BR>&gt;&gt;&gt;&gt;&gt;&gt; let the resources be reclaimed.<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; Thanks!<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; Phillip<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; _________________________________________________________________________<BR>&gt;&gt;&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;&gt; FreeSWITCH-users mailing list<BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt;&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; --<BR>&gt;&gt;&gt;&gt;&gt; Anthony Minessale II<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org/</A><BR>&gt;&gt;&gt;&gt;&gt; ClueCon <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com/</A><BR>&gt;&gt;&gt;&gt;&gt; Twitter: <A href="http://twitter.com/FreeSWITCH_wire" target=_blank>http://twitter.com/FreeSWITCH_wire</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; AIM: anthm<BR>&gt;&gt;&gt;&gt;&gt; MSN:<A href="mailto:anthony_minessale@hotmail.com">anthony_minessale@hotmail.com</A><BR>&gt;&gt;&gt;&gt;&gt; GTALK/JABBER/PAYPAL:<A href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</A><BR>&gt;&gt;&gt;&gt;&gt; IRC: irc.freenode.net #freeswitch<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH Developer Conference<BR>&gt;&gt;&gt;&gt;&gt; sip:<A href="mailto:888@conference.freeswitch.org">888@conference.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; googletalk:<A href="mailto:conf+888@conference.freeswitch.org">conf+888@conference.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; pstn:+19193869900<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; _________________________________________________________________________<BR>&gt;&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH-users mailing list<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; _________________________________________________________________________<BR>&gt;&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH-users mailing list<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; _________________________________________________________________________<BR>&gt;&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;&gt; FreeSWITCH-users mailing list<BR>&gt;&gt;&gt;&gt;&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt;&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; --<BR>&gt;&gt;&gt;&gt; Anthony Minessale II<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; FreeSWITCH <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org/</A><BR>&gt;&gt;&gt;&gt; ClueCon <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com/</A><BR>&gt;&gt;&gt;&gt; Twitter: <A href="http://twitter.com/FreeSWITCH_wire" target=_blank>http://twitter.com/FreeSWITCH_wire</A><BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; AIM: anthm<BR>&gt;&gt;&gt;&gt; MSN:<A href="mailto:anthony_minessale@hotmail.com">anthony_minessale@hotmail.com</A><BR>&gt;&gt;&gt;&gt; GTALK/JABBER/PAYPAL:<A href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</A><BR>&gt;&gt;&gt;&gt; IRC: irc.freenode.net #freeswitch<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; FreeSWITCH Developer Conference<BR>&gt;&gt;&gt;&gt; sip:<A href="mailto:888@conference.freeswitch.org">888@conference.freeswitch.org</A><BR>&gt;&gt;&gt;&gt; googletalk:<A href="mailto:conf+888@conference.freeswitch.org">conf+888@conference.freeswitch.org</A><BR>&gt;&gt;&gt;&gt; pstn:+19193869900<BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; _________________________________________________________________________<BR>&gt;&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>&gt;&gt;&gt;&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt;&gt;&gt;&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt;&gt;&gt;&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; Official FreeSWITCH Sites<BR>&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt;&gt;&gt;&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;&gt;&gt;&gt;<BR>&gt;&gt;&gt;&gt; FreeSWITCH-users mailing list<BR>&gt;&gt;&gt;&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt;&gt;&gt;&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt;&gt;&gt;&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt;&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; _________________________________________________________________________<BR>&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>&gt;&gt;&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt;&gt;&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt;&gt;&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; Official FreeSWITCH Sites<BR>&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt;&gt;&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;&gt;&gt;<BR>&gt;&gt;&gt; FreeSWITCH-users mailing list<BR>&gt;&gt;&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt;&gt;&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt;&gt;&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt;&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt;<BR>&gt;&gt;<BR>&gt;&gt;<BR>&gt;&gt; --<BR>&gt;&gt; Anthony Minessale II<BR>&gt;&gt;<BR>&gt;&gt; FreeSWITCH <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org/</A><BR>&gt;&gt; ClueCon <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com/</A><BR>&gt;&gt; Twitter: <A href="http://twitter.com/FreeSWITCH_wire" target=_blank>http://twitter.com/FreeSWITCH_wire</A><BR>&gt;&gt;<BR>&gt;&gt; AIM: anthm<BR>&gt;&gt; MSN:<A href="mailto:anthony_minessale@hotmail.com">anthony_minessale@hotmail.com</A><BR>&gt;&gt; GTALK/JABBER/PAYPAL:<A href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</A><BR>&gt;&gt; IRC: irc.freenode.net #freeswitch<BR>&gt;&gt;<BR>&gt;&gt; FreeSWITCH Developer Conference<BR>&gt;&gt; sip:<A href="mailto:888@conference.freeswitch.org">888@conference.freeswitch.org</A><BR>&gt;&gt; googletalk:<A href="mailto:conf+888@conference.freeswitch.org">conf+888@conference.freeswitch.org</A><BR>&gt;&gt; pstn:+19193869900<BR>&gt;&gt;<BR>&gt;&gt; _________________________________________________________________________<BR>&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>&gt;&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt;&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;&gt;<BR>&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt;&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;&gt;<BR>&gt;&gt; Official FreeSWITCH Sites<BR>&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt;&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;&gt;<BR>&gt;&gt; FreeSWITCH-users mailing list<BR>&gt;&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt;&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt;&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt;&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt;<BR>&gt;<BR>&gt; _________________________________________________________________________<BR>&gt; Professional FreeSWITCH Consulting Services:<BR>&gt; <A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR>&gt; <A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR>&gt;<BR>&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>&gt; <A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR>&gt;<BR>&gt; Official FreeSWITCH Sites<BR>&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR>&gt; <A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR>&gt; <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><BR>&gt;<BR>&gt; FreeSWITCH-users mailing list<BR>&gt; <A href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</A><BR>&gt; <A href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>&gt; UNSUBSCRIBE:<A href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target=_blank>http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>&gt; <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR><BR><BR><BR>-- <BR>Anthony Minessale II<BR><BR>FreeSWITCH <A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org/</A><BR>ClueCon <A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com/</A><BR>Twitter: <A href="http://twitter.com/FreeSWITCH_wire" target=_blank>http://twitter.com/FreeSWITCH_wire</A><BR><BR>AIM: anthm<BR>MSN:<A href="mailto:anthony_minessale@hotmail.com">anthony_minessale@hotmail.com</A><BR>GTALK/JABBER/PAYPAL:<A href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</A><BR>IRC: irc.freenode.net #freeswitch<BR><BR>FreeSWITCH Developer Conference<BR>sip:<A href="mailto:888@conference.freeswitch.org">888@conference.freeswitch.org</A><BR>googletalk:<A href="mailto:conf+888@conference.freeswitch.org">conf+888@conference.freeswitch.org</A><BR>pstn:+19193869900<BR><BR>_________________________________________________________________________<BR>Professional FreeSWITCH Consulting Services:<BR><A href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</A><BR><A href="http://www.freeswitchsolutions.com/" target=_blank>http://www.freeswitchsolutions.com</A><BR><BR>FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR><A href="http://www.cudatel.com/" target=_blank>http://www.cudatel.com</A><BR><BR>Official FreeSWITCH Sites<BR><A href="http://www.freeswitch.org/" target=_blank>http://www.freeswitch.org</A><BR><A href="http://wiki.freeswitch.org/" target=_blank>http://wiki.freeswitch.org</A><BR><A href="http://www.cluecon.com/" target=_blank>http://www.cluecon.com</A><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></BLOCKQUOTE>
<STYLE>
</STYLE>

<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV></body></html>