<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
h1
        {margin-top:12.0pt;
        margin-right:0cm;
        margin-bottom:3.0pt;
        margin-left:21.6pt;
        text-indent:-21.6pt;
        page-break-before:always;
        page-break-after:avoid;
        mso-list:l0 level1 lfo2;
        font-size:16.0pt;
        font-family:Arial;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.Section1
        {page:Section1;}
/* List Definitions */
@list l0
        {mso-list-id:1450051809;
        mso-list-template-ids:-1203760054;}
@list l0:level1
        {mso-level-style-link:"Heading 1";
        mso-level-text:%1;
        mso-level-tab-stop:21.6pt;
        mso-level-number-position:left;
        margin-left:21.6pt;
        text-indent:-21.6pt;}
@list l0:level2
        {mso-level-text:"%1\.%2";
        mso-level-tab-stop:28.8pt;
        mso-level-number-position:left;
        margin-left:28.8pt;
        text-indent:-28.8pt;}
@list l0:level3
        {mso-level-text:"%1\.%2\.%3";
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        margin-left:36.0pt;
        text-indent:-36.0pt;}
@list l0:level4
        {mso-level-text:"%1\.%2\.%3\.%4";
        mso-level-tab-stop:43.2pt;
        mso-level-number-position:left;
        margin-left:43.2pt;
        text-indent:-43.2pt;}
@list l0:level5
        {mso-level-text:"%1\.%2\.%3\.%4\.%5";
        mso-level-tab-stop:50.4pt;
        mso-level-number-position:left;
        margin-left:50.4pt;
        text-indent:-50.4pt;}
@list l0:level6
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
        mso-level-tab-stop:57.6pt;
        mso-level-number-position:left;
        margin-left:57.6pt;
        text-indent:-57.6pt;}
@list l0:level7
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
        mso-level-tab-stop:64.8pt;
        mso-level-number-position:left;
        margin-left:64.8pt;
        text-indent:-64.8pt;}
@list l0:level8
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        margin-left:72.0pt;
        text-indent:-72.0pt;}
@list l0:level9
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
        mso-level-tab-stop:79.2pt;
        mso-level-number-position:left;
        margin-left:79.2pt;
        text-indent:-79.2pt;}
@list l1
        {mso-list-id:1604460778;
        mso-list-type:hybrid;
        mso-list-template-ids:165991288 82732590 68419609 68419611 68419599 68419609 68419611 68419599 68419609 68419611;}
@list l1:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</style>
</head>
<body lang=NO-BOK link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>Hi,<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>1 - You will need to
store CDR’s temporary to a local file and have a daemon that read and
archive these. Do it any other way and you will loose CDR records on regular
basis if database or network hicks up.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>2 – A CDR contains
some standard variables like a unique call-id, start-time, duration, DDI, CLI
etc. But, an iVR will typically want to add custom parameters that are specific
for the business/application.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>3. Some IVR applications
require Audit logs, meaning you record action points in the application. In a
phone-banking etc the CDR should show money transfers and other operations the
user performed. This is often used in for auditing, but also for analysing/optimising
the IVR.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>So in short – if you
changed your module to be a stand-alone archive module that reads CDR files and
convert it to some target archive format it could be useful. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 color=navy face=Arial><span lang=EN-GB
style='font-size:10.0pt;font-family:Arial;color:navy'>Jan<o:p></o:p></span></font></p>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span lang=EN-US style='font-size:12.0pt'>
<hr size=2 width="100%" align=center tabindex=-1>
</span></font></div>
<p class=MsoNormal><b><font size=2 face=Tahoma><span lang=EN-US
style='font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</span></font></b><font
size=2 face=Tahoma><span lang=EN-US style='font-size:10.0pt;font-family:Tahoma'>
freeswitch-dev-bounces@lists.freeswitch.org
[mailto:freeswitch-dev-bounces@lists.freeswitch.org] <b><span style='font-weight:
bold'>On Behalf Of </span></b>Vitalii Colosov<br>
<b><span style='font-weight:bold'>Sent:</span></b> 21. mai 2010 16:58<br>
<b><span style='font-weight:bold'>To:</span></b> <st1:PersonName w:st="on">freeswitch-dev@lists.freeswitch.org</st1:PersonName><br>
<b><span style='font-weight:bold'>Subject:</span></b> [Freeswitch-dev] Would
like to create and contribute a module "mod_cdr_logic"</span></font><span
lang=EN-US><o:p></o:p></span></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Hi group,<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>I would like to create and contribute to the community a module:
"mod_cdr_logic" (or whatever name will be proposed).<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Do you think ***from your experience*** that there is a practical need
in such module, or better to concentrate on something else :-) ?<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>In high level:<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Module will export CDRs directly into the database with failover,
applying business rules (with regular expressions) to the values exported<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>More detailed:<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>After the call is finished, module will export selected chanel
variables directly into any provided table (odbc used).<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>It will apply business rules to the selected values (based on regular
expressions, condition-action dialplan style).<span class=apple-tab-span> </span><o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Module will produce one CDR per leg (outgoing/incoming, configurable).<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>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.<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>In the config file one will provide:<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span>1.Mapping
rule - variable name to the corresponding table field name<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span>2.Set
of business rules to apply<o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Config file example (will be in regular xml eventually):<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>--------------------------------------------------------------------<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>#these are the values that are taken directly from channel variables<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><channel_variables_map><o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> #channel variable-->mapped to the table
field<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> calling_number->calling_number<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> destination_number->called_number<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> dialed_dtmf_digits->dialed_digits <o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><channel_variables_map/><o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>#these are the new values that will be determined at the business rules
stage<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><new_variables><o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> sales_department_call->sales_department_call<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> technical_department_call->technical_department_call<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> one_more_lost_client->one_more_lost_client<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'> one_more_happy_client->one_more_happy_client <o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><new_variables/><o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><rules><span class=apple-tab-span> </span><o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><condition
field="dialed_dtmf_digits" expression="^(1)(\d+)"><span
class=apple-tab-span> </span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><action
set="sales_department_call=1"/><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><anti-action
set="technical_department_call=1"/><span class=apple-tab-span> </span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><condition/><span
class=apple-tab-span> </span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><condition
field="hangup_cause" expression="NO_ANSWER"><span
class=apple-tab-span> </span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><action
set="one_more_lost_client=1"/><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><anti-action
set="one_more_happy_client=1"/><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><span class=apple-tab-span><font size=3
face="Times New Roman"><span style='font-size:12.0pt'> </span></font></span><condition/><span
class=apple-tab-span> </span><o:p></o:p></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><rules/><o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>--------------------------------------------------------------------<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Would be glad to hear your opinion regarding usefulness or useless of
such module in the contrib dir.<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Thank you,<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Vitalie<o:p></o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
</div>
</body>
</html>