[asterisk-dev] SIP Stack Research
jcolp at digium.com
Thu Nov 8 06:41:24 CST 2012
(Apologies for the semi-long email)
As Mark mentioned in his earlier email I've been working on researching
viable SIP stacks for the new SIP channel driver. I've scoured the far
reaches of the internet looking for new stacks that may have come into
existence since my previous Asterisk SCF research but in the end the
three that came to the top were Sofia-sip, Resiprocate, and pjsip.
You can find my research on them at
I've detailed what I looked at and the impressions I got for each. This
is by no means a deep deep deep analysis as that would take considerably
more time. What it does cover though is the community for each project,
how easy it is to use, general impression on features, interoperability,
and (in my opinion) most importantly documentation.
Through doing all of this research I have learned that there is no
perfect SIP stack, but all of the ones I mentioned will do what we need.
No matter which one you choose though you are effectively giving up
something you could have gotten with another one so we have to find a
balance. I think our balance should be towards a stack that has great
documentation, is easy to use (and expand), provides the features we
want, and still has an active community.
After examining the three options I've ordered them as follows according
to my personal opinion against the above:
But Josh, why did you order it as such?!?
Good question, Josh.
The documentation for pjsip is great and makes it easy to learn exactly
how to use it and what is going on. The general architecture of it makes
extending it *extremely* easy and you can inject your own modules at
many different layers. The project itself is still being actively
developed and maintained. The time required to get up to speed and use
pjsip is also very low since there are people in the Asterisk community
who are familiar with it and have used it.
Resiprocate came second because the documentation is not as complete or
expansive as pjsip, 'nor is the higher level (APIs that reduce the
amount of code we have to write) feature count. It would also be more
difficult to use it with Asterisk as it is C++ based, and this would
also decrease the number of people who could help with that integration.
Sofia-sip came last because it did not have as good of documentation as
resiprocate or pjsip and the project itself seems to have become
stagnant. It also lacks as many higher level features as pjsip.
The purpose of this email is to bring about discussion on this subject
as a whole and try to reach a conclusion on which SIP stack would be the
best in the eyes of the community.
Thanks for reading this long email and I look forward to the discussion.
Digium, Inc. | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: www.digium.com & www.asterisk.org
More information about the asterisk-dev