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 !
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
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 asteriskshould 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).
Installing Chan-SCCP on FreePBX derivative systems is quite simple. The general instructions are:
- download the source for chan-sccp-b that corresponds to your version of Asterisk, un-tar it,
- 'cd' into the source directory
./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.
- 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 220.127.116.11 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 18.104.22.168 was released.. Until core module version in stable FreePBX repository is less than 22.214.171.124, 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
- 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/*