Asterisk Notes

From ITCwiki

What is Asterisk?

Astrerisk is free open source software that works as a call processor that can be customized. It provides support for cards like T1 - it acts like a gateway, or you can employ a service (server to act as the card or gateway) It has become much better over the last five years and has been aroud for 7 or 8 but was no very stable in beginning. You will find it built into most open source services. Many small businesses use asterisk, it is built into other products, often the engine is asterisk. You can get asterisk to work on windows but it is not designed for that. It was designed for Linux but runs on different operating systems like Mac OS X, Solaris, NetBSD, OpenBSD, FreeBSD and a for Microsoft Windows there is a port known as AsteriskWin32. The 7900 series of cisco phones work well with asterisk.

Here are some add-ons and things you can do with Asterisk:

•Drivers for various VoIP protocols.
•Drivers for PSTN interface cards and devices.
•Routing and call handling for incoming calls.
•Outbound call generation and routing.
•Media management functions (record, play, generate tone, etc.).
•Call detail recording for accounting and billing.
•Transcoding (conversion from one media format to another).
•Protocol conversion (conversion from one protocol to another).
•Database integration for accessing information on relational databases.
•Web services integration for accessing data using standard internet protocols.
•LDAP integration for accessing corporate directory systems.
•Single and mult-party call bridging.
•Call recording and monitoring functions.
•Integrated "Dialplan" scripting language for call processing.
•External call management in any programming or scripting language through Asterisk Gateway Interface (AGI)
•Event notification and CTI integration via the Asterisk Manager Interface (AMI).
•Speech synthesis (aka "text-to-speech") in various languages and dialects using third party engines.
•Speech recognition in various languages using third party recognition engines.

How to downlaod and update Asterisk

We will be using Oracle's VirtualBox to download Asterisk to. You will need to create a storage space on your D drive and make a new folder with your name and semester "Name-FA11" then close.

Open up VirtualBox settings and under general in the default box find the folder you just made and click ok. Your information will now be saved there.

Create a new virtual machine by clicking on new machine under OS click on Linux, click next, under RAM use 768 , click next, create new hard disk, click next, VDI, next, Dynammically allocated, next location Astersiks server, default, next, then click create. You should now see that your VM has been created.

You will now nee to change the settings under the network by simply clicking on Network and under network click on adapter and on attatched and change to bridged.

    • Next under storage CD/DVD Drive: click icon beside arrow change to choose a virtual disk CNT files under Linux then Ubuntu 10.10. asterisk tty1

You will get a couple of warnings, click on through them. Under language choose your language (English is the only one Franske will have support for) US, enter, under keyboard click no, enter, enter, it will the start to load. Under hostname use Asterisk, enter, yes, enter, enter, under partition move to yes click continue. Make changes to disks move to yes, continue. The base system will now be installed. enter your name in lowercase, password cisco, cisco again yes, no for encrypting and down arrow for no http proxy continue and it will continue installing choose no automatic updates. Under software selection leave them all blank by using tab key to tab through to select continue after installation select yes to install bootloader. Finish by clicking on devices and click on CD/DVD and make sure there is no check mark beside ubuntu. then click continue

Type your name and password that you entered You are not automatically the administrator to become the admin you have to enter: sudo bash You will see a # to confirm that you are now admin. We will now edit a file by typing:

nano /etc/apt/sources.list 

(nano is the text editor and etc is the file) Click control W US. Under replace with: enter mirror then repeat control w and change with the Update by typing aptitude update, enter aptitude full-upgrade, enter, click enter for yes and update starts. After update it will say Current Staus: 0 updates [-94] We will the type:

aptitude install asterisk atfpd dhcp3-server 

enter 001 for USA country code and click continue If there are errors (and ther will be) type:

aptitude update
install aptitude update

to restart type:

shutdown -r now

and try reinstalling if there are still errors, you will need to log back in and refollow steps to update

We should be able to program settings for 7960 phone


