<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<a href="http://jira.freeswitch.org/browse/MODAPP-112">http://jira.freeswitch.org/browse/MODAPP-112</a><br>
<br>
Thanks!<br>
Chris<br>
<br>
<div class="moz-signature"><b>Chris Danielson</b>
<br>
Software Consultant and Co-Founder
<br>
Web: <a href="http://www.maxpowersoft.com/">MaxPowerSoft, LLC</a><br>
</div>
<br>
Michael Jerris wrote:
<blockquote cite="mid:DB3667A8-A876-453A-8E2F-751E0BB2983A@jerris.com"
 type="cite">Can you please attach this patch as a file to a bug on
jira.freeswitch.org?
  <div><br>
  </div>
  <div>Mike</div>
  <div><br>
  <div>
  <div>On Jul 7, 2008, at 5:36 PM, Chris Danielson wrote:</div>
  <br class="Apple-interchange-newline">
  <blockquote type="cite">
    <div bgcolor="#ffffff" text="#000000"> FreeSWITCH may or may not
need this but I added an auto-record feature into the mod_conference
module.&nbsp; Essentially, one can specify within the
"conf/autoload_configs/conference.conf.xml" the following attribute:<br>
&lt;param name="auto-record" value="/var/myNFSshare/audio/" /&gt;<br>
When this is specified the conference will automatically record the
conference-&gt;name with an appended ".wav" into that folder.&nbsp; I built
this out of necessity for my current implementation.&nbsp; I thought since
it is able to be toggled off and on based on specifying the
"auto-record" parameter that it might be worthy of inclusion.&nbsp; <br>
    <br>
Attached is my svn diff.<br>
    <br>
Kind Regards,<br>
Chris<br>
    <br>
    <div class="moz-signature">-- <br>
    <b>Chris Danielson</b> <br>
Software Consultant and Co-Founder <br>
Web: <a moz-do-not-send="true" href="http://www.maxpowersoft.com/">MaxPowerSoft,
LLC</a> <br>
Email: <a moz-do-not-send="true" href="mailto:chris@maxpowersoft.com">chris@maxpowersoft.com</a>
    <br>
    </div>
    </div>
Index: mod_conference.c<br>
===================================================================<br>
--- mod_conference.c<span class="Apple-tab-span"
 style="white-space: pre;"> </span>(revision 8910)<br>
+++ mod_conference.c<span class="Apple-tab-span"
 style="white-space: pre;"> </span>(working copy)<br>
@@ -27,8 +27,8 @@<br>
&nbsp;* Neal Horman &lt;neal at wanlink dot com&gt;<br>
&nbsp;* Bret McDanel &lt;trixter at 0xdecafbad dot com&gt;<br>
&nbsp;* Dale Thatcher &lt;freeswitch at dalethatcher dot com&gt;<br>
+ * Chris Danielson &lt;chris at maxpowersoft dot com&gt;<br>
&nbsp;*<br>
- *<br>
&nbsp;* mod_conference.c -- Software Conference Bridge<br>
&nbsp;*<br>
&nbsp;*/<br>
@@ -230,6 +230,7 @@<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>char
*caller_id_number;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>char
*sound_prefix;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>char
*special_announce;<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span>char
*auto_record;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>uint32_t
max_members;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>char
*maxmember_sound;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>uint32_t
anounce_count;<br>
@@ -880,6 +881,14 @@<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>switch_mutex_lock(globals.hash_mutex);<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>globals.threads++;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>switch_mutex_unlock(globals.hash_mutex);<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(conference-&gt;auto_record) {<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>char *rfile
= switch_mprintf("%s%s%s", conference-&gt;auto_record,
conference-&gt;name, ".wav");<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>switch_assert(rfile);<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>switch_log_printf(SWITCH_CHANNEL_LOG,
SWITCH_LOG_DEBUG, "Auto recording file: %s\n", rfile);<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>launch_conference_record_thread(conference,
rfile);<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>switch_safe_free(rfile);<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br>
    <br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>while
(globals.running &amp;&amp; !switch_test_flag(conference,
CFLAG_DESTRUCT)) {<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>switch_size_t
file_sample_len = samples;<br>
@@ -4806,6 +4815,7 @@<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>switch_status_t
status;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>int
comfort_noise_level = 0;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>char
*suppress_events = NULL;<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span>char
*auto_record = NULL;<br>
    <br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>/*
Validate the conference name */<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>if
(switch_strlen_zero(name)) {<br>
@@ -4923,6 +4933,8 @@<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>}<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>} else if
(!strcasecmp(var, "suppress-events") &amp;&amp;
!switch_strlen_zero(val)) {<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>suppress_events
= val;<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>} else if
(!strcasecmp(var, "auto-record") &amp;&amp; !switch_strlen_zero(val)) {<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>auto_record
= val;<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>}<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>}<br>
    <br>
@@ -5078,6 +5090,10 @@<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>clear_eflags(suppress_events,
&amp;conference-&gt;eflags);<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>}<br>
    <br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span>if
(!switch_strlen_zero(auto_record)) {<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><span
 class="Apple-tab-span" style="white-space: pre;"> </span>conference-&gt;auto_record
= switch_core_strdup(conference-&gt;pool, auto_record);<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br>
+<span class="Apple-tab-span" style="white-space: pre;"> </span><br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>/*
caller control configuration chores */<br>
    <span class="Apple-tab-span" style="white-space: pre;"> </span>if
(switch_ivr_digit_stream_parser_new(conference-&gt;pool,
&amp;conference-&gt;dtmf_parser) == SWITCH_STATUS_SUCCESS) {<br>
    <br>
_______________________________________________<br>
Freeswitch-users mailing list<br>
    <a moz-do-not-send="true"
 href="mailto:Freeswitch-users@lists.freeswitch.org">Freeswitch-users@lists.freeswitch.org</a><br>
<a class="moz-txt-link-freetext" href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a class="moz-txt-link-freetext" href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a class="moz-txt-link-freetext" href="http://www.freeswitch.org">http://www.freeswitch.org</a><br>
  </blockquote>
  </div>
  <br>
  </div>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Freeswitch-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Freeswitch-users@lists.freeswitch.org">Freeswitch-users@lists.freeswitch.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a>
UNSUBSCRIBE:<a class="moz-txt-link-freetext" href="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</a>
<a class="moz-txt-link-freetext" href="http://www.freeswitch.org">http://www.freeswitch.org</a>
  </pre>
</blockquote>
</body>
</html>