Steve,<br><br>Thanks for doing this! <br><br>Anita: take a look at Steve&#39;s changes and see if you can add the UUID logging. The gang here will be happy to answer any follow up questions.<br><br>-MC<br><br><div class="gmail_quote">
On Wed, Mar 28, 2012 at 8:41 AM, Steve Underwood <span dir="ltr">&lt;<a href="mailto:steveu@coppice.org">steveu@coppice.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I have commited changes to spandsp which introduces an additional opaque<br>
pointer argument to the spandsp logging routines. I have also changed<br>
mod_spandsp so it basically handles this parameter. However, right now<br>
NULL is always being passed. Someone is welcome to now start using this<br>
feature in a more meaningful way.<br>
<span class="HOEnZb"><font color="#888888"><br>
Steve<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 03/28/2012 02:20 AM, Steve Underwood wrote:<br>
&gt; I can add an additional user controlled opaque pointer to each instance<br>
&gt; of spandsp&#39;s logging, and extend the callbacks to pass that pointer to<br>
&gt; the application. Most other things in spandsp pass opaque pointers in<br>
&gt; callbacks, so it would kind of complete the set.<br>
&gt;<br>
&gt; Steve<br>
&gt;<br>
&gt;<br>
&gt; On 03/28/2012 01:18 AM, Anthony Minessale wrote:<br>
&gt;&gt; I think you would need to change spandsp itself to allow a private<br>
&gt;&gt; pointer to pass to the logging callback or you&#39;re out of luck.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Mar 27, 2012 at 10:56 AM, Michael Collins&lt;<a href="mailto:msc@freeswitch.org">msc@freeswitch.org</a>&gt;   wrote:<br>
&gt;&gt;&gt; *SIGH* evidently there&#39;s a magic keystroke that means &quot;send&quot; in GMail and I<br>
&gt;&gt;&gt; accidentally pressed it.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; As I was saying, it looks like this function is only called 6 times:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &lt;139&gt;:grep -n spanfax_log_message mod_spandsp_fax.c<br>
&gt;&gt;&gt; 262:void spanfax_log_message(int level, const char *msg)<br>
&gt;&gt;&gt; 716:        span_log_set_message_handler(&amp;fax-&gt;logging,<br>
&gt;&gt;&gt; spanfax_log_message);<br>
&gt;&gt;&gt; 717:        span_log_set_message_handler(&amp;t30-&gt;logging,<br>
&gt;&gt;&gt; spanfax_log_message);<br>
&gt;&gt;&gt; 772:            span_log_set_message_handler(&amp;t38-&gt;logging,<br>
&gt;&gt;&gt; spanfax_log_message);<br>
&gt;&gt;&gt; 773:            span_log_set_message_handler(&amp;t30-&gt;logging,<br>
&gt;&gt;&gt; spanfax_log_message);<br>
&gt;&gt;&gt; 827:     span_log_set_message_handler(&amp;pvt-&gt;t38_gateway_state-&gt;logging,<br>
&gt;&gt;&gt; spanfax_log_message);<br>
&gt;&gt;&gt; 828:     span_log_set_message_handler(&amp;pvt-&gt;t38_core-&gt;logging,<br>
&gt;&gt;&gt; spanfax_log_message);<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;d wager that each of those calls to the logging function would have<br>
&gt;&gt;&gt; knowledge of the sesssion. I&#39;d recommend adding a 3rd argument to the<br>
&gt;&gt;&gt; logging function. In this case, I&#39;d just add a const char *uuid and then<br>
&gt;&gt;&gt; change each call to that function to supply the UUID as the 3rd argument. If<br>
&gt;&gt;&gt; there is no knowledge of the session or uuid then just put an empty string<br>
&gt;&gt;&gt; as the argument.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; In any case, happy coding! :)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; -MC<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Mar 27, 2012 at 1:15 AM, Anita Hall&lt;<a href="mailto:anita.hall@simmortel.com">anita.hall@simmortel.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; Yes Mitch, I did that but the Fax internal messages are printed by this<br>
&gt;&gt;&gt;&gt; line which has no knowledge of the session.<br>
&gt;&gt;&gt;&gt;     switch_log_printf(SWITCH_CHANNEL_LOG, fs_log_level, &quot;%s&quot;, msg);<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I do not think, it can print the uuid without knowing the session ?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Here is a log snippet to show uuid prefixed at other places except line<br>
&gt;&gt;&gt;&gt; 286 of mod_spandsp_fax.c shown above<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 2012-03-27 13:40:38.604877 [DEBUG] mod_spandsp_fax.c:286 FLOW T.30   1...<br>
&gt;&gt;&gt;&gt; ....= Extension indicator: Set<br>
&gt;&gt;&gt;&gt; 2012-03-27 13:40:38.604877 [DEBUG] mod_spandsp_fax.c:286 FLOW T.30   ....<br>
&gt;&gt;&gt;&gt; ..0.= Compressed/uncompressed mode: Compressed<br>
&gt;&gt;&gt;&gt; 2012-03-27 13:40:38.604877 [DEBUG] mod_spandsp_fax.c:286 FLOW T.30   ....<br>
&gt;&gt;&gt;&gt; .1..= Error correction mode (ECM): ECM<br>
&gt;&gt;&gt;&gt; 2012-03-27 13:40:38.604877 [DEBUG] mod_spandsp_fax.c:286 FLOW T.30   ....<br>
&gt;&gt;&gt;&gt; 0...= Frame size: 256 octets<br>
&gt;&gt;&gt;&gt; 2012-03-27 13:40:38.604877 [DEBUG] mod_spandsp_fax.c:286 FLOW T.30   .1..<br>
&gt;&gt;&gt;&gt; ....= T.6 coding: Set<br>
&gt;&gt;&gt;&gt; 2012-03-27 13:40:38.604877 [DEBUG] mod_spandsp_fax.c:286 FLOW T.30   0...<br>
&gt;&gt;&gt;&gt; ....= Extension indicator: Not set<br>
&gt;&gt;&gt;&gt; 2012-03-27 13:40:38.604877 [DEBUG] mod_spandsp_fax.c:286 FLOW T.30<br>
&gt;&gt;&gt;&gt; Selected compression T.6 (3)<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:327 === Negotiation Result<br>
&gt;&gt;&gt;&gt; =======================================================<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:328 Remote station id:<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:329 Local station id:  Sangoma Fax Ident<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:330 Transfer Rate:     4800<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:332 ECM status         on<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:333 remote country:<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:334 remote vendor:<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:335 remote model:<br>
&gt;&gt;&gt;&gt; 46736448-77e4-11e1-855c-b3286880c45b 2012-03-27 13:40:38.604877 [DEBUG]<br>
&gt;&gt;&gt;&gt; mod_spandsp_fax.c:337<br>
&gt;&gt;&gt;&gt; =========================================================================<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; regards,<br>
&gt;&gt;&gt;&gt; Anita<br>
<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-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
</div></div></blockquote></div><br>