[Asterisk-doc] extensions.conf section

Jared Smith asterisk-doc@lists.digium.com
Mon, 05 Jan 2004 13:12:00 -0700


More comments below:

On Mon, 2004-01-05 at 10:35, Steven Critchfield wrote: 
> Oddly enough, it was really from your outline from 12-29. I mentioned to
> you on IRC that when writing it, it was found necessary to deviate a
> bit. Like in the outline it has variables after macros. Since macros
> have a prerequisite knowledge of variables, that was flip-flopped. I
> added extensions on their own as they needed to be explained for
> rudimentary knowledge. I skipped the getting started section as I still
> don't fully agree with it, and therefore would not consider myself well
> suited to write about at that point.

Wow... that is odd... you'd think I'd recognize my own outline :-)  And
here I am, making an outline of what you've written.

<thud>  <-- That's me pounding my head on my desk

OK... here's the outline of your writing (based on my earlier
outline)... it's only about half fleshed-out, but it should give you a
pretty good idea of where I think the chapter should go.  For the most
part, your writing was great.  There are a few places I'd be a little
more verbose, but we'll work on those after we've got the major
framework in place.

1. Asterisk Directory Structure
        1. /etc/asterisk
        2. /usr/src/asterisk
        3. /usr/lib/asterisk/modules
        4. /var/lib/asterisk
        5. /var/spool/asterisk
        6. /var/log/asterisk
2. Config files (in general)
        1. based on Windows .ini files
        2. attribute=value
        3. object => instance (to steal the OOP term)
3. Extensions.conf
        1. The beginning..
                1. Contexts
                2. Extensions
                3. Priorities
        2. Example one...
                1. A simple 1FXOx1FXS setup
                2. The "s" special extension
                2. Explain Playback() and Dial() (not in depth)
                3. Explain only "Incoming calls" context
        2. Example one... continued...
                1. Add another FXS channel
                2. Simple IVR (1 for Sales, 2 for Support)
                2. Add an "Internal extensions" context and explain
        3. Variables
                1. Call variables
                2. Global variables
                3. Example: Calling all employees (with variables)
        4. Macros
                1. What are macros good for?  To reduce copy/paste
                2. Attributes of Macros
                        1. start with "macro-"
                        2. are expanded in place
                        3. use the "s" extension
                        4. variables are passed as ARG1, ARG2, etc.
        5. Call flow
                1. Extension matches (don't forget ambiguity)
                2. Pattern matching
                        1. Patterns start with "_"
                        2. More specific patterns take priority
                        3. Example of a simple "outbound" context
                3. Including contexts inside others
                        1. How to do it
                        2. Order of includes count! Explain why...
                4. The other special extensions (i,t,o,h,fax,???)
                5. Using the NoOp() application to debug and/or test
logic
        6. VoiceMail
                1. Configuring voicemail.conf
                2. Calling VoiceMail()
                3. Calling VoiceMailMain()
                4. Add voicemail to example one
	7. Other Stuff (Intro to IVR, AGI, Record(), Read(), etc.)

4. Recipes
        1. Blocking telemarketers
        2. Ex-girlfriend filter
        3. Call recording
        4. Night mode
        5. More... lots more!


OK, now for some comments... I think sections 1 and 2 in the above
outline ought to be somewhere else... maybe at the end of the previous
chapter or something... I'm not sure.  But logically, the chapter should
be just extensions.conf.  Section 4 (the recipes) will be it's own
chapter as well.

I'd have done more on the outline, but I was too busy watching NASA-TV. 
(I had to pay attention, because my name is burned on some kind of DVD
on the rover... #1783894.  I'm serious.)

Jared Smith