I can vouch for the fact that some folks keep showing up and asking for this kind of feature. We'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 & company don'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"><<a href="mailto:vetali100@gmail.com">vetali100@gmail.com</a>></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: "mod_cdr_logic" (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><channel_variables_map></div><div> #channel variable-->mapped to the table field</div><div> calling_number->calling_number</div><div> destination_number->called_number</div><div> dialed_dtmf_digits->dialed_digits </div>
<div><channel_variables_map/></div><div><br></div><div><br></div><div>#these are the new values that will be determined at the business rules stage</div><div><new_variables></div><div> sales_department_call->sales_department_call</div>
<div> technical_department_call->technical_department_call</div><div> one_more_lost_client->one_more_lost_client</div><div> one_more_happy_client->one_more_happy_client </div><div><new_variables/></div>
<div><br></div><div><br></div><div><rules><span style="white-space: pre;">        </span></div><div><span style="white-space: pre;">                </span><condition field="dialed_dtmf_digits" expression="^(1)(\d+)"><span style="white-space: pre;">                                </span></div>
<div><span style="white-space: pre;">                        </span><action set="sales_department_call=1"/></div><div><span style="white-space: pre;">                        </span><anti-action set="technical_department_call=1"/><span style="white-space: pre;">                </span></div>
<div><span style="white-space: pre;">                </span><condition/><span style="white-space: pre;">                                                </span></div><div><span style="white-space: pre;">                </span><condition field="hangup_cause" expression="NO_ANSWER"><span style="white-space: pre;">                                </span></div>
<div><span style="white-space: pre;">                        </span><action set="one_more_lost_client=1"/></div><div><span style="white-space: pre;">                        </span><anti-action set="one_more_happy_client=1"/></div>
<div><span style="white-space: pre;">                </span><condition/><span style="white-space: pre;">                                                </span></div><div><rules/></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>