<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/SIP+Stack+Research">SIP Stack Research</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://wiki.asterisk.org/wiki/display/~jcolp">Joshua Colp</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" >h5. Feature richness <br> <br></td></tr>
            <tr><td class="diff-changed-lines" >Sofia-SIP has kept up with implementing RFCs as they have been created, covering a wide range. A complete RFC list is available at http://sofia-sip.sourceforge.net/refdocs/sofia_sip_conformance.html and included is a brief detail of how they can be accomplished using what is available. An SDP parser, generator, and answer/offer API is available that is very straight forward to use. Numerous transports exist including UDP, TCP, TLS, DTLS, and SCTP. Some transports are considered experimental. IPv6 is supported everywhere. <span class="diff-added-words"style="background-color: #dfd;">Following my community comments though there have been no feature additions in recent times.</span> <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h5. Interoperability <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h3><a name="SIPStackResearch-Itemstoresearch"></a>Items to research</h3>

<ul>
        <li><h5><a name="SIPStackResearch-Community"></a>Community</h5></li>
</ul>


<ul>
        <li>Is the community active?</li>
        <li>Are they continually adding new functionality and fixing bugs?</li>
        <li>Can we get help from the community easily if need be?</li>
        <li>How often do they release new versions?</li>
        <li>Is there an easily accessible issue tracker?</li>
</ul>


<ul>
        <li><h5><a name="SIPStackResearch-Easeofuse"></a>Ease of use</h5></li>
</ul>


<ul>
        <li>Can we easily interface with the API?</li>
        <li>Is it easy to add new things?</li>
        <li>If we distribute it, is it easy to work into our build system?</li>
        <li>Can a beginner pick up using it quickly?</li>
        <li>Can additions be made to the stack outside of it?</li>
</ul>


<ul>
        <li><h5><a name="SIPStackResearch-Featurerichness"></a>Feature richness</h5></li>
</ul>


<ul>
        <li>Does it have the features our customers will want?</li>
        <li>Are new features being developed based on new RFCs?</li>
        <li>Do they include an SDP parser and generator?</li>
        <li>Do they implement the SDP offer/answer negotiation for us?</li>
        <li>Transport: UDP, TCP, TLS, IPv6</li>
</ul>


<ul>
        <li><h5><a name="SIPStackResearch-Interoperability"></a>Interoperability</h5></li>
</ul>


<ul>
        <li>Are they widely used by many companies?</li>
        <li>Are there many reports of interop issues?</li>
</ul>


<ul>
        <li><h5><a name="SIPStackResearch-Documentation"></a>Documentation</h5></li>
</ul>


<ul>
        <li>Are the APIs well documented?</li>
        <li>Are examples available?</li>
</ul>


<h4><a name="SIPStackResearch-Sofiasip"></a>Sofia-sip</h4>

<p>URL: <a href="http://sofia-sip.sourceforge.net/" class="external-link" rel="nofollow">http://sofia-sip.sourceforge.net/</a><br/>
License: <a href="http://www.gnu.org/copyleft/lesser.html" class="external-link" rel="nofollow">LGPL</a><br/>
Language: C</p>

<h5><a name="SIPStackResearch-Background"></a>Background</h5>

<p>Sofia-sip was originally created by Nokia and continues to be primarily developed by them. Outside community members have contributed patches back to them.</p>

<h5><a name="SIPStackResearch-Community"></a>Community</h5>

<p>Mailing list is available at <a href="https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel" class="external-link" rel="nofollow">https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel</a> for development and while it does see some emails the amount of traffic has dwindled considerably in recent times. This could either mean that the project has reached a point where it fulfills all the needs for everyone in a way that doesn't require any questions asked, the number of users of sofia-sip is not that large, or that noone is considering sofia-sip these days. Unfortunately this also means that the number of users on the development mailing list answering questions has gone down quite a bit as well, with questions in recent times receiving no answers. Issues reported on the issue tracker on sourceforge have gone unhandled and it is difficult to find the current repository for the project. The git repositories on sourceforge and gitorious both show the last commit to master being from ~17 months ago and the site sofia-sip.org where the website says a Darcs repository should be is unreachable.</p>

<h5><a name="SIPStackResearch-Easeofuse"></a>Ease of use</h5>

<p>The APIs provided by Sofia-SIP are straight forward and well documented, they provide everything required to write many different SIP applications such as a B2BUA. The stack can be extended some by interacting with the transaction layer and user agent layer to add additional functionality. An autoconf based build system is provided that can be easily worked with in our own build system.  </p>

<h5><a name="SIPStackResearch-Featurerichness"></a>Feature richness</h5>

<p>Sofia-SIP has kept up with implementing RFCs as they have been created, covering a wide range. A complete RFC list is available at <a href="http://sofia-sip.sourceforge.net/refdocs/sofia_sip_conformance.html" class="external-link" rel="nofollow">http://sofia-sip.sourceforge.net/refdocs/sofia_sip_conformance.html</a> and included is a brief detail of how they can be accomplished using what is available. An SDP parser, generator, and answer/offer API is available that is very straight forward to use. Numerous transports exist including UDP, TCP, TLS, DTLS, and SCTP. Some transports are considered experimental. IPv6 is supported everywhere. Following my community comments though there have been no feature additions in recent times.</p>

<h5><a name="SIPStackResearch-Interoperability"></a>Interoperability</h5>

<p>The complete list of projects and products using Sofia-SIP is unknown but a small list is available at <a href="http://gitorious.org/sofia-sip/pages/SofiaApplications" class="external-link" rel="nofollow">http://gitorious.org/sofia-sip/pages/SofiaApplications</a> with the most prominent being FreeSWITCH. Research shows that interoperability is quite well, with the stack having been tested against a myriad of other SIP stacks over its entire lifetime both in real life applications and at SIPit events.</p>

<h5><a name="SIPStackResearch-Documentation"></a>Documentation</h5>

<p>Documentation is available at <a href="http://sofia-sip.sourceforge.net/development.html" class="external-link" rel="nofollow">http://sofia-sip.sourceforge.net/development.html</a> for the various modules provided by Sofia-SIP. Each module includes a general description with details and also detailed information at the individual function level. What is missing though is a document showing the complete picture view for using the stack. Without this it can be cumbersome for a beginner to use the stack or make changes. After considerable searching though I was able to find a small softphone CLI client that uses Sofia-SIP which could be used as a more detailed example. This can be acquired at <a href="http://gitorious.org/sofia-sip/sofsip-cli" class="external-link" rel="nofollow">http://gitorious.org/sofia-sip/sofsip-cli</a></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/SIP+Stack+Research">View Online</a>
        |
        <a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=21464254&revisedVersion=2&originalVersion=1">View Changes</a>
                |
        <a href="https://wiki.asterisk.org/wiki/display/AST/SIP+Stack+Research?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>