<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">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. Essentially, one can specify within the "conf/autoload_configs/conference.conf.xml" the following attribute:<br> <param name="auto-record" value="/var/myNFSshare/audio/" /><br> When this is specified the conference will automatically record the conference->name with an appended ".wav" into that folder. I built this out of necessity for my current implementation. 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. <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 href="http://www.maxpowersoft.com/">MaxPowerSoft, LLC</a> <br> Email: <a 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> * Neal Horman <neal at wanlink dot com><br> * Bret McDanel <trixter at 0xdecafbad dot com><br> * Dale Thatcher <freeswitch at dalethatcher dot com><br>+ * Chris Danielson <chris at maxpowersoft dot com><br> *<br>- *<br> * mod_conference.c -- Software Conference Bridge<br> *<br> */<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->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->auto_record, conference->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 && !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") && !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") && !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, &conference->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->auto_record = switch_core_strdup(conference->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->pool, &conference->dtmf_parser) == SWITCH_STATUS_SUCCESS) {<br><br>_______________________________________________<br>Freeswitch-users mailing list<br><a href="mailto:Freeswitch-users@lists.freeswitch.org">Freeswitch-users@lists.freeswitch.org</a><br>http://lists.freeswitch.org/mailman/listinfo/freeswitch-users<br>UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users<br>http://www.freeswitch.org<br></blockquote></div><br></div></body></html>