<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_d85270d3fb7db00ff5572666ba67d7fd" 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/~kmoore " style="color:#326ca6;text-decoration:none;; color: #326ca6; text-decoration: none">Kinsey Moore</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+CEL+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 CEL Specification</strong> </a> </h2> </td>
                                                </tr>
                                            </tbody>
                                        </table>
                                        <div class="email-indent" style="margin: 8px 0 16px 0">
                                            <p class="aui-message info" style="font-size: 13px; margin: 1em 0; padding: 8px; background-color: #e0f0ff; border: 1px solid #9eb6d4"> <b>Comment:</b> wording tweak </p>
                                            <div class="email-diff">
                                                <div id="page-diffs" class="wiki-content">
                                                    <div class="message-content diff-block-target">
                                                        <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.29/_/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">Asterisk 12 has not yet been released - t<span>his specification is still in draft form.</span> </p> </td>
                                                                </tr>
                                                            </tbody>
                                                        </table>
                                                        <p style="font-size: 13px"> <span> </span></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.29/_/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>
                                                        <h1 id="Asterisk12CELSpecification-Introduction"> <span>Introduction<br /> </span> </h1>
                                                        <p style="font-size: 13px"> <span>Channel Event Logging (CEL) provides a series of records describing the state of channels in Asterisk to any of several event recording backends. <span>CEL records provide substantially more information than CDRs and thus allow an Asterisk User to construct their own more complex billing system.</span></span> </p>
                                                        <p style="font-size: 13px"> <span>As a result of the bridging work done for Asterisk 12, CEL behavior has changed for several events that occur in the system. The most significant changes are:</span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span>AST_CEL_TRANSFER has been removed as it was not used and was redundant.</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CONF_ENTER and AST_CEL_CONF_EXIT are now used to denote changes in multi-participant conferences (further details below).</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_BRIDGE_TO_CONF has been added to describe transitions between two participant bridges and multi-participant conferences.</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_BRIDGE_UPDATE has been removed as it no longer applies to the new bridging framework.</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_LOCAL_OPTIMIZE has been added to describe local channel optimizations that occur.<br /> </span> </li>
                                                            <li style="font-size: 13px"> <span>All linkedid accounting and record generation is now handled within the CEL engine.<br /> </span> </li>
                                                        </ul>
                                                        <h2 id="Asterisk12CELSpecification-Scope"> <span>Scope</span> </h2>
                                                        <p style="font-size: 13px"> <span><span>This CEL specification applies to Asterisk 12. While some portions of this specification are applicable to prior versions of Asterisk, other portions are specific to Asterisk 12 and their counterparts in prior versions are not discussed.</span></span> </p>
                                                        <h2 id="Asterisk12CELSpecification-Terminology"> <span>Terminology</span> </h2>
                                                        <div class="table-wrap">
                                                            <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">Term</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">CEL</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">Channel Event Logging. The focus of this documentation.</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">CEL record</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">An individual event record produced by the CEL engine.</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">CDR</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">Call Detail Record. An alternative method of extracting billing information from Asterisk. Simpler, but less flexible.</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">Stasis</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">The internal message bus in Asterisk that conveys state to the CEL engine.</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">Primary</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 around which a CEL record is focused.</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">AMI</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">Asterisk Manager Interface</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">CSV</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">Comma Separated Values.&nbsp; A format commonly used for tabular data when stored outside of a database.</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">Two-participant bridge</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">A bridge in which up to two channels can participate.</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">Multi-participant conference</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">A bridge in which any number of channels can participate.</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">Smart bridge</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"> <p style="font-size: 13px">A smart bridge can change bridging technologies as the situation demands.</p> <p style="font-size: 13px">This often means transitioning from a two-participant bridge to a multi-participant conference.</p> </td>
                                                                    </tr>
                                                                </tbody>
                                                            </table>
                                                        </div>
                                                        <h1 id="Asterisk12CELSpecification-CELOverview"> <span>CEL Overview</span> </h1>
                                                        <p style="font-size: 13px"> <span><span>A CEL record contains information about a system event including a partial dump of the Primary's state and may contain relevant <span class="diff-html-removed" id="removed-diff-0" style="font-size: 100%; background-color: #ffe7e7; text-decoration: line-through;">event-</span><span class="diff-html-added" id="added-diff-0" style="font-size: 100%; background-color: #ddfade;">record type </span>specific data such as channel names, bridge unique identifiers, channel variable values, or other miscellaneous information. <br /> </span></span> </p>
                                                        <h1 id="Asterisk12CELSpecification-RecordTypes">Record Types</h1>
                                                        <p style="font-size: 13px"> <span><span>The records produced by the CEL engine can be grouped in to three general categories:</span></span> </p>
                                                        <h2 id="Asterisk12CELSpecification-Stand-AloneRecords"> <span>Stand-Alone Records</span> </h2>
                                                        <p style="font-size: 13px"> <span><span><span>These records convey a channel event on the channel that does not involve channels or bridges other than the Primary.</span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ChannelStart"> <span><span><span>Channel Start</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span>An AST_CEL_CHANNEL_START record is generated when a channel is created.<br /> </span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ChannelEnd"> <span><span><span>Channel End</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span>An AST_CEL_CHAN_END record is generated when a channel is destroyed.</span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-Answer"> <span><span><span>Answer</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span>An AST_CEL_ANSWER record is generated when a channel is answered.</span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-Hangup"> <span><span><span>Hangup</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span>An AST_CEL_HANGUP record is generated when a channel is hung up.</span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ApplicationStart"> <span><span><span>Application Start</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span>An AST_CEL_APP_START record is generated when a channel enters an application.</span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ApplicationEnd"> <span><span><span>Application End</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>An AST_CEL_APP_END record is generated when a channel exits an application. This record is not guaranteed to be generated on hangup.<br /> </span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-UserDefined"> <span><span><span>User Defined</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>An AST_CEL_USER_DEFINED record is generated when a channel enters the CELGenUserEvent application. The application sets the user defined name field and additional information in the extra field in the &quot;extra&quot; key.<br /> </span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-LinkedIDEnd"> <span><span><span>Linked ID End</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>An AST_CEL_LINKEDID_END record is generated when the last channel using the given linked ID is destroyed.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h2 id="Asterisk12CELSpecification-InteractionRecords"> <span>Interaction Records</span> </h2>
                                                        <p style="font-size: 13px"> <span><span><span>These records convey the Primary's interactions with other channels or bridges.</span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-BridgeStart"> <span><span><span>Bridge Start</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span>An AST_CEL_BRIDGE_START record is generated when the second participant enters a two-participant bridge. In the case of this event, the Primary is the first channel to have entered the bridge while the second participant's channel name is recorded in the peer field. A two-participant bridge may be terminated by either AST_CEL_BRIDGE_END or AST_CEL_BRIDGE_TO_CONF.<span><span><span> Neither channel joining the two participant bridge generates an AST_CEL_CONF_ENTER event. See below for an example.</span></span></span> <br /> </span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-BridgeEnd"> <span><span><span>Bridge End</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span>An AST_CEL_BRIDGE_END record is generated when either participant exits a two-participant bridge after an AST_CEL_BRIDGE_START record is generated. The Primary and peer field are the same as those presented in the corresponding AST_CEL_BRIDGE_START record.<span><span><span><span><span><span><span><span><span> Neither channel leaving the two participant bridge generates an AST_CEL_CONF_EXIT record.</span></span></span></span></span></span> See below for an example.</span></span></span> <br /> </span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-BridgeToConference"> <span><span><span>Bridge To Conference</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span>An AST_CEL_BRIDGE_TO_CONF record is generated when a third channel enters a two-participant bridge and the bridge is subsequently converted into a multi-participant conference. All further changes in this bridge will be conveyed via AST_CEL_CONF_ENTER and AST_CEL_CONF_EXIT. The entering channel and the bridge unique identifier are available in the extra field JSON blob under the keys &quot;channel_name&quot; and &quot;bridge_id&quot; respectively. <span><span><span>The Primary and peer field are the same as those presented in the corresponding AST_CEL_BRIDGE_START record.</span></span></span> An AST_CEL_CONF_ENTER record is not generated for the third channel entering the two-participant bridge. See below for an example.<br /> </span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ConferenceEnter"> <span><span><span>Conference Enter<br /> </span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span>An AST_CEL_CONF_ENTER record is generated when a channel enters a multi-participant conference. The entering channel is the Primary for this event. An AST_CEL_CONF_ENTER record is not generated if the bridge is a two-participant bridge and the channel is the first, second, or third party to enter the bridge. See below for an example.<br /> </span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ConferenceExit"> <span><span><span>Conference Exit</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span>An AST_CEL_CONF_EXIT record is generated when a channel exits a multi-participant conference. The leaving channel is the Primary for this event.<span><span><span> An AST_CEL_CONF_EXIT record is not generated if the bridge is a two-participant bridge.<span><span><span> See below for an example.</span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-Forward"> <span><span><span>Forward</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>An AST_CEL_FORWARD record is generated when a dialing channel is forwarded elsewhere by a dialed channel. The dialing channel is the Primary for this event.<span><span><span><span><span><span> Additional information is conveyed in the extra field under the &quot;forward&quot; key.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ParkStart"> <span><span><span>Park Start</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span>An AST_CEL_PARK_START record is generated when a channel is parked. The parked channel is the Primary for this event. Additional information is conveyed in the extra field under the keys &quot;parker_dial_string&quot; and &quot;parking_lot&quot;.<br /> </span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-ParkEnd"> <span><span><span>Park End</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span>An AST_CEL_PARK_START record is generated when a channel is unparked. The unparked channel is the Primary for this event. <span><span><span><span><span><span> Additional information is conveyed in the extra field under the &quot;reason&quot; key.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-Pickup"> <span><span><span>Pickup</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>An AST_CEL_PICKUP record is generated when a channel is picked up. The picked up channel (also known as the target) is the Primary for this record. <span><span><span><span><span><span> Additional information is conveyed in the extra field under the &quot;reason&quot; key. The name of the channel that is picking up is placed in the peer field.<br /> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h2 id="Asterisk12CELSpecification-Meta-Records"> <span>Meta-Records</span> </h2>
                                                        <p style="font-size: 13px"> <span><span><span>These records convey additional context relating to surrounding CEL records</span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-BlindTransfer"> <span><span><span>Blind Transfer</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span>An AST_CEL_BLINDTRANSFER record is generated when a blind transfer feature is activated on a bridge. The initiating channel is the Primary for this record.<span><span><span><span><span><span><span><span><span><span><span><span> <span><span><span><span><span><span> Additional information is conveyed in the extra field under the &quot;extension&quot;, &quot;context&quot;, and &quot;bridge_id&quot; keys.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> <br /> </span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-AttendedTransfer"> <span><span><span>Attended Transfer</span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span>An AST_CEL_ATTENDEDTRANSFER record is generated when an attended transfer is successfully performed.<span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span> <br /> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h4 id="Asterisk12CELSpecification-Bridge-BridgeAttendedTransfers"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>Bridge-Bridge Attended Transfers</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </h4>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>This type of attended transfer occurs when both involved channels are bridged. The initiating channel is the Primary for this record. <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>Additional information is conveyed in the extra field under the &quot;bridge1_id&quot;, &quot;channel2_name&quot;, and &quot;bridge2_id&quot; keys.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>The records associated with this type of transfer will vary depending on the configuration of the bridges involved and the number of channels involved. Possible methods of accomplishing the transfer include (but are not limited to) channel swap, bridge merge, and bridge link via a local channel.<br /> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h4 id="Asterisk12CELSpecification-Bridge-AppAttendedTransfers"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>Bridge-App Attended Transfers</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </h4>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>This type of attended transfer occurs when one involved channel is bridged while the other is running an application. The bridged channel is the Primary for this record. <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>Additional information is conveyed in the extra field under the &quot;bridge1_id&quot;, &quot;channel2_name&quot;, and &quot;app&quot; keys.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h4 id="Asterisk12CELSpecification-App-AppAttendedTransfers"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>App-App Attended Transfers</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </h4>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>Attended transfers involving only channels that are running applications are not currently possible.<br /> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h3 id="Asterisk12CELSpecification-LocalChannelOptimization"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>Local Channel Optimization</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </h3>
                                                        <p style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>An AST_CEL_LOCAL_OPTIMIZE record is generated when a local channel optimization attempt completes successfully. The semi-one (local channel ending in ';1') channel is the Primary for this event. The name of the semi-two (local channel ending in ';2') channel is set in the peer field.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> <br /> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </p>
                                                        <h2 id="Asterisk12CELSpecification-RemovedRecords"> <span><span><span>Removed Records</span></span></span> </h2>
                                                        <p style="font-size: 13px"> <span><span><span>The following record types are no longer used or are no longer available in Asterisk 12:</span></span></span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span><span><span>AST_CEL_CONF_START</span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span>AST_CEL_CONF_END</span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span>AST_CEL_HOOKFLASH</span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span>AST_CEL_3WAY_START</span></span></span> </li>
                                                            <li style="font-size: 13px"> <span>&nbsp;</span><span><span><span><span><span><span><span><span><span>AST_CEL_3WAY_END</span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span>AST_CEL_BRIDGE_UPDATE</span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span>AST_CEL_TRANSFER</span></span></span></span></span></span> </li>
                                                        </ul>
                                                        <h1 id="Asterisk12CELSpecification-RecordFields"> <span><span><span>Record Fields<br /> </span></span></span> </h1>
                                                        <h2 id="Asterisk12CELSpecification-PrimaryFields"> <span>Primary Fields</span> </h2>
                                                        <p style="font-size: 13px"> <span>These fields are populated exclusively from their corresponding fields on the Primary in a consistent manner for every CEL record. These fields are:<br /> </span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span>CallerID Name</span> </li>
                                                            <li style="font-size: 13px"> <span>CallerID Number</span> </li>
                                                            <li style="font-size: 13px"> <span>CallerID ANI</span> </li>
                                                            <li style="font-size: 13px"> <span>CallerID RDNIS</span> </li>
                                                            <li style="font-size: 13px"> <span>CallerID DNID</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Extension</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Context</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Channel Name</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Application Name</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Application Data</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Account Code</span><span>&nbsp;</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Peer Account Code</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Unique ID</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Linked ID</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>AMA Flags<br /> </span> </li>
                                                        </ul>
                                                        <h2 id="Asterisk12CELSpecification-RecordTypeSpecificFields"> <span>Record Type Specific Fields</span> </h2>
                                                        <p style="font-size: 13px"> <span>These fields vary or may be blank depending on the CEL record type.<br /> </span> </p>
                                                        <h3 id="Asterisk12CELSpecification-UserDefinedName"> <span>User Defined Name</span> </h3>
                                                        <p style="font-size: 13px"> <span>This field is only used for AST_CEL_USER_DEFINED and conveys the user-specified event type.<br /> </span> </p>
                                                        <h3 id="Asterisk12CELSpecification-Extra"> <span>Extra</span> </h3>
                                                        <p style="font-size: 13px"> <span>This field contains a JSON blob describing additional record-type-specific information.<br /> </span> </p>
                                                        <h3 id="Asterisk12CELSpecification-PeerName"> <span>Peer Name</span> </h3>
                                                        <p style="font-size: 13px"> <span>This field describes the Primary's peer channel.<br /> </span> </p>
                                                        <h1 id="Asterisk12CELSpecification-LoggingBackends"> <span>Logging Backends</span> </h1>
                                                        <p style="font-size: 13px"> <span>CEL provides several methods of logging records to be processed at a later time. CEL only publishes record types to backends that are enabled in the general CEL configuration. Sample configurations are provided with the Asterisk 12 source for all of these backends.</span> </p>
                                                        <h2 id="Asterisk12CELSpecification-Custom"> <span>Custom<br /> </span> </h2>
                                                        <p style="font-size: 13px"> <span><span>The Custom CEL output module provides logging capabilit</span>y to a CSV file in a format described in the configuration file<span>. This module is configured in cel_custom.conf.</span></span> </p>
                                                        <h2 id="Asterisk12CELSpecification-Manager"> <span>Manager</span> </h2>
                                                        <p style="font-size: 13px"> <span>The manager CEL output module publishes records over AMI as CEL events with the record type published under the &quot;EventName&quot; key. This module is configured in cel.conf in the [manager] section.</span> </p>
                                                        <h2 id="Asterisk12CELSpecification-ODBC"> <span>ODBC</span> </h2>
                                                        <p style="font-size: 13px"> <span>The ODBC CEL output module provides logging capability to any ODBC-compatible database. This module is configured in cel_odbc.conf.<br /> </span> </p>
                                                        <h2 id="Asterisk12CELSpecification-PGSQL"> <span>PGSQL</span> </h2>
                                                        <p style="font-size: 13px"> <span>The PGSQL CEL output module provides logging capability to PostgreSQL databases when it is desirable to avoid the ODBC abstraction layer.<span> This module is configured in cel_pgsql.conf.</span></span> </p>
                                                        <h2 id="Asterisk12CELSpecification-RADIUS"> <span>RADIUS</span> </h2>
                                                        <p style="font-size: 13px"> <span><span><span>The RADIUS CEL output module allows the CEL engine to publish records to a RADIUS server.<span> This module is configured in cel.conf in the [radius] section.</span></span></span> <br /> </span> </p>
                                                        <h2 id="Asterisk12CELSpecification-SQLite"> <span>SQLite</span> </h2>
                                                        <p style="font-size: 13px"> <span>The SQLite CEL output module provides logging capability to a SQLite3 database in a format described in its configuration file.<span><span> This module is configured in cel_sqlite3_custom.conf.</span></span> <br /> </span> </p>
                                                        <h2 id="Asterisk12CELSpecification-TDS"> <span>TDS</span> </h2>
                                                        <p style="font-size: 13px"> <span>The TDS CEL output module provides logging capability to Sybase or Microsoft SQL Server databases when it is desirable to avoid the ODBC abstraction layer. This module is configured in cel_tds.conf.</span> </p>
                                                        <h1 id="Asterisk12CELSpecification-ExampleScenarios"> <span>Example Scenarios</span> </h1>
                                                        <p style="font-size: 13px"> <span>For the following scenarios, assume the CEL engine is configured to generate the following record types:</span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHANNEL_START</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHAN_END</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_BRIDGE_START</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_BRIDGE_END</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CONF_ENTER</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CONF_EXIT</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_BRIDGE_TO_CONF</span><span>&nbsp;</span><span>&nbsp;</span><span>&nbsp;</span> </li>
                                                        </ul>
                                                        <h2 id="Asterisk12CELSpecification-Two-ParticipantBridgeNominal"> <span>Two-Participant Bridge Nominal<br /> </span> </h2>
                                                        <span>The following scenario</span>
                                                        <span> demonstrates channel creation, channel destruction, bridge start, and bridge end:</span>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span><span>Channel</span> Alice is created</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHANNEL_START (Primary: Alice)</span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Bob is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Bob)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Two-participant bridge Link is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Alice enters bridge Link</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bob enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>AST_CEL_BRIDGE_START (Primary: Alice, Peer: Bob)</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bob exits bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_BRIDGE_END (Primary: Alice, Peer: Bob)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Bob is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Bob)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>Alice exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Alice is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Alice)</span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span><span><span><span> <br /> </span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                        </ul>
                                                        <h2 id="Asterisk12CELSpecification-Two-ParticipantBridgeInvertedExit"> <span>Two-Participant Bridge Inverted Exit<br /> </span> </h2>
                                                        <p style="font-size: 13px"> <span><span>The following scenario</span><span> demonstrates a bridge end with an inverted exit condition:</span></span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span><span>Channel</span> Alice is created</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHANNEL_START (Primary: Alice)</span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Bob is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Bob)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Two-participant bridge Link is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Alice enters bridge Link</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bob enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>AST_CEL_BRIDGE_START (Primary: Alice, Peer: Bob)</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Alice exits bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_BRIDGE_END (Primary: Alice, Peer: Bob)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Alice is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Alice)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>Bob exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Bob is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Bob)</span></span></span></span></span></span></span></span><span><span><span><span><span><span><span><span><span><span><span><span> <br /> </span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                        </ul>
                                                        <p style="font-size: 13px"> <span>Note that even though Alice left the bridge first, the AST_CEL_BRIDGE_END event maintained the Primary and Peer for the bridge so as to correspond to their values in AST_CEL_BRIDGE_START.</span> </p>
                                                        <h2 id="Asterisk12CELSpecification-Multi-participantConferenceNominal"> <span>Multi-participant Conference Nominal</span> </h2>
                                                        <p style="font-size: 13px"> <span><span>The following scenario</span><span> demonstrates conversion of a bridge to a multi-participant conference:</span></span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span><span>Channel</span> Alice is created</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHANNEL_START (Primary: Alice)</span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Bob is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Bob)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Charlie is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Charlie)</span></span><span>&nbsp;</span><span> <br /> </span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel David is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: David)</span></span><span>&nbsp;</span><span><span> <br /> </span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Multi-participant bridge Link is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Alice enters bridge Link</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_ENTER (Primary: Alice<span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bob enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_ENTER (Primary: Bob<span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Charlie enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_ENTER (Primary: Charlie<span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>David enters bridge Link</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CONF_ENTER (Primary: David<span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span>)<br /> </span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Alice exits bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: Alice<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Alice is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Alice)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>Bob exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: Bob<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Bob is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Bob)</span></span></span></span></span></span></span></span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>Charlie exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: Charlie<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Charlie is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Charlie)</span></span></span></span></span></span></span></span><span>&nbsp;</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>David exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: David<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>David is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: David)</span></span></span></span></span></span></span></span><span>&nbsp;</span><span>&nbsp;</span><span><span><span><span><span><span><span><span><span><span><span><span> <br /> </span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                        </ul>
                                                        <h2 id="Asterisk12CELSpecification-BridgetoConferenceConversion"> <span>Bridge to Conference Conversion</span> </h2>
                                                        <p style="font-size: 13px"> <span><span>The following scenario</span><span> demonstrates conversion of a bridge to a multi-participant conference:</span></span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span><span>Channel</span> Alice is created</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHANNEL_START (Primary: Alice)</span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Bob is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Bob)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Charlie is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Charlie)</span></span><span>&nbsp;</span><span> <br /> </span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel David is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: David)</span></span><span>&nbsp;</span><span><span> <br /> </span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Smart bridge Link is created</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Alice enters bridge Link</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bob enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>AST_CEL_BRIDGE_START (Primary: Alice, Peer: Bob)</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Charlie enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bridge Link transitions to a multi-participant conference<br /> </span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>AST_CEL_BRIDGE_TO_CONF (Primary: Alice, Peer: Bob, Extra: {&quot;channel_name&quot;: &quot;Charlie&quot;, &quot;bridge_id&quot;, &quot;Link&quot;})</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>David enters bridge Link</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CONF_ENTER (Primary: David<span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span>)<br /> </span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Alice exits bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: Alice<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Alice is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Alice)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>Bob exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: Bob<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Bob is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Bob)</span></span></span></span></span></span></span></span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>Charlie exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: Charlie<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Charlie is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Charlie)</span></span></span></span></span></span></span></span><span>&nbsp;</span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span>David exits bridge Link</span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>AST_CEL_CONF_EXIT (Primary: David<span><span><span><span><span><span><span><span><span><span><span><span>, Extra: {&quot;bridge_id&quot;, &quot;Link&quot;}</span></span></span></span></span></span></span></span></span></span></span></span>)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>David is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: David)</span></span></span></span></span></span></span></span><span>&nbsp;</span><span>&nbsp;</span><span><span><span><span><span><span><span><span><span><span><span><span> <br /> </span></span></span></span></span></span></span></span></span></span></span></span> </li>
                                                        </ul>
                                                        <p style="font-size: 13px"> <span>Note that none of Alice, Bob, or Charlie have an associated AST_CEL_CONF_ENTER, but all of them have associated exit events.</span> </p>
                                                        <h2 id="Asterisk12CELSpecification-DialNominal"> <span>Dial Nominal</span> </h2>
                                                        <p style="font-size: 13px"> <span>For this scenario, assume that AST_CEL_ANSWER, AST_CEL_HANGUP, AST_CEL_APP_START, and AST_CEL_APP_END are configured in addition to the aforementioned record types and that &quot;Dial&quot; is configured to be watched.</span> </p>
                                                        <p style="font-size: 13px"> <span>The following scenario demonstrates a Dial that results in an answer followed by bridging and hangup:</span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span><span>Channel</span> Alice is created</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHANNEL_START (Primary: Alice)</span> </li>
                                                            <li style="font-size: 13px"> <span>Alice enters the Dial application with dial string &quot;SIP/Bob&quot;</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_APP_START (Primary: Alice)<br /> </span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Bob is created by calling SIP/Bob<br /> </span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Bob)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Bob answers</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>AST_CEL_ANSWER (Primary: Bob)</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Alice answers</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>AST_CEL_ANSWER (Primary: Alice)</span></span></span></span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Two-participant bridge Link is created</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Alice enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bob enters bridge Link</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>AST_CEL_BRIDGE_START (Primary: Alice, Peer: Bob)</span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span>Bob hangs up (causing him to leave bridge Link)<br /> </span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_BRIDGE_END (Primary: Alice, Peer: Bob)</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_HANGUP (Primary: Bob, Extra: {<span>&quot;hangupcause&quot;:16,&quot;dialstatus&quot;:&quot;&quot;,&quot;hangupsource&quot;:&quot;Bob&quot;</span>})</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Bob is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Bob)</span></span></span></span></span></span></span></span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Alice is hung up<br /> </span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_HANGUP (Primary: Alice, <span><span>Extra: {<span>&quot;hangupcause&quot;:16,&quot;dialstatus&quot;:&quot;ANSWER&quot;,&quot;hangupsource&quot;:&quot;&quot;</span>}</span></span>)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Alice is destroyed</span></span></span></span></span></span></span></span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Alice)</span></span></span></span></span></span></span></span><span>&nbsp;</span><span><span> <br /> </span></span> </li>
                                                        </ul>
                                                        <h2 id="Asterisk12CELSpecification-DialBusy"> <span>Dial Busy</span> </h2>
                                                        <p style="font-size: 13px"> <span>For this scenario, assume that AST_CEL_ANSWER, AST_CEL_HANGUP, AST_CEL_APP_START, and AST_CEL_APP_END are configured in addition to the aforementioned record types and that &quot;Dial&quot; is configured to be watched. The following scenario demonstrates a Dial that results in a busy:</span> </p>
                                                        <ul>
                                                            <li style="font-size: 13px"> <span><span>Channel</span> Alice is created</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_CHANNEL_START (Primary: Alice)</span> </li>
                                                            <li style="font-size: 13px"> <span>Alice enters the Dial application with dial string &quot;SIP/Bob&quot;</span> </li>
                                                            <li style="font-size: 13px"> <span>AST_CEL_APP_START (Primary: Alice)<br /> </span> </li>
                                                            <li style="font-size: 13px"> <span><span>Channel Bob is created by calling SIP/Bob<br /> </span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_CHANNEL_START (Primary: Bob)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>Bob responds BUSY<br /> </span></span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_HANGUP (Primary: Bob, Extra: {<span>&quot;hangupcause&quot;:21,&quot;dialstatus&quot;:&quot;&quot;,&quot;hangupsource&quot;:&quot;&quot;</span>})</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Bob is destroyed</span></span></span></span></span></span></span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Bob)</span></span></span></span></span></span></span></span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span>Alice is hung up<br /> </span> </li>
                                                            <li style="font-size: 13px"> <span><span>AST_CEL_HANGUP (Primary: Alice, <span><span>Extra: {<span>&quot;hangupcause&quot;:17,&quot;dialstatus&quot;:&quot;BUSY&quot;,&quot;hangupsource&quot;:&quot;&quot;</span>}</span></span>)</span></span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>Alice is destroyed</span></span></span></span></span></span></span></span><span>&nbsp;</span> </li>
                                                            <li style="font-size: 13px"> <span><span><span><span><span><span><span><span>AST_CEL_CHAN_END (Primary: Alice)</span></span></span></span></span></span></span></span><span>&nbsp;</span><span><span> <br /> </span></span> </li>
                                                        </ul>
                                                    </div>
                                                    <p class="diff-context-placeholder" style="font-size: 13px">...</p>
                                                </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+CEL+Specification" style="color: #326ca6; text-decoration: none">View Online</a> </span> <span class="email-list-divider" style="color: #505050; padding: 0 0.350em">&middot;</span> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/plugins/likes/like.action?contentId=25919712" style="color: #326ca6; text-decoration: none">Like</a> </span> <span class="email-list-divider" style="color: #505050; padding: 0 0.350em">&middot;</span> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=25919712&amp;revisedVersion=20&amp;originalVersion=19" style="color: #326ca6; text-decoration: none">View Changes</a> </span> <span class="email-list-divider" style="color: #505050; padding: 0 0.350em">&middot;</span> <span class="email-list-item"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CEL+Specification?showComments=true&amp;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">&middot;</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>