How to install Asterisk 1.4 and FreePBX 2.3.1 in Ubuntu Linux Server 7.10

Taken from: http://www.voip-info.org/

How To Install step by step Asterisk in Ubuntu Server
1. Linux Version : Ubuntu Server
2. Linux Kernel : 2.6.22
3. Asterisk Version : Asterisk V.1.4.13
4. FreePBX Version : FreePBX 2.3.1

Packages Installation

  1. After of install Ubuntu Linux the first thing that we need to do is change the root password
    sudo passwd root
    password

  2. Edit the next file /etc/apt/sources.list and uncomment the next packages repositories

    sudo editor /etc/apt/sources.list

  3. Uncomment and after save the edited file

    deb http://us.archive.ubuntu.com/ubuntu/ dapper universe
    deb-src http://us.archive.ubuntu.com/ubuntu/ dapper universe


  4. Install OpenSSH so we can do the rest of the configuration remotely.

    sudo apt-get install openssl libssl-dev ssh

  5. After we need to install compilation library

    sudo apt-get install gcc make g++

  6. View what kernel version has installed our Ubuntu Linux

    uname -a

  7. After of run the command uname I can see something like that

    Linux MexRom 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux

  8. Then I need to search the headers, images and sources for kernel

    apt-cache search 2.6.22

  9. We need to install the headers, image and sources for the kernel

    sudo apt-get install linux-headers-2.6.22-14-generic linux-image-2.6.22-14-generic linux-source-2.6.22

  10. Too we need install the next applications nmap is practice to view what porst have open our linux systmen, lynx to see any web site from CLI and emacs to files edit

    sudo apt-get install nmap lynx emacs21

  11. We will install festival beacuse is very important for make AGIs with asterisk and any programming language

    sudo apt-get install festival festival-dev

  12. We need the next library to Asterisk

    sudo apt-get install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev

  13. Too is necessary to install the next library

    sudo apt-get install zlib1g zlib1g-dev

  14. This library are required by FreePBX

    sudo apt-get install bison bison-doc

  15. library required for FreePBX

    sudo apt-get install libxml2 libxml2-dev

  16. library required for FreePBX

    sudo apt-get install libtiff4 libtiff4-dev

  17. library required for FreePBX for audio processing

    sudo apt-get install libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev

  18. If you will install a Sangoma Card then you will need install the next

    sudo apt-get install flex

  19. This library are necessary to Asterisk Documentation and install new versions of Asterisk and FreePBX

    sudo apt-get install subversion curl doxygen

  20. library required for FreePBX

    sudo apt-get install libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl

  21. Install Apache web server to acces from any computer to FreePBX GUI

    sudo apt-get install apache2

  22. PHP Librarys required for FreePBX

    sudo apt-get install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db

  23. We need install MySQL Database server to manage the cdr information and asterisk configuration from FreePBX.

    sudo apt-get install mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev

  24. After of Install MySQL maybe we need make any changes these

    We need enter the root password to MySQL Server
    Change the information of Internet Site and select of type like this
    localhost.localdomain

Asterisk Package Compilations

Other updated packages:
wget http://mirror.freepbx.org/freepbx-2.3.1.tar.gz
wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.17.tar.gz
wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.8.tar.gz
wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.3.tar.gz
wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.4.5.tar.gz
  1. In this second step we need create a new folder to put the asterisk packages downloaded

    mkdir ~/asterisk
    cd asterisk

  2. Download the next files and save in the new folder created
  3. Download asterisk-perl this module will allow us process the Asterisk Configuration

    wget http://www.cpan.org/modules/by-category/25_Bundles/Asterisk/asterisk-perl-0.10.tar.gz

  4. These files are requires to control the mp3 and other audio files such as GSM, Ulaw, alaw files etc.

    wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-14.0.0.tar.gz
    wget http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz

  5. Download FreePBX Package that is the main application to configure asterisk from a web navigator

    wget http://easynews.dl.sourceforge.net/sourceforge/amportal/freepbx-2.3.1.tar.gz

  6. Asterisk Packages

    wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.13.tar.gz

  7. If we have a digium card to connect the pstn to our voip network then we need download and install the next package

    wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.5.1.tar.gz
    wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.1.tar.gz
    wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.4.4.tar.gz

  8. Voices in english for Asterisk

    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-ulaw-current.tar.gz
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-ulaw-current.tar.gz
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-moh-freeplay-ulaw.tar.gz

  9. we go the following directory

    cd /usr/src/

  10. we decompress the lame package and we compile and to install

    sudo tar -xvzf ~/asterisk/lame-3.97.tar.gz
    cd lame-3.97
    sudo ./configure --prefix=/usr --sysconfdir=/etc
    sudo make && sudo make install

  11. We decompress sox package and we install this library to process multimedia files

    cd /usr/src/
    sudo tar -xzvf ~/asterisk/sox-14.0.0.tar.gz
    cd sox-14.0.0
    sudo ./configure
    sudo make
    sudo make install

  12. We need to install Asterisk-Perl to process the Asterisk File Configuration

    cd /usr/src/
    sudo tar -xzvf ~/asterisk/asterisk-perl-0.10.tar.gz
    cd asterisk-perl-0.10
    sudo perl Makefile.PL
    sudo make all
    sudo make install

  13. To descompress FreePBX

    cd /usr/src
    sudo tar -xzvf ~/asterisk/freepbx-2.3.1.tar.gz
    cd /usr/src/freepbx-2.3.1

Begin to install the database for Asterisk in MySQL
  1. First We need to access to MySQL CLI, enter the password root, if you don't have configure the password root for mysql then is very important that yo make this step.

    mysql -u root -p
    ENTER
    show databases;
    use mysql ;

  2. Change the root password if you dont have make it

    update user set password = password("PaSsWoRd") where user = "root";

  3. Create the asterisk user for mysql

    grant all privileges on *.* to asterisk@localhost identified by "4st3r1sk";
    flush privileges;
    exit

  4. Entet to mysql using the asterisk user created

    mysql -u asterisk -p

  5. create the database for Asterisk Configuration and CDR information

    create database asteriskcdrdb;
    create database asterisk;
    exit

  6. dump the database schema that is in SQL Folder of FreePBX installation directory

    mysql -u asterisk -p asterisk < /usr/src/freepbx-2.3.1/SQL/newinstall.sql mysql -u asterisk -p asteriskcdrdb < /usr/src/freepbx-2.3.1/SQL/cdr_mysql_table.sql
  7. Finish the MySQL Configuration

Configuring the Asterisk
  1. Create the user for Asterisk and change him password

    sudo groupadd asterisk
    sudo useradd -c "PBX asterisk" -d /var/lib/asterisk -g asterisk asterisk
    sudo passwd asterisk

  2. Create the next directory where Asterisk will put the PID Asterisk Run

    sudo mkdir /var/run/asterisk
    sudo chown asterisk:asterisk /var/run/asterisk

  3. Add the Asterisk user for Apache

    sudo emacs /etc/group
    www-data:x:33:asterisk

  4. press ctrl+x ctrl+s, para salir ctr+x, ctr+cto save and quit

  5. Search the apache configuration using the find command

    find /etc/apache2/ -type f | xargs grep Group

  6. Edit the next file

    sudo emacs /etc/apache2/apache2.conf

  7. To search in Emacs press Ctrl+s and enter the text to search
  8. Change default user for Apache by asterisk user

    User www-data
    Group www-data

  9. Change by

    User asterisk
    Group asterisk

  10. saver and quit (to save ctrl+x ctrl+s, to quit ctr+x, ctr+c )
  11. execute the next command to change the permissions of php lib sessions

    sudo chown -R asterisk /var/lib/php5

  12. Edit the php file configuration and modify the following php properties

    sudo emacs /etc/php5/apache2/php.ini
    upload_max_filesize = 32M
    max_execution_time = 120
    max_input_time = 120

  13. create the Asterisk directrory in /usr/src

    sudo mkdir /usr/src/asterisk
    cd /usr/src/asterisk

  14. decompress the libpri library

    sudo tar zvxf ~/asterisk/libpri-1.4.1.tar.gz

  15. decompress the zaptel library

    sudo tar zvxf ~/asterisk/zaptel-1.4.5.1.tar.gz

  16. decompress Asterisk Files

    sudo tar zvxf ~/asterisk/asterisk-1.4.13.tar.gz

  17. decompress Asterisk AddOns

    sudo tar zvxf ~/asterisk/asterisk-addons-1.4.4.tar.gz

  18. decompress Asterisk Sounds

    sudo mkdir asterisk-sounds
    cd asterisk-sounds
    sudo tar zvxf ~/asterisk/asterisk-core-sounds-en-ulaw-current.tar.gz
    sudo tar zvxf ~/asterisk/asterisk-extra-sounds-en-ulaw-current.tar.gz
    sudo tar zvxf ~/asterisk/asterisk-moh-freeplay-ulaw.tar.gz

  19. compile LibPri library

    cd /usr/src/asterisk/libpri-1.4.1
    sudo make & sudo make install

  20. compile the Zaptel Drivers for asterisk

    cd /usr/src/asterisk/zaptel-1.4.5.1
    sudo make clean
    sudo make
    sudo make install
    sudo make config

  21. Compiling Asterisk

    cd /usr/src/asterisk/asterisk-1.4.13
    sudo make clean
    sudo ./configure
    sudo make
    sudo make install
    sudo make samples
    sudo make progdocs

  22. Compiling Asterisk AddOns

    cd /usr/src/asterisk/asterisk-addons-1.4.4
    sudo make
    sudo make install

  23. Copy the Asterisk Sound to Asterisk sound default directory

    sudo cp -rf /usr/src/asterisk/asterisk-sounds/* /var/lib/asterisk/sounds/

  24. Restart Apache Web Server

    sudo /etc/init.d/apache2 restart

  25. Edit the asterisk file config

    sudo emacs /etc/asterisk/asterisk.conf

  26. change the next line

    RUNASTERISK=/var/run

    by

    RUNASTERISK=/var/run/asterisk

  27. change the user for /var/run/asterisk

    sudo chown -R asterisk:asterisk /var/run/asterisk

  28. Start Asterisk before to begin install FreePBX or FreePBX dont let you to install if dont have started asterisk previously

    sudo asterisk start

  29. check if asterisk has started

    ps aux | grep asterisk

  30. if Asterisk has started then maybe you can see somethink like this

    root 14992 0.2 1.7 22044 7752 ? Ssl 07:14 0:00 asterisk start

  31. To go FreePBX Directory Installation

    cd /usr/src/freepbx-2.3.1/

  32. Install the db library using pear

    sudo pear install db

  33. if you dont found the package, then you can install it manually : sudo pear install db.17.0.0.tgz

    sudo mkdir /var/www/asterisk/
    sudo mkdir /var/www/asterisk/cgi-bin
    sudo chown asterisk:asterisk /var/www/asterisk
    sudo ./install_amp

  34. after to execute install_amp it will request the values to create the file configuration

    first will request the mysql database user

    asteriskuser asterisk

  35. after enter the password for mysql user

    Enter your PASSWORD to connect to the 'asterisk' database:
    amp109 4st3r1sk

  36. Enter the name of database server, if your database server is other server that not be your local hostlocalhost then enter the IP address or the domain name.

    Enter the hostname of the 'asterisk' database:
    localhost localhost

  37. User name to access to Asterisk Manager Interface

    Enter a USERNAME to connect to the Asterisk Manager interface:
    admin asterisk

  38. Password for AMI

    Enter a PASSWORD to connect to the Asterisk Manager interface:
    amp111 4st3.r1sk

  39. Path for the web directory of FreePBX installation

    Enter the path to use for your AMP web root:
    /var/www/html /var/www/asterisk

  40. IP Address of web server

    Enter the IP ADDRESS or hostname used to access the AMP web-admin:
    xx.xx.xx.xx 192.168.1.2

  41. Password to operate Flash Operator Panel

    Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
    passw0rd 4st3r1sk.01

  42. Select default

    Use simple Extensions extensions admin or separate Devices and Users deviceanduser?
    extensions

  43. Select default

    Enter directory in which to store AMP executable scripts:
    /var/lib/asterisk/bin

  44. Select default

    Enter directory in which to store super-user scripts:
    /usr/local/sbin

  45. If you had any error check the database password and user, php and mysql library, apache restart, check pear and php-db installation

Other configurations.
  1. create the following directory

    sudo mkdir /var/lib/asterisk/sounds/custom

  2. change the user for the following directory

    sudo chown -R asterisk:asterisk /var/lib/asterisk/

  3. stop asterisk

    ps aux | grep asterisk
    root 14992 0.0 1.7 22524 7892 ? Ssl 07:14 0:00 asterisk start

  4. 14992 is the Asterisk PID , you will have to stop this pid using the kill command

    sudo kill -s 9 14992

  5. Edit the next file and add the following line if this dont exist in the file

    sudo emacs /etc/default/asterisk
    RUNASTERISK=yes

  6. Run amportal

    sudo amportal start

  7. verify if asterisk is running

    sudo ps aux | grep asterisk

  8. if asterisk is running you should see something like this

    root 15759 0.0 0.1 3864 736 pts/2 S 07:30 0:00 /bin/bash /usr/sbin/safe_asterisk -U asterisk -G asterisk
    asterisk 15764 2.0 1.9 22436 8552 pts/2 Sl 07:30 0:00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
    asterisk 15811 0.0 0.1 1752 496 pts/2 S 07:30 0:00 sh /var/www/asterisk/panel/safe_opserver
    asterisk 15812 14.0 1.8 11072 8340 pts/2 S 07:30 0:00 /usr/bin/perl -w /var/www/asterisk/panel/op_server.pl

  9. Open FireFox and enter the ip address of your web server and put the complete path for FreePBX

    http://192.168.1.2/asterisk/admin/
    By default FreePBX not request your password, but after you should change the admin password and user

    Disconnect of FreePBX

  10. Later edit the amportal.conf file and change the AUTHTYPE value to database

    sudo emacs /etc/amportal.conf
    AUTHTYPE=database

  11. try again connect to FreePBX newly you will be able of enter your user and password to connect to FreePBX Admin

    login:admin
    password:4st3r1sk

  12. Now we have enabled the FreePBX to config Asterisk PBX


    You too can go to the Admin Module and check for new updates and downlooad this modules for have a FreePBX more advanced.


    If the Flash Operator Panel was not enabled, then copy the FOP files of panel directory in FreePBX Installation directory to directory configured in amportal for FOP.

    cd /usr/src/freepbx-2.3.1
    sudo cp -rf amp_conf/htdocs_panel/* /var/www/asterisk/panel
    sudo chown asterisk.asterisk /var/www/asterisk/