gateway buy VOIP service from service provider on internet

   connects over network to provider with actual gateway
   install on linux  (install linux, then install asterisk
   Cisco 7960 phones popular with asterisk

Step by Step Settings for Virtual Box

create folder on D drive with username, semester, and year update default folder in virtualbox general

   virtualbox settings -- general
       asterisk server
       768 MB ram
       Create new hard disk
       VDI (default)
       Dynamically allocated
       8 GB is enough for virtual disk
       Confirm that drive is installed in expected folder
   Change Network Setting   (click on Network)
       Attached to:  Bridged Adapter
       (connects virtual machine directly to network card of computer)
   ubuntu server file is already on system
   Click on Storage
       click on IDE Controller / Empty
       click on disk on far right side (next ot IDE Secondary Master)
           Choose Virtual CD Disk File
           D:\\CNT Files\Linux Install CDs\
   Click Start to start the virtual machine
       OK through warning about keyboard capture
       OK through virtual colors
       OK through audio problems
   Install Ubuntu Server
       OK through mouse pointer
       OK through color
   Enter through English
   Enter through United States
   no for detect keyboard
   Standard USA keyboard
   hostname   asterisk
   America/Chicago time zone
   Guided  - use entire disk adn set up LVM
   Select Disk -- SCSI3
   select YES
   use default, 8.3 GB
   YES - Write changes to disk
       lower corner of screen will show activity to hard disk, CD, 
           and other devices.
   Create User Accounts
       Full Name
       password:  cisco
       Yes -- accept weak password
       NO  -- do not encrypt home directory
       empty -- no http proxy
   NO automatic updates
   Software to Install
       Leave blank
       TAB to reach Continue button
           the distribution is Oct 2010
           current Oct2011 server edition is the same
   Yes -- install GRUB boot loader to master boot record

Remove virtual CD before

   Pull down Devices to --> CD/DVD Devices

Login using name and password that we specified

become administrator

   sudo bash 
   nano /etc/apt/soruces.list
   search for
   replace with
       In vi this is :1,$s/
       14 lines are changed
   search for
   replace with
       6 lines change
   ctrl-x  to exit

Upgrade Ubuntu OS

The problem with the asterisk install was the age of the operating system. The fix is to upgrade the Ubuntu OS to a later version that is compatible with the current asterisk distribution.

The upgrade process includes the following. 1. login 2. become root via the command

   sudo bash

3. Edit the file, /etc/apt/sources.list. Change the phrase, maverick, to the phrase, nantty, on every line.

   The vi command phrase is :1,$s/maverick/nantty/g

4. Update via the command

   aptitude update

5. Install the upgrade via the command

   aptitude full-upgrade
     Accept this solution:   Answer Y to every prompt
     Click OK for the openbsd-inetd cron atd upgrade
     Click OK for the cron atd upgrade

Login w/: sudo bash Finished updating with replacing the maverick file with natty and updated again

Aptitude update
Aptitude full-upgrade

At the Configuring libc6 screen: enter, enter After updating type in:


We then will go to the file tftp file editor

nano /etc/default/atftpd 

A file should come up with [Read 2 lines] if not update tftp

aptitude install atftpd

add to the beginnng:

--daemon --port69

Add to the end:

mkdir  /tftpboot
; Settings  for Phone 1 Line 1
calleride=”Phone 1 Line 1 <5001>
nano /etc/dhcp3/dhcp/.conf

(if your are missing the dhcp server do an update: aptitude install dhcp3-server)

DHCP for IP Phones
subnet  172.16.(use your cp # for this 3rd octet) .0 netmask {
option routers;
option cisco-etherboot-server;
option tftp-server-name “” ;

Exit and save by cntrl O cntrl X


Exit and save (CntrlO cntrlW)

nano /etc/network/interfaces
iface eth0 inet dhcp
iface eth0 inet static

Exit & save

ifdown eth0
ifup eth0

(ping will keep on until you enter cntrl c)

cd /tftpboot/

Then import file for OS79xx.txt or type in the config file.

shutdown  -h now

2011 12 05

  •  ! exclamation marks = enter
  • nano = edit

Unhook ethernet & login

ls    (to show listing)
cp/etc/dhcp3/dhcpd.conf /etc/dhcpd.conf    (to copy config file from dhcpd3 to dhcpd)

Once your plugged back in and have pc and phone plugged into a poe switch

ifup eth0

Use the following command to see what is happening in real time and control c to get back

tail -f /var/log/syslog
cntrl c
/etc/init.d/isc-dhcp-server start

If you encounter any errors with your configuration file you can edit it by going to:

nano /etc/dhcp/dhcpd.conf
tail /var/log/syslog   (To show tail end of the log

Anytime you need to make a change on the phone you will need to unplug and go through the start up process again


Go to the line that starts with tftp go to end of line that and change /srvtftp to tftpboot

ps aux | grep tftp
/etc/init.d/openbsd-inetd restart 
ps aux | grep tftp

If the srv is still up you have kill the line

nano XMLDefault.cnf.xml    (for editing)

Phone will "Phone Unprovisioned" when it is requesting configuration


make a copy of the SIPmacaddress.cnf

cp SIPmacaddress.cnf SIP(insert mac address here)
nano /etc/asterisk/sip.conf

Edit file:

callerid="phone2line1" <5002>
nano SIP(insert mac address here and use all capital letters).cnf
nano SIPDCefault.cnf

Change the proxy addresses to your computer address Unplug phone and let configuration files reload and reconnect with the following command

asterisk -rcvvvvvvvvvvvvv
sip show peers
cp SIPmacaddress.cnf

Edit file by changing phone1 to phone2 on all instances:

"phone 2"

Unplug phone and plug back in, after you make changes in asterisk you need it to reread the configuration

asterisk -rcvvvvvvvvvvvvv
sip show peers   (to show neighbors) 

Setting up Dial Plan

Now we need to set up a dial plan that allows the phones to communicate A key file is called extensions.conf where all kinds of config files are stored, one of the files is called [demo] which we will try to get to work.

nano /etc/asterisk/extensions.conf
exten => 5001,1,Dial(SIP/phone1line1)
exten => 5002,1,Dial(SIP/phone2line1)
asterisk -rcvvvvvvvvvvvvv

Now can pick up phone and check for dialtone

nano /etc/asterisk/extensions.conf

[demo] to ring a "dummy" line

exten =>6001,1,Goto(Demo,s,1)

You can create another extension and change the caller id by going back to the exten file and entering commands:

exten =>6001,1,Doto(demo,s,1)
exten =>6002,

Setting up Voicemail

For a quick install guide follow the bottom link: