[asterisk-dev] SIP Stack Research

Joshua Colp jcolp at digium.com
Thu Nov 8 06:41:24 CST 2012


Hola,

(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 
https://wiki.asterisk.org/wiki/display/AST/SIP+Stack+Research

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:

1. pjsip
2. Resiprocate
3. Sofia-sip

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.

Cheers,

-- 
Joshua Colp
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 mailing list