<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Asterisk 1.6: Dinosaur or Ostrich&#8230; It Really Doesn&#8217;t Matter	</title>
	<atom:link href="https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/feed/" rel="self" type="application/rss+xml" />
	<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/</link>
	<description>Ward Mundy&#039;s Technobabblelog</description>
	<lastBuildDate>Wed, 09 Dec 2015 13:02:13 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>
		By: Baylink		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-10485</link>

		<dc:creator><![CDATA[Baylink]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 21:44:54 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-10485</guid>

					<description><![CDATA[And one final observation, about milliwatt.

If they changed it *to* 1004hz at 0dbm/600ohms, then on that particular point I have to grant them absolution (though yes, making the old version available would probably be nice...)

1004hz at 0dbm has been the standard milliwatt test tone since Mark Spencer&#039;s *parents* were in diapers.

An 1940 IRE publication is the first reference I can find to milliwatt tone, but I can&#039;t confirm it specifies 1004, and based on my memory of *why they picked 1004*, it wouldn&#039;t.

I&#039;m trying to source it now, but as I recall it was to put it *far enough away* from a submultiple of the digital sampling frequency that early, wobbly, PCM circuits would be less likely to screw it up.

[...]

Apparently, the problem was that when Bell deployed the D-1 PCM channelbank in the early 60s, they discovered that digitally generated 1khz tones would translate to a pattern on the PCM side that looked too much like the framing pattern, and dumped the digital link.

Digital Telephony by Bellamy appears to have a citation on this, but Scribd is predictably worthless, and Amazon wants me to log in.  I have a copy at home; I&#039;ll dig up a citation tonight.]]></description>
			<content:encoded><![CDATA[<p>And one final observation, about milliwatt.</p>
<p>If they changed it *to* 1004hz at 0dbm/600ohms, then on that particular point I have to grant them absolution (though yes, making the old version available would probably be nice&#8230;)</p>
<p>1004hz at 0dbm has been the standard milliwatt test tone since Mark Spencer&#8217;s *parents* were in diapers.</p>
<p>An 1940 IRE publication is the first reference I can find to milliwatt tone, but I can&#8217;t confirm it specifies 1004, and based on my memory of *why they picked 1004*, it wouldn&#8217;t.</p>
<p>I&#8217;m trying to source it now, but as I recall it was to put it *far enough away* from a submultiple of the digital sampling frequency that early, wobbly, PCM circuits would be less likely to screw it up.</p>
<p>[&#8230;]</p>
<p>Apparently, the problem was that when Bell deployed the D-1 PCM channelbank in the early 60s, they discovered that digitally generated 1khz tones would translate to a pattern on the PCM side that looked too much like the framing pattern, and dumped the digital link.</p>
<p>Digital Telephony by Bellamy appears to have a citation on this, but Scribd is predictably worthless, and Amazon wants me to log in.  I have a copy at home; I&#8217;ll dig up a citation tonight.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Baylink		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-10483</link>

		<dc:creator><![CDATA[Baylink]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 21:08:56 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-10483</guid>

					<description><![CDATA[And, a followup I meant to include but forgot seems quite on point here as well:

Asterisk is not a PBX.

You heard me.  

It&#039;s a *toolkit* for building PBXes.

Just like XML is a *toolkit* for building data-transport-wrapper languages (note; *not* -storage :-)

If you&#039;re going to be a toolset, you have a much different and more stringent set of rules to follow, and these are the rules that Ward&#039;s complaining about Digium breaking.

I&#039;ve danced this exact same dance with a DBMS vendor intermittently for the last 20 years, with the same justifications on their side and results on mine.]]></description>
			<content:encoded><![CDATA[<p>And, a followup I meant to include but forgot seems quite on point here as well:</p>
<p>Asterisk is not a PBX.</p>
<p>You heard me.  </p>
<p>It&#8217;s a *toolkit* for building PBXes.</p>
<p>Just like XML is a *toolkit* for building data-transport-wrapper languages (note; *not* -storage 🙂</p>
<p>If you&#8217;re going to be a toolset, you have a much different and more stringent set of rules to follow, and these are the rules that Ward&#8217;s complaining about Digium breaking.</p>
<p>I&#8217;ve danced this exact same dance with a DBMS vendor intermittently for the last 20 years, with the same justifications on their side and results on mine.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Baylink		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-10482</link>

		<dc:creator><![CDATA[Baylink]]></dc:creator>
		<pubDate>Mon, 18 Jan 2010 20:04:37 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-10482</guid>

					<description><![CDATA[I do feel the need to correct everyone on one point here.

There are long-known, time-honored semantics for version numbering, and going from 1.2 to 1.4 being called a &quot;major version upgrade&quot; is not one of them.

1.4 to 2.0, yes.

That said, I concur with Ward&#039;s point of view, which is, approximately &quot;it is, indeed, incumbent on Digium not to break the programmatic interfaces to Asterisk without exceptionally good reason, and that&#039;s standard Release Configuration Management best practice, and they should know this.  IE: Mark and Jared are wrong, and Ward&#039;s right.]]></description>
			<content:encoded><![CDATA[<p>I do feel the need to correct everyone on one point here.</p>
<p>There are long-known, time-honored semantics for version numbering, and going from 1.2 to 1.4 being called a "major version upgrade" is not one of them.</p>
<p>1.4 to 2.0, yes.</p>
<p>That said, I concur with Ward&#8217;s point of view, which is, approximately "it is, indeed, incumbent on Digium not to break the programmatic interfaces to Asterisk without exceptionally good reason, and that&#8217;s standard Release Configuration Management best practice, and they should know this.  IE: Mark and Jared are wrong, and Ward&#8217;s right.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: olivier1010		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3435</link>

		<dc:creator><![CDATA[olivier1010]]></dc:creator>
		<pubDate>Wed, 09 Jul 2008 23:07:39 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3435</guid>

					<description><![CDATA[All the comments here are from great interest.

I will just add that designing and programming a telephony software is not like writing a database or an HTML engine. It&#039;s a totaly different world.

Telephony switchs are often kept during 10 years in a company. In europe it is more often 15 or 20 years.

In this regard, it is very important to keep compatibility during at least 2 or 3 versions, to allow for clients to have a good migration path for evolutions. Digium program Asterisk like a game. More, it&#039;s like they were playing with it.

So please Digium, stop to program Asterisk like a data software or a game. Telephony is more than that, it needs a lot more design smartness, a lot more reliability and serious, and a lot more compatibilty through versioning.

I would prefer to have an asterisk 1.6 with three times less new functions, but perfectly reliable and with all the basic functions we really have and need on a traditionnal PABX, instead of having chat, voice recognition, and advanced stuff only necessary for advertising and marketers. Asterisk is not yet reliable enough neither powerfull enough to target big telephone switch replacement. So let&#039;s give him the basic functions and the reliabilty it does need to really become the futur of telephony : the telephony we need and we can find inside 90% of the companies.
The linux kernel have some very interesting improvement in recent version 2.6.x. regarding multitasking and near realtime. Asterisk seems to totaly ignore them and concentrate almost only on new telephony functions even if some efforts have been made.

If the world telephony network is today working, this is because big standards have been accepted by all major telcom providers.

Asterisk need to follow this road or it will dye.

I&#039;m still using asterisk 1.2 on production systems because later versions are like a moving target, it is very time consumming to learn, test and implement them on a production system. For example they broke very usefull functions we have inside FreePBX and it is not permisible. Who is using in the real world asterisk alone ? Most users are using it with FreePBX through Trixbox or other similar distributions.
Dispite their efforts, the FreePBX team didn&#039;t success in fully adapting Asterisk 1.4 after one year, for advanced dialplan functions. We still have issues. This is not good for such a big project, with all the support and bug report it does receive from experts from all around the world.

I realy think that Digium should listen them a bit more, or really open the project instead of saying &quot;we are the best and because of this we can decide wich modifications are needed when they are needed&quot;.

I will give an exemple of a very bad code change :

Inside asterisk 1.4.21, a new milliwatt application has appeared. It is now 1004 Hz instead of 1000 Hz, and the audio level is now 10 dB lower. How many of you were informed of this change ?

This is now the default milliwatt application.  

First, the 1004 Hz frequency produce a lot of distorsion because the sampling is 8 KHz. Second, using a new reference audio level break all audio test applications relying on the old reference level.

In my test lab, watching our spetral analyser, i was very surprised to see such a low level and such a high distorsion on a G711 link called from a good POTS line. I thought at  first that our VoIP provider had changed their setup and droped down their quality level !! Calling our Asterisk server from another provider did show the same signal, so i finally discovered the Asterisk milliwatt change !

This is a perfect sample of a bad evolution. Changing milliwatt is a very very dangerous option for all providers and users using this application to control links. Imagine a Lab doing certification tests, having to connect to different providers with different milliwatt applications... What a disaster in their results...
There should be at least a big warning in the install process, and the older milliwatt should be compiled by default, not the new one.

This been said, let&#039;s make a new telephony world all together with Asterisk or a forked project if needed (Asterisk 1.6 could be a good start template), and please let&#039;s help to remove progressively all the old traditional telephony stuf and providers who are causing lots of headache and interconnection problems. Asterisk, Full IP, and ENUM is the futur of Telephony ! Not Asterisk alone.

Olivier]]></description>
			<content:encoded><![CDATA[<p>All the comments here are from great interest.</p>
<p>I will just add that designing and programming a telephony software is not like writing a database or an HTML engine. It&#8217;s a totaly different world.</p>
<p>Telephony switchs are often kept during 10 years in a company. In europe it is more often 15 or 20 years.</p>
<p>In this regard, it is very important to keep compatibility during at least 2 or 3 versions, to allow for clients to have a good migration path for evolutions. Digium program Asterisk like a game. More, it&#8217;s like they were playing with it.</p>
<p>So please Digium, stop to program Asterisk like a data software or a game. Telephony is more than that, it needs a lot more design smartness, a lot more reliability and serious, and a lot more compatibilty through versioning.</p>
<p>I would prefer to have an asterisk 1.6 with three times less new functions, but perfectly reliable and with all the basic functions we really have and need on a traditionnal PABX, instead of having chat, voice recognition, and advanced stuff only necessary for advertising and marketers. Asterisk is not yet reliable enough neither powerfull enough to target big telephone switch replacement. So let&#8217;s give him the basic functions and the reliabilty it does need to really become the futur of telephony : the telephony we need and we can find inside 90% of the companies.<br />
The linux kernel have some very interesting improvement in recent version 2.6.x. regarding multitasking and near realtime. Asterisk seems to totaly ignore them and concentrate almost only on new telephony functions even if some efforts have been made.</p>
<p>If the world telephony network is today working, this is because big standards have been accepted by all major telcom providers.</p>
<p>Asterisk need to follow this road or it will dye.</p>
<p>I&#8217;m still using asterisk 1.2 on production systems because later versions are like a moving target, it is very time consumming to learn, test and implement them on a production system. For example they broke very usefull functions we have inside FreePBX and it is not permisible. Who is using in the real world asterisk alone ? Most users are using it with FreePBX through Trixbox or other similar distributions.<br />
Dispite their efforts, the FreePBX team didn&#8217;t success in fully adapting Asterisk 1.4 after one year, for advanced dialplan functions. We still have issues. This is not good for such a big project, with all the support and bug report it does receive from experts from all around the world.</p>
<p>I realy think that Digium should listen them a bit more, or really open the project instead of saying "we are the best and because of this we can decide wich modifications are needed when they are needed".</p>
<p>I will give an exemple of a very bad code change :</p>
<p>Inside asterisk 1.4.21, a new milliwatt application has appeared. It is now 1004 Hz instead of 1000 Hz, and the audio level is now 10 dB lower. How many of you were informed of this change ?</p>
<p>This is now the default milliwatt application.  </p>
<p>First, the 1004 Hz frequency produce a lot of distorsion because the sampling is 8 KHz. Second, using a new reference audio level break all audio test applications relying on the old reference level.</p>
<p>In my test lab, watching our spetral analyser, i was very surprised to see such a low level and such a high distorsion on a G711 link called from a good POTS line. I thought at  first that our VoIP provider had changed their setup and droped down their quality level !! Calling our Asterisk server from another provider did show the same signal, so i finally discovered the Asterisk milliwatt change !</p>
<p>This is a perfect sample of a bad evolution. Changing milliwatt is a very very dangerous option for all providers and users using this application to control links. Imagine a Lab doing certification tests, having to connect to different providers with different milliwatt applications&#8230; What a disaster in their results&#8230;<br />
There should be at least a big warning in the install process, and the older milliwatt should be compiled by default, not the new one.</p>
<p>This been said, let&#8217;s make a new telephony world all together with Asterisk or a forked project if needed (Asterisk 1.6 could be a good start template), and please let&#8217;s help to remove progressively all the old traditional telephony stuf and providers who are causing lots of headache and interconnection problems. Asterisk, Full IP, and ENUM is the futur of Telephony ! Not Asterisk alone.</p>
<p>Olivier</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michael Mullen		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3337</link>

		<dc:creator><![CDATA[Michael Mullen]]></dc:creator>
		<pubDate>Tue, 13 May 2008 13:08:38 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3337</guid>

					<description><![CDATA[http://www.venturevoip.com/news.php?rssid=1997

It looks like they may finally be listening.  Too bad much of the damage has already been done.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.venturevoip.com/news.php?rssid=1997" rel="nofollow ugc">http://www.venturevoip.com/news.php?rssid=1997</a></p>
<p>It looks like they may finally be listening.  Too bad much of the damage has already been done.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Don		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3325</link>

		<dc:creator><![CDATA[Don]]></dc:creator>
		<pubDate>Sat, 03 May 2008 03:29:23 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3325</guid>

					<description><![CDATA[In Response to Comment by Jeff Whiteside: &quot;These companies are still going strong and fortune 500, medical, and government sectors still use them. I think it’s a bit premature to think that Asterisk will fall flat on it’s face for making some radical changes that might result in incompatibilities.&quot;

That&#039;s a terrible example. You&#039;re speaking of companies that already have this in place and have spent a lot of money to get the system where it is. They, of course, are going to continue to weather the changes and issues of broken applications. They have no choice in the matter.

But new companies looking at Asterisk as a viable platform do have a choice. When they talk to Joe Schmo Inc and he says asterisk just changed everything and all the custom additions they paid to have made to their system don&#039;t work anymore with new asterisk code...The prospective company is going to say screw that...let&#039;s stay the hell away from that. What is the point of having a free PBX that we now have to spend thousands on everytime they decide to (make their engine better)

And why the hell does it seem that the more they make changes the longer the commands get to achieve the same results?

This is why I still use 1.2.x.

But FreeSwitch is starting to look pretty good now.]]></description>
			<content:encoded><![CDATA[<p>In Response to Comment by Jeff Whiteside: "These companies are still going strong and fortune 500, medical, and government sectors still use them. I think it’s a bit premature to think that Asterisk will fall flat on it’s face for making some radical changes that might result in incompatibilities."</p>
<p>That&#8217;s a terrible example. You&#8217;re speaking of companies that already have this in place and have spent a lot of money to get the system where it is. They, of course, are going to continue to weather the changes and issues of broken applications. They have no choice in the matter.</p>
<p>But new companies looking at Asterisk as a viable platform do have a choice. When they talk to Joe Schmo Inc and he says asterisk just changed everything and all the custom additions they paid to have made to their system don&#8217;t work anymore with new asterisk code&#8230;The prospective company is going to say screw that&#8230;let&#8217;s stay the hell away from that. What is the point of having a free PBX that we now have to spend thousands on everytime they decide to (make their engine better)</p>
<p>And why the hell does it seem that the more they make changes the longer the commands get to achieve the same results?</p>
<p>This is why I still use 1.2.x.</p>
<p>But FreeSwitch is starting to look pretty good now.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Michael Mullen		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3314</link>

		<dc:creator><![CDATA[Michael Mullen]]></dc:creator>
		<pubDate>Tue, 29 Apr 2008 21:38:33 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3314</guid>

					<description><![CDATA[http://www.python.org/dev/peps/pep-3108/
Here&#039;s an example of &quot;the right way&quot; to depricate (in this case python modules, but can be applied to API commands).

The best quote from the page is:
&quot;Each module to be removed needs to have a justification as to why it should no longer be distributed with Python.&quot;

Basically they described IN ONE PAGE every command/module that will change.  They divide it up into two categories: &quot;Modules to Remove&quot; (Previously Deprecated, Platform Specific, Hardly Used and Obsolete) and &quot;Modules to Rename&quot;.

Next to each module they described their reasoning for removing that module (e.g. this code hasn&#039;t been updated in 15 years, also there is a better command that follows the new standard, etc. etc.)

Digium realized they had language consistency issues and began the noble task of cleaning up the code.
Unfortunately they introduced the new language then decided to roll up the entire complex deprication/obsoletion process into the same .x release without providing any justification or conversation to the development community.

But it was their heavy-handed approach to developers that may prove most damaging.

I agree that new commands must be introduced for an API to move forward, but the old ones must also be kept around while they are still considered useful by the dev community.  If a new command really is better, the dev community will recognize that and the old command will die gracefully.  Then it can be removed (after 10 years).

Once upon a time, there was a bank that invented ATMs.  They realized the great potential of the ATMs at once so they installed the ATMs in all their branches and killed all their tellers.  The people cried &quot;we know the ATMs are better but we still want tellers because it&#039;s what we&#039;re used to&quot;.  But the bank insisted it was smarter than the people and they should just accept it.  So the people went elsewhere.  The bank eventually closed.
The End]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.python.org/dev/peps/pep-3108/" rel="nofollow ugc">http://www.python.org/dev/peps/pep-3108/</a><br />
Here&#8217;s an example of "the right way" to depricate (in this case python modules, but can be applied to API commands).</p>
<p>The best quote from the page is:<br />
"Each module to be removed needs to have a justification as to why it should no longer be distributed with Python."</p>
<p>Basically they described IN ONE PAGE every command/module that will change.  They divide it up into two categories: "Modules to Remove" (Previously Deprecated, Platform Specific, Hardly Used and Obsolete) and "Modules to Rename".</p>
<p>Next to each module they described their reasoning for removing that module (e.g. this code hasn&#8217;t been updated in 15 years, also there is a better command that follows the new standard, etc. etc.)</p>
<p>Digium realized they had language consistency issues and began the noble task of cleaning up the code.<br />
Unfortunately they introduced the new language then decided to roll up the entire complex deprication/obsoletion process into the same .x release without providing any justification or conversation to the development community.</p>
<p>But it was their heavy-handed approach to developers that may prove most damaging.</p>
<p>I agree that new commands must be introduced for an API to move forward, but the old ones must also be kept around while they are still considered useful by the dev community.  If a new command really is better, the dev community will recognize that and the old command will die gracefully.  Then it can be removed (after 10 years).</p>
<p>Once upon a time, there was a bank that invented ATMs.  They realized the great potential of the ATMs at once so they installed the ATMs in all their branches and killed all their tellers.  The people cried "we know the ATMs are better but we still want tellers because it&#8217;s what we&#8217;re used to".  But the bank insisted it was smarter than the people and they should just accept it.  So the people went elsewhere.  The bank eventually closed.<br />
The End</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Bruce Atherton		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3302</link>

		<dc:creator><![CDATA[Bruce Atherton]]></dc:creator>
		<pubDate>Tue, 22 Apr 2008 19:17:33 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3302</guid>

					<description><![CDATA[&quot;Name an open source project that maintains source-level API compatibility as a guarantee between major releases?&quot; OK. How about Apache Ant. Code written 8 years ago that relies on the public APIs and that continues to work on the latest checkout.

This works because API backwards compatibility is accepted as a core value by the developers. No change that would result in breaking backwards compatibility is allowed. This is needed because people used to use Ant for XML configuration of dependency injection before Spring was available.

Now, I am not of the opinion that APIs should never be broken between major releases for most projects. But I do believe that they should not be NEEDLESSLY broken. If you can maintain backwards compatibility while introducing new functionality, you should do so. To do otherwise is to show contempt for the efforts of your community in trying to enhance your product. You have to assign zero value to the time it will take them to rework their applications in order to make changes without at least trying to maintain backwards compatibility. Now, if there are tradeoffs that need to be made in order to make the application better, you can still respect the effort required by others but decide the benefits are worth it. But you had better make it clear to everyone that you tried hard not to break the API, and explain the reasons why it was necessary in each case.

A completely separate issue is breaking dialplans. These are not APIs. These are not used only by third party developers. They are the scripting language that is exposed to end-users. The considerations and justifications that go into breaking your end-user scripting language should be several orders of magnitude higher than for APIs. In fact, I have never encountered a situation which would justify breaking it across a single major release. You might want to move to a new scripting language. You might want to sundown your existing one. But such an action should occur over several years with lots of lead time for everyone to move over to the new language.

Which wouldn&#039;t hurt for the APIs either. Ever heard of documenting APIs as deprecated, Digium, and removing them later? Apparently not.]]></description>
			<content:encoded><![CDATA[<p>"Name an open source project that maintains source-level API compatibility as a guarantee between major releases?" OK. How about Apache Ant. Code written 8 years ago that relies on the public APIs and that continues to work on the latest checkout.</p>
<p>This works because API backwards compatibility is accepted as a core value by the developers. No change that would result in breaking backwards compatibility is allowed. This is needed because people used to use Ant for XML configuration of dependency injection before Spring was available.</p>
<p>Now, I am not of the opinion that APIs should never be broken between major releases for most projects. But I do believe that they should not be NEEDLESSLY broken. If you can maintain backwards compatibility while introducing new functionality, you should do so. To do otherwise is to show contempt for the efforts of your community in trying to enhance your product. You have to assign zero value to the time it will take them to rework their applications in order to make changes without at least trying to maintain backwards compatibility. Now, if there are tradeoffs that need to be made in order to make the application better, you can still respect the effort required by others but decide the benefits are worth it. But you had better make it clear to everyone that you tried hard not to break the API, and explain the reasons why it was necessary in each case.</p>
<p>A completely separate issue is breaking dialplans. These are not APIs. These are not used only by third party developers. They are the scripting language that is exposed to end-users. The considerations and justifications that go into breaking your end-user scripting language should be several orders of magnitude higher than for APIs. In fact, I have never encountered a situation which would justify breaking it across a single major release. You might want to move to a new scripting language. You might want to sundown your existing one. But such an action should occur over several years with lots of lead time for everyone to move over to the new language.</p>
<p>Which wouldn&#8217;t hurt for the APIs either. Ever heard of documenting APIs as deprecated, Digium, and removing them later? Apparently not.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: steven ketelsen		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3299</link>

		<dc:creator><![CDATA[steven ketelsen]]></dc:creator>
		<pubDate>Tue, 22 Apr 2008 15:44:49 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3299</guid>

					<description><![CDATA[You make good points; however, i think you might be missing mark on something here.  One thing any codebase has to worry about is feature creep.  If the Asterisk project is continually worrying about backwards-compatibility with the products of dozens of third-party open source and closed source developers&#039; projects by maintaining support an obsolete API, each party may find that security flaws are harder to patch up, and that the codebase grows to the point of unmaintainability.  I don&#039;t believe it is an unalienable right of a company or individual that uses an open-source solution implemented by a third-party developer (using god-knows what code) to demand of a company that released software with no warranty whatsoever (isn&#039;t asterisk gpl&#039;d?) that they support any particular feature or line of code at all.  Microsoft may have become successful in part because of catering to vendors, but they have a bloated, crappy, and permanently buggy codebase precisely because they attempted to provide support for y^x features

That said, it would be irresponsible of Digium not to manage changes in a way that would minimize impact on the user base, and a poor job of managing expectations between major releases will only hurt the business side of their business in the long run.

&lt;i&gt;[WM: Thanks for sharing your perspective. Micro$oft, of course, has no monopoly on buggy software. There&#039;s plenty from others to go around. For the most part, many of these syntax changes have absolutely nothing to do with engine enhancement much less securing the codebase. Many are little more than developer-inspired, developer-driven quirks and program language fetishes.]&lt;/i&gt;]]></description>
			<content:encoded><![CDATA[<p>You make good points; however, i think you might be missing mark on something here.  One thing any codebase has to worry about is feature creep.  If the Asterisk project is continually worrying about backwards-compatibility with the products of dozens of third-party open source and closed source developers&#8217; projects by maintaining support an obsolete API, each party may find that security flaws are harder to patch up, and that the codebase grows to the point of unmaintainability.  I don&#8217;t believe it is an unalienable right of a company or individual that uses an open-source solution implemented by a third-party developer (using god-knows what code) to demand of a company that released software with no warranty whatsoever (isn&#8217;t asterisk gpl&#8217;d?) that they support any particular feature or line of code at all.  Microsoft may have become successful in part because of catering to vendors, but they have a bloated, crappy, and permanently buggy codebase precisely because they attempted to provide support for y^x features</p>
<p>That said, it would be irresponsible of Digium not to manage changes in a way that would minimize impact on the user base, and a poor job of managing expectations between major releases will only hurt the business side of their business in the long run.</p>
<p><i>[WM: Thanks for sharing your perspective. Micro$oft, of course, has no monopoly on buggy software. There&#8217;s plenty from others to go around. For the most part, many of these syntax changes have absolutely nothing to do with engine enhancement much less securing the codebase. Many are little more than developer-inspired, developer-driven quirks and program language fetishes.]</i></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Simon Hobson		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3294</link>

		<dc:creator><![CDATA[Simon Hobson]]></dc:creator>
		<pubDate>Mon, 21 Apr 2008 20:22:29 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3294</guid>

					<description><![CDATA[I&#039;m mostly in agreement with Ward on this. One of the long standing complaints about the whole Unix/Linux environment is the instability in some areas - anyone else remember the old joke about &quot;what&#039;s the print command called today ?&quot;
Of course the API needs to adapt as things develop, but there&#039;s a balancing act to be followed between wholesale changes that break everything, and doing it in a more user &amp; developer friendly way. It would be interesting if the Asterisk developers could come up with a list of more than one or two commands that could NOT be retained in their original form as a means of backwards compatibility.

But I think I can come up with a better car analogy. The one I have is that they&#039;ve improved the engine and decided for no particular reason to redesign the bolt pattern where it mates to the gearbox. Thus every manufacturer has to redesign their gearbox before the car will work with the new engine. There is a standard method where you want to fit a different engine to a gearbox - and that&#039;s to fit an adapter, or in software terms a slice of compatibility middleware.
If the Asterisk developers really had the projects and users best interests at heart, they would include the compatibility layer as standard (ie retain the calls but mark them as deprecated) so the cars will still work and the gearboxes can be sorted out over time.

Their current approach seems to be exactly what we criticise the non-free software industry for !]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m mostly in agreement with Ward on this. One of the long standing complaints about the whole Unix/Linux environment is the instability in some areas &#8211; anyone else remember the old joke about "what&#8217;s the print command called today ?"<br />
Of course the API needs to adapt as things develop, but there&#8217;s a balancing act to be followed between wholesale changes that break everything, and doing it in a more user &#038; developer friendly way. It would be interesting if the Asterisk developers could come up with a list of more than one or two commands that could NOT be retained in their original form as a means of backwards compatibility.</p>
<p>But I think I can come up with a better car analogy. The one I have is that they&#8217;ve improved the engine and decided for no particular reason to redesign the bolt pattern where it mates to the gearbox. Thus every manufacturer has to redesign their gearbox before the car will work with the new engine. There is a standard method where you want to fit a different engine to a gearbox &#8211; and that&#8217;s to fit an adapter, or in software terms a slice of compatibility middleware.<br />
If the Asterisk developers really had the projects and users best interests at heart, they would include the compatibility layer as standard (ie retain the calls but mark them as deprecated) so the cars will still work and the gearboxes can be sorted out over time.</p>
<p>Their current approach seems to be exactly what we criticise the non-free software industry for !</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Justin Hamade		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3291</link>

		<dc:creator><![CDATA[Justin Hamade]]></dc:creator>
		<pubDate>Mon, 21 Apr 2008 18:09:12 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3291</guid>

					<description><![CDATA[Ward, I completely agree with you, and it looks like most of the commenters do as well.  I have worked with asterisk since the early betas like many others and updating dial plans and scripts after ever major release is frustrating and unecessary.  I don&#039;t think that any analogy or comparison is really required for this issue.  I think that the asterisk development team should hold itself to a higher standard than that of apache, mysql, php, cico, avaya etc.  Just because others makes syntax and API changes doesn&#039;t mean that its OK.  There is no good reason for syntax to change and there is no good reason for different ways to do the same thing.  For example, look at python&#039;s mantra ... &quot;There should be one—and preferably only one—obvious way to do it&quot;.

I agree with bubba&#039;s comment that Asterisk = beta.  It is unfortunate that releases are never really stable until the next release is in beta making for a very short life cycle.  And also no concrete upgrade path.

I am very interested in what Mark would have to say about this.  I think when long term support and a solid upgrade path are established, no one will be able to compete with asterisk.  Let&#039;s just hope that day is sooner rather than later.]]></description>
			<content:encoded><![CDATA[<p>Ward, I completely agree with you, and it looks like most of the commenters do as well.  I have worked with asterisk since the early betas like many others and updating dial plans and scripts after ever major release is frustrating and unecessary.  I don&#8217;t think that any analogy or comparison is really required for this issue.  I think that the asterisk development team should hold itself to a higher standard than that of apache, mysql, php, cico, avaya etc.  Just because others makes syntax and API changes doesn&#8217;t mean that its OK.  There is no good reason for syntax to change and there is no good reason for different ways to do the same thing.  For example, look at python&#8217;s mantra &#8230; "There should be one—and preferably only one—obvious way to do it".</p>
<p>I agree with bubba&#8217;s comment that Asterisk = beta.  It is unfortunate that releases are never really stable until the next release is in beta making for a very short life cycle.  And also no concrete upgrade path.</p>
<p>I am very interested in what Mark would have to say about this.  I think when long term support and a solid upgrade path are established, no one will be able to compete with asterisk.  Let&#8217;s just hope that day is sooner rather than later.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jens Wiswede		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3287</link>

		<dc:creator><![CDATA[Jens Wiswede]]></dc:creator>
		<pubDate>Sun, 20 Apr 2008 18:38:18 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3287</guid>

					<description><![CDATA[Hi,
it seems for me like a philosophical debate which role a company will play in the future. Digium is now big enough to set the condition and all others have to follow. But it can as well very fast be the end of such an arrogant company (there are some examples in the history and also in this days).

As Ward said, it’s not that a company can’t create new features with new API’s and, of course, it is the right of Digium to change the syntax if they want to bring in a new methodology (Leif, you are right).

But it has to comply with the tradition that such big, fundamental API changes should only happen over a big time period. But it seems just the opposite: Digium changes its API structure every time, so there is no reliability / trustworthiness.

If Digium feels they are strong enough to give up the support of a community, well - they can do it. But why they should do it? It makes no sense to destroy a good idea. And this is what the community and – I believe – Digium itself want: a fruitful Future for both!! sides.

There is plenty of time to create a codex of trustworthiness, which Digium could discuss with its partners (not only this community, but with all 3rd party developer or even bigger companies), because THEY are the key base for Digium and any similar company which is mainly based on communities.

Please have a look to the changing world in the music business – the inflexible dinosaur will die if they do not focus on the new customer behavior and their special needs! There is a similar problem in the discussion here - nothing else!]]></description>
			<content:encoded><![CDATA[<p>Hi,<br />
it seems for me like a philosophical debate which role a company will play in the future. Digium is now big enough to set the condition and all others have to follow. But it can as well very fast be the end of such an arrogant company (there are some examples in the history and also in this days).</p>
<p>As Ward said, it’s not that a company can’t create new features with new API’s and, of course, it is the right of Digium to change the syntax if they want to bring in a new methodology (Leif, you are right).</p>
<p>But it has to comply with the tradition that such big, fundamental API changes should only happen over a big time period. But it seems just the opposite: Digium changes its API structure every time, so there is no reliability / trustworthiness.</p>
<p>If Digium feels they are strong enough to give up the support of a community, well &#8211; they can do it. But why they should do it? It makes no sense to destroy a good idea. And this is what the community and – I believe – Digium itself want: a fruitful Future for both!! sides.</p>
<p>There is plenty of time to create a codex of trustworthiness, which Digium could discuss with its partners (not only this community, but with all 3rd party developer or even bigger companies), because THEY are the key base for Digium and any similar company which is mainly based on communities.</p>
<p>Please have a look to the changing world in the music business – the inflexible dinosaur will die if they do not focus on the new customer behavior and their special needs! There is a similar problem in the discussion here &#8211; nothing else!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: bubba		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3285</link>

		<dc:creator><![CDATA[bubba]]></dc:creator>
		<pubDate>Sat, 19 Apr 2008 11:04:56 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3285</guid>

					<description><![CDATA[Asterisk = Beta 
As always.
I have been using Asterisk for almost 10 years now I think.
It has always been &quot;beta&quot; software to me.
The changes going now from 1.2 to 1.6 are big and will be a pain in behind for many, but it will not stop digium from moving on.

We all know that for Asterisk to move up, they need to solve a few things with the core engine, and in doing so things will break.

Which is why I build lean boxes with little adding third party app&#039;s installed on the box.

Asterisk can be used well after the EOL and if you lock it down and do not expose the box to the outside world then you may be running the 1.2 / 1.4 branch for YEARS to come.

I have two boxes still in play running AMP 1.x, they have not seen an update in YEARS yet rock on.]]></description>
			<content:encoded><![CDATA[<p>Asterisk = Beta<br />
As always.<br />
I have been using Asterisk for almost 10 years now I think.<br />
It has always been "beta" software to me.<br />
The changes going now from 1.2 to 1.6 are big and will be a pain in behind for many, but it will not stop digium from moving on.</p>
<p>We all know that for Asterisk to move up, they need to solve a few things with the core engine, and in doing so things will break.</p>
<p>Which is why I build lean boxes with little adding third party app&#8217;s installed on the box.</p>
<p>Asterisk can be used well after the EOL and if you lock it down and do not expose the box to the outside world then you may be running the 1.2 / 1.4 branch for YEARS to come.</p>
<p>I have two boxes still in play running AMP 1.x, they have not seen an update in YEARS yet rock on.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Ajay		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3283</link>

		<dc:creator><![CDATA[Ajay]]></dc:creator>
		<pubDate>Sat, 19 Apr 2008 04:37:05 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3283</guid>

					<description><![CDATA[Wow, application interface compatibility is that hard? How about interfaces like IA32 (the x86 instruction set), that started with 8086 in 1978 and even today&#039;s superscalar, out-of-order, speculative multi-core, multiprocessing monsters can run code written for the oldest machine. Asterisk developers, please don&#039;t insult peoples&#039; intelligence by claiming that managing interface versioning is an unsolvable problem, because it has been solved.

How about that for not breaking interfaces? And I don&#039;t think Intel or AMD hire a bunch of folks to keep track of what behaviors of what instructions, applications are relying on.]]></description>
			<content:encoded><![CDATA[<p>Wow, application interface compatibility is that hard? How about interfaces like IA32 (the x86 instruction set), that started with 8086 in 1978 and even today&#8217;s superscalar, out-of-order, speculative multi-core, multiprocessing monsters can run code written for the oldest machine. Asterisk developers, please don&#8217;t insult peoples&#8217; intelligence by claiming that managing interface versioning is an unsolvable problem, because it has been solved.</p>
<p>How about that for not breaking interfaces? And I don&#8217;t think Intel or AMD hire a bunch of folks to keep track of what behaviors of what instructions, applications are relying on.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Gerrit		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3280</link>

		<dc:creator><![CDATA[Gerrit]]></dc:creator>
		<pubDate>Fri, 18 Apr 2008 01:13:36 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3280</guid>

					<description><![CDATA[Developers that don&#039;t know how or don&#039;t try to provide compatibile interfaces should go back to school. As pointed out several times, there are many ways to provide backward compatible support in API&#039;s, Microsoft struggled with this for years with DLL&#039;s and eventually solved it. That is why interfaces/API&#039;s have versions (or should have). Marking things as deprecated is fine (hidden of course in the overly verbose spew of stuff going into the log) but the previous version of the API should work at least across one major release. This might be called professional programming and design. I&#039;m sure the changes for 1.6 are for the better but, unless Digium is thinking of the changes as potential support and upgrade income, then it is a mistake to drop compatibility for the previous major version.

An alternative is upgrade tools. Again Microsoft examples of this support exist. For Visual Studio, you can import VB6 projects years after that version was no longer for sale. A bit of creative thought from the Digium developers would find a graceful solution.

Welcome to the big world of non-toy software. I love Asterisk for what it provides. Please don&#039;t make us look elsewhere.....]]></description>
			<content:encoded><![CDATA[<p>Developers that don&#8217;t know how or don&#8217;t try to provide compatibile interfaces should go back to school. As pointed out several times, there are many ways to provide backward compatible support in API&#8217;s, Microsoft struggled with this for years with DLL&#8217;s and eventually solved it. That is why interfaces/API&#8217;s have versions (or should have). Marking things as deprecated is fine (hidden of course in the overly verbose spew of stuff going into the log) but the previous version of the API should work at least across one major release. This might be called professional programming and design. I&#8217;m sure the changes for 1.6 are for the better but, unless Digium is thinking of the changes as potential support and upgrade income, then it is a mistake to drop compatibility for the previous major version.</p>
<p>An alternative is upgrade tools. Again Microsoft examples of this support exist. For Visual Studio, you can import VB6 projects years after that version was no longer for sale. A bit of creative thought from the Digium developers would find a graceful solution.</p>
<p>Welcome to the big world of non-toy software. I love Asterisk for what it provides. Please don&#8217;t make us look elsewhere&#8230;..</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Leif Madsen		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3279</link>

		<dc:creator><![CDATA[Leif Madsen]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 18:48:36 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3279</guid>

					<description><![CDATA[Re: CLI changes

In order to make the CLI consistent, it was changed to a &#039;module&#039; &#039;verb&#039; &#039;argument&#039; syntax. In 1.4 unfortunately it is inconsistent, but myself, and mvanbaak on IRC went through the entire CLI command set a couple of times to make it consistent with that approach. This makes grouping the CLI commands together much more obvious rather than having a couple of different methodologies doled up together.

You can view the work we did on this in the bug tracker here: http://bugs.digium.com/view.php?id=8925 which contains the tree structure of the command set while we were doing the audit.

The reason for the &#039;core&#039; is because that is essentially the module name -- core functions which are more closely associated with the CLI appear here, e.g. core show channels, where &#039;core&#039; is the &#039;module&#039;, &#039;show&#039; is the &#039;verb&#039;, and &#039;channels&#039; is the &#039;argument&#039;.

This is now done throughout the CLI, and is implemented in 1.6-beta and beyond.]]></description>
			<content:encoded><![CDATA[<p>Re: CLI changes</p>
<p>In order to make the CLI consistent, it was changed to a &#8216;module&#8217; &#8216;verb&#8217; &#8216;argument&#8217; syntax. In 1.4 unfortunately it is inconsistent, but myself, and mvanbaak on IRC went through the entire CLI command set a couple of times to make it consistent with that approach. This makes grouping the CLI commands together much more obvious rather than having a couple of different methodologies doled up together.</p>
<p>You can view the work we did on this in the bug tracker here: <a href="http://bugs.digium.com/view.php?id=8925" rel="nofollow ugc">http://bugs.digium.com/view.php?id=8925</a> which contains the tree structure of the command set while we were doing the audit.</p>
<p>The reason for the &#8216;core&#8217; is because that is essentially the module name &#8212; core functions which are more closely associated with the CLI appear here, e.g. core show channels, where &#8216;core&#8217; is the &#8216;module&#8217;, &#8216;show&#8217; is the &#8216;verb&#8217;, and &#8216;channels&#8217; is the &#8216;argument&#8217;.</p>
<p>This is now done throughout the CLI, and is implemented in 1.6-beta and beyond.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Steve Edwards		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3278</link>

		<dc:creator><![CDATA[Steve Edwards]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 18:19:20 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3278</guid>

					<description><![CDATA[I&#039;m still using 1.2 because 1.4 doesn&#039;t offer a compelling reason to me except &quot;you&#039;ll get left behind.&quot;

I understand some of the dialplan changes made the &quot;language&quot; more consistent and extensible and I&#039;m all for that.

I don&#039;t understand the attitude some (most?) of the developer&#039;s display. For instance, look at the agent/queue/callback nonsense. The attitude of the developer&#039;s was received as &quot;it wasn&#039;t implemented well so we&#039;re just going to remove it rather than fix it -- besides, you can probably cobble up something similar with a bunch of dialplan stuff anyway.&quot; I could probably cobble up something to replace voicemail or sort or saynumber with a bunch of dialplan statements, but isn&#039;t the whole idea of applications to bundle complexity and make it easy to use? Maybe we should cobble up a replacement for Asterisk with a bunch of tin cans and string using carrier pigeons for signaling... (SIP = Slow Incoming Pigeon?, PSTN  = Please Stop Tugging Now?)

Who thought prefacing some of the CLI &quot;verbs&quot; with &quot;core&quot; was a good idea? What&#039;s the logic in deciding which verbs require core and which ones don&#039;t? Why should I have to retrain my fingers based on somebody&#039;s arbitrary decision to make a bad CLI even worse?]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still using 1.2 because 1.4 doesn&#8217;t offer a compelling reason to me except "you&#8217;ll get left behind."</p>
<p>I understand some of the dialplan changes made the "language" more consistent and extensible and I&#8217;m all for that.</p>
<p>I don&#8217;t understand the attitude some (most?) of the developer&#8217;s display. For instance, look at the agent/queue/callback nonsense. The attitude of the developer&#8217;s was received as "it wasn&#8217;t implemented well so we&#8217;re just going to remove it rather than fix it &#8212; besides, you can probably cobble up something similar with a bunch of dialplan stuff anyway." I could probably cobble up something to replace voicemail or sort or saynumber with a bunch of dialplan statements, but isn&#8217;t the whole idea of applications to bundle complexity and make it easy to use? Maybe we should cobble up a replacement for Asterisk with a bunch of tin cans and string using carrier pigeons for signaling&#8230; (SIP = Slow Incoming Pigeon?, PSTN  = Please Stop Tugging Now?)</p>
<p>Who thought prefacing some of the CLI "verbs" with "core" was a good idea? What&#8217;s the logic in deciding which verbs require core and which ones don&#8217;t? Why should I have to retrain my fingers based on somebody&#8217;s arbitrary decision to make a bad CLI even worse?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: stavros		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3276</link>

		<dc:creator><![CDATA[stavros]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 13:59:16 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3276</guid>

					<description><![CDATA[Despite the extra work it creates,  I&#039;m with Digium on this.  It&#039;s often impossible to add flexibility or improve performance whilst maintaining API compatibility.  The reason for the majority of API changes is to address short-sighted decisions in the original design;  backwards compatibilty enforces perpetuation of the poor choice and a clean break must be made at some point.  The re-plumbing work to which Jared refers is long overdue and,  as he intimates,  is necessary to provide the enterprise-grade platform for which you are all clamouring.

Whilst a simple upgrade tool for syntax in extensions.{conf&#124;ael} might save a few folks a few minutes,  I don&#039;t think that&#039;s where the bulk of this problem lies.   We&#039;d all love to have tool to automatically fix all the AGI/AMI code out there,  written in PHP,  Perl,  C,  etc,  but it&#039;s impossible to do algorithmically.  That said,  I believe it would be possible to add a compatibility shim to PHPAGI, for instance,  to allow most if not all existing PHP AGI scripts to run without modification.

The suggestion that Digium are responsible for fixing everyone else&#039;s code is simply ludicrous.  As Jared explained,  many of the devs can&#039;t legally touch much of the code that will need to be fixed.  Even if they could I doubt they&#039;d want to;  fixing code with which you&#039;re not familiar is fraught with difficulties.  It&#039;s even less appealing when you consider that much AGI code is crufty nonsense written by amateurs.  The logical conclusion of this argument is that Microsoft must be similarly charged with fixing every third-party application broken by a service pack, and the Linux/glibc folks must cease scheduled development and spend the rest of eternity fixing all the userspace regressions just assigned to them by downstream!

I&#039;m not sure how you reached your conclusion that Digium have their head in the sand based on Jared&#039;s response.  You had the opportunity to shape the development of the areas of v1.6 which displease you.  I&#039;m afraid it was you with your head in the sand,  ignorant of all the work happening in public view for all to see,  discuss and even influence.  If Digium&#039;s track-record with Asterisk v1.2 is anything to go by,  you&#039;ve a long time yet before v1.4 will be unmaintained.  There&#039;s plenty of time to adapt and to test before you &lt;i&gt;need&lt;/i&gt; to look at using v1.6 in production.

Please stop criticising the Asterisk devs for doing &lt;i&gt;necessary work&lt;/i&gt;.  You may not see it, but they do have our best interests in mind.  The benefits of a more maintainable,  better architected and more consistent Asterisk codebase far outweigh any short-term heartache during the transition.

&lt;i&gt;[WM: There&#039;s a significant difference in saying that &quot;Digium [is] responsible for fixing everyone else&#039;s code&quot; and saying that &quot;Digium has responsibility for not breaking everyone else&#039;s code.&quot; If you reread the article, I think you&#039;ll find that I suggested the latter. As for a conversion utility saving a few folks a few minutes, I&#039;ve spent the better part of six months cleaning up the carnage in dozens of applications that was directly caused by the needless syntax obsolescence imposed in Asterisk 1.4. And for what? I provided a good example in the article that broke virtually every dialplan. Suggesting that such changes were necessary to &quot;improve the engine&quot; is pure B.S. Funny you&#039;d mention Microsoft. I wrote a shareware database management system (&lt;a href=&quot;http://www.google.com/search?q=wampum+shareware&quot;&gt;WAMPUM&lt;/a&gt;) in 1985 for DOS that still runs just fine under Windows XP and Vista. In fact, I regularly hear from folks that still are using it... almost two decades later! Maybe that&#039;s the reason Microsoft is still around while Lotus 1-2-3 (that owned 95% of the spreadsheet market at one point) is now just a blip in the history books. If you recall, Lotus developers came up with the brilliant idea to change much of 1-2-3&#039;s  spreadsheet syntax. It gave everyone the perfect opportunity to switch to Excel.]&lt;/i&gt;

]]></description>
			<content:encoded><![CDATA[<p>Despite the extra work it creates,  I&#8217;m with Digium on this.  It&#8217;s often impossible to add flexibility or improve performance whilst maintaining API compatibility.  The reason for the majority of API changes is to address short-sighted decisions in the original design;  backwards compatibilty enforces perpetuation of the poor choice and a clean break must be made at some point.  The re-plumbing work to which Jared refers is long overdue and,  as he intimates,  is necessary to provide the enterprise-grade platform for which you are all clamouring.</p>
<p>Whilst a simple upgrade tool for syntax in extensions.{conf|ael} might save a few folks a few minutes,  I don&#8217;t think that&#8217;s where the bulk of this problem lies.   We&#8217;d all love to have tool to automatically fix all the AGI/AMI code out there,  written in PHP,  Perl,  C,  etc,  but it&#8217;s impossible to do algorithmically.  That said,  I believe it would be possible to add a compatibility shim to PHPAGI, for instance,  to allow most if not all existing PHP AGI scripts to run without modification.</p>
<p>The suggestion that Digium are responsible for fixing everyone else&#8217;s code is simply ludicrous.  As Jared explained,  many of the devs can&#8217;t legally touch much of the code that will need to be fixed.  Even if they could I doubt they&#8217;d want to;  fixing code with which you&#8217;re not familiar is fraught with difficulties.  It&#8217;s even less appealing when you consider that much AGI code is crufty nonsense written by amateurs.  The logical conclusion of this argument is that Microsoft must be similarly charged with fixing every third-party application broken by a service pack, and the Linux/glibc folks must cease scheduled development and spend the rest of eternity fixing all the userspace regressions just assigned to them by downstream!</p>
<p>I&#8217;m not sure how you reached your conclusion that Digium have their head in the sand based on Jared&#8217;s response.  You had the opportunity to shape the development of the areas of v1.6 which displease you.  I&#8217;m afraid it was you with your head in the sand,  ignorant of all the work happening in public view for all to see,  discuss and even influence.  If Digium&#8217;s track-record with Asterisk v1.2 is anything to go by,  you&#8217;ve a long time yet before v1.4 will be unmaintained.  There&#8217;s plenty of time to adapt and to test before you <i>need</i> to look at using v1.6 in production.</p>
<p>Please stop criticising the Asterisk devs for doing <i>necessary work</i>.  You may not see it, but they do have our best interests in mind.  The benefits of a more maintainable,  better architected and more consistent Asterisk codebase far outweigh any short-term heartache during the transition.</p>
<p><i>[WM: There&#8217;s a significant difference in saying that "Digium [is] responsible for fixing everyone else&#8217;s code" and saying that "Digium has responsibility for not breaking everyone else&#8217;s code." If you reread the article, I think you&#8217;ll find that I suggested the latter. As for a conversion utility saving a few folks a few minutes, I&#8217;ve spent the better part of six months cleaning up the carnage in dozens of applications that was directly caused by the needless syntax obsolescence imposed in Asterisk 1.4. And for what? I provided a good example in the article that broke virtually every dialplan. Suggesting that such changes were necessary to "improve the engine" is pure B.S. Funny you&#8217;d mention Microsoft. I wrote a shareware database management system (<a href="http://www.google.com/search?q=wampum+shareware">WAMPUM</a>) in 1985 for DOS that still runs just fine under Windows XP and Vista. In fact, I regularly hear from folks that still are using it&#8230; almost two decades later! Maybe that&#8217;s the reason Microsoft is still around while Lotus 1-2-3 (that owned 95% of the spreadsheet market at one point) is now just a blip in the history books. If you recall, Lotus developers came up with the brilliant idea to change much of 1-2-3&#8217;s  spreadsheet syntax. It gave everyone the perfect opportunity to switch to Excel.]</i></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Olle E. Johansson		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3275</link>

		<dc:creator><![CDATA[Olle E. Johansson]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 08:41:43 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3275</guid>

					<description><![CDATA[Please also do remember that there are developers that don&#039;t work for Digium. To keep saying Digium when you refer to decisions made by the developers is not correct. 

I was part of the decision and made the code to update the manager interface. There was a lot of discussion about pro&#039;s and con&#039;s on the mailing list before we touched it, and code in a branch to test. I would have appreciated your feedback then. The changes to manager were carefully documented and constructed in a way to help developers recognize the AMI version, which wasn&#039;t possible before. Previously, things changed but not the version number.

&lt;i&gt;[WM: Thanks for your comments, Olle. Digium does still own the Asterisk code so... the buck stops there in our book.]&lt;/i&gt;


]]></description>
			<content:encoded><![CDATA[<p>Please also do remember that there are developers that don&#8217;t work for Digium. To keep saying Digium when you refer to decisions made by the developers is not correct. </p>
<p>I was part of the decision and made the code to update the manager interface. There was a lot of discussion about pro&#8217;s and con&#8217;s on the mailing list before we touched it, and code in a branch to test. I would have appreciated your feedback then. The changes to manager were carefully documented and constructed in a way to help developers recognize the AMI version, which wasn&#8217;t possible before. Previously, things changed but not the version number.</p>
<p><i>[WM: Thanks for your comments, Olle. Digium does still own the Asterisk code so&#8230; the buck stops there in our book.]</i></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Vittles Reader		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3274</link>

		<dc:creator><![CDATA[Vittles Reader]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 04:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3274</guid>

					<description><![CDATA[I am curious to what extent the API has changed and how difficult it would be for someone in the open source community to release a source code translation app.  I saw the same example in the last two articles, so I am just curious as to how expansive the actual changes are.

Dont get me wrong - I know this is not the point.  I run a software development business, and my software (not telephony related) is used by my customers in conjunction with other software.  I am fully aware that changes to our code can have a dramatic and widespread impact, so we do not keep the blinders on and simply do whatever we want.  I do not want to go out of business anytime soon, and over the last 10 years I have found that one simple question keeps me competitive and loved by my customers: Can we do better?  Before we release ANYTHING, I ask my team this question, and inevitably we discover things that may require more work, but make for a better solution.  I can certainly say that if I were leading the 1.6 development team and asked this question, someone would have brought the issue up.  Furthermore, in the event that we did overlook something so crucial, I would be certain to rectify it and take advantage of still being in a beta state to do so.

Still, I&#039;d like an answer to my first question if anyone even knows.]]></description>
			<content:encoded><![CDATA[<p>I am curious to what extent the API has changed and how difficult it would be for someone in the open source community to release a source code translation app.  I saw the same example in the last two articles, so I am just curious as to how expansive the actual changes are.</p>
<p>Dont get me wrong &#8211; I know this is not the point.  I run a software development business, and my software (not telephony related) is used by my customers in conjunction with other software.  I am fully aware that changes to our code can have a dramatic and widespread impact, so we do not keep the blinders on and simply do whatever we want.  I do not want to go out of business anytime soon, and over the last 10 years I have found that one simple question keeps me competitive and loved by my customers: Can we do better?  Before we release ANYTHING, I ask my team this question, and inevitably we discover things that may require more work, but make for a better solution.  I can certainly say that if I were leading the 1.6 development team and asked this question, someone would have brought the issue up.  Furthermore, in the event that we did overlook something so crucial, I would be certain to rectify it and take advantage of still being in a beta state to do so.</p>
<p>Still, I&#8217;d like an answer to my first question if anyone even knows.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Tilghman Lesher		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3273</link>

		<dc:creator><![CDATA[Tilghman Lesher]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 04:00:18 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3273</guid>

					<description><![CDATA[You&#039;re missing one major point in API transition; that is, during the 1.2 series, DigitTimeout(5) was deprecated in favor of Set(TIMEOUT(digit)=5).  A whole release cycle of something like 18 months, and you can&#039;t be bothered to read the deprecation notices?  And then you complain when 1.4 removed it?  Why aren&#039;t third party developers responsible for reading deprecation notices, when Digium provided a clear upgrade path?

&lt;i&gt;[WM: Just wondering how long it would take you to chime in, Tilghman. This isn&#039;t about notice. You kinda missed the point of the articles. Big surprise there.]&lt;/i&gt; ]]></description>
			<content:encoded><![CDATA[<p>You&#8217;re missing one major point in API transition; that is, during the 1.2 series, DigitTimeout(5) was deprecated in favor of Set(TIMEOUT(digit)=5).  A whole release cycle of something like 18 months, and you can&#8217;t be bothered to read the deprecation notices?  And then you complain when 1.4 removed it?  Why aren&#8217;t third party developers responsible for reading deprecation notices, when Digium provided a clear upgrade path?</p>
<p><i>[WM: Just wondering how long it would take you to chime in, Tilghman. This isn&#8217;t about notice. You kinda missed the point of the articles. Big surprise there.]</i> </p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: KodaK		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3272</link>

		<dc:creator><![CDATA[KodaK]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 02:56:17 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3272</guid>

					<description><![CDATA[You can&#039;t have it both ways.  If you want the slow release cycles of, say, an Avaya, where feature sets may stagnate for half a decade: buy an Avaya.  The same thing that makes the cool Nerd Vittles stuff even possible in the first place is the flexibility inherent in a FOSS package like Asterisk that has a fast paced feature uptake.  Given enough beer, you could probably entice a programmer to add any feature you&#039;d like to the * code base.  Try doing that with an Avaya engineer.  Try talking to an Avaya coder without first being a paying customer in the tens or hundreds of thousands of dollars range.

That being said, I do think that Digium should probably give a bit more effort in providing migration tools (actual tools, not just documentation) and also make more of an effort to not be quite so much of a moving target.  I realize that sometimes it&#039;s just impossible to do that, but if the choice exists, even if it takes a bit of extra work, then the decision should be made for as much backwards compatibility as possible.  I&#039;m not saying they don&#039;t do this in the first place, but there&#039;s always room for improvement.
]]></description>
			<content:encoded><![CDATA[<p>You can&#8217;t have it both ways.  If you want the slow release cycles of, say, an Avaya, where feature sets may stagnate for half a decade: buy an Avaya.  The same thing that makes the cool Nerd Vittles stuff even possible in the first place is the flexibility inherent in a FOSS package like Asterisk that has a fast paced feature uptake.  Given enough beer, you could probably entice a programmer to add any feature you&#8217;d like to the * code base.  Try doing that with an Avaya engineer.  Try talking to an Avaya coder without first being a paying customer in the tens or hundreds of thousands of dollars range.</p>
<p>That being said, I do think that Digium should probably give a bit more effort in providing migration tools (actual tools, not just documentation) and also make more of an effort to not be quite so much of a moving target.  I realize that sometimes it&#8217;s just impossible to do that, but if the choice exists, even if it takes a bit of extra work, then the decision should be made for as much backwards compatibility as possible.  I&#8217;m not saying they don&#8217;t do this in the first place, but there&#8217;s always room for improvement.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: paul		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3271</link>

		<dc:creator><![CDATA[paul]]></dc:creator>
		<pubDate>Thu, 17 Apr 2008 01:47:29 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3271</guid>

					<description><![CDATA[Was not one of the reasons that Microsoft was so successful was because they catered to developers? Ignoring developers and technical people will lead to [problems] for Digium because it is they who often decide what gets used in the corporate environment.]]></description>
			<content:encoded><![CDATA[<p>Was not one of the reasons that Microsoft was so successful was because they catered to developers? Ignoring developers and technical people will lead to [problems] for Digium because it is they who often decide what gets used in the corporate environment.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Leif Madsen		</title>
		<link>https://nerdvittles.com/pbx-in-a-flash-turns-5-but-what-about-asterisk/comment-page-1/#comment-3270</link>

		<dc:creator><![CDATA[Leif Madsen]]></dc:creator>
		<pubDate>Wed, 16 Apr 2008 21:40:57 +0000</pubDate>
		<guid isPermaLink="false">http://nerdvittles.com/?p=211#comment-3270</guid>

					<description><![CDATA[Quick comment:  this isn&#039;t just a &quot;Digium thing&quot; in the way upgrades work; this is typically how software development goes in all organizations. Major version number changes mean API changes. That&#039;s just how the world works. If you couldn&#039;t change an API, then you wouldn&#039;t be able to grow and expand the feature set in the software, or sometimes even fix bugs, or increase reliability and scalability.

I have not heard about any fixed date or time frame for EOL&#039;ing Asterisk 1.4. Since a lot of people are still running 1.2, I would imagine 1.4 will be with us for a long time yet (certainly more than a year).

The 1.6 branch has come out, is in beta mode, and I&#039;m not sure what all the hubbub is about in third party incompatibilities. All major version upgrades are going to have things change in them that you couldn&#039;t otherwise do, and thus third party applications are going to need to keep pace -- and it&#039;s not like you HAVE to run 1.6 in production (in fact, you shouldn&#039;t... it&#039;s not even out of beta yet).

In addition, the 1.6 branch is going to use a different release methodology, which is really the main reason a 1.6 beta is even out in the first place. This does not indicate 1.4 is going EOL anytime soon. Digium&#039;s Business Edition C.1.x software was only released around January, and I doubt there is any rush to deprecate that piece of work.

You&#039;re probably going to have 1.4 and 1.6 in lockstep for quite some time. The difference between 1.4 and 1.6 is quite a bit less than the difference between 1.2 and 1.4.  The reason for 1.6 is that since you CAN&#039;T just release software every year and EOL the existing software, then that means you have to wait 2+ years before you can even start using the new features. Some people can&#039;t wait that long, so you have two paths available to you now. 1.6 will allow new features to go in at each minor version release (this means 1.6.x, where &#039;x&#039; is the minor version, and 6 is the major version -- this is significant). So now we have two different methodologies. 

A branch that only receives bug fixes and security fixes (1.4), and a branch that receives bug fixes, security fixes, and is allowed to implement new features (this follows the same time of release strategy as the Linux kernel -- this is not a new concept). Digium has now also started using release candidates before creating a new release (as per the communities request), so you have the ability to test for any bugs that may have been introduced before the full released is put out for public consumption.

If you need to run 1.4, then go ahead, nothing is going to stop you from doing that, and it&#039;s not going away anytime soon. If you need the latest and greatest, or there is some new feature you absolutely must run in production, then you can run a 1.6 machine (when it stabilizes and comes out of beta and release candidate status) with just the feature you absolutely need in a stripped down version, or after extensive testing, then you could put it into production.

I personally think Digium is doing the &quot;Right Thing(tm)&quot; here and giving us choice, and isn&#039;t that what this is all about?]]></description>
			<content:encoded><![CDATA[<p>Quick comment:  this isn&#8217;t just a "Digium thing" in the way upgrades work; this is typically how software development goes in all organizations. Major version number changes mean API changes. That&#8217;s just how the world works. If you couldn&#8217;t change an API, then you wouldn&#8217;t be able to grow and expand the feature set in the software, or sometimes even fix bugs, or increase reliability and scalability.</p>
<p>I have not heard about any fixed date or time frame for EOL&#8217;ing Asterisk 1.4. Since a lot of people are still running 1.2, I would imagine 1.4 will be with us for a long time yet (certainly more than a year).</p>
<p>The 1.6 branch has come out, is in beta mode, and I&#8217;m not sure what all the hubbub is about in third party incompatibilities. All major version upgrades are going to have things change in them that you couldn&#8217;t otherwise do, and thus third party applications are going to need to keep pace &#8212; and it&#8217;s not like you HAVE to run 1.6 in production (in fact, you shouldn&#8217;t&#8230; it&#8217;s not even out of beta yet).</p>
<p>In addition, the 1.6 branch is going to use a different release methodology, which is really the main reason a 1.6 beta is even out in the first place. This does not indicate 1.4 is going EOL anytime soon. Digium&#8217;s Business Edition C.1.x software was only released around January, and I doubt there is any rush to deprecate that piece of work.</p>
<p>You&#8217;re probably going to have 1.4 and 1.6 in lockstep for quite some time. The difference between 1.4 and 1.6 is quite a bit less than the difference between 1.2 and 1.4.  The reason for 1.6 is that since you CAN&#8217;T just release software every year and EOL the existing software, then that means you have to wait 2+ years before you can even start using the new features. Some people can&#8217;t wait that long, so you have two paths available to you now. 1.6 will allow new features to go in at each minor version release (this means 1.6.x, where &#8216;x&#8217; is the minor version, and 6 is the major version &#8212; this is significant). So now we have two different methodologies. </p>
<p>A branch that only receives bug fixes and security fixes (1.4), and a branch that receives bug fixes, security fixes, and is allowed to implement new features (this follows the same time of release strategy as the Linux kernel &#8212; this is not a new concept). Digium has now also started using release candidates before creating a new release (as per the communities request), so you have the ability to test for any bugs that may have been introduced before the full released is put out for public consumption.</p>
<p>If you need to run 1.4, then go ahead, nothing is going to stop you from doing that, and it&#8217;s not going away anytime soon. If you need the latest and greatest, or there is some new feature you absolutely must run in production, then you can run a 1.6 machine (when it stabilizes and comes out of beta and release candidate status) with just the feature you absolutely need in a stripped down version, or after extensive testing, then you could put it into production.</p>
<p>I personally think Digium is doing the "Right Thing(tm)" here and giving us choice, and isn&#8217;t that what this is all about?</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
