<html>
<head>
<meta name="viewport" content="width=device-width" />
<base href="https://wiki.asterisk.org/wiki" />
<style type="text/css">
body, #email-content, #email-content-inner { font-family: Arial,FreeSans,Helvetica,sans-serif; }
body, p, blockquote, pre, code, td, th, li, dt, dd { font-size: 13px; }
small { font-size: 11px; }
body { width:100% !important; -webkit-font-smoothing: antialiased; }
body,
#email-wrapper { background-color: #f0f0f0; }
#email-wrapper-inner { padding: 20px; text-align: center; }
#email-content-inner { background-color: #fff; border: 1px solid #bbb; color: $menuTxtColour; padding:20px; text-align:left; }
#email-wrapper-inner > table { width: 100%; }
#email-wrapper-inner.thin > table { margin: 0 auto; width: 50%; }
#email-footer { padding: 0 16px 32px 16px; margin: 0; }
.email-indent { margin: 8px 0 16px 0; }
.email-comment { margin: 0 0 0 56px; }
.email-comment.removed { background-color: #ffe7e7; border: 1px solid #df9898; padding: 0 8px;}
#email-title-avatar { text-align: left; vertical-align: top; width: 48px; padding-right: 8px; }
#email-title-flavor { margin: 0; padding: 0 0 4px 0; }
#email-title-heading { font-size: 16px; line-height: 20px; min-height: 20px; margin: 0; padding: 0; }
#email-title .icon { border: 0; padding: 0 5px 0 0; text-align: left; vertical-align: middle; }
#email-actions { border-top: 1px solid #bbb; color: #505050; margin: 8px 0 0 0; padding: 0; }
#email-actions td { padding-top: 8px; }
#email-actions .left { max-width: 45%; text-align: left; }
#email-actions .right { text-align: right; }
.email-reply-divider { border-top: 1px solid #bbb; color: #505050; margin: 32px 0 8px 0; padding: 8px 0; }
.email-section-title { border-bottom: 1px solid #bbb; margin: 8px 0; padding: 8px 0 0 0; }
.email-metadata { color: #505050; }
a { color: #326ca6; text-decoration: none; }
a:hover { color: #336ca6; text-decoration: underline; }
a:active {color: #326ca6; }
a.email-footer-link { color: #505050; font-size: 11px; }
.email-item-list { list-style: none; margin: 4px 0; padding-left: 0; }
.email-item-list li { list-style: none; margin: 0; padding: 4px 0; }
.email-list-divider { color: #505050; padding: 0 0.35em; }
.email-operation-icon { padding-right: 5px; }
.avatar { -ms-interpolation-mode: bicubic; border-radius: 3px;}
.avatar-link { margin: 2px; }
.tableview th { border-bottom: 1px solid #69C; font-weight: bold; text-align: left; }
.tableview td { border-bottom: 1px solid #bbbbbb; text-align: left; padding: 4px 16px 4px 0; }
.aui-message { margin: 1em 0; padding: 8px; }
.aui-message.info { background-color: #e0f0ff; border: 1px solid #9eb6d4; }
.aui-message.success { background-color: #ddfade; border: 1px solid #93c49f; }
.aui-message.error,
.aui-message.removed { background-color: #ffe7e7; border: 1px solid #df9898; color: #000; }
.call-to-action-table { margin: 10px 1px 1px 1px;}
.call-to-cancel-container, .call-to-action-container { padding: 5px 20px; }
.call-to-cancel-container { border: 1px solid #aaa; background-color: #eee; border-radius: 3px; }
.call-to-cancel-container a.call-to-cancel-button { background-color: #eee; font-size: 14px; line-height: 1; padding: 0; margin: 0; color: #666; font-family: sans-serif;}
.call-to-action-container { border: 1px solid #486582; background-color: #3068A2; border-radius: 3px; padding: 4px 10px; }
.call-to-action-container a.call-to-action-button { background-color: #3068A2; font-size: 14px; line-height: 1; padding: 0; margin: 0; color: #fff; font-weight: bold; font-family: sans-serif; }
/** The span around the inline task checkbox image */
.diff-inline-task-overlay {
display: inline-block;
text-align: center;
height: 1.5em;
padding: 5px 0px 1px 5px;
margin-right: 5px;
/** Unfortunately, the negative margin-left is stripped out in gmail */
margin-left: -5px;
}
@media handheld, only screen and (max-device-width: 480px) {
div, a, p, td, th, li, dt, dd { -webkit-text-size-adjust: auto; }
small, small a { -webkit-text-size-adjust: 90%; }
td[id=email-wrapper-inner] { padding: 2px !important; }
td[id=email-content-inner] { padding: 8px !important; }
td[id="email-wrapper-inner"][class="thin"] > table { text-align: left !important; width: 100% !important; }
td[id=email-footer] { padding: 8px 12px !important; }
div[class=email-indent] { margin: 8px 0px !important; }
div[class=email-comment] { margin: 0 !important; }
p[id=email-title-flavor] a { display: block; } /* puts the username and the action on separate lines */
p[id=email-permalink] { padding: 4px 0 0 0 !important; }
table[id=email-actions] td { padding-top: 0 !important; }
table[id=email-actions] td.right { text-align: right !important; }
table[id=email-actions] .email-list-item { display: block; margin: 1em 0 !important; word-wrap: normal !important; }
span[class=email-list-divider] { display: none; }
}
</style>
</head>
<body style="font-family: Arial, FreeSans, Helvetica, sans-serif; font-size: 13px; width: 100%; -webkit-font-smoothing: antialiased; background-color: #f0f0f0">
<table id="email-wrapper" width="100%" cellspacing="0" cellpadding="0" border="0" style="background-color: #f0f0f0">
<tbody>
<tr valign="middle">
<td id="email-wrapper-inner" style="font-size: 13px; padding: 20px; text-align: center">
<table id="email-content" cellspacing="0" cellpadding="0" border="0" style="font-family: Arial, FreeSans, Helvetica, sans-serif; width: 100%">
<tbody>
<tr valign="top">
<td id="email-content-inner" align="left" style="font-family: Arial, FreeSans, Helvetica, sans-serif; font-size: 13px; background-color: #fff; border: 1px solid #bbb; padding: 20px; text-align: left">
<table id="email-title" cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td id="email-title-avatar" rowspan="2" style="font-size: 13px; text-align: left; vertical-align: top; width: 48px; padding-right: 8px"> <img class="avatar" src="cid:avatar_ce51dcf276530e4a4b00548e2a6d0905" border="0" height="48" width="48" style="-ms-interpolation-mode: bicubic; border-radius: 3px" /> </td>
<td valign="top" style="font-size: 13px">
<div id="email-title-flavor" class="email-metadata" style="margin: 0; padding: 0 0 4px 0; color: #505050">
<a href=" https://wiki.asterisk.org/wiki/display/~mjordan " style="color:#326ca6;text-decoration:none;; color: #326ca6; text-decoration: none">Matt Jordan</a> edited the page:
</div> </td>
</tr>
<tr>
<td valign="top" style="font-size: 13px"> <h2 id="email-title-heading" style="font-size: 16px; line-height: 20px; min-height: 20px; margin: 0; padding: 0"> <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CDR+Specification" style="color: #326ca6; text-decoration: none"> <img class="icon" src="cid:page-icon" alt="" style="border: 0; padding: 0 5px 0 0; text-align: left; vertical-align: middle" /> <strong style="font-size:16px;line-height:20px;vertical-align:top;">Asterisk 12 CDR Specification</strong> </a> </h2> </td>
</tr>
</tbody>
</table>
<div class="email-indent" style="margin: 8px 0 16px 0">
<div class="email-diff">
<div id="page-diffs" class="wiki-content">
<span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">This </span>
<table class="diff-macro diff-html-removed diff-block-target diff-block-context" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;background-color: #ffe7e7;border-color: #df9898;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-removed" id="removed-diff-0" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/note.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Note</span></th>
</tr>
</thead>
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" id="added-diff-0" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/warning.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Warning</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <p style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Asterisk 12 has not yet been released - t</span><span><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">his </span><span class="diff-html-changed" id="changed-diff-0" style="background-color: #d6f0ff;">specification is still in draft form.</span></span><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> </span><span class="diff-html-removed" id="removed-diff-1" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If you would like to comment on this specification, please contact the asterisk-dev mailing list.</span> </p> </td>
</tr>
</tbody>
</table>
<p class="diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/toc.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Table of Contents</th>
</tr>
</thead>
</table>
<p style="font-size: 13px"></p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" id="added-diff-1" style="font-size: 100%; background-color: #ddfade;"> </span> </p>
<h1 id="Asterisk12CDRSpecification-Introduction" class="diff-block-context">Introduction</h1>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" id="removed-diff-2" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">This Call Detail Record (CDR) specification describes the records produced by Asterisk providing call information suitable for billing systems. It includes:</span> </p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-changed" id="changed-diff-1" style="background-color: #d6f0ff;">CDRs </span> </p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<ul class="diff-block-target">
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Storage requirements</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Access control restrictions</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">C APIs available that backends may use to receive CDRs from Asterisk</span> </li>
</ul>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h2 id="Asterisk12CDRSpecification-Scope" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Scope</span> </h2>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">This CDR specification applies to Asterisk 12. It does not cover CDRs in prior versions of Asterisk.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Note that this does not include a comprehensive analysis as to how CDRs can be produced in all call scenarios in Asterisk. It defines the behavior for common scenarios, but certain scenarios are deliberately left unspecified. The behavior of CDRs in said scenarios is </span><strong><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">undefined</span></strong><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">It is known that the behavior of CDRs will not allow all applications to capture the billing requirements for their systems. If CDRs cannot meet the requirements of your application, </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Channel Event Logging</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> provides call information at a much finer granularity, allowing complex billing systems to be constructed.</span> </p>
<h2 id="Asterisk12CDRSpecification-HistoryofCDRs" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">History of CDRs</span> </h2>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDRs </span>have been around in Asterisk for a long, long time. In fact, portions of it were taken from <span class="diff-html-removed" id="removed-diff-4" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">the </span><span class="diff-html-added" id="added-diff-2" style="font-size: 100%; background-color: #ddfade;">the </span><code style="font-size: 13px">Zapata</code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> </span><span class="diff-html-removed" id="removed-diff-5" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">library</span><span class="diff-html-added" id="added-diff-3" style="font-size: 100%; background-color: #ddfade;"> library</span>, as noted <span class="diff-html-removed" id="removed-diff-6" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">in </span><span class="diff-html-added" id="added-diff-4" style="font-size: 100%; background-color: #ddfade;">in </span><code style="font-size: 13px">cdr.c</code>:</p>
<table class="diff-macro diff-block-context" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/plugins/servlet/confluence/placeholder/macro-icon?name=code" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Code Block</th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px">language</td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px">C</td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <pre style="font-size: 13px"> *
* \note Includes code and algorithms from the Zapata library.
*
</pre> </td>
</tr>
</tbody>
</table>
<p class="diff-block-target diff-block-context" style="font-size: 13px">CDRs have always attempted to provide the billing information between two parties. Their simplicity has been their biggest advantage, but has also been their largest disadvantage. As Asterisk evolved into a telephony toolkit, it quickly became difficult to express the full details of a call within a single CDR. Compounding this problem, the way in which bridging was performed in Asterisk made <span class="diff-html-removed" id="removed-diff-7" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">multi-party </span>call scenarios <span class="diff-html-added" id="added-diff-5" style="font-size: 100%; background-color: #ddfade;">involving more than two parties </span>incredibly difficult to track and coalesce into one or more CDRs. Numerous attempts were made to address this problem in CDRs with varying degrees of success.</p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" id="removed-diff-8" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">In </span><span class="diff-html-added" id="added-diff-6" style="font-size: 100%; background-color: #ddfade;">In </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none">Asterisk 1.8</a>, CEL was introduced as an alternative to CDRs. Unlike CDRs, where a <span class="diff-html-removed" id="removed-diff-9" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">single record is </span><span class="diff-html-added" id="added-diff-7" style="font-size: 100%; background-color: #ddfade;">few records are </span>produced for a call, CEL provides a sequence of events regarding the state of channels within Asterisk. <span class="diff-html-removed" id="removed-diff-10" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">It was always envisioned that CEL would eventually replace CDRs, and that CDRs would be produced from CEL records. Unfortunately, this effort never really took off.Asterisk 12 has, for better or worse, forced CDRs to be upgraded. Major changes to the </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">way in which Asterisk performs bridging</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> will remove much of the code in Asterisk that attempts to construct CDRs in two-party and transfer scenarios. While we would, in some ways, prefer to abandon CDRs and simply advocate CEL, CEL requires a system integrator to develop their own billing system, which is a non-trivial task. While some post-processing is needed for CDRs as well, it is much less work and far easier to consume (although, of course, significantly less flexible and powerful).</span><span class="diff-html-added" id="added-diff-8" style="font-size: 100%; background-color: #ddfade;">CELs provide substantially more information and thus allow an Asterisk User to construct their own billing system. While CEL will never supplant CDRs, they are an option if CDRs do not provide the billing information you need or in the format you require. This is still true as of Asterisk 12.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">However, changes in the bridging architecture of Asterisk has resulted in a substantial upgrade to CDR behavior. The largest changes in behavior are:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Individual components in Asterisk no longer modify CDRs directly. CDRs are produced based on the state of the channels and bridges within Asterisk. As a result, there is a much greater degree of consistency in CDRs throughout Asterisk, regardless of the application channels happen to be executing in.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">The behavior of CDRs between multiple parties is now defined.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Depending on how channels are dialed and bridged, multiple CDRs will be created for a given call. Post-processing of these records </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">will</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> be required to determine the overall statistics of the call.</span> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Asterisk Users moving to Asterisk 12 are highly encouraged to read this specification carefully.</span> </p>
<h2 id="Asterisk12CDRSpecification-Scope" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Scope</span> </h2>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span style="line-height: 1.4285715;"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">This CDR specification applies to Asterisk 12. It does not cover CDRs in prior versions of Asterisk.</span></span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Note that this does not include a comprehensive analysis as to how CDRs can be produced in all call scenarios in Asterisk. It defines the behavior for common scenarios, but certain scenarios are deliberately left unspecified. The behavior of CDRs in said scenarios is </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">undefined and is not a bug.</span></strong> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">It is known that the behavior of CDRs will not allow all applications to capture the billing requirements for their systems. If CDRs cannot meet the requirements of your application, </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Channel Event Logging</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> (CEL) provides call information at a much finer granularity, allowing complex billing systems to be constructed. Please see the </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Asterisk 12 CEL Specification</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> for more information on CEL.</span> </p>
<h2 id="Asterisk12CDRSpecification-Terminology" class="diff-block-target diff-block-context"> <span class="diff-html-changed" id="changed-diff-2" style="background-color: #d6f0ff;">Terminology</span> </h2>
<div class="table-wrap diff-block-target diff-block-context">
<table class="confluenceTable" style="border-collapse: collapse; border: 1px solid #ddd;">
<tbody>
<tr>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Term</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Definition</p> </th>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">CDR</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Call Detail Record. The thing that this document is attempting to describe.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">CEL</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Channel Event Logging. An alternative way to get billing information from Asterisk, that is significantly more flexible and powerful than CDRs but requires the billing logic to be completely implemented by the user.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Party A</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">A CDR always involves two parties. One party is always chosen as the 'owner' of the CDR. The CDR reflects the view of the call from that party.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Party B</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">A CDR always involves two parties. Party B is the target of the call.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Stasis</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Stasis <span class="diff-html-removed" id="removed-diff-11" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">provides </span><span class="diff-html-added" id="added-diff-9" style="font-size: 100%; background-color: #ddfade;">is </span>the internal message bus <span class="diff-html-removed" id="removed-diff-12" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">to </span><span class="diff-html-added" id="added-diff-10" style="font-size: 100%; background-color: #ddfade;">in </span>Asterisk that conveys state to the CDR engine.</p> </td>
</tr>
</tbody>
</table>
</div>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<p class="diff-block-target" style="font-size: 13px">A CDR is a record of communication between <span class="diff-html-added" id="added-diff-11" style="font-size: 100%; background-color: #ddfade;">one or </span>two parties. As such, <span class="diff-html-removed" id="removed-diff-13" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">a CDR typically contains </span><span class="diff-html-added" id="added-diff-12" style="font-size: 100%; background-color: #ddfade;">CDRs contain </span>two parties: a Party A and a Party B.<span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> </span><span class="diff-html-removed" id="removed-diff-14" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">The </span><span class="diff-html-added" id="added-diff-13" style="font-size: 100%; background-color: #ddfade;"> The </span>CDR reflects the view of the call from the perspective of Party A, while Party B is the party that Party A is communicating with. Each CDR includes the following times:</p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px">Start time - the time at which the CDR was created for Party A</li>
<li style="font-size: 13px">Answer time - the time at which Party A and Party B could begin communicating</li>
<li style="font-size: 13px">End time - the time at which Party A and Party B could no longer communicate</li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-changed" id="changed-diff-4" style="background-color: #d6f0ff;">From these times, two durations are computed:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px">Duration - the End time minus the Start time<span class="diff-html-added" id="added-diff-14" style="font-size: 100%; background-color: #ddfade;">.</span><span class="diff-html-removed" id="removed-diff-15" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Billing </span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" id="added-diff-15" style="font-size: 100%; background-color: #ddfade;">Billsec </span>- the End time minus the Answer time<span class="diff-html-added" id="added-diff-16" style="font-size: 100%; background-color: #ddfade;">. (Whether or not you actually bill for this period of time is up to you)</span> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px">Note that a <span class="diff-html-added" id="added-diff-17" style="font-size: 100%; background-color: #ddfade;">single </span>CDR only tracks information about a single path of communication between two endpoints. In many scenarios, there will be multiple paths of communication between multiple <span class="diff-html-removed" id="removed-diff-16" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">endpoints</span><span class="diff-html-added" id="added-diff-18" style="font-size: 100%; background-color: #ddfade;">parties</span>. Each path of communication results in a new CDR. Those CDRs are associated by virtue of a special linked identifier field, <code style="font-size: 13px">linkedid</code>. The CDRs themselves, however, <span class="diff-html-added" id="added-diff-19" style="font-size: 100%; background-color: #ddfade;">typically </span>do <strong>not</strong> aggregate the time between records. It is up to billing systems to determine which CDRs should be used for their billing records, and add up the times/durations themselves.</p>
<table class="diff-macro diff-html-added diff-block-target diff-block-context" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" id="added-diff-20" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/tip.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Tip</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <p style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">A basic aggregation of the duration and billsec is available. See @@@@.</span> </p> </td>
</tr>
</tbody>
</table>
<h1 id="Asterisk12CDRSpecification-SemanticsandSyntax" class="diff-block-target diff-block-context"> <span style="color: rgb(0,0,0);"><span style="font-size: 22.0px;line-height: 33.0px;"><span class="diff-html-changed" id="changed-diff-5" style="background-color: #d6f0ff;">Semantics and Syntax</span></span></span> </h1>
<h2 id="Asterisk12CDRSpecification-CDRLayout" class="diff-block-target diff-block-context"> <span class="diff-html-removed" id="removed-diff-17" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDR Layout</span> </h2>
<h2 id="Asterisk12CDRSpecification-LifetimeOverview" class="diff-block-target diff-block-context"> <span style="color: rgb(0,0,0);"><span style="font-size: 22.0px;line-height: 33.0px;"><span class="diff-html-added" id="added-diff-21" style="font-size: 100%; background-color: #ddfade;">Lifetime Overview</span></span></span> </h2>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Fundamentally, a CDR represents a path of communication between a channel and Asterisk or between two channels communicating through Asterisk. Those relationships can be broken down into the following states:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Single - a channel is executing dialplan in Asterisk or otherwise has no relationship with any other channel. This is the default state of a CDR.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Dial - a channel is involved in a dial operation - either as a caller or as the callee. If they are the caller, they are automatically the Party A in the CDR. If they are the callee, they are automatically the Party B if there is a caller. If there is no caller - as is the case in channel origination - they are the Party A and there is no Party B.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Bridge - two channels share a bridge in which they can potentially talk to each other.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Finalized - the channel and Asterisk can no longer communicate or the relationship between the two channels has been broken. At this point, the last state of the channels involved is locked in the CDR.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Dispatched - the CDR has been written to the backend storages.</span> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When possible, Asterisk attempts to reuse a CDR. Thus a single CDR can transition through all of the above states. However, once a relationship is established between a Party A and a Party B, the CDR </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">cannot</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> be reused. The CDR will be finalized when the relationship between channels is broken and a new CDR created for any channel that is not hung up.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/plugins/servlet/confluence/placeholder/macro-icon?name=gliffy" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Gliffy Diagram</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">name</span></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR Lifetime</span></td>
</tr>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">size</span></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">L</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a channel is created, a CDR is created for that channel. The channel is automatically the Party A of that CDR. The CDR is considered to be in the </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Single</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> state while the channel executes dialplan or is waiting to be associated with another channel.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If a channel dials another channel, the CDR for that channel is transitioned to the </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Dial</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> state. If the dial operation completes successfully and the channels are bridged together, the CDR transitions to the </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Bridged</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> state. If the dial operation fails, the CDR transitions to the </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Finalized</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> state. If the caller continues on in the dialplan, a new CDR is generated for them.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">While the channels are bridged together, the CDR remains in the </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Bridged</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> state. Operations that restrict media flow, such as call hold, are not reflected in CDRs. When the bridge is broken - either because one of the parties hangs up or a party is transferred - the CDR transitions to the </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Finalized</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> state and any non-hungup channels have a new CDR created for them.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a channel hangs up, all CDRs associated with it are implicitly finalized. When all CDRs for a channel are finalized, the CDRs are </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Dispatched</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> to the backends for storage.</span> </p>
<h2 id="Asterisk12CDRSpecification-DetailedSemantics" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Detailed Semantics</span> </h2>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR_lifetime</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<h3 id="Asterisk12CDRSpecification-CDRLifetime" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR Lifetime</span> </h3>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR_creation</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<h4 id="Asterisk12CDRSpecification-Creation" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Creation</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">A CDR record is created in any one of the following situations:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Whenever a channel is created.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Whenever a channel leaves a bridge and is not hung up.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a CDR is forked from a prior record.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a channel enters a multi-party bridge.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a channel </span><a href="#Asterisk12CDRSpecification-cdr_dialing" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">dials more than one channel</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">.</span> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When it is created, a CDR inherits the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">uniqueid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> and </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> from its Party A channel, and a new </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">sequence</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> number is generated. When created as a result of a dial operation, the channel acting as the caller is always the Party A.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">cdr_dialing</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<h4 id="Asterisk12CDRSpecification-DialingParties" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Dialing Parties</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a channel is known to dial other channels, a CDR is created for each dial attempt. The dial status is recorded for each dial attempt as a </span><a href="#Asterisk12CDRSpecification-cdr_dispositions" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR Disposition</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">. Note that not all dial attempts may be dispatched depending on the CDR configuration. The caller is always the Party A in the created CDRs.</span> </p>
<h4 id="Asterisk12CDRSpecification-Bridging" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Bridging</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">I</span><span style="line-height: 1.4285715;"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">f a channel is bridged with another channel, the following procedure is performed:</span></span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">The CDR is marked as having entered a bridge. If there is no other channel in the bridge, the CDR waits for another channel to join.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">For each pairing of channels, the channels are compared to determine which is the Party A channel and which is the Party B channel. (See </span><a href="#Asterisk12CDRSpecification-choosing_party_a" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Choosing the Party A channel</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">).</span>
<ul>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If the channel entering the bridge is the Party A, the CDR has a Party B, and the channel it is bridged with is the Party B, the CDR continues.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If the channel entering the bridge is the Party A, the CDR has a Party B, and the channel is not the Party B, the CDR is finalized and a new CDR is created for the relationship. Note that the CDR will be re-activated if the existing Party B enters the bridge.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If the channel entering the bridge is the Party A, the CDR has no Party B, then the channel it is bridged with becomes the Party B.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If the channel entering the bridge is the Party B, the other channel has a CDR with no Party B, this channel becomes the Party B and the existing CDR is finalized.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If the channel entering the bridge is the Party B, the other channel has a CDR with a Party B, and this channel is that CDR's Party B, then the existing CDR is finalized and the other channel's CDR activated.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If the channel entering the bridge is the Party B, the other channel has a CDR with a Party B, and this channel is not that CDR's Party B, then the existing CDR is finalized and a new CDR is created for that other channel with this channel as the Party B.</span> </li>
</ul> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If a third party joins the bridge with Party A and Party B, the process </span><a href="#Asterisk12CDRSpecification-choosing_party_a" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Choosing the Party A channel</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> is repeated for each pairing of channels. Thus, in a three-way call there will be three CDR records; in a four-way call there will be six records, etc.</span> </li>
</ul>
<table class="diff-macro diff-html-added diff-block-target diff-block-context" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/tip.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Tip</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <p style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">The basic rule is: </span><strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">keep using the same CDR as long as possible</span></strong><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">. If a CDR can be used in a bridge to express the relationship between channels, Asterisk attempts to do so. If there is no CDR that exists that can adequately express the relationship between the two channels, a Party A is chosen between the two and a new CDR is created.</span> </p> </td>
</tr>
</tbody>
</table>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> </span> </p>
<h4 id="Asterisk12CDRSpecification-Finalization" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Finalization</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">A CDR is finalized in one of the following scenarios:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If in a dial, the dial operation completes with a status other than ANSWER</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If in a bridge, either party A or party B leaves the bridge</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">A channel hangs up</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">The CDR is forked and the forking operation instructed that the CDR should be finalized</span> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a CDR is finalized, no further modifications can be made to the CDR by the user or Asterisk.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If a Party A in a CDR is not hung up but the CDR is finalized, a new CDR is made that is not hung up and the process in </span><a href="#Asterisk12CDRSpecification-CDR_creation" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR Creation</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> is begun again. Note that if Party B continues on the in the dialplan and is bridged with a new party, it may become Party A for that new CDR. If the Party A channel is hung up, all CDR records for Party A are </span><a href="#Asterisk12CDRSpecification-CDR_dispatch" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">dispatched</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR_dispatch</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<h4 id="Asterisk12CDRSpecification-Dispatch" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Dispatch</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a CDR is dispatched, all CDRs associated with the channel are committed to permanent storage. The CDRs at this point are removed from memory.</span> </p>
<h3 id="Asterisk12CDRSpecification-ChoosingthePartyAchannel" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Choosing the Party A channel</span> </h3>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">choosing_party_a</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Asterisk does not have the concept of "internal" versus "external" devices. As such, what constitutes the Party A channel is highly dependent on a particular system configuration which is outside the control of the CDR system. As such, choosing a Party A uses the following simple rules:</span> </p>
<ol class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If the channel was dialed (but not originated), the channel is never a Party A for another channel. It will always be the Party B.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If one of the two channels has the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">party_a</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> flag set, then that channel is chosen as the Party A.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If neither channel has the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">party_A</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> flag, the channel with the oldest creation time is chosen as the Party A.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If both channels have the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">party_A</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> flag, then the channel with the oldest creation time is chosen as the Party A.</span> </li>
</ol>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">The </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">party_A</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> flag may be set using the </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR function</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">. Note that if you need to set the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">party_A</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> flag on a channel dialed using the </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Dial application</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">, you may need to use either a </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Pre-dial subroutine</span></a><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> or a Pre-bridge subroutine to set the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">party_A</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> flag on that channel.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> </span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">cdr_linkedid</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<h5 id="Asterisk12CDRSpecification-LinkedIDPropagation" class="diff-block-target diff-block-context"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">LinkedID Propagation</span> </h5>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When a Party A channel is chosen and its CDR inherits the properties of the Party B's CDR, the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> of the Party A and the Party B channel is compared. The oldest </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> is the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> chosen for the resulting CDR. Note that this might not be the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> of the Party A channel, if the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> of the Party B channel originally came from a channel that was older than the Party A channel.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">When the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> is updated for a CDR record, that </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> is propagated to all non-finalized CDRs associated with both Party A and Party B. If the propagation affects a CDR involving another channel, the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> may be propagated to that channel's CDRs as well, unless the </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> of that CDR is older than the current propagating </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">, or those CDRs have already been dispatched.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">If, while propagating a </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> an older </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> is encountered, the older </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> is chosen and that </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">linkedid</span></code><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"> propagated to all CDR records.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-added" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ddfade;border-color: #93c49f;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">CDR_finalization</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<h4 id="Asterisk12CDRSpecification-Fields" class="diff-block-target diff-block-context"> <span style="font-size: 22.0px;line-height: 33.0px;font-weight: normal;"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">Fields</span></span> </h4>
<h3 id="Asterisk12CDRSpecification-StandardFields" class="diff-block-context">Standard Fields</h3>
<div class="table-wrap diff-block-target diff-block-context">
<table class="confluenceTable" style="border-collapse: collapse; border: 1px solid #ddd;">
<tbody>
<tr>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Field</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Type</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Description</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Access</p> </th>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">accountcode</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (20)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">An account code associated with the Party A channel</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r/w</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">src</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The Caller ID Number</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">dst</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The destination extension</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">dcontext</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The destination context</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">clid</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The Caller ID with text</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">channel</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The name of the Party A channel</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">dstchannel</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The name of the Party B channel</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">lastapp</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The last application the Party A channel executed</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">lastdata</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The application data for the last application the Party A channel executed</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">start</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Date/time</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The time the CDR was created</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">answer</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Date/time</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The time when Party A was answered, or when the bridge between Party A and Party B was created</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">end</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Date/time</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The time when the CDR was finished. This occurs when either party hangs up, or when the bridge between the parties is broken</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">duration</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Integer</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The time in seconds from start until end</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">billsec</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Integer</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The time in seconds from answer until end</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">disposition</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Enum</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The final known disposition of the CDR record. See <a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none">CDR dispositions</a> for possible values</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">amaflags</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Enum</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">A flag specified on the Party A channel. See <a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none">AMA records</a> for possible values</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r/w</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">userfield</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (255)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">A user defined field set on the <span class="diff-html-added" id="added-diff-22" style="font-size: 100%; background-color: #ddfade;">channels. If set on both the </span>Party A <span class="diff-html-added" id="added-diff-23" style="font-size: 100%; background-color: #ddfade;">and Party B </span>channel<span class="diff-html-added" id="added-diff-24" style="font-size: 100%; background-color: #ddfade;">, the userfields of both are concatenated and separated by a </span><code style="font-size: 13px"><span class="diff-html-added" style="font-size: 100%; background-color: #ddfade;">;</span></code> </p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r/w</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">uniqueid</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (32)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">A unique identifier for the Party A channel</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">linkedid</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (32)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">A unique identifier <span class="diff-html-removed" id="removed-diff-18" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">the </span><span class="diff-html-added" id="added-diff-25" style="font-size: 100%; background-color: #ddfade;">that </span>unites multiple CDR records. See <a href="#Asterisk12CDRSpecification-cdr_linkedid" style="color: #326ca6; text-decoration: none"><span class="diff-html-changed" id="changed-diff-6" style="background-color: #d6f0ff;">linkedid propagation</span></a><span class="diff-html-changed" style="background-color: #d6f0ff;"> </span>for more details</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">peeraccount</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">String (80)</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The account code of the Party B channel</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r/w</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">sequence</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Integer</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">A numeric value that, combined with uniqueid and linkedid, can be used to uniquely identify a single CDR record</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">r</p> </td>
</tr>
</tbody>
</table>
</div>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<div class="table-wrap diff-block-target diff-block-context">
<table class="confluenceTable" style="border-collapse: collapse; border: 1px solid #ddd;">
<tbody>
<tr>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Value</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Description</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px"> <a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none">Hangup Cause Mapping</a> </p> </th>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">NO ANSWER</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The channel was never answered. This is the default disposition for an unanswered channel.</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Any not explicitly listed</p> </td>
</tr>
<tr>
<td colspan="1" class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px">CONGESTION</td>
<td colspan="1" class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px">The channel dialed something that was congested.</td>
<td colspan="1" class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px">
<ul>
<li style="font-size: 13px"> <code style="font-size: 13px"><span class="diff-html-changed" id="changed-diff-7" style="background-color: #d6f0ff;">AST_CAUSE_CONGESTION</span></code> </li>
</ul> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">FAILED</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The channel attempted to dial but the call failed.</p>
<table class="diff-macro" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/info.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Info</th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <p style="font-size: 13px"> <span>The </span><code style="font-size: 13px">congestion</code><span> setting in </span><code style="font-size: 13px">cdr.conf</code><span> can result in <code style="font-size: 13px"><span class="diff-html-changed" id="changed-diff-8" style="background-color: #d6f0ff;">AST_CAUSE_</span></code><span class="diff-html-removed" id="removed-diff-19" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CONGESETION </span><code style="font-size: 13px"><span class="diff-html-added" id="added-diff-26" style="font-size: 100%; background-color: #ddfade;">CONGESTION</span></code> mapping to this disposition.</span> </p> </td>
</tr>
</tbody>
</table> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <br />
<ul>
<li style="font-size: 13px"> <code style="font-size: 13px"><span class="diff-html-changed" id="changed-diff-9" style="background-color: #d6f0ff;">AST_CAUSE_CONGESTION</span></code> </li>
<li style="font-size: 13px"> <code style="font-size: 13px"><span class="diff-html-changed" id="changed-diff-10" style="background-color: #d6f0ff;">AST_CAUSE_NO_ROUTE_DESTINATION</span></code> </li>
<li style="font-size: 13px"> <code style="font-size: 13px"><span class="diff-html-changed" id="changed-diff-11" style="background-color: #d6f0ff;">AST_CAUSE_UNREGISTERED</span></code> </li>
</ul> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">BUSY</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The channel attempted to dial but the remote party was busy.</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <br />
<ul>
<li style="font-size: 13px"> <code style="font-size: 13px"><span class="diff-html-changed" id="changed-diff-12" style="background-color: #d6f0ff;">AST_CAUSE_BUSY</span></code> </li>
</ul> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">ANSWERED</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The channel was answered. When the channel is answered, the hangup cause no longer changes the disposition.</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Any not explicitly listed</p> </td>
</tr>
</tbody>
</table>
</div>
<p class="diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/anchor.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Anchor</th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px">cdr_ama</td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<h4 id="Asterisk12CDRSpecification-AMAFlags" class="diff-block-context">AMA Flags</h4>
<p class="diff-block-target" style="font-size: 13px"> <span class="diff-html-added" id="added-diff-27" style="font-size: 100%; background-color: #ddfade;">AMA Flags are set on a channel and are conveyed in the CDR. They inform billing systems how to treat the particular CDR.</span> </p>
<ul class="diff-block-context">
<li style="font-size: 13px">OMIT</li>
<li style="font-size: 13px">BILLING</li>
<li style="font-size: 13px">DOCUMENTATION</li>
</ul>
<h3 id="Asterisk12CDRSpecification-UserDefinedFields" class="diff-block-context">User Defined Fields</h3>
<p class="diff-block-target" style="font-size: 13px">Any CDR record may have user defined fields associated with it. Fields can be added to either the Party A or Party B channel. Note that not all CDR backends <span class="diff-html-removed" id="removed-diff-20" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">will generate </span><span class="diff-html-added" id="added-diff-28" style="font-size: 100%; background-color: #ddfade;">support </span>user defined fields; in those cases the user field is simply dropped <span class="diff-html-added" id="added-diff-29" style="font-size: 100%; background-color: #ddfade;">when the CDR is dispatched to the backend</span>.</p>
<p class="diff-block-context" style="font-size: 13px">If a Party A channel and a Party B channel both contain a field with the same key, only the Party A channel's field will be written to the CDR.</p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<p class="diff-block-target" style="font-size: 13px">CDRs themselves are generated from the <a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none">Stasis</a> message bus in Asterisk, from a combination of Channel and Bridge messages. These messages inform the CDR engine of the state of the channels/bridges. See <a href="#Asterisk12CDRSpecification-CDR_lifetime" style="color: #326ca6; text-decoration: none"><span class="diff-html-changed" id="changed-diff-13" style="background-color: #d6f0ff;">Lifetime</span></a><span class="diff-html-changed" style="background-color: #d6f0ff;"> </span>for a state diagram of how these messages alter the state of a CDR.</p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<table class="diff-macro diff-block-context" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/plugins/servlet/confluence/placeholder/macro-icon?name=code" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Code Block</th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <pre style="font-size: 13px">/*!
* \brief Unregister a CDR handling engine
* \param name name of CDR handler to unregister
* Unregisters a CDR by it's name
*/
void ast_cdr_unregister(const char *name);
</pre> </td>
</tr>
</tbody>
</table>
<h2 id="Asterisk12CDRSpecification-CDRSemantics" class="diff-block-target diff-block-context"> <span class="diff-html-removed" id="removed-diff-21" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDR Semantics</span> </h2>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h3 id="Asterisk12CDRSpecification-Lifetime" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Lifetime</span> </h3>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> </p>
<table class="diff-macro bodyless diff-html-removed" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;margin: 5px 0; padding: 0; width: auto;background-color: #ffe7e7;border-color: #df9898;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/plugins/servlet/confluence/placeholder/macro-icon?name=gliffy" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Gliffy Diagram</span></th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">name</span></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDR Lifetime</span></td>
</tr>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">size</span></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">L</span></td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
<p style="font-size: 13px"></p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h4 id="Asterisk12CDRSpecification-Creation" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Creation</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">A CDR record is created in any one of the following situations:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Whenever a channel is created</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Whenever a channel leaves a bridge</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a CDR has two parties and the Party A decides to do something that doesn't involves the Party B</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a CDR is forked from a prior record</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a channel enters a multi-party bridge</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a channel </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-cdr_dialing" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">dials more than one channel</span></a> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">A new CDR inherits the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">uniqueid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> from its channel, and a new </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">sequence</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> number is generated. If the channel dialed other channels it will record the dial result. If the channel is never bridged with another channel, the CDR will record the last application and its data for the channel, as well as the disposition for the channel.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If a channel is bridged with another channel, the following procedure is performed:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">The CDR is marked as having entered a bridge.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">For each pairing of channels, the channels are compared to determine which is the Party A channel and which is the Party B channel. (See </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-choosing_party_a" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Choosing the Party A channel</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">).</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Once chosen, the Party A channel receives the Party B channel's information. The Party B's CDR record is not used for this particular call.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If a third party joins the bridge with Party A and Party B, the process </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-choosing_party_a" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Choosing the Party A channel</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> is repeated for each pairing of channels. Thus, in a three-way call there will be three CDR records; in a four-way call there will be six records, etc.</span> </li>
</ul>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h5 id="Asterisk12CDRSpecification-DialingParties" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Dialing Parties</span> </h5>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a channel is known to dial other channels, a CDR is created for each dial attempt. The dial status is recorded for each dial attempt as a </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-cdr_dispositions" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDR Disposition</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">. Note that not all dial attempts may be dispatched depending on the CDR configuration.</span> </p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h5 id="Asterisk12CDRSpecification-ChoosingthePartyAchannel" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Choosing the Party A channel</span> </h5>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Asterisk does not have the concept of "internal" versus "external" devices. As such, what constitutes the Party A channel is highly dependent on a particular system configuration which is outside the control of the CDR system. As such, choosing a Party A uses the following simple rules:</span> </p>
<ol class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If the channel was dialed (but not originated), the channel is never a Party A for another channel. It will always be the Party B.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If one of the two channels has the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">party_a</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> flag set, then that channel is chosen as the Party A.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If neither channel has the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">party_A</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> flag, the channel with the oldest creation time is chosen as the Party A.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If both channels have the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">party_A</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> flag, then the channel with the oldest creation time is chosen as the Party A.</span> </li>
</ol>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">The </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">party_A</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> flag may be set using the </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDR function</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">. Note that if you need to set the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">party_A</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> flag on a channel dialed using the </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Dial application</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">, you may need to use either a </span><a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Pre-dial subroutine</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> or a Pre-bridge subroutine to set the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">party_A</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> flag on that channel.</span> </p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h5 id="Asterisk12CDRSpecification-LinkedIDPropagation" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">LinkedID Propagation</span> </h5>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a Party A channel is chosen and its CDR inherits the properties of the Party B's CDR, the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> of the Party A and the Party B channel is compared. The oldest </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> is the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> chosen for the resulting CDR. Note that this might not be the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> of the Party A channel, if the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> of the Party B channel originally came from a channel that was older than the Party A channel.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> is updated for a CDR record, that </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> is propagated to all non-finalized CDRs associated with both Party A and Party B. If the propagation affects a CDR involving another channel, the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> may be propagated to that channel's CDRs as well, unless the </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> of that CDR is older than the current propagating </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">, or those CDRs have already been dispatched.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If, while propagating a </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> an older </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> is encountered, the older </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> is chosen and that </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> propagated to all CDR records.</span> </p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h4 id="Asterisk12CDRSpecification-Finalization" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Finalization</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">A CDR is finalized in one of the following scenarios:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If in a dial, the dial operation completes with a status other than ANSWER</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If in a bridge, either party A or party B leaves the bridge</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If not in a bridge, party A hangs up</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">The CDR is forked and the forking operation instructed that the CDR should be finalized</span> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a CDR is finalized, no further modifications can be made to the CDR by the user or Asterisk. The only exception to this rule is when a </span><code style="font-size: 13px"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">linkedid</span></code><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-cdr_linkedid" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">propagation</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> occurs.</span> </p>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">If either party is not hung up, a new CDR record is made for the party that is not hung up and the process in </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-CDR_creation" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDR Creation</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;"> is begun again. Note that if Party B continues on the in the dialplan and is bridged with a new party, it may become Party A for that new CDR. If the Party A channel is hung up, all CDR records for Party A are </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-CDR_dispatch" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">dispatched</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">.</span> </p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h4 id="Asterisk12CDRSpecification-Dispatch" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Dispatch</span> </h4>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">When a CDR is dispatched, all CDRs associated with the channel are committed to permanent storage. The CDRs at this point are removed from memory.</span> </p>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<h3 id="Asterisk12CDRSpecification-Consolidation" class="diff-block-target diff-block-context"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Consolidation</span> </h3>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">CDR records may be consolidated when a Local channel is optimized away. When consolidation happens, the following occurs:</span> </p>
<ul class="diff-block-target diff-block-context">
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">The channels that are not Local channels are compared to determine the Party A channel, using the </span><a href="/wiki/display/AST/Asterisk+12+CDR+Specification#Asterisk12CDRSpecification-choosing_party_a" style="color: #326ca6; text-decoration: none"><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">normal process</span></a><span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">The start time used is Party A's start time</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">The answer time used is the most recent answer time between Party A and Party B.</span> </li>
<li style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">An end time, if present, is discarded from the CDR. The end time will be whenever the bridge breaks between the new Party A and Party B.</span> </li>
</ul>
<p class="diff-block-target diff-block-context" style="font-size: 13px"> <span class="diff-html-removed" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">Note that if the Local channel optimization results in a bridge between multiple parties, the same process repeats for all combinations of channels.</span> </p>
<h2 id="Asterisk12CDRSpecification-Scenarios" class="diff-block-target diff-block-context"> <span style="font-size: 1.6em;line-height: 1.5;"><span class="diff-html-changed" id="changed-diff-14" style="background-color: #d6f0ff;">Scenarios</span></span> </h2>
<table class="diff-macro diff-block-context" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/note.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Note</th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-properties" style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;padding: 0; border: 1px solid #dddddd;; font-size: 13px">
<table>
<tbody>
<tr>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px"></td>
<td style="background-color: #fafafa; padding: 0 0 0 5px; font-size: 12px; text-align: left;; font-size: 13px">Scenario Caveats</td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <p style="font-size: 13px">The following scenarios show examples of the CDRs created in common use cases. If a particular scenario is not shown below, its behavior should still match the behavior described previously. Some applications, however, may have undefined behavior as their use is not common or the mechanism by which they manipulate channels does not allow for the capturing of the channel state.</p> <p style="font-size: 13px">Undefined behavior means that the behavior of CDRs in those cases is unsupported and will not be addressed as a bug.</p> </td>
</tr>
</tbody>
</table>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<p class="diff-block-target" style="font-size: 13px">When a Local channel optimization occurs, the CDR records associated with the Local channel are discarded. New CDR records are generated for the channels in the merged bridge, per the rules in <a href="#Asterisk12CDRSpecification-CDR_consolidation" style="color: #326ca6; text-decoration: none"><span class="diff-html-changed" id="changed-diff-15" style="background-color: #d6f0ff;">CDR Consolidation</span></a>.</p>
<table class="diff-macro diff-block-context" style="background-color: #f0f0f0;border: 1px solid #dddddd;margin: 10px 1px;padding: 0 2px 2px;width: 100%;">
<thead>
<tr>
<th class="diff-macro-title" style="background-color: transparent; text-align: left; font-weight: normal;padding: 5px;; font-size: 13px"><span class="icon macro-placeholder-icon" style="background-color: ;line-height: 20px;"><img src="https://wiki.asterisk.org/wiki/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.25/_/images/icons/macrobrowser/dropdown/warning.png" style="padding-right: 5px; vertical-align: text-bottom;" /> </span>Warning</th>
</tr>
</thead>
<tbody>
<tr>
<td class="diff-macro-body" style="background-color: #fff;border: 1px solid #dddddd;padding: 10px;; font-size: 13px"> <p style="font-size: 13px">CDR properties set on optimized Local channels are <strong>not</strong> propagated to other channels. Setting CDR information on optimizing Local channels will cause that information to be lost.</p> <p style="font-size: 13px">In prior versions of Asterisk it was sometimes necessary to set CDR information on Local channels - with the addition of <a class="confluence-link unresolved" href="#" style="color: #326ca6; text-decoration: none">Pre-Dial handlers</a>, it is always possible to set CDR information on the appropriate channel at the time of creation.</p> </td>
</tr>
</tbody>
</table>
<p class="diff-context-placeholder" style="font-size: 13px">...</p>
<div class="table-wrap diff-block-target">
<table class="confluenceTable" style="border-collapse: collapse; border: 1px solid #ddd;">
<tbody>
<tr>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Name</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Type</p> </th>
<th class="confluenceTh" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;background-color: #F0F0F0; font-weight: bold;; font-size: 13px"> <p style="font-size: 13px">Description</p> </th>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">enable</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Enable/disable the CDR engine</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">batch</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Dispatch CDRs in batches.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">unanswered</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Dispatch unanswered CDRs. See <a href="#Asterisk12CDRSpecification-cdr_unanswered" style="color: #326ca6; text-decoration: none"><span class="diff-html-changed" id="changed-diff-16" style="background-color: #d6f0ff;">Definition of Unanswered</span></a><span class="diff-html-changed" style="background-color: #d6f0ff;"> </span>for more information.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">congestion</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Treat congestion calls as failed calls</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">endbeforehexten</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Finalize CDRs before the <code style="font-size: 13px">h</code> extension or hangup handlers are executed</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">initiatedseconds</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Count microseconds for the purposes of the <code style="font-size: 13px">billsec</code> field</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">size</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Integer</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The number of records to buffer before initiating a batch</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">time</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Integer</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">The time, in seconds, before initiating a batch</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">scheduleronly</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Deprecated. See <code style="font-size: 13px">usethreadpool</code> instead.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">usethreadpool</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">For any CDRs that are dispatched, use a thread pool thread to perform the dispatching. This prevents the CDR taskprocessor thread from being blocked by any CDR backends.</p> </td>
</tr>
<tr>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">safeshutdown</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Boolean</p> </td>
<td class="confluenceTd" style="border: 1px solid #DDD; padding: 5px 7px; min-width: 0.6em; text-align: left; vertical-align: top;; font-size: 13px"> <p style="font-size: 13px">Block Asterisk shutdown on dispatching of CDRs</p> </td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<table id="email-actions" class="email-metadata" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-top: 1px solid #bbb; color: #505050; margin: 8px 0 0 0; padding: 0; color: #505050">
<tbody>
<tr>
<td class="left" valign="top" style="font-size: 13px; padding-top: 8px; max-width: 45%; text-align: left"> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CDR+Specification" style="color: #326ca6; text-decoration: none">View Online</a> </span> <span class="email-list-divider" style="color: #505050; padding: 0 0.350em">·</span> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/plugins/likes/like.action?contentId=22088359" style="color: #326ca6; text-decoration: none">Like</a> </span> <span class="email-list-divider" style="color: #505050; padding: 0 0.350em">·</span> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=22088359&revisedVersion=7&originalVersion=6" style="color: #326ca6; text-decoration: none">View Changes</a> </span> <span class="email-list-divider" style="color: #505050; padding: 0 0.350em">·</span> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CDR+Specification?showComments=true&showCommentArea=true#addcomment" style="color: #326ca6; text-decoration: none">Add Comment</a> </span> </td>
<td class="right" width="50%" valign="top" style="font-size: 13px; padding-top: 8px; text-align: right"> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/users/removespacenotification.action?spaceKey=AST" style="color: #326ca6; text-decoration: none">Stop watching space</a> </span> <span class="email-list-divider" style="color: #505050; padding: 0 0.350em">·</span> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/users/editmyemailsettings.action" style="color: #326ca6; text-decoration: none">Manage Notifications</a> </span> </td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td id="email-footer" align="center" style="font-size: 13px; padding: 0 16px 32px 16px; margin: 0"> <small style="font-size: 11px"> This message was sent by <a class="email-footer-link" style="color:#505050;font-size:11px;text-decoration:none;; color: #326ca6; text-decoration: none; color: #505050; font-size: 11px" href="http://www.atlassian.com/software/confluence">Atlassian Confluence</a> 5.0.3, <a class="email-footer-link" style="color:#505050;font-size:11px;text-decoration:none;; color: #326ca6; text-decoration: none; color: #505050; font-size: 11px" href="http://www.atlassian.com/software/confluence/overview/team-collaboration-software?utm_source=email-footer">Team Collaboration Software</a> </small> </td>
</tr>
</tbody>
</table>
</body>
</html>