<html>
<head>
    <base href="https://wiki.asterisk.org/wiki">
            <link rel="stylesheet" href="/wiki/s/en/2176/25/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/AstriDevCon+2012">AstriDevCon 2012</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://wiki.asterisk.org/wiki/display/~mjordan">Matt Jordan</a>
    </h4>
        <br/>
                         <h4>Changes (2)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">{toc|maxlevel=3} <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{toc:maxlevel=3} <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h1. Introduction <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='#AstriDevCon2012-Introduction'>Introduction</a></li>
    <li><a href='#AstriDevCon2012-Participants'>Participants</a></li>
<ul>
    <li><a href='#AstriDevCon2012-Developers%2FContributorsPresent'>Developers/Contributors Present</a></li>
    <li><a href='#AstriDevCon2012-DevelopersParticipatingvia%23astridevcon'>Developers Participating via #astridevcon</a></li>
</ul>
    <li><a href='#AstriDevCon2012-Agenda'>Agenda</a></li>
    <li><a href='#AstriDevCon2012-Notes'>Notes</a></li>
<ul>
    <li><a href='#AstriDevCon2012-Policies'>Policies</a></li>
    <li><a href='#AstriDevCon2012-ChannelDrivers'>Channel Drivers</a></li>
    <li><a href='#AstriDevCon2012-Core'>Core</a></li>
    <li><a href='#AstriDevCon2012-APIs'>APIs</a></li>
    <li><a href='#AstriDevCon2012-Review'>Review</a></li>
<ul>
    <li><a href='#AstriDevCon2012-AstriDevCon2011ProjectsAST%3AAstriDevCon2011'> AstriDevCon 2011 Projects</a></li>
