[Asterisk-Users] Outline For Asterisk Book - Please Review & Comment
Steven Sokol
ssokol at sokol-associates.com
Fri Nov 21 10:34:35 MST 2003
Asterisk Users
In an attempt to help Asterisk move forward, a number of us have decided
to create a book. It would initially be released as an "ebook" that
could be sent to newbies to help them up the rather steep learning
curve. Ultimately I would like to see it published and sold in
bookstores (preferably by O'Reilly & Co.).
Below is the outline for the book. We REALLY need as much input as we
can get. I would like to completely flesh-out the outline, then I would
like to start accepting submissions from the user community for each of
the sections/chapters/topics covered in the outline.
I have to stress here that I AM NOT AN ASTERISK GURU. I need help from
the real gurus (especially: Steven Critchfield, John Todd, Tilghman
Lesher, Olle Johansson, and where possible/necessary Mark and Martin).
If this works, it will help Asterisk achieve the same kind of global
success as Apache, Samba, and other Linux staples. If you want to chat,
I am lurking in the #asterisk-doc channel on Freenode IRC. I'm
'ssokol'. Others on this project (so far) are Jared Smith and Leif
Madson.
A "living" copy of this outline can be found at:
http://www.sokol-associates.com/outline.htm . I will try to update it
daily with your suggestions. It will also be the basis for the project
outline (completion %, assignments, etc.).
Thanks,
Steve Sokol
Sokol & Associates, LLC
[Outline Guide]
The following outline describes the layout for the book.
1. <- Section
a. <- Chapter
1) <- Sub-Chapter
i. <- Topic Heading
*. <- Sidebar Heading
1} <- Graphic or Chart
1> <- Table
[Outline]
1. Introduction to Asterisk
a. Introductory letter from Mark Spencer
1) Whatever Mark has to say...
2) Digium Reference Information
i. Web Site
ii. Phone Number
b. The Business Case For Asterisk
[Somebody From The Business Side Writes This]
c. General concept of asterisk
1) Asterisk: Swiss Army Knife of Telephony
2) PBX, IVR, ACD
3) What To Expect
i. Asterisk Is Not A Turnkey System
ii. Don't Like It? Change It Yourself.
iii. Opensource, GPL and LGPL Licensing
d. Asterisk architecture
1) The Big Picture
2) Channels
3) Codec Conversions
4) Etc.
e. Key components
1) Asterisk software
i. Asterisk (Main PBX & Channels)
ii. Zaptel (Drivers for Zaptel Hardware)
iii. Libpri (ISDN PRI Drivers for Zaptel)
2) Zaptel Hardware
i. Overview
ii. X100P - Single Port FXO Line Interface
iii. S100U - Single Port FXS USB Interface
iv. TDM400P - 4 Port FXS Analog Interface
v. T100P - Single Span T1/E1 Interface
vi. TE410P - Quad-Span T1/E1 Interface
3) Channels
i. Zaptel Devices/Channels
ii. The IAX Protocol
iii. SIP
iv. MGCP
v. Skinny
vi. H323
4) Applications
i. Dial and Other Basics
ii. Voicemail
iii. Dial-Plan Scripting
5) Extensibility
i. AGI
ii. Custom Applications
f. Add-On/Optional Components
1) Software
i. Gnophone
ii. VoIP Soft Phones
iii. DIAX
iv. Gastman
v. Open H.323
2) Hardware
i. VoIP Hard-Phones
ii. VoIP Gateways
ii. Channel Banks
2. Installing Asterisk
*. Asterisk Quickstart
1) Install PC Hardware
2) Download Asterisk Software
3) Build Asterisk
4) Install Asterisk
5) Configure Autostart
a. Requirements
*) Picking A Solid System
1) PC Hardware Requirements
i. SOHO/Residential System
ii. Small Business System
iii. Medium Business/Small Call-Center System
iv. Enterprise System
v. VoIP Carrier System
2) Linux Requirements
*. Linux Installation Is Not Covered
i. Tested Distributions
ii. Minimum Kernel Version
iii. Required Packages
*. Other Operating Systems
- Free BSD
- Mac OS-X
- BeOS?
- Win32/Win64?
b. Hardware Installation
1) IRQ Sharing Issues
2) Digium Wildcard Cards
3) LineJack and PhoneJack Cards
4) Other Cards (ISDN, VoiceTronix, Etc.)
c. Downloading Asterisk from CVS
1) What is CVS?
2) The Asterisk "Versioning" Issues
3) Your Initial Download
4) Updates
*. Adding Custom Patches (patch/diff)
d. Compiling Asterisk
*) Why Do I Have To Compile The Code?
1) Using 'make'
2) Compiling The Software
i. Zaptel
ii. Libpri
iii. Asterisk
3) Making The Samples/Demo
4) Making Code Documentation (Doxygen)
i. Why build code documentation?
ii. What Is Doxygen?
iii. Code Doc Layout
5) Common Build Errors/Warnings
i. Via C3 Is NOT An i686
ii. Building on Little-Endian Systems
iii. Etc.
e. Loading drivers (zaptel/ztdummy)
*) Read Ahead (Section 3, Chapter C1) For Zaptel Setup
1) Linux Kernel Loadable Modules
2) Using modprobe
3) Adding zaptel modules to your startup file
*) RedHat Is Weird
f. Starting Asterisk
1) Manual Starting and the CLI
2) Starting using safe_asterisk
3) Accessing the CLI when Asterisk Is Running
4) Logging/Tracing and Verbose
g. Configuring Autostart w/ safe_asterisk
1) Linux Runlevels (the init sequence)
2) Modifying The Startup Manually
*) RedHat Is Still Weird
3. Basic Asterisk Configuration
*. Overview Of Asterisk Configuration
1) System Layout
2) Configuration Files
3) Command Line Interface
a. File Layout (The Asterisk Directory Structure)
1) /etc/asterisk
2) /var/lib/asterisk
3) /var/spool/asterisk
4) Etc...
b. .conf files
1) What Is A .conf File?
2) Common File Structures
3) Reloading Asterisk Configuration
c. Configuring Phones & Channels
1) The zapata.conf File
[All About zaptel/tormenta configuration]
2) The IAX.conf File
i. ?? - Anbyody Know This Well?
3) The sip.conf File
i. The General Section
ii. Supported Codecs/Codec Order
iii. Registration of "peers"
iv. SIP Device Entries
v. Unsupported codecs/G729.a/b
vi. Common SIP Devices
a) Cisco 79XX Phones
b) Cisco ATA-186 Adapter
c) Grandstream Phones
d) SNOM Phones
e) Xten X-Lite/X-Pro
f) SoftJoy SJ-Phone
*. Asterisk and 'Reinvite'
3) The oh323.conf File
i. ?? - Anybody Know This Well?
4) The skinny.conf File
i. ?? - Anybody Know This Well?
5) CAPI/ISDN?
i. ?? - Anybody Know This Well?
d. Configuring Applications
1) Music On Hold: The moh.conf File
a) Don't Forget The Timing (Part A)
2) Voicemail: The voicemail.conf File
a) Basic SMTP Configuration
3) Meet-Me: The meetme.conf File
a) Don't Forget The Timing (Part B)
e. Configuring Your Dialplan
*) The Dialplan: Center Of The System
1) Everything Is An Extension
2) Basics Of Pattern Matching
3) Keeping It All In Context
*) Security, Toll-Fraud and Asterisk
4) Creating Outbound Calling "Extensions"
5) Creating User (Station/Channel) Extensions
6) Creating Application Extensions
f. Sample Configurations
[LOTS OF SAMPLES HERE]
4. Common Issues
a. Music On Hold/MP3 Playback
1) Proper Version of MPG123
2) Zaptel Timer or Ztdummy
b. DTMF Over SIP
1) Inband Only Works On G.711 MuLaw/ALaw
2) SIP-INFO
3) RFC___?
4) The "Flash"
c. Internationalization of Asterisk
1) Tones and Ringback
2) Call Supervision
d. SIP and NAT
e. Optional/Added Codecs
1) G.729
2) G.723
f. Message Waiting Indication
g. SIP Service Provider Issues
1) Free World Dialup (FWD)
2) Iconnect
3) Sipphone
4) NuFone
h. Common Hardware Device Issues
1) Grandstream BT100 Series
2) Cisco ATA-186
3) Cisco 79XX Series Phones
4) SNOM VoIP Phones
5) Carrier Access Channel Banks
*. How to politely use the Asterisk-Users List
*. How to politely use the Asterisk IRC channel
5. Advanced Asterisk Configuration
a. Agents and the Asterisk ACD
b. Text-To-Speech: Festival
c. CLASS Features (John Todd?)
d. Fax (Software Fax)
e. Sphinx Speech Recognition (ASR)
6. Scripting And AGI Extensions to Asterisk
a. What Is AGI?
b. What Languages Can I Use
c.
AGI In: c, perl, php, etc.
7. Creating Asterisk Applications In C
8. Appendicies
a. Sources Of Additional Information
1) Digium Site/Asterisk Site
2) The Asterisk WiKi
3) The Asterisk-User and Asterisk-Dev Lists
4) The #Asterisk IRC Channel
b. Glossary of Asterisk & Telecom Terms
[Large Glossary Of Asterisk & Telecom Terms]
c. Applications Reference
[Detailed Explanation Of All "Standard" Applications]
d. CLI Commands Reference
[Detailed Explanation Of All CLI Commands]
e. Manager Commands Reference
[Detailed Explanation Of All Manager Commands/Events]
f. The Asterisk C API Reference
[Some Detail On The ast_ functions]
More information about the asterisk-users
mailing list