<html>
<head>
    <base href="https://wiki.asterisk.org/wiki">
            <link rel="stylesheet" href="/wiki/s/en/2172/18/9/_/styles/combined.css?spaceKey=AST&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines">Asterisk Issue Guidelines</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://wiki.asterisk.org/wiki/display/~mdavenport">Malcolm Davenport</a>
    </h4>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >{info}Your issue may not be a bug or could have been fixed already. Run through the checklist below to verify you have done your due diligence. <br>{info} <br></td></tr>
            <tr><td class="diff-changed-lines" >* *Verify you are on a supported version of Asterisk:* <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">[https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions] I.E.</span> <span class="diff-added-words"style="background-color: #dfd;">[https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions], i.e.</span> a version of asterisk that has not reached End of Life <br></td></tr>
            <tr><td class="diff-unchanged" >* *Are you using the latest version of your Asterisk branch?* Please check the release notes for newer versions of Asterisk to see if there is a potential fix for your issue. Even if you can&#39;t identify a fix in a newer version, it is preferable that you upgrade where reasonable to do so. Release notes are available in the UPGRADE.txt, CHANGES and ChangeLog files within the root directory of your particular point release. [http://svnview.digium.com/svn/asterisk/tags/] <br>* *Are you using the latest third party software, firmware, model, etc?* If the error scenario involves phones, third party databases or other software, be sure it is all up to date and check their documentation. <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <div>
<ul>
    <li><a href='#AsteriskIssueGuidelines-PurposeoftheAsteriskissuetracker'>Purpose of the Asterisk issue tracker</a></li>
<ul>
    <li><a href='#AsteriskIssueGuidelines-WhattheissuetrackerisNOTusedfor%3A'>What the issue tracker is NOT used for:</a></li>
    <li><a href='#AsteriskIssueGuidelines-Whyshouldyoureadthis%3F'>Why should you read this?</a></li>
</ul>
    <li><a href='#AsteriskIssueGuidelines-Howtoreportabug'>How to report a bug</a></li>
<ul>
    <li><a href='#AsteriskIssueGuidelines-STOP%5C%21BEFOREYOUEVENTHINKABOUTFILINGABUGREPORT...'>STOP! BEFORE YOU EVEN THINK ABOUT FILING A BUG REPORT...</a></li>
    <li><a href='#AsteriskIssueGuidelines-Whatmakesausefulbugreport%3F'>What makes a useful bug report?</a></li>
    <li><a href='#AsteriskIssueGuidelines-Submittingthebugreportinformationrequirements'>Submitting the bug report - information requirements</a></li>
<ul>
    <li><a href='#AsteriskIssueGuidelines-1.Createanewissueinthetracker'>1.Create a new issue in the tracker</a></li>
    <li><a href='#AsteriskIssueGuidelines-2.Fillouttheissueform'>2. Fill out the issue form</a></li>
    <li><a href='#AsteriskIssueGuidelines-3.Submittheissue.'>3. Submit the issue.</a></li>
</ul>
    <li><a href='#AsteriskIssueGuidelines-Howyoucanspeedupbugresolution'>How you can speed up bug resolution</a></li>
    <li><a href='#AsteriskIssueGuidelines-Reasonsyourreportmaybeclosedwithoutresolution'>Reasons your report may be closed without resolution</a></li>
</ul>
    <li><a href='#AsteriskIssueGuidelines-Howtorequestafeature'>How to request a feature</a></li>
<ul>
    <li><a href='#AsteriskIssueGuidelines-Doyouhaveafeaturerequestandapatchtogowithit%3F'>Do you have a feature request and a patch to go with it?</a></li>
</ul>
    <li><a href='#AsteriskIssueGuidelines-PatchandCodesubmission'>Patch and Code submission</a></li>
<ul>
    <li><a href='#AsteriskIssueGuidelines-Patchtesting%26Reviewboard'>Patch testing &amp; Reviewboard</a></li>
    <li><a href='#AsteriskIssueGuidelines-Whydidn%27tmyfeaturemakeitintoAsterisk%3F'>Why didn't my feature make it into Asterisk?</a></li>