</ul>
    <li><a href='#AstriDevCon2012-%28P4%2CSimon%27sfeatures%29'>(P4, Simon's features)</a></li>
    <li><a href='#AstriDevCon2012-%28P5%29'>(P5)</a></li>
    <li><a href='#AstriDevCon2012-%28P6%29'>(P6)</a></li>
    <li><a href='#AstriDevCon2012-%28P7%2Cnotkobaz%29'>(P7, not kobaz)</a></li>
    <li><a href='#AstriDevCon2012-%28P8%2Cnicetohave%29'>(P8, nice to have)</a></li>
    <li><a href='#AstriDevCon2012-%28P%3F%2CResearchRequired%29'>(P?, Research Required)</a></li>
<ul>
    <li><a href='#AstriDevCon2012-ProjectsDiscussed'>Projects Discussed</a></li>
</ul>
</ul>
    <li><a href='#AstriDevCon2012-AgreedUponGoals'>Agreed Upon Goals</a></li>
</ul></div>

<h1><a name="AstriDevCon2012-Introduction"></a>Introduction</h1>

<p>AstriDevCon 2012 was held on Monday, October 22nd. It was held on the day prior to AstriCon at the same location. A group of active development community members met and discussed a number of topics.</p>

<p>Much thanks to Jared Smith and BlueHost for sponsoring the event!</p>

<h1><a name="AstriDevCon2012-Participants"></a>Participants</h1>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Unfortunately, my list of developers present got eaten by the cleaning crew (through no fault of their own, that's what I get for leaving it behind in a stack of scribbled papers!)  If I miss your name and/or company on here, let me know and I'll be sure to correct the list below.  &#8211; Matt</td></tr></table></div>

<h2><a name="AstriDevCon2012-Developers%2FContributorsPresent"></a>Developers/Contributors Present</h2>

<ul>
        <li>Rusty Newton: Digium</li>
        <li>Matt Jordan: Digium</li>
        <li>Paul Belanger: PolyBeacon</li>
        <li>Leif Madsen: CoreDial</li>
        <li>Jared Smith: BlueHost</li>
        <li>Nicolas Bouliane: Avencall</li>
        <li>Mark Murawski: Intellasoft</li>
        <li>Sylvain Bolly:</li>
        <li>Xavier Carcelle: Avencall</li>
        <li>Nir Simionovich: Greenfield Technologies</li>
        <li>Eric Klein: Greenfield Technologies</li>
        <li>David Faulk: Digium</li>
        <li>Max Schroeder: Starface</li>
        <li>Octavio Luna:</li>
        <li>Alec Davis:</li>
        <li>Corey McFadden: Voneto</li>
        <li>Joshua Colp: Digium</li>
        <li>Shaun Ruffell: Digium</li>
        <li>Jason Parker: Digium</li>
        <li>Matthew Frederickson: Digium</li>
        <li>Malcolm Davenport: Digium</li>
        <li>Steve Sokol: Digium</li>
        <li>Michael Spiceland: Digium</li>
        <li>David Lee: Digium</li>
        <li>Kinsey Moore: Digium</li>
        <li>Mark Michelson: Digium</li>
        <li>Bryan Johns: Digium</li>
        <li>Sean McCord: Ulexus</li>
        <li>BJ Weschke: BTWTech</li>
        <li>Clod Patry: ConnectIT Networks</li>
        <li>Tim Panton: Voxeo Labs</li>
        <li>James Body: Truphone</li>
</ul>


<h2><a name="AstriDevCon2012-DevelopersParticipatingvia%23astridevcon"></a>Developers Participating via #astridevcon</h2>

<ul>
        <li>Tzafrir Cohen: Xorcom</li>
        <li>Ben Klang: Mojo Lingo/Adhearsion</li>
        <li>Ben Langfeld: Adhearsion</li>
</ul>


<h1><a name="AstriDevCon2012-Agenda"></a>Agenda</h1>

<p>After introductions, an agenda, consisting of topic areas and specific items, was developed and agreed upon.  In order to ensure that all topics had some discussion, each of the major topics was limited to an agreed upon amount of time.  The following broad areas were discussed:</p>
<ul>
        <li>Policies (1 hour)</li>
        <li>Channel Drivers (2 hours)</li>
        <li>Core (1 hour)</li>
        <li>APIs (1 hour)</li>
        <li>Review of past work and existing work (1 hour)</li>
</ul>


<h1><a name="AstriDevCon2012-Notes"></a>Notes</h1>

<p>Please remember that these notes merely represent the items that were discussed, and, by themselves, do not constitute policies or project proposals.</p>

<h2><a name="AstriDevCon2012-Policies"></a>Policies</h2>

<ul>
        <li>release branches
        <ul>
                <li>written policy for no new features in Release Branches
                <ul>
                        <li>Possible exceptions:
                        <ul>
                                <li>stand alone modules that are disabled by default</li>
                        </ul>
                        </li>
                </ul>
                </li>
        </ul>
        </li>
        <li>GIT
        <ul>
                <li>DAHDI/Asterisk Test Suite</li>
                <li>Move menuselect into Asterisk (no known technical barriers at this time)</li>
        </ul>
        </li>
        <li>development tools
        <ul>
                <li>reviewboard
                <ul>
                        <li>what allows a Ship It?
                        <ul>
                                <li>complexity =&gt; testing
                                <ul>
                                        <li>unit testing</li>
                                        <li>asterisk testsuite tests</li>
                                </ul>
                                </li>
                                <li>needs to satisfy requirements for merging
                                <ul>
                                        <li>coding guidelines</li>
                                        <li>documentation
                                        <ul>
                                                <li>new config options in the sample config</li>
                                                <li>doxygen comments</li>
                                                <li>wiki docs for usage</li>
                                        </ul>
                                        </li>
                                </ul>
                                </li>
                        </ul>
                        </li>
                        <li>24hr for others to review
                        <ul>
                                <li>Time constrained - at least 2 ship its</li>
                        </ul>
                        </li>
                </ul>
                </li>
        </ul>
        </li>
        <li>feature branches</li>
        <li>testing
        <ul>
                <li>need to publicize tools available for use</li>
                <li>publicize what is tested</li>
                <li>what is tested by Digium before a major release?
                <ul>
                        <li>asterisk testsuite</li>
                        <li>manual tests</li>
                        <li>testing is primarily core support level</li>
                        <li>minimal testing of extended support level</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>data capture
        <ul>
                <li>non evil, phone home</li>
                <li>no personal info</li>
                <li>know your own unique ID</li>
                <li>query data</li>
                <li>OPT OUT - easily turned off</li>
                <li>Well publicized
                <ul>
                        <li>control where data is sent
                        <ul>
                                <li>digium only</li>
                                <li>somewhere else only</li>
                                <li>digium+somewhere else</li>
                        </ul>
                        </li>
                        <li>control what data is sent
                        <ul>
                                <li>modules being used/versions</li>
                                <li>calls processed</li>
                                <li>registered endpoints</li>
                                <li>technology used</li>
                                <li>what data is collected &amp; message spec</li>
                                <li>uptime</li>
                        </ul>
                        </li>
                        <li>open data transfer message format</li>
                        <li>well documented</li>
                        <li>separate module</li>
                        <li>CLI warning</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>project pages
        <ul>
                <li>asterisk-dev list discussions</li>
                <li>announce on mailing list - provide links to wiki for more detail</li>
        </ul>
        </li>
        <li>mailing list
        <ul>
                <li>don't require mailing list discussions to be conducted only through mailman server?</li>
                <li>counter-argument: might need tweaks for dups, conversations fall off of the list easier</li>
        </ul>
        </li>
</ul>


<h2><a name="AstriDevCon2012-ChannelDrivers"></a>Channel Drivers</h2>
<ul>
        <li>SIP Channel driver - issues
        <ul>
                <li>huge tracts of code
                <ul>
                        <li>lack of stack-based structuring</li>
                        <li>bugfixes very often create more bugs, even with experienced Asterisk devs</li>
                        <li>Unapproachable for new developers</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>new parallel channel driver
        <ul>
                <li>what should the driver provide?
                <ul>
                        <li>B2BUA</li>
                        <li>Register</li>
                        <li>Subscription</li>
                        <li>More (not proxy)?</li>
                </ul>
                </li>
                <li>services provided should be built in separate modules</li>
                <li>use GPL SIP stack - don't reinvent the wheel
                <ul>
                        <li>PJSIP, Sofia? Others? Should be discussed on dev list</li>
                        <li>Have someone full time on stack?</li>
                        <li>Pick a version of the stack for a branch of Asterisk</li>
                        <li>testing - interop testing (SIPit)</li>
                </ul>
                </li>
                <li>Data Access Layer
                <ul>
                        <li>Must support Legacy configs</li>
                </ul>
                </li>
                <li>Need agreed upon set of functionality</li>
                <li>layers of abstraction - modular</li>
        </ul>
        </li>
        <li>Skinny Channel driver
        <ul>
                <li>SCCP being developed by Avencall team
                <ul>
                        <li>need team branch for 1.8</li>
                        <li>forward port to trunk</li>
                        <li>double check feature parity with chan_skinny</li>
                        <li>Work with Damien Wedhorn (current maintainer of chan_skinny) to determine feature set</li>
                        <li>Find ways to integrate development processes with Asterisk</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>chan_rtp
        <ul>
                <li>RTP API as a resource module?</li>
                <li>Expose RTP functionality without requiring signalling?</li>
        </ul>
        </li>
        <li>the future of chan_agent
        <ul>
                <li>Current implementation == crashy</li>
                <li>makes abstraction of the agent easy (doable without chan_agent, but hard)</li>
                <li>replace app_queue with tiny pieces?</li>
                <li>further discussion on this within APIs</li>
        </ul>
        </li>
</ul>


<h2><a name="AstriDevCon2012-Core"></a>Core</h2>
<ul>
        <li>console logging (format) - kobaz has done some work on this and may be getting closer to being able to have it reviewed</li>
        <li>scalability
        <ul>
                <li>What is the ability to scale -mmichelson
                <ul>
                        <li>RT</li>
                        <li>Should we use an API that provides federation?</li>
                        <li>UUID for an Asterisk instance
                        <ul>
                                <li>expose system name out of system.conf</li>
                        </ul>
                        </li>
                        <li>multiple data storage for ASTDB</li>
                        <li>media storage as a resource</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>Monolithic App breakup
        <ul>
                <li>Queues</li>
                <li>VoiceMail</li>
        </ul>
        </li>
        <li>cdrs</li>
</ul>


<h2><a name="AstriDevCon2012-APIs"></a>APIs </h2>
<ul>
        <li>Manager
        <ul>
                <li>Problems
                <ul>
                        <li>tracking calls in transfer scenarios
                        <ul>
                                <li>channel tracking</li>
                                <li>UUID per channel</li>
                        </ul>
                        </li>
                        <li>no spec - is it worth specifying a broken protocol or implementing a specified, consistent protocol with other proven implementations, which provides additional features (multi-tennancy, real security, federation, load balancing)? (<a href="http://rayo.org/xep" class="external-link" rel="nofollow">http://rayo.org/xep</a>)</li>
                        <li>events lack documentation (getting there)
                        <ul>
                                <li>Register events
                                <ul>
                                        <li>prevent unregistered events from going out, log error</li>
                                </ul>
                                </li>
                                <li>Accurate timestamping</li>
                                <li>Meta events</li>
                                <li>Efficiency</li>
                                <li>Documentation</li>
                                <li>Channel lifetime</li>
                        </ul>
                        </li>
                </ul>
                </li>
        </ul>
        </li>
        <li>AsyncAGI
        <ul>
                <li>No ability to rescue a channel dumped into AsyncAGI without a response</li>
                <li>Global scope, races if multiple AMI users are listening to AsyncAGI</li>
        </ul>
        </li>
        <li>Asynchronous media control
        <ul>
                <li>External Message Bus
                <ul>
                        <li>multi-cast</li>
                </ul>
                </li>
                <li>SIP event observers</li>
        </ul>
        </li>
        <li>Consistency
        <ul>
                <li>Bridge as object</li>
                <li>Lightweight Dial</li>
                <li>Originate and Bridge?</li>
        </ul>
        </li>
        <li>Message send</li>
        <li>MSRP support</li>
        <li>Compliance/Regression tests with API consumers</li>
        <li>API Standardization<br/>
*SLA - Need to explore SLA using ConfBridge</li>
</ul>


<h2><a name="AstriDevCon2012-Review"></a>Review</h2>

<h3><a name="AstriDevCon2012-AstriDevCon2011ProjectsAST%3AAstriDevCon2011"></a><a href="/wiki/display/AST/AstriDevCon+2011" title="AstriDevCon 2011">AstriDevCon 2011 Projects</a></h3>

<h5><a name="AstriDevCon2012-%28P0%29"></a>(P0)</h5>

<ul>
        <li>SIP path support (Olle)
        <ul>
                <li>(first generation of code exists, needs more work, simple patch, going to get it done, needs an extra field in astdb; helps when there are 2 or more load balancing proxies in front of asterisk, when you'd like the call to be able to get back to Asterisk; see <a href="https://reviewboard.asterisk.org/r/991/" class="external-link" rel="nofollow">https://reviewboard.asterisk.org/r/991/</a>)</li>
                <li><a href="https://issues.asterisk.org/view.php?id=18223" class="external-link" rel="nofollow">https://issues.asterisk.org/view.php?id=18223</a></li>
                <li><b>Review 2011</b>: No change since 2010</li>
        </ul>
        </li>
        <li>Group variables (Kobaz)
        <ul>
                <li>(on review board, in progress)</li>
                <li><b>Review 2011</b>: Code written and then re-written this year, tested in production for a year. Feels good code wise. Some suggestions on reviewboard and should be converted to ao2.
                <ul>
                        <li>Goal to commit for Asterisk 11</li>
                        <li><a href="http://reviewboard.asterisk.org/r/464" class="external-link" rel="nofollow">http://reviewboard.asterisk.org/r/464</a></li>
                        <li><a href="https://issues.asterisk.org/jira/browse/ASTERISK-15439" class="external-link" rel="nofollow">https://issues.asterisk.org/jira/browse/ASTERISK-15439</a></li>
                </ul>
                </li>
        </ul>
        </li>
        <li><del>Pre-Dial (Kobaz) <a href="/wiki/pages/createpage.action?spaceKey=AST&amp;title=Finished%2C+Committed&amp;linkCreation=true&amp;fromPageId=21463921" class="createlink">Finished, Committed</a></del>
        <ul>
                <li><del>(I think it's done.  Been in production for 12+months with no hiccups.  Needs review&#33;)</del></li>
                <li><del><b>Review 2011</b>: Very happy with the way it is. Uploaded latest diff against trunk.</del>
                <ul>
                        <li><del>Goal to commit for Asterisk 11</del></li>
                        <li><a href="https://reviewboard.asterisk.org/r/1229/" class="external-link" rel="nofollow">https://reviewboard.asterisk.org/r/1229/</a></li>
                        <li><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19548" class="external-link" rel="nofollow">https://issues.asterisk.org/jira/browse/ASTERISK-19548</a></li>
                </ul>
                </li>
        </ul>
        </li>
        <li><del>Hangup Handlers (Kobaz) <a href="/wiki/pages/createpage.action?spaceKey=AST&amp;title=Finished%2C+Committed&amp;linkCreation=true&amp;fromPageId=21463921" class="createlink">Finished, Committed</a></del>
        <ul>
                <li><del>(Needs to be updated to use the same gosub parse/exec as PreDial uses)</del></li>
                <li><del><b>Review 2011</b>:</del>
                <ul>
                        <li><del>Goal to commit for Asterisk 11</del></li>
                        <li><a href="https://reviewboard.asterisk.org/r/1230" class="external-link" rel="nofollow">https://reviewboard.asterisk.org/r/1230</a></li>
                </ul>
                </li>
        </ul>
        </li>
        <li>Distributed extension state using SIP (Olle)
        <ul>
                <li>(resources in place, doing it, 1.4 done before Christmas, project pinana)</li>
                <li><b>Review 2011</b>: No changes known. Idle.</li>
        </ul>
        </li>
        <li><del>Manager event docs (Paul Belanger)</del>
        <ul>
                <li><b>Review 2011</b>: <del>Code was created and working, but did not pass code review. Talked about it again a couple of months ago, and some work done.</del>
                <ul>
                        <li><del>About a day or two to get the framework completed</del></li>
                        <li><del>Then just need to insert the documentation into the code and then it could be completed.</del></li>
                </ul>
                </li>
        </ul>
        </li>
        <li>Cross-platform documentation (Ben Klang)
        <ul>
                <li>(caveats for using Asterisk on operating system xyz; pull a PDF of the Wiki documentation into the source, don't forget to include basic installation information, and do it all in .txt - Ben)</li>
                <li><b>Review 2011</b>: Documentation updated for Solaris. Is on the wiki, and just needs to be put into a better location. Leif will help restructure part of the wiki to make the Linux and Solaris documentation (and other operating systems) a better format.</li>
        </ul>
        </li>
        <li><del>Fix libs to optionally init OpenSSL (Digium)</del>
        <ul>
                <li><del>(or use existing tools; sort of a bug)</del></li>
                <li><b>Review 2011</b>: <del>Code on reviewboard, need to confirm that the code solves the problem, confirmed it doesn't cause harm</del>
                <ul>
                        <li><del>Testing required on multiple platforms and libraries</del></li>
                </ul>
                </li>
        </ul>
        </li>
        <li><del>Make ast_channel an opaque type (Digium)</del>
        <ul>
                <li><b>Review 2011</b>: <del>Large project and has not been started. Should not be on P0.</del></li>
        </ul>
        </li>
</ul>


<h5><a name="AstriDevCon2012-%28P1%29"></a>(P1)</h5>

<ul>
        <li><del>Who hung up? (there's a branch, shouldn't take too much time - Olle)</del>
        <ul>
                <li><b>Review 2011</b>: <del>Jason Parker thinks something like that may have been committed a few months ago by Jeffrey C. Ollie. Will need to review to see if anything has actually been done there.</del>
                <ul>
                        <li><del>Kobaz has a 2-3 line code change that simply adds events to Softhangup() and Hangup()</del></li>
                        <li><del>On a failed call, there is no access to the causecodes &#8211; would be powerful if we had access to it</del>
                        <ul>
                                <li><del>Would need to develop some code that created a generic layer to convert between channel drivers (each does it different)</del></li>
                                <li><del>Need to investigate if there are any CEL events already created that will give some of that information</del></li>
                        </ul>
                        </li>
                </ul>
                </li>
        </ul>
        </li>
        <li><del><a href="/wiki/display/AST/Media+Overhaul" title="Media Overhaul">Codecs (SILK, OPUS), Media Negotiation</a></del> (Digium)
        <ul>
                <li><b>Review 2011</b>: <del>Every version of Asterisk had a fixed bitfield, and we needed to be conscious about adding new codecs (limited). Project was to remove that limitation. Reworked how media formats are represented in Asterisk. Integration of codecs like SILK and CELT. Helps with better support for video as well.</del>
                <ul>
                        <li><del>Framework in place</del></li>
                        <li><del>Need to now start using the framework to help add functionality to Asterisk</del></li>
                        <li><del>For Asterisk 11, would be nice to add re-invite support so that clients and re-negotiate resolutions (for video). End-to-end negotiation. Framework in place to do that, just need to add the functionality.</del></li>
                </ul>
                </li>
        </ul>
        </li>
        <li>RTCP (Olle)
        <ul>
                <li>Pinefrog; Work to be done - Ported to trunk, added to CEL</li>
                <li><b>Review 2011</b>: Idle</li>
        </ul>
        </li>
        <li><del>Conferencing that supports a new magic media</del> (Digium)
        <ul>
                <li><b>Review 2011</b>: Completed and in Asterisk 10. Updated ConfBridge() application which was pretty much re-written. Now supports high resolution codecs and voice activity video switching within ConfBridge().</li>
                <li><del>higher sampling rates</del></li>
                <li><b>Review 2011</b>: Part of the codec negotiation framworks.</li>
        </ul>
        </li>
</ul>


<h5><a name="AstriDevCon2012-%28P2%29"></a>(P2)</h5>

<ul>
        <li>Async DNS (TCP DNS and use a good resolver)
        <ul>
                <li><b>Review 2011</b>: No change known.</li>
        </ul>
        </li>
        <li>Named ACLs (deluxepine)
        <ul>
                <li><b>Review 2011</b>: Idle</li>
        </ul>
        </li>
        <li><a href="/wiki/display/AST/SIP+Security+Events" title="SIP Security Events"><del>SIP Security Events</del></a>
        <ul>
                <li><b>Review 2011</b>: <del>Additional work was updated and put into Asterisk 10. Only reported manager authentication events prior to Asterisk 10.</del>
                <ul>
                        <li><del>Prior to Asterisk 10 relaxed policy a bit and added chan_sip security events (only for inbound registration).</del></li>
                        <li><del>Additional work needed throughout Asterisk to add more events.</del></li>
                        <li><del>Added to Asterisk 10. Reference:&nbsp;<a href="https://issues.asterisk.org/jira/browse/ASTERISK-18264" class="external-link" rel="nofollow">https://issues.asterisk.org/jira/browse/ASTERISK-18264</a></del></li>
                </ul>
                </li>
        </ul>
        </li>
        <li><del>Light weight means of holding NAT open in SIP (less complex than current qualify, Consider it done)</del>
        <ul>
                <li><b>Review 2011</b>: <del>No change.</del></li>
        </ul>
        </li>
        <li><del>IPv6 for the restivus</del> (IAX, <del>Jabber/XMPP/Gtalk, Manager, etc.)</del>
        <ul>
                <li><b>Review 2011</b>: <del>No change.</del></li>
        </ul>
        </li>
        <li><del>ConfBridge feature complete with MeetMe</del>
        <ul>
                <li><b>Review 2011</b>: Not entirely true, but very close.</li>
        </ul>
        </li>
        <li>Support sound file containers (matroska)
        <ul>
                <li><b>Review 2011</b>: Suggestion to have (media) files used by Asterisk not just headerless files, so you could actually do things properly, like storing G729 that contains silent suppression information.
                <ul>
                        <li>No change in Asterisk, but has been getting worked on for Asterisk SCF. Very complicated. Matroska is just a framework. Once stable for Asterisk SCF, we can consider building it for Asterisk as well.</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>RTMP client channel driver
        <ul>
                <li><b>Review 2011</b>: No change.</li>
        </ul>
        </li>
</ul>


<h5><a name="AstriDevCon2012-%28P3%29"></a>(P3)</h5>

<ul>
        <li><del>Unique identifier for filtering log data to a call</del>
        <ul>
                <li><del>(finishing what was already begun w/ Clod's project, CLI filtering; should take a look at what Stephan from Unlimitel.ca's created)</del></li>
                <li><b>Review 2011</b>: <del>Claude's patch was only for CLI filtering.</del>
                <ul>
                        <li><del>Discussion about in the logger.conf to change the configuration so that the 'core set verbose 5' (or debug, etc) that it does not affect all the configuration files when you just want to change the verbosity on the console. (<a href="https://issues.asterisk.org/jira/browse/ASTERISK-18352" class="external-link" rel="nofollow">https://issues.asterisk.org/jira/browse/ASTERISK-18352</a>)</del></li>
                        <li>Configuration could be under a header, and then create your own filters for channels, and what verbosity,debug,etc. is output to a log file and console per file</li>
                        <li><b>Take Away</b>: Need to have a discussion of what people would want and need (requirements gathering), and then we can investigate how difficult it would be to implement, and what the order of implementation.</li>
                </ul>
                </li>
        </ul>
        </li>
</ul>


<h2><a name="AstriDevCon2012-%28P4%2CSimon%27sfeatures%29"></a>(P4, Simon's features)</h2>

<ul>
        <li>Multiple SIP Sockets
        <ul>
                <li>(Listen on multiple ports or on multiple interfaces, but not all; also set binding for RTP)...alternate idea / solution would be to make Asterisk capable of loading multiple SIP profiles, it might be easier</li>
                <li><b>Review 2011</b>: No change.</li>
        </ul>
        </li>
        <li>Multiple DNS results
        <ul>
                <li>(need to be able to traverse a list of DNS results, rather than just getting back one result)</li>
                <li><b>Review 2011</b>: Some work has been done, but chan_sip (or others) has not been enhanced to take advantage of that.</li>
        </ul>
        </li>
        <li><del>ICE-lite</del>
        <ul>
                <li><del>(no code, responding correctly to ICE connectivity checks (STUN multiplexed on the RTP port) and understanding the SDP); it makes NAT traversal work for clients that do ICE; also addressed lightweight NAT refresh)</del></li>
                <li><b>Review 2011</b>: <del>No change or progress. No one has tried to work on it. Appears to be very little deployment.</del></li>
        </ul>
        </li>
</ul>


<h2><a name="AstriDevCon2012-%28P5%29"></a>(P5)</h2>

<ul>
        <li><del>AstDB replacement</del> SQLite
        <ul>
                <li><b>Review 2011</b>: <del>Have initial support implemented for Asterisk 10. Backend is being used. Terry is continuing to work on additional functionality in trunk.</del></li>
        </ul>
        </li>
        <li>SIP identity
        <ul>
                <li>(on reviewboard; needs to be forward ported; important for organizations w/ federated identities; a requirement for DTLS SRTP; not widely deployed)</li>
                <li><b>Review 2011</b>: No change.\</li>
        </ul>
        </li>
</ul>


<h2><a name="AstriDevCon2012-%28P6%29"></a>(P6)</h2>

<ul>
        <li>Structured identifiers for errors
        <ul>
                <li>(tag an error message with a unique string, specific to the error message and where it came from; should be alphanumeric to keep them short)</li>
                <li><b>Review 2011</b>: No change. Nice to have feature, but someone needs to take it on as a personal project. Essentially building a knowledge base. Would have to research what a code would look like, then pick 10, start with those, and continue to expand over time.</li>
        </ul>
        </li>
        <li>AMI SetVar, Context limits
        <ul>
                <li>(there's code already...Olle has it)</li>
                <li><b>Review 2011</b>: Idle.</li>
        </ul>
        </li>
        <li><del>AMI filters on demand</del>
        <ul>
                <li><b>Review 2011</b>: Created by Kobaz and is part of Asterisk 10. Allows you to add filters per session and not globally.</li>
        </ul>
        </li>
        <li><del>DTLS SRTP</del>
        <ul>
                <li><del>(not likely to be widely deployed in the next 12 months)</del></li>
                <li><b>Review 2011</b>: <del>No progress has been made. Only one library has it, and is not very mature. Not really up to the Asterisk project to solve the problem. Future consideration.</del></li>
        </ul>
        </li>
</ul>


<h2><a name="AstriDevCon2012-%28P7%2Cnotkobaz%29"></a>(P7, not kobaz)</h2>

<ul>
        <li>Write a Specification for AMI (not kobaz)
        <ul>
                <li><b>Review 2011</b>: Goes hand-in-hand with the event documentation. Make it so that we do no break AMI versions &#8211; no changes within the same version. We can do this since we do have the ability to version the AMI commands.</li>
        </ul>
        </li>
        <li>Multiple TLS server certs
        <ul>
                <li>(1 socket, requires support by OpenSSL; simpler to implement than multiple SIP profiles; don't know if any clients use it yet; needs more research)</li>
                <li><b>Review 2011</b>: Currently no SIP end points that support the mechanism, and some discussion on SIP lists say that an RFC should be written. Not very difficult to do on the server side of things. Could be done between Asterisk to Asterisk since we'd implement both the client and the server.</li>
        </ul>
        </li>
</ul>


<h2><a name="AstriDevCon2012-%28P8%2Cnicetohave%29"></a>(P8, nice to have)</h2>

<ul>
        <li>Make resource modules that talk to DBs attempt reconnects
        <ul>
                <li><b>Review 2011</b>: Added reconnect support to res_config_postgres by Kobaz. Already part of res_odbc. Other native drivers should have it added. Could abstract the reconnection support so that we don't duplicate code. Some work done, more work still possible.</li>
        </ul>
        </li>
        <li>Apple's new file streaming format, derived from .m3u
        <ul>
                <li><b>Review 2011</b>: No changes known.</li>
        </ul>
        </li>
        <li><del>Make MixMonitor and Monitor feature compatible</del>
        <ul>
                <li><b>Review 2011</b>: Done in Asterisk 10 (per David Vossel)
                <ul>
                        <li>Some discussion should be done to move res_monitor to 'extended' or 'deprecated' support level. MixMonitor() likely is now feature complete for Monitor(), especially since MixMonitor() has been implemented in a more friendly manner (in terms of I/O and threading).</li>
                </ul>
                </li>
        </ul>
        </li>
</ul>



<h2><a name="AstriDevCon2012-%28P%3F%2CResearchRequired%29"></a>(P?, Research Required)</h2>

<ul>
        <li>New app_queue (as if?  no, seriously? talking about this scares Russell)
        <ul>
                <li><b>Review 2011</b>: Suggested by Kevin that we could have a single box that handles no media, and just does the signalling. Since the agents can be distributed with distributed device state, all registrations would be remote from the queue server. There needs to be an atomic server that would handle the decision making.
                <ul>
                        <li>Gregory (irroot) &#8211; additional skills based routing code and features.</li>
                </ul>
                </li>
        </ul>
        </li>
        <li>Identify and fix all bugs in AMI
        <ul>
                <li><b>Review 2011</b>: In progress.</li>
        </ul>
        </li>
        <li>Broadsoft or Dialog Info shared line appearance (SLA) support
        <ul>
                <li>(Tabled for later discussion)</li>
                <li><b>Review 2011</b>: Licensing issues. Code written using documentation that is marked as confidential. No situation change. Unable to merge code.</li>
        </ul>
        </li>
        <li><del>LDAP from within the dialplan</del>
        <ul>
                <li>(we may already have it, needs research to see if the realtime driver does what's desired - Leif)</li>
                <li><b>Review 2011</b>: Yes you can already do this using dialplan functions. REALTIME_FIELD and REALTIME_HASH, etc..</li>
        </ul>
        </li>
        <li>Device state normalization
        <ul>
                <li><b>Review 2011</b>: Unknown what this means. Could be different channel drivers report different types of information. No change.</li>
        </ul>
        </li>
        <li>Anything DB over HTTP(s) with failover handling
        <ul>
                <li><b>Review 2011</b>: Unknown what this is.</li>
        </ul>
        </li>
        <li>Use a channel as a MoH Source
        <ul>
                <li><b>Review 2011</b>: Still a neat idea.</li>
        </ul>
        </li>
        <li>Kill Masquerades
        <ul>
                <li><b>Review 2011</b>: With fire&#33; (Kevin)</li>
        </ul>
        </li>
        <li>Bridging thread pool
        <ul>
                <li><b>Review 2011</b>: If you have 200 calls up, you have 200 threads up just polling, when you could just have 10 that each handle 20 bridges, and then you reduce context switching. (That's the idea.) Code not likely flexible enough to do this. Could be done... (Kevin)</li>
        </ul>
        </li>
        <li>Threadify chan_sip
        <ul>
                <li><b>Review 2011</b>: This would cause an entire re-write on chan_sip, so this is not possible unless a new channel driver were written.</li>
        </ul>
        </li>
        <li>Export ISDN ROSE information up to Asterisk channels
        <ul>
                <li><b>Review 2011</b>: Not much was really discussed on this as there has not been much requirement for it.</li>
        </ul>
        </li>
</ul>


<h3><a name="AstriDevCon2012-ProjectsDiscussed"></a>Projects Discussed</h3>

<ul>
        <li>Group variables (Kobaz)
        <ul>
                <li>(on review board, in progress)</li>
                <li>Code written and then re-written last year; has been in production for some time.</li>
                <li>Kobaz to take a look at getting the review refreshed
                <ul>
                        <li><a href="http://reviewboard.asterisk.org/r/464" class="external-link" rel="nofollow">http://reviewboard.asterisk.org/r/464</a></li>
                        <li><a href="https://issues.asterisk.org/jira/browse/ASTERISK-15439" class="external-link" rel="nofollow">https://issues.asterisk.org/jira/browse/ASTERISK-15439</a></li>
                </ul>
                </li>
        </ul>
        </li>
        <li>RTCP (Olle)
        <ul>
                <li>Pinefrog; Work to be done - Ported to trunk, added to CEL</li>
                <li>Mentioned that this would be really nice to have.</li>
        </ul>
        </li>
        <li>Async DNS (TCP DNS and use a good resolver)
        <ul>
                <li>Many people mentioned that having asynchronous DNS and supporting multpile srv records would resolve a lot of issues with Asterisk behind SIP proxies.  This would be a good project for Asterisk 12.</li>
        </ul>
        </li>
        <li>Named ACLs (deluxepine)
        <ul>
                <li>Named ACLs committed for Asterisk 11; however, this did not fully capture all of the use cases of Olle's deluxepine branch.</li>
                <li>For folks interested in security, this may be worth looking into.</li>
        </ul>
        </li>
        <li>IPv6 Support for chan_iax2</li>
        <li>Call-ID Logging Filtering
        <ul>
                <li>Make use of the call-id that is tagged with channels through other mechanisms (CLI filtering, etc.)</li>
        </ul>
        </li>
</ul>


<h1><a name="AstriDevCon2012-AgreedUponGoals"></a>Agreed Upon Goals</h1>

<p>After much discussion, the attendees agreed that two broad areas needed to be addressed for Asterisk 12.  While many other projects should also receive attention, these two goals should be the focus of the Asterisk developer community.  These are:</p>
<ul>
        <li>Overhaul the SIP functionality in Asterisk.</li>
        <li>Make the APIs exposed by Asterisk consistent and easier to build applications on top of.</li>
</ul>

    </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/AstriDevCon+2012">View Online</a>
        |
        <a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=21463921&revisedVersion=8&originalVersion=7">View Changes</a>
                |
        <a href="https://wiki.asterisk.org/wiki/display/AST/AstriDevCon+2012?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>