ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    My trials of installing FreePBX

    IT Discussion
    linux freepbx cloudatcost asterisk centos 6
    6
    57
    21.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • DashrenderD
      Dashrender
      last edited by Dashrender

      Not having any luck getting my extensions to connect I've decided to start over and document even better this time.

      Again starting with a C@C Dev3 CentOS 6.5 box.

      Following http://wiki.freepbx.org/display/HTGS/Installing+FreePBX+12+on+CentOS+6.5

      Time to disable selinux
      sed -i 's/(^SELINUX=)./\SELINUX=disabled/' /etc/sysconfig/selinux*

      reboot and check status with sestatus which shows

      SELinux status:                 enabled
      SELinuxfs mount:                /selinux
      Current mode:                   enforcing
      Mode from config file:          enforcing
      Policy version:                 24
      Policy from config file:        targeted
      

      Uh - Houston, we have a problem. Let's look at /etc/sysconfig/selinux

      # This file controls the state of SELinux on the system.
      # SELINUX= can take one of these three values:
      #     enforcing - SELinux security policy is enforced.
      #     permissive - SELinux prints warnings instead of enforcing.
      #     disabled - No SELinux policy is loaded.
      SELINUX=disabled
      # SELINUXTYPE= can take one of these two values:
      #     targeted - Targeted processes are protected,
      #     mls - Multi Level Security protection.
      SELINUXTYPE=targeted </code></pre>
      

      OK this matches the instructions, but isn't working. Google tells me that I need to change a different file to disable selinux. http://www.shayanderson.com/linux/disable-selinux-on-centos-6.htm

      This page tells me I need to change SELINUX=disabled in /etc/selinux/config
      They also mention using getenforce as well as sestatus to check the status of selinux.

      Success! Upon rebooting after changing /etc/selinux/config I see

      SELinux status:                 disabled
      

      Time to update the system

      yum -y update
      yum groupinstall core
      yum groupinstall base
      

      I'll be back in an hour or so after this is done.

      1 Reply Last reply Reply Quote 0
      • DashrenderD
        Dashrender
        last edited by Dashrender

        Interrupted by the day job.

        OK updates installed.. now to install some additional packages.

        yum install gcc gcc-c++ lynx bison mysql-devel mysql-server php php-mysql php-pear php-mbstring tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool sqlite-devel
        
        1 Reply Last reply Reply Quote 0
        • scottalanmillerS
          scottalanmiller
          last edited by

          Why are you installing a compiler? What are you going to compile?

          1 Reply Last reply Reply Quote 1
          • DashrenderD
            Dashrender
            last edited by

            Because the instructions tell me to...

            There are several make commands in these setup instructions... is that compiling?

            scottalanmillerS 1 Reply Last reply Reply Quote 0
            • DashrenderD
              Dashrender
              last edited by

              Check the status of iptables and disable them for now to make setup easier. (not my idea, the instructions idea).

              chkconfig iptables --list
              iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

              It was already off (seems odd, but must be the default for C@C)

              SQL setup time

              chkconfig --level 345 mysqld on
              service mysqld start
              

              Output

              Initializing MySQL database:  WARNING: The host 'c1107372-7807.cloudatcost.com' could not be looked up with resolveip.
              This probably means that your libc libraries are not 100 % compatible
              with this binary MySQL version. The MySQL daemon, mysqld, should work
              normally with the exception that host name resolving will not work.
              This means that you should use IP addresses instead of hostnames
              when specifying MySQL privileges !
              Installing MySQL system tables...
              OK
              Filling help tables...
              OK
              
              To start mysqld at boot time you have to copy
              support-files/mysql.server to the right place for your system
              
              PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
              To do so, start the server, then issue the following commands:
              
              /usr/bin/mysqladmin -u root password 'new-password'
              /usr/bin/mysqladmin -u root -h c1107372-7807.cloudatcost.com password 'new-password'
              
              Alternatively you can run:
              /usr/bin/mysql_secure_installation
              
              which will also give you the option of removing the test
              databases and anonymous user created by default.  This is
              strongly recommended for production servers.
              
              See the manual for more instructions.
              
              You can start the MySQL daemon with:
              cd /usr ; /usr/bin/mysqld_safe &
              
              You can test the MySQL daemon with mysql-test-run.pl
              cd /usr/mysql-test ; perl mysql-test-run.pl
              
              Please report any problems with the /usr/bin/mysqlbug script!
              
                                                                         [  OK  ]
              Starting mysqld:                                           [  OK  ]
              
              1 Reply Last reply Reply Quote 0
              • scottalanmillerS
                scottalanmiller @Dashrender
                last edited by

                @Dashrender said:

                Because the instructions tell me to...

                There are several make commands in these setup instructions... is that compiling?

                Make is used for a lot of things. But presumably. This seems fishy, though.

                1 Reply Last reply Reply Quote 0
                • DashrenderD
                  Dashrender
                  last edited by Dashrender

                  Onto Apache

                  chkconfig --level 345 httpd on
                  

                  Output

                  Starting httpd: httpd: apr_sockaddr_info_get() failed for c1107372-7807.cloudatcost.com
                  httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                                             [  OK  ]
                  

                  Now for PearDB

                  pear channel-update pear.php.net
                  pear install db-1.7.14
                  

                  You may receive a warning:
                  WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"

                  Output

                  [root@c1107372-7807 ~]# pear channel-update pear.php.net
                  Updating channel "pear.php.net"
                  Update of Channel "pear.php.net" succeeded
                  [root@c1107372-7807 ~]# pear install db-1.7.14
                  WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
                  downloading DB-1.7.14.tgz ...
                  Starting to download DB-1.7.14.tgz (133,103 bytes)
                  .............................done: 133,103 bytes
                  install ok: channel://pear.php.net/DB-1.7.14
                  

                  I did receive the notice about pear being deprecated - shouldn't these instructions be updated to use the current software?

                  And now a reboot.

                  1 Reply Last reply Reply Quote 0
                  • scottalanmillerS
                    scottalanmiller
                    last edited by

                    The package would need to be updated, not just the instructions.

                    1 Reply Last reply Reply Quote 0
                    • DashrenderD
                      Dashrender
                      last edited by

                      I'm skipping the Google voice stuff - I have an old account, but I don't recall the credentials.

                      add Asterisk user

                      adduser asterisk -M -c "Asterisk User"
                      

                      Download Asterisk

                      cd /usr/src
                      wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
                      wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
                      wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
                      git clone https://github.com/akheron/jansson.git
                      wget http://www.pjsip.org/release/2.2.1/pjproject-2.2.1.tar.bz2
                      

                      No problems there

                      Compile and install DAHDI and LibPRI

                      cd /usr/src
                      tar xvfz dahdi-linux-complete-current.tar.gz
                      tar xvfz libpri-1.4-current.tar.gz
                      rm -f dahdi-linux-complete-current.tar.gz libpri-1.4-current.tar.gz
                      cd dahdi-linux-complete-*
                      make all
                      make install
                      make config
                      cd /usr/src/libpri-1.4.*
                      make
                      make install
                      
                      1 Reply Last reply Reply Quote 0
                      • DashrenderD
                        Dashrender
                        last edited by Dashrender

                        Compile and install pjproject

                        cd /usr/src
                        tar -xjvf pjproject-2.2.1.tar.bz2
                        cd pjproject-2.2.1
                        CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound\
                          --disable-resample --disable-video --disable-opencore-amr --libdir=/usr/lib64
                        make dep
                        make
                        make install
                        

                        Compile and install jansson

                        cd /usr/src/jansson
                        autoreconf -i
                        ./configure --libdir=/usr/lib64
                        make
                        make install
                        
                        1 Reply Last reply Reply Quote 0
                        • DashrenderD
                          Dashrender
                          last edited by

                          Compile and install Asterisk

                          cd /usr/src
                          tar xvfz asterisk-13-current.tar.gz
                          rm -f asterisk-13-current.tar.gz
                          cd asterisk-*
                          contrib/scripts/install_prereq install
                          ./configure --libdir=/usr/lib64
                          contrib/scripts/get_mp3_source.sh
                          make menuselect
                          

                          Now presented with what options I want to install - per the instruction the only thing I add is Format MP3

                          screen.JPG
                          Click Save and Exit and continue with Asterisk install

                          make
                          make install
                          make config
                          ldconfig
                          
                          1 Reply Last reply Reply Quote 0
                          • DashrenderD
                            Dashrender
                            last edited by

                            Took a while but Asterisk is installed.

                            Installing Asterisk extra sounds

                            mkdir -p /var/lib/asterisk/sounds
                            cd /var/lib/asterisk/sounds
                            wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
                            tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
                            rm -f asterisk-extra-sounds-en-wav-current.tar.gz
                            # Wideband Audio download
                            wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz
                            tar xfz asterisk-extra-sounds-en-g722-current.tar.gz
                            rm -f asterisk-extra-sounds-en-g722-current.tar.gz
                            
                            1 Reply Last reply Reply Quote 0
                            • DashrenderD
                              Dashrender
                              last edited by Dashrender

                              Here the second omission in the instructions. They don't tell you to change the directory before downloading FreePBX. I will include it here.

                              cd /usr/src
                              wget http://mirror.freepbx.org/freepbx-12.0.3.tgz
                              tar vxfz freepbx-12.0.3.tgz
                              

                              Change some permissions

                              chown asterisk. /var/run/asterisk
                              chown -R asterisk. /etc/asterisk
                              chown -R asterisk. /var/{lib,log,spool}/asterisk
                              chown -R asterisk. /usr/lib/asterisk
                              chown -R asterisk. /usr/lib64/asterisk
                              mkdir /var/www/html
                              chown -R asterisk. /var/www/
                              

                              Output

                              # chown asterisk. /var/run/asterisk
                              # chown -R asterisk. /etc/asterisk
                              # chown -R asterisk. /var/{lib,log,spool}/asterisk
                              chown -R asterisk. /usr/lib/asterisk
                              chown -R asterisk. /usr/lib64/asterisk
                              mkdir /var/www/html
                              # chown -R asterisk. /usr/lib/asterisk
                              chown: cannot access `/usr/lib/asterisk': No such file or directory
                              # chown -R asterisk. /usr/lib64/asterisk
                              # mkdir /var/www/html
                              mkdir: cannot create directory `/var/www/html': File exists
                              # chown -R asterisk. /var/www/
                              

                              Odd that there is no /usr/lib/asterisk - so I'll just make a mental note
                              the /var/www/html directory already exists - so no big deal

                              1 Reply Last reply Reply Quote 0
                              • DashrenderD
                                Dashrender
                                last edited by Dashrender

                                A few mods to Apache

                                sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini
                                cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig
                                sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf
                                service httpd restart
                                

                                Output
                                Stopping httpd: [ OK ]
                                Starting httpd: httpd: apr_sockaddr_info_get() failed for c1115759-27921.cloudatcost.com
                                httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                [ OK ]

                                I'm going to have to fix apache so it knows it's FQDN

                                1 Reply Last reply Reply Quote 0
                                • DashrenderD
                                  Dashrender
                                  last edited by Dashrender

                                  Configure Asterisk database in MYSQL

                                  cd /usr/src/freepbx
                                  export ASTERISK_DB_PW=amp109
                                  mysqladmin -u root create asterisk 
                                  mysqladmin -u root create asteriskcdrdb
                                  

                                  And set permissions on dbs

                                  mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
                                  mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
                                  mysql -u root -e "flush privileges;"
                                  

                                  Start Asterisk and install FreePBX

                                  cd /usr/src/freepbx
                                  ./start_asterisk start
                                  ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}
                                  

                                  Output

                                  Checking for PEAR DB..OK
                                  Checking for PEAR Console::Getopt..OK
                                  Using username: asteriskuser
                                  Using password: ******
                                  Checking user..OK
                                  Checking if Asterisk is running..running with PID: 11666..OK
                                  Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default
                                  Creating new /etc/amportal.conf
                                  Enter your USERNAME to connect to the 'asterisk' database:
                                   [asteriskuser]
                                  Enter your PASSWORD to connect to the 'asterisk' database:
                                   [amp109]
                                  Enter the hostname of the 'asterisk' database:
                                   [localhost]
                                  Enter a USERNAME to connect to the Asterisk Manager interface:
                                   [admin]
                                  Enter a PASSWORD to connect to the Asterisk Manager interface:
                                   [amp111]
                                  Enter the path to use for your AMP web root:
                                   [/var/www/html]
                                  
                                  PHP Warning:  mkdir(): File exists in /usr/src/freepbx/libfreepbx.install.php on line 197
                                  [FATAL] Cannot create /var/www/html!
                                  

                                  Pressing on (the following commands failed because FreePBX didn't do something right (only error noted above - according the instructions on FreePBX.org you can simply re run the install -
                                  ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW})

                                  amportal chown
                                  amportal a ma installall
                                  amportal a reload
                                  amportal a ma refreshsignatures
                                  amportal chown
                                  

                                  And now the system doesn't know amportal command

                                  OK I ran the ./install_amp command again and now amportal commands are working.

                                  Another mod for FreePBX, then we can start it

                                  ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
                                  amportal restart
                                  

                                  Add the Commercial Modules repos

                                  cd /usr/src
                                  wget -P /etc/yum.repos.d/ -N http://yum.schmoozecom.net/schmooze-commercial/schmooze-commercial.repo
                                  yum clean all
                                  yum -y install php-5.3-zend-guard-loader sysadmin fail2ban incron ImageMagick
                                  service httpd restart
                                  amportal a ma download sysadmin
                                  amportal a ma install sysadmin
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • DashrenderD
                                    Dashrender
                                    last edited by

                                    And now launching the web portal for the first time.

                                    FPBX-first-screen.JPG

                                    1 Reply Last reply Reply Quote 0
                                    • DashrenderD
                                      Dashrender
                                      last edited by Dashrender

                                      As you can see the system isn't setup to listen to FreePBX's .htaccess files so we have to enable the override to allow these to work.

                                      vi /etc/httpd/conf/httpd.conf
                                      

                                      find the line <Directory "/var/www/html"> then local AllowOverride about 14 lines down.
                                      Change AllowOverride = None to AllowOverride = All

                                      Save and quit. now reload httpd

                                      service httpd restart
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • DashrenderD
                                        Dashrender
                                        last edited by

                                        Awesome - that worked.

                                        Nice clean console now..

                                        FPBX-second-screen.JPG

                                        1 Reply Last reply Reply Quote 0
                                        • DashrenderD
                                          Dashrender
                                          last edited by

                                          Time for Server level SIP settings

                                          Click on Settings at the top > Asterisk SIP settings

                                          Type in your external IP address (or if the server is directly on the internet, click the Detect External IP)

                                          Type in the range for your internal networks

                                          Click Submit at the bottom to save the changes.

                                          1 Reply Last reply Reply Quote 0
                                          • DashrenderD
                                            Dashrender
                                            last edited by

                                            OK Hubtech is holding my feet to the fire on these instructions... I need some tweaks I guess.

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 2 / 3
                                            • First post
                                              Last post