Asterisk@Home Handbook Wiki Chapter 1
Business PBX Solutions
Become an ITSP Now!
Chapter 1 Introduction to Asterisk@Home
1.1 What is Asterisk
According to the Wikipedia http://en.wikipedia.org/wiki/Asterisk_PBX Asterisk is an open source software implementation of a telephone private branch exchange (PBX). Like any PBX, it allows a number of attached telephones to make calls to one another, and to connect to other telephone services including the PSTN. "Its name comes from the asterisk symbol, *, which in UNIX (including Linux) and DOS environments represents a wildcard, matching any filename."
Asterisk is free software, released under the GNU General Public License (GPL). Mark Spencer of Digium originally created Asterisk and remains its primary maintainer; dozens of other programmers have contributed features and functionality. Originally designed for the Linux operating system, Asterisk now also runs on OpenBSD, FreeBSD, Mac OS X, Sun Solaris, and Microsoft Windows, although as the "native" platform, Linux is the best-supported of these.
The basic Asterisk software includes many features previously only available in expensive proprietary PBX systems — voice mail, conference calling, interactive voice response (phone menus), and automatic call distribution. Users can create new functionality by writing dial plan scripts in Asterisk's own language, by adding custom modules written in C, or by writing Asterisk Gateway Interface scripts in Perl or other languages.
To attach ordinary telephones to a Linux server running Asterisk, or to connect to PSTN trunk lines, the server must be fitted with special hardware. (An ordinary modem will not suffice.) Digium and a number of other firms sell PCI cards to attach telephones, telephone lines, T1 and E1 lines, and other analog and digital phone services to a server.
Perhaps of more interest to many deployers today, Asterisk also supports a wide range of Voice over IP protocols, including SIP and H.323. Asterisk can interoperate with most SIP telephones, acting both as registrar and as a gateway between IP phones and the PSTN. Asterisk developers have also designed a new protocol, IAX, for efficient trunking of calls among Asterisk PBXes.
By supporting a mix of traditional and VoIP telephony services, Asterisk allows deployers to build new telephone systems efficiently, or gradually migrate existing systems to new technologies. Some sites are using Asterisk servers to replace aging proprietary PBXes; others to provide additional features (such as voice mail or phone menus) or to cut costs by carrying long-distance calls over the Internet (toll bypass).
1.2 What is Asterisk@Home
Asterisk@Home was created to make installing Asterisk easy. Experimenting with Asterisk should be fun and not take hours, days or asterisk experts to set up. Don't let the name Asterisk@Home fool you either. Asterisk@Home contains the full version of asterisk and other pre-configured software that makes this self installing/configuring CD a fully functional PBX upon installation.
Ward Mundy's Nerd Vittles site quoted someone from Voxilla who put it nicely:
Why Use Asterisk@Home and Not Roll Your Own? One of our favorite pundits on Voxilla summed it up this way:
After using Asterisk@Home for three months, we havenÃ¢â�¬â�¢t found a single thing we couldnÃ¢â�¬â�¢t do that someone with a roll-your-own version of Asterisk could. Asterisk@Home is not crippled in any way. In fact, itÃ¢â�¬â�¢s just the opposite. ItÃ¢â�¬â�¢s not only full-blown Asterisk but itÃ¢â�¬â�¢s also AMP (Asterisk Management Panel, think of it as PHPmyAdmin for Asterisk) plus functioning music on hold (just try to get it working on a vanilla Linux box!) plus voice support for any speech application you can dream up plus a Flash Operator Panel plus ring groups plus calling queues plus conferencing plus DID routing plus SQL-compliant Call Detail Reporting plus SugarCRM contact management with integrated dialing plus SpanDSP fax support plus Microsoft Outlook TAPI integration with a Microsoft TAPI gateway (that works!) plus Apache, PHP, SSH, SFTP, sendmail, Web Mail, and MySQL integration plus Cisco XML support (to load your contact management info into your Cisco IP phones) plus xPL for Home Automation plus H.323 NetMeeting support plus turnkey support for SIP, IAX2, auto-configuring ZAP channels, and ENUM.
What we have found is that we can implement solutions for clients in a couple of minutes or hours that would have taken weeks or months to learn to do had we gone the roll-your-own route. That includes building IVR and AutoAttendant solutions literally in minutes, supporting five or more VoIP providers and numerous departments each with numerous phones of all flavors, implementing complex dialing rules, remote phone access, voicemail with email and SMS alerts, and out-of-the-box support for virtually every 3-digit calling feature provided by local Baby Bells.
Are there folks that want to master calling plans, extension syntax, contexts, Linux, Apache, sendmail, MySQL, PHPmyAdmin, WebMin, Web Mail, Asterisk and all its add-onÃ¢â�¬â�¢s plus Linux dependency hell? Absolutely. But Asterisk@Home doesnÃ¢â�¬â�¢t preclude your using anything you learn. It just gives you an incredible, leveraged head start. Asterisk@Home is a deceptive moniker. ItÃ¢â�¬â�¢s not stripped-down, crippled, or condensed in any way. Quite the contrary, itÃ¢â�¬â�¢s Asterisk on Steroids, plain and simple. Worked great for Major League Baseball, didnÃ¢â�¬â�¢t it?
Some people, however, have complained over the name of the project. It IS possible that using this product would be difficult --if only decision makers at a company don't take well to installing their mission critical PBX by the name "Asterisk@Home". No big deal. Please read the part of the wiki that explains how to change the associated gifs and jpgs to something more "Corporate" or "Clueless Manager/Executive Friendly". Remember, this is an open source project. You cannot pull this off with Avaya or Cisco equipment. You can edit the A@H source as much as you like to meet your needs.
1.3 Current list of software in Asterisk@HomeThe software that is currently installed as of Asterisk@Home version 2.7 (03/13/06) is:
- Asterisk (1.2.5) - http://www.asterisk.org/ An open source software implementation of a telephone private branch exchange (PBX). A PBX connects one or more telephones on one side to one or more telephone lines on the other side. A good example of this is a small company with 100 internal telephones sharing 20 outgoing/incoming telephone lines. A PBX can be more cost effective then having 100 direct telephone lines.
- AMP (1.10.010) - http://www.coalescentsystems.ca - Asterisk Management Panel is a web based GUI that allows you to easily manage Asterisk without having to edit sometimes complicated text configuration files. This package can really make a difference in learning and configuring asterisk easily.
- Flash Operator Panel (023.001) - http://www.asternic.org/ - Flash Operator Panel is a switchboard type application for the Asterisk PBX. It runs on a web browser with the flash plugin. It is able to display information about your PBX activity in real time. You can see what all of your extensions, trunks, and conferences are doing. You can also hang up, transfer, initiate a call or create a conference call.
- MPG123 Music On Hold (0.59r) - Asterisk@Home now uses native music on hold so the MP3 music on hold interface in AMP will not work. The old mpg123 is still running. If you change the config files to use MP3s you can upload with AMP.
- SugarCRM (4.0.1a)with Cisco XML Services interface + Click to Dial - http://www.sugarcrm.com/crm/ - SugarCRM is designed to be a complete customer/contact manager. Using SugarCRM we can manage all types of communications (faxes, text messages, phone calls, emails, and even tasks and scheduling) within one single system. Otherwise all these systems are separate and isolated from each other. One way it is integrated with A@H is once you enter all your contacts all you need to do to dial them is use the "click to dial" feature without having to dial the numbers manually. Your phone rings and when you pick up, A@H calls the contact you've requested.
- Festival Speech Engine version (1.96) - http://festvox.org/festival/ - Festival is a speech synthesis system. It allows you to enter text that the Asterisk@Home server "reads out loud" to anyone calling the server. Using this, you can be sure the same voice is used across the whole asterisk server.
- Asterisk Span DSP (0.0.2pre25) (Fax Support) - Optional Software based FAX. Automatically detects and receives incoming fax (on zaptel hardware). It sends the fax as e-mail with a MIME .PDF attachment.
- Open A2Billing () http://www.areski.net/a2billing/ - A2Billing with Asterisk is trying to complete the needs for large, medium-sized companies and start-up who appreciate the Calling Cards business model. A2Billing allows you to craft a calling card management system over your Asterisk Server. Its powerful callingcard platform can be easily deployed with Asterisk, providing wide set of tools to manage a complex & advanced callingcard system! With A2Billing & Asterisk, prepaid/postpaid calling card services are easy to implement via a user-friendly web interface with powerful/advanced functionality.
- Linux CentOS (4.2 Final) - http://www.centos.org/ - CentOS is 100% compatible rebuild of the Red Hat Enterprise Linux (RHEL), in full compliance with Red Hat's redistribution requirements. CentOS 2, 3, and 4 are built from publicly available open source SRPMS provided by Red Hat. CentOS conforms fully to the upstream vendor's redistribution policies and aims to be 100% binary compatible. CentOS mainly changes packages to remove upstream vendor branding and artwork. CentOS is for people who need an enterprise level operating system with stability to match without the associated cost and support.
- Apache Web Server (2.0.52-22.ent.centos4) - http://www.apache.org/ - The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial-grade, feature rich, and freely-available source code implementation of an HTTP (Web) server. The project is jointly managed by a group of volunteers located around the world, using the Internet and the Web to communicate, plan, and develop the server and its related documentation.
- PHP (4.3.9) - http://www.php.net/ PHP is an open-source, reflective programming language used mainly for developing server-side applications and dynamic web content, and more recently, other software.
- PHPMyAdmin (2.7.0-pl2) - http://www.phpmyadmin.net/ phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Internet. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, and manage keys on fields.
- MySQL Database (4.1.12-3.RHEL4.1) - http://www.mysql.com/ MySQL is a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS) with an estimated six million installations. MySQL AB makes MySQL available as free software under the GNU General Public License (GPL), but they also sell it under traditional commercial licensing arrangements for cases where the intended use is incompatible with use of the GPL. It is used in A@H Call Detail Reports and optional configuration information.
- VSFTPD (2.0.1-5.EL4.3) - http://vsftpd.beasts.org/ Very Secure FTPD is a GPL licensed FTP server for UNIX systems, including Linux. It is very secure, stable and extremely fast.
- sendmail (8.13.1-2) - http://www.sendmail.org/ - Sendmail is an open source mail transfer agent. A mail transfer agent or MTA (also called a mail server, or a mail exchange server in the context of the Domain Name System) is a computer program or software agent that transfers electronic mail messages from one computer to another.
- OpenSSH (_3.9p1) - http://www.openssh.com/ - OpenSSH (Open Secure Shell) is a set of computer programs providing encrypted communication sessions over a computer network using the SSH protocol. It was created as an open alternative to the proprietary Secure Shell software.
- xPL () - We have a built in xPL connector that sends out information on Voicemail and CallerID.
- Integrated WebMeetMe GUI (A@H 2.7) - WebMeetMe is a front end to the MeetMe add-on. It gives users full control and the ability to monitor telephone conferences over on a web browser.
- Digium card auto-config (A@H 2.7) -
- Weather agi scripts (A@H 2.7) - Weather agi scripts Fetch the weather from weather.noaa.gov. At weather.noaa.gov is the weather stored in a text file that this script downloads and converts to a sound that is sent to the phone call. Default is Andrew's home city New York;-) This covers only US locations.
- Wakeup calls (1.11) - Wakeup calls This is a wake up call feature. By dialing a phone number you can set the wakeup time when you would like to get a wakeup call.
- Cisco SIP phone support () - We have a web interface and TFTP server that can configure Cisco SIP phones like the 7960
- uLaw Sound Files
- Java based SSH client
- Samba Auto-Setup Script
- VMware support -
1.4 Licensing for Asterisk@HomeAs you can see by the above list, Asterisk@Home contains many different software packages that do not "belong" to A@H. A@H installs & configures them all using scripts that are written and maintained by Andrew. The A@H installation also configures features to make the different packages easily accessible (a good example is the A@H splash screen, the A@H password changer etc). However, you may want to make changes to fit your particular needs. This is where GPLed Open Source Software beats the pants off of ANY proprietary solutions. You can make as many changes you like as long as it fits within the licensing agreement that covers the software package you want to modify (for example AMP). This usually means releasing the changes you've made to the public. Obviously you'll have to look up the type of licensing that each of the software packages uses to understand the rules of making any changes. Most software in A@H is GPLed but it doesn't hurt to find their web sites and make absolutely sure.
When it comes down to the A@H side of things, you can make as many changes as you like. Even though Andrew's scripts are not officially GPLed (yet), they are Open Sourced (you can view the scripts) and can be changed as needed. However please submit the changed scripts to Andrew so he can consider using them or not. The same goes for any A@H branding. You can change the A@H branding and turn around and sell it with your services if you like. Remember, if you make any changes to the scripts, please act as if the scripts are GPLed and release them publicly if you do improve upon them.
1.5 Licensing for the Asterisk@Home Handbook WikiWith community involvement, this handbook is growing by leaps and bounds and truly starting to shape up into a professional piece of documentation. That makes it more and more valuable which makes it also a target for wholesale copying. I've spoken to Andrew (The Project Leader and the original Author of the A@H Handbook) and we've agreed to release this handbook under the "GNU Free Documentation License". Please read this CAREFULLY before using the Handbook for any reason other than using it as a reference (selling it, copying it, etc). The licence is easy to read and will not confuse you like some EULA's I've come across. For an excellent explanation of the GPL Licence, please read http://www.gnu.org/copyleft/fdl.html.
The preamble from the "GNU Free Documentation License" gives a brief description of the licence:
The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or non-commercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
As per Voip-info.org's terms of service, we are releasing the Asterisk@Home Handbook Wiki releasing the under the "GNU Free Documentation License". This way the community can be assured that any work that is put into this handbook cannot be claimed by any one person or web site and is protected against wholesale copying.
Voip-info's terms of service http://www.voip-info.org/terms_of_service.html states that "When you enter content into any area of this web site, unless stated otherwise, you grant voip-info.org and its affiliates a nonexclusive, royalty-free, perpetual, irrevocable, and fully sublicensable right to use, reproduce, modify, adapt, publish, translate, create derivative works from, distribute, and display such content throughout the world in any media."
1.6 Please do not contact Digium for support.Asterisk is a trademark of Digium Inc., and is used by permission. The Asterisk@Home project is not sponsored, endorsed, or supported by Digium, and its authors and maintainers are not affiliated with Digium. Digium does not provide free technical support for Asterisk@Home and has asked us to make sure our users understand this. Please do not contact Digium for support or post on their forums. Thanks.
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+