</ul>
    <li><a href='#AsteriskIssueGuidelines-DigiumSubmissionLicenseAgreement'>Digium Submission License Agreement</a></li>
    <li><a href='#AsteriskIssueGuidelines-GetinvolvedinAsteriskDevelopmentinfluencethefutureofAsterisk'>Get involved in Asterisk Development - influence the future of Asterisk</a></li>
</ul></div>

<h2><a name="AsteriskIssueGuidelines-PurposeoftheAsteriskissuetracker"></a>Purpose of the Asterisk issue tracker</h2>

<p>The <a href="https://issues.asterisk.org/jira" class="external-link" rel="nofollow">Asterisk Issue Tracker</a> is used to track bugs and miscellaneous (documentation) elements within the Asterisk project. The issue tracker is designed to manage reports on both <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States" class="external-link" rel="nofollow">core and extended components</a> of the Asterisk project. The issue tracker is currently located at <a href="https://issues.asterisk.org/jira" class="external-link" rel="nofollow">issues.asterisk.org</a>.</p>

<p>The primary use of the issue tracker is to track bugs, where "bug" means anything that causes unexpected or detrimental results in the Asterisk system. The secondary purpose it is to track some of the miscellaneous issues surrounding Asterisk, such as documentation, commentary and feature requests or improvements with associated patches.</p>

<p>Features requests without patches are not accepted through the issue tracker. Features requests are openly discussed on the mailing lists and Asterisk IRC channels and made note of by Bug Marshals. Please read the "How to request a feature" section of this article.</p>

<h4><a name="AsteriskIssueGuidelines-WhattheissuetrackerisNOTusedfor%3A"></a>What the issue tracker is NOT used for:</h4>

