Phone System

From TipsTrade Wiki
Revision as of 12:03, 7 October 2014 by Baylyj (talk | contribs) (Asterisk)
Jump to: navigation, search

Asterisk

Building Asterisk from source
Asterisk needs to be built from source so that it can be patched to enable Presence Subscriptions. A non-root build environment needs to be configured, and the Source RPM downloaded.
The CentOS Wiki provides general instructions.

As root

yum install rpm-build
useradd rpmbuild
su rpmbuild

As rpmbuild - create the build environment

cd
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

Fetch the src.rpm - use the current version

wget http://yum.freepbxdistro.org/pbx/SRPMS/asterisk/11/asterisk11-11.13.0-1.shmz65.1.31.src.rpm

Extract the rpm - this will likely show a list of packages that need to be created

rpmbuild --rebuild asterisk11-11.13.0-1.shmz65.1.31.src.rpm

Extract and patch the source - this gives us something to test the ASTERISK-13145 patch on

cd rpmbuild/SPECS/
rpmbuild -bp --without misdn asterisk11.spec 

Test the patch downloaded from the ASTERISK-13145

cd ../BUILD/asterisk-11.13.0/
patch --dry-run -p1 < ../../../gareth-11.13.0.patch

If the patch is ok, then copy it to the SOURCE directory, and add it to the SPEC file - it needs to bee added under the list of Patch1, Patch2, etc, and also under the %patch1, $patch2, etc.
For example, in Asterisk 11.13, it was added as Patch13, and %patch13 needed flags "-p1 -F2"
The Release field also has to be updated, in this case "1%{dist}.1.31_13145%{?_without_optimizations:_debug}"

cp ../../../gareth-11.13.0.patch ../../SOURCES/
cd ../../SPECS/
vim asterisk11.spec

And build

rpmbuild -bb --without misdn asterisk11.spec 


Converting WAV to PCM:
Asterisk can't play mu-law files, so they need to be converted to PCM

ORIG=<ulaw file>
PCM=$(echo "$ORIG" | sed 's/ulaw/pcm/')
sox "$ORIG" -r 8000 -c 1 -e signed $PCM