[asterisk-dev] chan_sip marked as Extended support in Asterisk 13+
Matthew Jordan
mjordan at digium.com
Fri Aug 8 12:54:16 CDT 2014
Hey everyone!
As you may have noticed, we've branched Asterisk 13 and will soon be
releasing the first beta release. Asterisk 13 is the next Long Term
Support (LTS) release of Asterisk, building heavily on the new
architecture and features developed in Asterisk 12. One of those new
features is, of course, the PJSIP stack in Asterisk. Today, we decided
to make a big commitment to the ongoing development of the PJSIP stack
in Asterisk by marking chan_sip as Extended support.
What does being in Extended support mean?
First, Extended support modules are still supported in Asterisk - just
by the community as a whole, and not by Digium specifically. A large
number of modules are in Extended support, and are actively supported
by members of the Asterisk Developer Community. When security issues
are found in Extended support modules, all developers - including
those at Digium - focus on fixing them. When architectural changes
affect Extended support modules, all developers - including those at
Digium - do their best to maintain Extended support modules. Some
developers at Digium also actively participate in maintaining and
developing Extended support modules, albeit usually in their free
time. However, such modules are not focused on by Digium developers,
and issues reported against Extended support modules are generally
handled by the community.
That being said, chan_sip is Core supported in Asterisk 1.8, Asterisk
11, and Asterisk 12. Bugs reported against chan_sip in versions of
Asterisk derived from those branches will continue to be triaged and
handled by Digium as well as by the overall developer community. All
fixes for bugs found in chan_sip will continue to be merged into all
supported branches. While chan_sip may be in Extended support in
Asterisk 13, this does not change the support obligation that Digium
has with chan_sip in those branches where it is marked as Core
supported. As such, the bug-fix policy for chan_sip is the same for
Asterisk 1.8, 11, and 12 while those branches remain under active
bug-fix maintenance.
However, it does mean that when Asterisk 11 enters into security fix
only mode in 2016 [1], developers at Digium will no longer focus on
fixing bugs in chan_sip.
So why mark chan_sip as Extended support now?
One of the major motivating factors for replacing chan_sip was the
support burden we faced with that channel driver. Due to its
architecture (or lack thereof), changes in chan_sip often have
unforeseen negative repercussions. Fixing a bug in chan_sip often
creates a new one. Adding a new feature is difficult, particularly if
that feature interacts with the SIP protocol at a low level. And,
while the addition of over 100 unit and functional tests has helped
tremendously, chan_sip does its best to resist change. I went into
more detail on the motivation behind moving away from chan_sip in a No
Jitter blog post [3]; without rehashing the details here, it suffices
to say that despite the best efforts of many smart, talented
developers, chan_sip sucks a lot of time and energy from those who try
to maintain it.
The Asterisk team at Digium consists of approximately ten developers
and a community support manager (Hi Rusty!). We always attempt to
focus our development efforts on the parts of Asterisk that give the
most benefit for the entire Asterisk community. In Asterisk 12, this
involved writing not just a new SIP stack, but also substantial
development in the Asterisk core and its interfaces. Focussing on
improving the fundamental architecture of Asterisk has great long term
benefits for the community, but it does come at a cost. To make these
kinds of architectural improvements requires a large investment of
time and energy. While we were able to do this in Asterisk 12, we do
not feel we can continue to make these kinds of investments while
indefinitely supporting chan_sip at the same level as the PJSIP stack.
There's no question that we will continue to support chan_sip for the
next two years, but marking chan_sip as Extended support now provides
some timeframe under which we can plan to devote more resources to
making bigger and better changes in Asterisk.
So, does this mean that chan_pjsip has the same level of functionality
as chan_sip?
No. There are things that chan_sip can do that chan_pjsip cannot do
currently (CCSS, for example). There may always be some features in
chan_sip that are not replicated in chan_pjsip - and that's okay. One
of the great things about open source software is that if a feature is
truly needed, someone will write a patch for it!
So should I plan to move everything to chan_pjsip now?
We have gotten some great feedback on chan_pjsip (thanks SchmoozeCom
and FreePBX!), and are actively fixing bugs, addressing
interoperability concerns, and adding new features. We feel that
chan_pjsip is in great shape and will work for many deployments and
scenarios. At the same time, it has not been deployed as widely as
chan_sip, and so there may be interoperability problems that will
arise. We'll do our best to respond to those issues and get them
fixed.
Regardless of any criticism that may be levied against chan_sip, it
has one obvious advantage: it has been around a long time and a lot of
very talented developers have put countless hours into it. As a
result, it has accumulated years of interoperability patches and
fixes, which has made it able to work with a large variety of
equipment, phones, ITSPs, and other SIP flavored things that I can't
even predict. The benefit of having so much energy devoted to it
cannot be underestimated. This is why we worked hard to make sure that
both chan_sip and chan_pjsip can operate together. If, while using
chan_pjsip, an interoperability bug is discovered, a user of Asterisk
has the option to fall back to chan_sip while the developers work on a
fix. The support status of chan_sip is independent of this scenario
and is merely a reflection of where we, as developers at Digium who
spend our careers working on Asterisk, want to focus our effort and
time.
Hopefully, this e-mail provides some transparency into why we made
this decision. Asterisk 13 is the first LTS release built on the
architecture and PJSIP stack introduced in Asterisk 12, and as such,
we are focused on making sure that users of Asterisk have the best
experience possible. We would not have gotten here without the hard
work of everyone in the community: so as always, thank you for your
continued support of the Asterisk project!
Matt
[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
[2] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
[3] http://www.nojitter.com/post/240164722/asterisk-moving-on-from-chan_sip
--
Matthew Jordan
Digium, Inc. | Engineering Manager
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org
More information about the asterisk-dev
mailing list