As soon as you have asterisk up enought that you can get to the CLI, the best documentation is built in, see below.
I have read that the asterisk gods have decided that when something is deprecated it will be supported through the release where it was deprecated and then removed in the next release.
So, the 1.2 dialplan stuff should work in 1.4 with some warnings. It will not work in 1.6. This is the time to change your code.
As far is the on line documentation goes, I do not recall the book mentioning this, but from the CLI you can do this:
na-it-asterisk*CLI> core show applications
-= Registered Asterisk Applications =-
Answer: Answer a channel if ringing
(list of all applications)
na-it-asterisk*CLI> core show application dial
-= Info about application ‘Dial’ =-
(Full info on dial application)
na-it-asterisk*CLI> core show functions
Installed Custom Functions:
(full list of functions)
na-it-asterisk*CLI> core show function BLACKLIST
-= Info about function ‘BLACKLIST’ =-
(full info abotu a function)
I myself find it useful to put at least a condensed version of the application info in the extension.conf file itself. At least for stuff I do not use all the time. An example fropm one of my extensions.conf files:
; Directory(vm-context[|dial-context[|options]])
; Option e causes IVR to give caller your direct extension number for future reference
; Option f causes directory to search by first name (last name is the default)
exten => 777,1,Directory(default,default,e)
exten => 666,1,Directory(default,default,ef)
This makes it easier for me to know what the arguments are and for the next guy who has to dig through the code. I find it funny how many tiems people have issues with lack of documentation and then turn out code of their own that is a pain for the next person to dig through…
And a closing thought…
For years a company bought a legacy phone system had had no software at all. Firmware perhaps but no software. The system was born and died in the vast majority of cases with the same feature set.
We now have software based PBX’s and we can extend the feature set. We can do all sorts of cool things that we could not do in the past.
That being said, at some level you need to look and see if there is a driving reason to always jump to the next level, besides making the output of core show version look more up to date.
That is, before you even start seeing a lot of issues upgrading to 1.4 or 1.4 or whatever, you need to ask yourself, what does my system/company/client get from this?
Unless you can find a real good reason to move, such as a security flaw that is not being back patched, or a feature you really need, why switch? Or at least, why worry about switching right away. I am speaking mostly of systems where the core code is mature and you are only doing simple day to day admin stuff on.
Something to think about at any rate…