[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