Hi team,
I 've created first version of *mod_cdr_logic*.
And I would like to ask you what is the best way to share it with the
community?
It can be provided in contrib dir or I can put it on my personal site, if
you think it is better not to include it into contrib dir at this stage.
Module exports any channel variables into the provided table using ODBC in
core.
It supports master and backup database (also I will add failover dump into a
file in a future version if it will be required).
*The most important thing of this module is the ability to execute set of
Lua or Java scripts before exporting CDR into the table.*
*So one can implement any business logic, set new channel variables based on
some conditions, and then export them all into the table as CDR.*
Config file (attached) contains 3 sections:
1. Database and table settings
2. Scripts to be executed before export
3. Channel variables to be exported (and corresponding table field names).
I would greatly appreciate your inputs!
P.S. I tested it carefully and it looks stable, but for sure it will need
few months of community intensive testing (and bug fixing if any) before
being considered fully stable.
*Also, I would greatly appreciate any comments of the development team on
the source code (especially on string concatenation and memory management).*
Regards,
vIT
2010/5/26 Vitalii Colosov <vetali...@gmail.com>
> Hi Nazim,
>
> mod_xml_cdr is able to send CDR to apache server, and I was using it
> successfully until I created the module that writes CDRs directly into the
> database. I thought to add some business logic ability and share with the
> community.
>
> I am sure your idea will also find many grateful users.
>
> Personally from my side, I wanted to completely avoid using any HTTP
> servers (many reasons, bottom line - it's just not REALLY needed for such
> task in many implementations).
>
> I think I will continue working in this direction and it will find some
> users (like me) who will also use it.
> The only problem here I see is performance - maybe it will not be suitable
> for really LARGE implementations.
>
> Vitalie
>
<configuration name="cdr_logic.conf" description="CDR logic settings">
<!-- INFORMATION
CDR logic can skip the CDR from writing into the table if script will set channel variable "cdr_logic_skip_cdr='yes'"
-->
<!-- Environment settings -->
<env_settings>
<param name="db_username" value="change_user!"/>
<param name="db_password" value="change_password!"/>
<param name="db_dsn_primary" value="db1"/>
<param name="db_dsn_backup" value="db2"/>
<param name="cdr_table_name" value="cdr_table"/>
<param name="csv_file_path" value="/var/switch/cdr_logic_data/"/>
</env_settings>
<!-- Scripts to be executed before inserting cdr into the table -->
<scripts>
<script type="lua" script="cdr.lua"/>
<script type="lua" script="cdr2.lua"/>
<script type="javascript" script="cdr3.js"/>
</scripts>
<!-- Mapping channel variables to the db table columns
IMPORTANT: All table columns must be only string type compatible
-->
<variables_columns_map>
<variable var_name="caller_id_number" column_name="calling_number"/>
<variable var_name="destination_number" column_name="called_number"/>
<variable var_name="var3" column_name="column3"/>
</variables_columns_map>
</configuration>
_______________________________________________
FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org