<ul>
        <li><b>Information Requests</b> (How does X parameter work? See the forums, mailing lists or IRC channels <a href="http://www.asterisk.org/community" class="external-link" rel="nofollow">http://www.asterisk.org/community</a>)</li>
        <li><b>Support requests</b> (My phone doesn't register&#33; My database connectivity doesn't work&#33; How do I get it to work? Also search and ask on the forums, mailing lists and IRC <a href="http://www.asterisk.org/community" class="external-link" rel="nofollow">http://www.asterisk.org/community</a>)</li>
        <li><b>Random wishes and feature requests with no patch</b> (I want Asterisk to support &lt;insert obscure protocol or gadget&gt;, but I don't know how to code&#33; See the "how to request a feature" section)</li>
        <li><b>Business development requests</b> (I will pay you to make Asterisk support fancy unicorn protocol&#33; Please head to the asterisk-biz mailing list at <a href="http://lists.digium.com" class="external-link" rel="nofollow">http://lists.digium.com</a>)</li>
</ul>



<h4><a name="AsteriskIssueGuidelines-Whyshouldyoureadthis%3F"></a>Why should you read this?</h4>

<p>To get the attention of helpful individuals and the Asterisk development team, you'll want to read, understand and act on this article. The steps here will help you provide all the information the Asterisk team needs to solve your issue.</p>


<h2><a name="AsteriskIssueGuidelines-Howtoreportabug"></a>How to report a bug</h2>

<h4><a name="AsteriskIssueGuidelines-STOP%5C%21BEFOREYOUEVENTHINKABOUTFILINGABUGREPORT..."></a>STOP&#33; BEFORE YOU EVEN THINK ABOUT FILING A BUG REPORT...</h4>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Your issue may not be a bug or could have been fixed already. Run through the checklist below to verify you have done your due diligence.</td></tr></table></div>
<ul>
        <li><b>Verify you are on a supported version of Asterisk:</b> <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions" class="external-link" rel="nofollow">https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions</a>, i.e. a version of asterisk that has not reached End of Life</li>
        <li><b>Are you using the latest version of your Asterisk branch?</b> Please check the release notes for newer versions of Asterisk to see if there is a potential fix for your issue. Even if you can't identify a fix in a newer version, it is preferable that you upgrade where reasonable to do so. Release notes are available in the UPGRADE.txt, CHANGES and ChangeLog files within the root directory of your particular point release. <a href="http://svnview.digium.com/svn/asterisk/tags/" class="external-link" rel="nofollow">http://svnview.digium.com/svn/asterisk/tags/</a></li>
        <li><b>Are you using the latest third party software, firmware, model, etc?</b> If the error scenario involves phones, third party databases or other software, be sure it is all up to date and check their documentation.</li>
        <li><b>Have you asked for help in the community? (mailing lists, IRC, forums)</b> You can locate all these services here: <a href="http://www.asterisk.org/community" class="external-link" rel="nofollow">http://www.asterisk.org/community</a></li>
        <li><b>Have you searched the Asterisk documentation in case this behavior is expected?</b> The documentation is located here: <a href="https://wiki.asterisk.org/wiki/display/AST/Home" class="external-link" rel="nofollow">https://wiki.asterisk.org/wiki/display/AST/Home</a></li>
        <li><b>Have you searched the Asterisk bug tracker to see if an issue is already filed for this potential bug?</b> <a href="https://issues.asterisk.org/jira" class="external-link" rel="nofollow">https://issues.asterisk.org/jira</a> you'll find the search field in the top right of the page.</li>
        <li><b>Can you reproduce the problem?</b>&nbsp; If the issue is a "random" crash or failure there will be little anyone can do to help, unless you can find a way to stimulate the issue or get the system to a point where its capturing the needed debug as a failure occurs.</li>
</ul>


<h4><a name="AsteriskIssueGuidelines-Whatmakesausefulbugreport%3F"></a>What makes a useful bug report?</h4>

<p>There are some key qualities to keep in mind. These should be  reflected in your bug report and will increase the chance of your bug being fixed&#33;</p>

<ul>
        <li>Specific: As in pertaining to a certain, clearly defined issue with data to provide evidence of said issue</li>
        <li>Reproducible: As in not random, as in you have some idea when this issue occurs and how to make it happen again</li>
        <li>Concise: Brief but comprehensive. Don't provide an essay on what you think is wrong. Provide only the facts and debug output that supports them.</li>
</ul>





<h4><a name="AsteriskIssueGuidelines-Submittingthebugreportinformationrequirements"></a>Submitting the bug report - information requirements</h4>

<p>You'll report the issue through the tracker, under the Asterisk project. <a href="https://issues.asterisk.org/jira/browse/ASTERISK" class="external-link" rel="nofollow">https://issues.asterisk.org/jira/browse/ASTERISK</a></p>















<h6><a name="AsteriskIssueGuidelines-1.Createanewissueinthetracker"></a>1.Create a new issue in the tracker</h6>

<p>The "Create Issue" button in the top right hand corner of the page will prompt you for the project and issue type. Pick the Asterisk project, and choose an appropriate issue type.</p>


<p>Issue types:</p>
<ul>
        <li>Bug</li>
        <li>New feature</li>
        <li>Improvement</li>
        <li>Information request (This type is not currently used, and your issue is likely to be closed or redefined)</li>
</ul>


<h6><a name="AsteriskIssueGuidelines-2.Fillouttheissueform"></a>2. Fill out the issue form</h6>

<p>For a bug you must include the following information:</p>


<ul>
        <li><b>Concise and descriptive summary</b><br/>
Accurate and descriptive, not prescriptive. Provide the facts of what is happening and leave out assumptions as to what the issue might be.<br/>
Good example: "Crash occurs when exactly twelve SIP channels hang up at the same time inside of a queue"<br/>
Bad Examples: "asterisk crashes" , "problem with queue", "asterisk doesn't work", "channel hangups cause crash"</li>
        <li><b>Operating System detail</b> (Linux distribution, kernel version, architecture etc)</li>
        <li><b>Asterisk version</b> (exact branch and point release, such as 1.8.12.0)</li>
        <li><b>Information on any third party software involved in the scenario</b> (database software, libraries, etc)</li>
        <li><b>Frequency and timing of the issue</b> (does this occur constantly, is there a trigger? Every 5 minutes? seemingly random?)</li>
        <li><b>Symptoms</b> described in specific detail ("No audio in one direction on only inbound calls", "choppy noise on calls where trans-coding takes place")</li>
        <li><b>Steps required to reproduce the issue</b> (tell the developer exactly how to reproduce the issue, just imagine you are making steps for a manual)</li>
        <li><b>Workarounds in detail with specific steps</b> (if you found a workaround for a serious issue, please include it for others who may be affected)</li>
        <li><b>Debugging output</b> &#45; You'll almost always want to include extensions.conf, and config files for any involved component of Asterisk. Depending on the issue you'll also need SIP traces for anything involving a SIP channel plus backtraces and valgrind output for crashes or memory issues. Unless the issue is extremely trivial, you'll need to also include an Asterisk debug log, including DEBUG and VERBOSE type messages with at least a level of 5. You can find instructions <a href="https://wiki.asterisk.org/wiki/display/AST/Debugging" class="external-link" rel="nofollow">HERE</a> and <a href="https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information" class="external-link" rel="nofollow">HERE</a>.</li>
</ul>


<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Be courteous. Do not paste debug output in the description or a comment, instead please <b>attach</b> any debugging output as text files and reference them by file name.</td></tr></table></div>

<h6><a name="AsteriskIssueGuidelines-3.Submittheissue."></a>3. Submit the issue.</h6>

<p>Once you have created the issue, you can now attach debug as files. You are ready to wait for a response from a bug marshal or post additional information as comments. If you are responding to a request for feedback, be sure to use the workflow actions to "send back" the status to the developers.</p>





<h4><a name="AsteriskIssueGuidelines-Howyoucanspeedupbugresolution"></a>How you can speed up bug resolution</h4>

<p>Follow the checklist above and include all information that we require. Watch for emails where we may ask for additional data and help us test any patches or possible fixes for the issue. If you didn't follow the information requirements - it'll often be the first thing we ask for. A developer <b>can not</b> fix your issue until we have sufficient data to verify the problem.</p>


<h4><a name="AsteriskIssueGuidelines-Reasonsyourreportmaybeclosedwithoutresolution"></a>Reasons your report may be closed without resolution</h4>

<p>If your bug is determined to be a configuration error or something that  is clearly not reproducible, it may be closed immediately by a bug  marshal. If you believe this to be in error, please go in and edit the  bug and say so, or comment to the bug marshal that made the closure  (visible on the ticket itself.) If that fails, bring it up on the  mailing list(s) and it will be sorted out by the community.</p>

<p>Common reasons your issue may be closed without resolution:</p>

<ul>
        <li>The issue can't be reproduced from the original report.</li>
        <li>The report lacks sufficient information to investigate, and you haven't responded to our requests for specific information.</li>
        <li>The issue may exist, but can't be fixed due to underlying architecture or infrastructure issues.</li>
        <li>The issue is not a bug, but is a support request. The reporter will be directed to community resources for support.</li>
</ul>




<p>If insufficient commentary or debug information was given in the ticket then bug marshals will request additional information from the reporter. If there are questions posted as follow-ups to your bug or patch, please try to answer them - the system automatically sends email to you for every update on a bug you reported. If the original reporter of the patch/bug does not reply within some period of time (usually 14 days) and there are outstanding questions, the bug/patch may get closed out, which would be unfortunate. The developers have a lot on their plate and only so much time to spend managing inactive issues with insufficient information.</p>

<p>If your bug was closed, but you get additional debug or data later on, you can always contact a bug marshal in #asterisk-bugs on irc.freenode.net to have them re-open the issue.</p>


<h2><a name="AsteriskIssueGuidelines-Howtorequestafeature"></a>How to request a feature</h2>

<p>Not a programmer? Have a feature idea? That's fine, but don't expect to see it anytime soon unless you can find someone to write the code for you. Even then it will still have to be approved by the SVN maintainers and bug marshals. Many people want Asterisk to do many different things, however, unless the feature has some extremely obvious (to many people) benefit, then it's best to have a community discussion and consensus on a feature before it goes into Asterisk. Feature requests are openly discussed on the mailing lists, and IRC channels. Most bug marshals and asterisk developers actively participate and will note the request if it makes sense.</p>

<h4><a name="AsteriskIssueGuidelines-Doyouhaveafeaturerequestandapatchtogowithit%3F"></a>Do you have a feature request and a patch to go with it?</h4>

<p>Great, then move on to the Patch and Code submission section below.</p>




<h2><a name="AsteriskIssueGuidelines-PatchandCodesubmission"></a>Patch and Code submission</h2>

<p>We all love new features, but new features bring new complexities,   and new complexities bring new bugs. So, to help cut down on new bugs   being introduced with your new features, please consider as much of what   you're touching as possible. In other words: everything is linked in   very subtle ways; make sure you look very closely at each piece of what   your patch influences before you submit it. Don't be afraid to submit   revised copies of the patch if that's what's required. Bug marshals are   there to help you and their suggestions are based on their experience  of  working with Asterisk.</p>

<p>Make sure you read the <a href="https://wiki.asterisk.org/wiki/display/AST/Coding+Guidelines" class="external-link" rel="nofollow">coding guidelines</a> and make your code compliant with these. Add comments that explain your   code in <a href="http://www.stack.nl/~dimitri/doxygen/docblocks.html" class="external-link" rel="nofollow">Doxygen format (Qt style)</a> to make it easier to understand both for those   that commit and for other developers and users. You'll also need to read the Digium License Agreement section below, and then sign the agreement within JIRA.</p>


<p>Format of patch: Please use "diff &#45;u" or "svn diff" on all your  patches. Patches which include alternate formatting are almost certainly  going to be thrown out or ignored; there are too few hours in the day  to wade through difficult-to-follow C code fixes without the help of  "diff &#45;u".</p>

<h4><a name="AsteriskIssueGuidelines-Patchtesting%26Reviewboard"></a>Patch testing &amp; Reviewboard</h4>

<p>After you create a new feature or bug patch submission, it will need to be tested before it can be committed to the SVN repository. By "tested", we mean that multiple persons other than yourself should  patch/run/abuse the patch in various manners so that all possible variations of input/output are run through the test. In instances where there are limited test environments, please document exactly how and why you were unable to get others to test the patch so that the developers know that this simply isn't "waiting for testing" and is in fact ready to go. Insufficient testing is a sure way to have your feature put on the back burner - the SVN maintainers don't have time to run exhaustive tests on each new feature. Find people on the #asterisk IRC channel who  may be able to assist you in testing, and develop a working relationship with other Asterisk users so that you can swap testing routines; this greatly speeds the process. Mail the mailing lists, informing other Asterisk users about your patch and ask for feedback.</p>

<p>If you have submitted code in the past and are great at following the coding guidelines, then you may want to request access to ReviewBoard. <a href="https://wiki.asterisk.org/wiki/display/AST/Reviewboard+Usage" class="external-link" rel="nofollow">You can find the instructions for reviewboard here.</a> Code submitted to ReviewBoard is likely to be included much faster than an untested patch just sitting in the tracker. The development team will provide access to ReviewBoard for those that submit code often, write quality code and have a history of following the coding guidelines.</p>

<h4><a name="AsteriskIssueGuidelines-Whydidn%27tmyfeaturemakeitintoAsterisk%3F"></a>Why didn't my feature make it into Asterisk?</h4>

<p>Many times, a feature that might sound good to you and might work as  expected just isn't important enough to make it into the system if it  isn't deemed useful to a large enough audience. This is, of course, a  subjective decision by the SVN maintainers and the bug marshals. Their  opinions can be swayed if enough users get together and rally around a  particular feature that seems to be useful to them, so getting others to  chime in on your neat request will perhaps advance it further towards  the top of the queue. Sometimes, it's just a matter of timing - nobody  has had the time to look at it yet. It's perfectly legitimate (and good)  for someone who has a bug or feature request to go to IRC and lobby for  it with the bug marshal to push it through, schedule time, etc.</p>


<h2><a name="AsteriskIssueGuidelines-DigiumSubmissionLicenseAgreement"></a>Digium Submission License Agreement</h2>

<p>If you are going to contribute code to the Asterisk project, then please thoroughly read and then electronically sign the <a href="https://issues.asterisk.org/jira/secure/DigiumLicense.jspa" class="external-link" rel="nofollow">Digium Open Source Software Project Submission Agreement</a> upon logging in to the <a href="https://issues.asterisk.org/jira" class="external-link" rel="nofollow">Asterisk issue tracker</a>. You'll see a "Sign a License Agreement" link at the top of the JIRA interface.</p>


<p>The reason for the submission agreement has been discussed many times in community forums, but the general gist is that your contribution must not introduce any encumbrance to the Asterisk code base, but Digium does not own your contribution, and they cannot take released Asterisk out of GPL. Relax; it's a very fair and reasonable license, and does not remove your rights or threaten the open source nature of the project. See the mailing list archives for long explanations of why everyone who contributes agrees that it's a fair and sane thing to do. You only need to sign the agreement once; it applies to all code that you send in via the issue tracker.</p>

<p>The issue tracker keeps a record of contributions and the license agreements that were in effect when those contributions were uploaded; it will currently restrict you from uploading a patch or documentation without a signed license agreement.</p>


<p>How to properly upload an attachment that requires a Submission License Agreement:</p>



<ul>
        <li>When using the "Attach Files" form on a particular issue, be sure to select the "Yes, this is a code or documentation contribution" radio button.</li>
        <li>If you don't have a user license agreement, you'll see the message<br/>
" You dont appear to have a current, signed submission license agreement on file. Please sign one before attempting to upload a code or documentation contribution."</li>
        <li>To sign a submission license agreement, use the "Sign a license Agreement" link at the top navigation bar in JIRA.</li>
        <li>The license agreement will be reviewed by Digium's legal department, then you'll be notified by E-mail of acceptance or rejection. If accepted you can now repeat the upload process and you'll be able to upload the code with a proper license associated to your account and showing by the attachment.</li>
</ul>





<p>If you upload a patch and do not mark it as a code submission, and a bug  marshal or developer later determines it to be a code submission, they may have to delete your patch and ask you to re-upload it, properly  marking it as a code submission so that your license will be associated.</p>

<h2><a name="AsteriskIssueGuidelines-GetinvolvedinAsteriskDevelopmentinfluencethefutureofAsterisk"></a>Get involved in Asterisk Development - influence the future of Asterisk</h2>

<p>Reading the guidelines here is a great start&#33; There are plenty of other wiki pages on <a href="https://wiki.asterisk.org/wiki/display/AST/Development" class="external-link" rel="nofollow">Asterisk development which include coding guidelines</a>. Feel free to start submitting relevant patches, documentation additions or fixes as soon as you can. There is a ton of minor features and changes that need to be tested, reviewed and possibly expanded or tweaked before they can go into Asterisk.</p>

<p>Start associating with other Asterisk developers where they hang out <a href="http://www.asterisk.org/community/" class="external-link" rel="nofollow">http://www.asterisk.org/community/</a>. You'll find them on IRC and probably most active on the mailing lists, with many other users also on the forums.</p>

<p>Once you get to know the community and you really want to influence the Asterisk roadmap, you'll want to check out AstriDevCon. AstriDevCon is an event held alongside <a href="http://www.astricon.net" class="external-link" rel="nofollow">AstriCon </a>where the developers get together to review what was done in the past year and plan Asterisk's future.</p>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;" class="grey">
                        <a href="https://wiki.asterisk.org/wiki/users/removespacenotification.action?spaceKey=AST">Stop watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://wiki.asterisk.org/wiki/users/editmyemailsettings.action">Change email notification preferences</a>
</div>
        <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines">View Online</a>
        |
        <a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=19726406&revisedVersion=29&originalVersion=28">View Changes</a>
                |
        <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>