Skip to content

FreePBX_Installation

Han Boetes edited this page Dec 26, 2019 · 22 revisions

The installation of Chan-SCCP from source has been simplified to the point that the preferred method is always installation from source. Chan-SCCP Versions since 4.1 automatically take into account the various versions of Asterisk and install correctly based on that.

Note: Centos 5 / 6 Only


You have to update the compiler suite on your system before compiling chan-sccp-b. Gcc >= 4.4 is required. Follow the instructions on Update Compiler - Devtools on CentOS If you skip this step, you will experience problems with both asterisk as well as chan-sccp-b !

Requirements

To be able to compile a new module like chan-sccp against asterisk, we require that the asterisk header files are installed you your system. These header files can be found in a package called 'asterisk-devel' or 'asterisk-dev'. You need to your your platforms package manager to install these files. On Centos this would look like:

yum update
yum upgrade
yum install git asterisk-devel

or when running a specific asterisk version, like asterisk-13 (check with rpm -qa | grep asterisk)

yum update
yum upgrade
yum install git asterisk13-devel

or asterisk-16:

yum install git asterisk16-devel

Why is this necessary, you might ask? First, you need to install 'git' so that you can download the source from GitHub. You will need the -devel package to match the Asterisk RANDOM key value so that your compiled channel driver will be loadable. Both these rpm's have to be build at the exact same time. Not two separate runs. That will not work. During compilation asterisk puts a RANDOM value in their binaries, and this RANDOM value has to be the same for all modules. So the chan-sccp also has to copy this 'RANDOM' value from the asterisk-devel package, while compiling for the module to be allowed to load. Maybe this helps clarify things If the RANDOM value does not match, asterisk will complain and fail when loading the chan-sccp module. So do make sure that your asterisk??.rpm and asterisk??-devel.rpm are from the same repository and build. rpm -qa |grep asterisk should tell you which asterisk version is installed.

Source Based Installation

The first step in the source install is downloading the source for the latest stable release or from SVN. Get the tar file or Git files you need and place them in the source directory with the root of the Asterisk source directory. For most installations, the base directory for installation will be /usr/src. Perform the actions below, which download the initial GIT source tree and copying it into the /usr/src directory.

cd /usr/src
git clone https://github.com/chan-sccp/chan-sccp chan-sccp
cd chan-sccp

Note: Once you have done the initial git clone, you can use 'git pull' later on, to get the latest updates/revisions.

Other than that, continue the "Quick Installation" from point 3 instructions below, to configure and compile. You may also want to recompile the Asterisk sources from time to time to make sure that the libraries associated with the Asterisk source are maintained (This is required when the asterisk source files have changed).

Quick Installation

Installing Chan-SCCP on FreePBX derivative systems is quite simple. The general instructions are:

  1. download the source for chan-sccp-b that corresponds to your version of Asterisk, un-tar it,
  2. 'cd' into the source directory
  3. execute:
./configure --enable-conference --enable-advanced-functions --enable-distributed-devicestate # check './configure --help' for more options
make -j2
make install

If you are running into an error/warning stating 'astmoddir could not be found' then please check this page, to resolve the issue.

  1. UPDATE YOUR SYSTEM MODULES.
  • 4a. (FreePBX <= 2.11) edit the /etc/asterisk/modules.conf file. Add:

noload = chan_skinny.so load = chan_sccp.so

  • 4b. (FreePBX 15). Pay attention! This is relevant until core module version at least 15.0.9.47 will be available in FreePBX stable.
    This is FreePBX version 15 only related bug, that prevent you from changing settings in "Asterisk Modules" (step 4c). So you simply can't exclude chan_skinny.so (or any other module). To fix this FreePBX core module version 15.0.9.47 was released.. Until core module version in stable FreePBX repository is less than 15.0.9.47, you need to install fixed core module from so called "edge" branch (unstable repository).

Simply run this command to upgrade core module from "edge" truck/repository. fwconsole ma --edge upgrade core More details here.

  • 4c. (FreePBX >= 12) Via the FreePBX GUI navigate to Admin->Asterisk Modules, under Excluded Modules add chan_skinny.so and under Manually Loaded Modules add chan_sccp.so

FreePBX Excluded Modules FreePBX Manually Loaded Modules
  1. build a sccp.conf config file (look in the conf/ directory for examples). For example you could use the freepbx examples by doing this:
cp conf/sccp.conf.freepbx /etc/asterisk/sccp.conf

mv /etc/asterisk/sccp_extensions.conf /etc/asterisk/sccp_extensions.conf.bak   ; sccp_manager uses realtimedb for line entries
mv /etc/asterisk/sccp_hardware.conf /etc/asterisk/sccp_hardware.conf.bak       ; sccp_manager uses realtimedb for device entries
chown asterisk:asterisk /etc/asterisk/*
chmod 664 /etc/asterisk/*
Clone this wiki locally
You can’t perform that action at this time.