From Etel

Jump to: navigation, search

We'll be assembling the Cookbook into this space. Here's an outline, which will no doubt change a lot over the coming months. Note that the bullet points are topics, NOT recipe titles. We'll have to fill these in with titles as we have the actual recipes.

Feel free to consider any unwritten recipe "ripe for picking". Don't add your contributions directly to this page, or to links from this page; add them to the recipe heap. We'll slice and dice later.


  • Minimal distro install
  • Required packages (via Yum or apt-get)
  • FTP server (for set provisioning)
  • TFTP (xinitd)
  • Running asterisk as non-root
  • Vim syntax highlighting
  • giving /var it's own partition
  • Setting up an MTA for email relay
  • Doing basic telephone wiring (tools you'll want, whole-house DSL filtering, extended demarcs)

Initial Configuration

  • Editing modules.conf (removing unused modules)
  • Starting with a minimal configuration (extensions.conf. voicemail.conf, iax.conf, sip.conf, zapata.conf, asterisk.conf, indications.conf, moh.conf) (download our templates)
  • Setting up analog trunks (PCI cards, ATAs; include echo cancellation advice)
  • Setting up a PRI circuit
  • Setting up a VoIP service (link to voip-info list)
  • Setting up a cell phone "trunk"
  • Music on hold


  • Creating a device template for sets
  • Creating a user template for use in dial plan
  • Prompt maintenance (including sox scripts)
  • Managing CDR
  • Voicemail management (storage usage)
  • Controlling logger activity
  • Managing amplitude on channels and voicemail
  • Asterisk manager interface

User Services

  • Transfer
  • Park
  • Paging
  • Call recording
  • extension macros
  • do not disturb
  • call forward
  • transfers direct to voicemail
  • Message waiting indicator (MWI) lights (note: you can have the MWI light for multiple extensions)
  • "Feature codes" for blacklisting, recording calls, and so on

Incoming call handling

  • Reception
  • Automated attendant
  • Trusted vs. untrusted connections
  • DIDs
  • Call prioritization and whitelisting
  • Blacklisting (and telemarketer blocking)
    • This might include a "parking lot" for potential telemarketers
    • It might also include a queue to torture telemarketers with
  • The Asterisk-powered doorbell
  • Distinctive ringing with the ALERT_INFO channel variable (this can even be silent with a bit of ATA configuration)
  • Integrating several incoming call sources into one main menu
  • Caller ID (Internet lookups, AstDB rewrites)
  • Handling calls according to time of day, and making it user-configurable ("only ring extension 100 between 8 am and 5 pm")
  • Handling and troubleshooting incoming faxes
  • The ISN: Your Internet-Style telephone number

Ougoing Call Handling

  • PSTN calls
  • VoIP calls
  • DISA
  • Speed dials
  • Automatic route selection
  • Creating "trunk selection" dial prefixes ("01-#" is PSTN, "02-#" is something else, "03-#" is a third outbound trunk), and announcing the trunk before dialing
  • Limiting the length of a call (can be useful for testing to have a one-shot call that has a time limit)
  • Testing emergency call setup in the U.S.

Backups and redundancy

  • clustering
  • Scheduled backups

Building a corporate network with DUNDi

  • single dial plan for extensions
  • sharing local PSTN connections
  • centralized voicemail

Call Centers

  • agents.conf and queues.conf
  • monitoring calls
  • recording calls
  • reporting

MeetMe conferencing

  • meetme.conf
  • public meetme rooms
  • private meetme rooms
  • scheduled using astdb
  • conference administration

Road Warriors

  • Find Me Follow Me
  • Soft phones
  • Calling in for messages
  • Voicemail remote notification using cron and shell scripts

Database Integration

  • Setting CDR db stuff
  • Configuring ARA
  • func_odbc

Network integration

  • Working around NAT
  • Allowing remote ATAs or SIP callers
  • Configuring NTP
  • Using DynDNS
  • Configuring quality of service parameters, especially for 802.11 devices
  • Using MythPhone to display caller ID on your TV

Dialplan tricks

  • Using the Asterisk Expression Language (AEL)
    • Integration of AEL and classic dialplans
  • Writing macros for repetitive tasks
    • Solving variable name reuse in multiple macros with the "${${MACRONAME}-${var}}" construction
  • Validating user input in AEL with switch()

Extending Asterisk with AGI

  • Emulating functions that are not in released Asterisk yet (STRPTIME is not yet in Asterisk, but can be emulated in AGI)
  • Retrieving external data to integrate into a voice gateway (e.g. public transit arrival and departure)
  • AGI as a driver for other services, like SMS

Uncategorized topics

  • Bluetooth proximity detection
  • Translating monophonic ring tones into tones while Asterisk processes data
Personal tools