[asterisk-dev] Viva Chan_Sip, may it rest in peace

James Finstrom jfinstrom at gmail.com
Tue Oct 4 19:46:52 CDT 2016


So the discussion of deprecating chan_sip came up at the devcon this year
and it caused a bit of a stir. The end result was the need for broader
discussion with a wider audience.  So let's discuss.

Currently, Asterisk is running dual sip stacks. The argument is that to
deprecate PJSIP there must be broader adoption. There is currently nothing
motivating adoption but much slowing it.

What are some of the hurdles to adoption?
1. Apathy.  If it ain't broke don't fix it. Many would argue chan_sip is
broke but it is the "devil you know". A decade of documentation and a broad
user base allows people to be pretty forgiving of flaws. Almost any issue
has some sort of work around or generally accepted idea of I guess we can
live with it.

2. One Ring to rule them all!!  PJSIP requires up to 6 sections of
configuration. Once you dig in, this method makes sense. But at a glance,
you have just multiplied the workload to  6 times that of chan_sip's single
blob config. Though it is not really 600% more effort it may be enough to
scare some away

3. Mo Adoption, Mo problems!
The only way to clean up all the edge cases and weird bugs is to hit them
in the first place.  Dogfooding only gets you so far.  You can make
anything working clean in a single environment and single use case. But
what happens when people start flinging wrenches. Things break. 100
wrenches may break 10 things. 1000 wrenches may break 100 things.  In the
ladder case, you have 100 people saying pjsip sucks, and pjsip is crap. As
with all things the 900 assume all is good and move on with their lives
telling no one of their glory. So you have 10% of the voices running
unopposed. You fix the 100 issues and that is great but those 100 people
have gone back to the comfort of chan_sip and are stuck at point 1.

Escaping the cycle.

So how do we dredge through this mess and get high adoption?

You have to make #1 not an option.  This means potentially breaking the
universe. This is why I think there is a tendency to be gunshy. No one
wants to be the guy who broke the universe.  But breaking the universe gets
us to #3 without falling back into #1.   Once The universe breaks and we
are in #3 many of the edges will be found and fixed. Suddenly PJSIP becomes
usable in most, if not all situations. The issues in #2 will automatically
resolve as there is more information and it becomes the "accepted way" of
doing things.  The old dogs will have to refactor how they do configuration
but I am confident once they do a few they will figure out the bark is
bigger than the bite.

tl;dr to get adoption you have to force it.  There will be blood, but
nothing that can't be cleaned up with a little bleach and some elbow grease

-- 
James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20161004/71b91854/attachment.html>


More information about the asterisk-dev mailing list