I can vouch for the fact that some folks keep showing up and asking for this kind of feature. We&#39;re not big fans of the straight-to-db paradigm, but others certainly are. I think the devs would be agreeable to have this in contrib for people to play with at their own risk. As long as the core devs &amp; company don&#39;t have to answer questions about your buggy module ;) then it should be okay. Just be ready to offer support for your module because everyone who uses it will come asking for advice. <br>
<br>-MC<br><br><div class="gmail_quote">On Fri, May 21, 2010 at 7:57 AM, Vitalii Colosov <span dir="ltr">&lt;<a href="mailto:vetali100@gmail.com">vetali100@gmail.com</a>&gt;</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;">
<div>Hi group,</div><div><br></div><div>I would like to create and contribute to the community a module: &quot;mod_cdr_logic&quot; (or whatever name will be proposed).</div><div>Do you think ***from your experience*** that there is a practical need in such module, or better to concentrate on something else :-) ?</div>

<div><br></div><div><br></div><div>In high level:</div><div>Module will export CDRs directly into the database with failover, applying business rules (with regular expressions) to the values exported</div><div><br></div>
<div>
More detailed:</div><div>After the call is finished, module will export selected chanel variables directly into any provided table (odbc used).</div><div>It will apply business rules to the selected values (based on regular expressions, condition-action dialplan style).<span style="white-space: pre;">                </span></div>

<div>Module will produce one CDR per leg (outgoing/incoming, configurable).</div><div>Also it will support fail over: if the main database is not available, it will try to export into a backup database, and if that will be down as well, it will dump into a local CSV file.</div>

<div><br></div><div><br></div><div><br></div><div>In the config file one will provide:</div><div><span style="white-space: pre;">        </span>1.Mapping rule - variable name to the corresponding table field name</div>
<div><span style="white-space: pre;">        </span>2.Set of business rules to apply</div><div><span style="white-space: pre;">        </span></div><div><span style="white-space: pre;">        </span></div>
<div>Config file example (will be in regular xml eventually):</div><div>--------------------------------------------------------------------</div><div>#these are the values that are taken directly from channel variables</div>

<div>&lt;channel_variables_map&gt;</div><div>      #channel variable--&gt;mapped to the table field</div><div>      calling_number-&gt;calling_number</div><div>      destination_number-&gt;called_number</div><div>      dialed_dtmf_digits-&gt;dialed_digits  </div>

<div>&lt;channel_variables_map/&gt;</div><div><br></div><div><br></div><div>#these are the new values that will be determined at the business rules stage</div><div>&lt;new_variables&gt;</div><div>  sales_department_call-&gt;sales_department_call</div>

<div>  technical_department_call-&gt;technical_department_call</div><div>  one_more_lost_client-&gt;one_more_lost_client</div><div>  one_more_happy_client-&gt;one_more_happy_client  </div><div>&lt;new_variables/&gt;</div>

<div><br></div><div><br></div><div>&lt;rules&gt;<span style="white-space: pre;">        </span></div><div><span style="white-space: pre;">                </span>&lt;condition field=&quot;dialed_dtmf_digits&quot; expression=&quot;^(1)(\d+)&quot;&gt;<span style="white-space: pre;">                                </span></div>

<div><span style="white-space: pre;">                        </span>&lt;action set=&quot;sales_department_call=1&quot;/&gt;</div><div><span style="white-space: pre;">                        </span>&lt;anti-action set=&quot;technical_department_call=1&quot;/&gt;<span style="white-space: pre;">                </span></div>

<div><span style="white-space: pre;">                </span>&lt;condition/&gt;<span style="white-space: pre;">                                                </span></div><div><span style="white-space: pre;">                </span>&lt;condition field=&quot;hangup_cause&quot; expression=&quot;NO_ANSWER&quot;&gt;<span style="white-space: pre;">                                </span></div>

<div><span style="white-space: pre;">                        </span>&lt;action set=&quot;one_more_lost_client=1&quot;/&gt;</div><div><span style="white-space: pre;">                        </span>&lt;anti-action set=&quot;one_more_happy_client=1&quot;/&gt;</div>

<div><span style="white-space: pre;">                </span>&lt;condition/&gt;<span style="white-space: pre;">                                                </span></div><div>&lt;rules/&gt;</div><div>--------------------------------------------------------------------</div>
<div><br></div><div><br></div><div>Would be glad to hear your opinion regarding usefulness or useless of such module in the contrib dir.</div><div><br></div><div><br></div><div>Thank you,</div><div>Vitalie</div><div><br>
</div>
<div><br></div>
<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>
<br></blockquote></div><br>