Howto:Set up a FGCom server
This page is for installing a FGCom Server. If you want to have voice communications within FlightGear, you are probably wanting to install the client.
This document is to assist in setting up hot spares as potential failover for the new server and for replacing that server if/when that becomes necessary. It is not expected that this will be a widely used document, nonetheless, the information contained is no less valuable for that.
Install Asterisk
You need an instance of Asterisk on the server, you can either install Asterisk via a package manager (if you're using CentOS/RHEL) or via the source code if you're on a different distro. For easiness (and because I can) I chose to do it via the package manager. We used CentOS (this works for RedHat too) and the instructions for installing it on CentOS/RHEL are as follows:
CentOS/RHEL
Setting up the Package Manager
In the '/etc/yum.repos.d' folder create the following files:
centos-asterisk.repo:
[asterisk-tested] name=CentOS-$releasever - Asterisk - Tested baseurl=http://packages.asterisk.org/centos/$releasever/tested/$basearch/ enabled=0 gpgcheck=0 #gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium [asterisk-current] name=CentOS-$releasever - Asterisk - Current baseurl=http://packages.asterisk.org/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0 #gpgkey=http://packages.asterisk.org/RPM-GPG-KEY-Digium
centos-digium.repo:
[digium-tested] name=CentOS-$releasever - Digium - Tested baseurl=http://packages.digium.com/centos/$releasever/tested/$basearch/ enabled=0 gpgcheck=0 #gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium [digium-current] name=CentOS-$releasever - Digium - Current baseurl=http://packages.digium.com/centos/$releasever/current/$basearch/ enabled=1 gpgcheck=0 #gpgkey=http://packages.digium.com/RPM-GPG-KEY-Digium
Installing the Packages
[root@localhost~]# yum install asterisk16 asterisk16-configs asterisk16-voicemail dahdi-linux dahdi-tools libpri
You will then see something like this:
========================================================================================= Package Arch Version Size ========================================================================================= Installing: asterisk16 i386 1.6.0.15-1_centos5 4.0 k Installing for dependencies: asterisk-sounds-core-en-gsm noarch 1.4.15-1_centos5 1.7 M asterisk16-core i386 1.6.0.15-1_centos5 11 M asterisk16-dahdi i386 1.6.0.15-1_centos5 837 k asterisk16-doc i386 1.6.0.15-1_centos5 10 k asterisk16-voicemail i386 1.6.0.15-1_centos5 264 k dahdi-firmware noarch 2.0.1-1_centos5 1.9 k dahdi-firmware-oct6114-064 noarch 1.05.01-1_centos5 165 k dahdi-firmware-oct6114-128 noarch 1.05.01-1_centos5 166 k dahdi-firmware-tc400m noarch MR6.12-1_centos5 1.7 M dahdi-linux i386 2.2.0.2-1_centos5 3.3 k kernel i686 2.6.18-164.el5 16 M kmod-dahdi-linux i686 2.2.0.2-1_centos5.2.6.18_164.el5 3.4 M kmod-dahdi-linux-fwload-vpmadt032 i686 2.2.0.2-1_centos5.2.6.18_164.el5 124 k libpri i386 1.4.10.1-1_centos5 103 k libss7 i386 1.0.2-1_centos5 63 k yum-kmod noarch 1.1.16-13.el5.centos 17 k Transaction Summary ======================================================================================== Install 17 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 35 M Is this ok [y/N]:
Press Y and then ↵ Enter
Downloading Packages: (1/17): dahdi-firmware-2.0.1-1_centos5.noarch.rpm | 1.9 kB 00:00 (2/17): dahdi-linux-2.2.0.2-1_centos5.i386.rpm | 3.3 kB 00:00 (3/17): asterisk16-1.6.0.15-1_centos5.i386.rpm | 4.0 kB 00:00 (4/17): asterisk16-doc-1.6.0.15-1_centos5.i386.rpm | 10 kB 00:00 (5/17): yum-kmod-1.1.16-13.el5.centos.noarch.rpm | 17 kB 00:00 (6/17): libss7-1.0.2-1_centos5.i386.rpm | 63 kB 00:00 (7/17): libpri-1.4.10.1-1_centos5.i386.rpm | 103 kB 00:00 (8/17): kmod-dahdi-linux-fwload-vpmadt032-2.2.0.2-1_centos5.2.6.18_164.el5.i686.rpm | 124 kB 00:00 (9/17): dahdi-firmware-oct6114-064-1.05.01-1_centos5.noarch.rpm | 165 kB 00:00 (10/17): dahdi-firmware-oct6114-128-1.05.01-1_centos5.noarch.rpm | 166 kB 00:00 (11/17): asterisk16-voicemail-1.6.0.15-1_centos5.i386.rpm | 264 kB 00:01 (12/17): asterisk16-dahdi-1.6.0.15-1_centos5.i386.rpm | 837 kB 00:04 (13/17): dahdi-firmware-tc400m-MR6.12-1_centos5.noarch.rpm | 1.7 MB 00:08 (14/17): asterisk-sounds-core-en-gsm-1.4.15-1_centos5.noarch.rpm | 1.7 MB 00:08 (15/17): kmod-dahdi-linux-2.2.0.2-1_centos5.2.6.18_164.el5.i686.rpm | 3.4 MB 00:17 (16/17): asterisk16-core-1.6.0.15-1_centos5.i386.rpm | 11 MB 00:57 (17/17): kernel-2.6.18-164.el5.i686.rpm | 16 MB 00:23 ------------------------------------------------------------------------------------- Total 283 kB/s | 35 MB 02:06 warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897 Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 Is this ok [y/N]:
Press Y and then ↵ Enter again
Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : kernel [ 1/17] Installing : asterisk16-core [ 2/17] Installing : kmod-dahdi-linux [ 3/17] Installing : asterisk16-doc [ 4/17] Installing : kmod-dahdi-linux-fwload-vpmadt032 [ 5/17] Installing : asterisk-sounds-core-en-gsm [ 6/17] Installing : dahdi-firmware-oct6114-064 [ 7/17] Installing : yum-kmod [ 8/17] Installing : dahdi-firmware-tc400m [ 9/17] Installing : dahdi-firmware-oct6114-128 [10/17] Installing : asterisk16-voicemail [11/17] Installing : libss7 [12/17] Installing : libpri [13/17] Installing : dahdi-firmware [14/17] Installing : dahdi-linux [15/17] Installing : asterisk16-dahdi [16/17] Installing : asterisk16 [17/17] Installed: asterisk16.i386 0:1.6.0.15-1_centos5 Dependency Installed: asterisk16-core.i386 0:1.6.0.15-1_centos5 ... Complete! [root@localhost yum.repos.d]#
When you are met with the screen above with the words 'Complete!' on it then you are ready to move on to Part 2: Configuration Files
Debian/Ubuntu
This about covers it:
apt-get install asterisk
Install from Source
Downloading the Source
Downloading necessary packages: LIBPRI, DAHDI, AND Asterisk
cd /usr/src wget http://www.asterisk.org/downloads/asterisk/releases/asterisk-1.6.2-current.tar.gz wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.3.tar.gz wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.3.0.1+2.3.0.tar.gz
Installing Libpri
tar -xvzf libpri-1.4.11.3.tar.gz cd libpri-1.4.11.3 make make install
Installing DAHDI
cd /usr/src tar -xvzf dahdi-linux-complete-2.3.0.1+2.3.0.tar.gz cd dahdi-linux-complete-2.3.0.1+2.3.0 make make install make config
Installing Asterisk
cd /usr/src tar -xvzf asterisk-1.6.2-current.tar.gz cd asterisk-1.6.2.11/ make clean ./configure make make install make samples make config
Configuration Files
Regardless of what OS you are running Asterisk on and regardless of what method of installation you used to install it, there are 2 main configuration files that we need to work with and one file we need to generate and include:
extensions.conf
If you are using an existing Asterisk server then add the following lines to the [default] context:
#include "fgcom.inc" include => fgcom
Or if you are using a new Asterisk install remove everything from 'extensions.conf' and put in:
[general] static=yes writeprotect=yes ; [default] #include "fgcom.inc" include => fgcom
iax.conf
[general] bandwidth=low disallow=lpc10 jitterbuffer=yes forcejitterbuffer=no tos=lowdelay autokill=30000 codecpriority=host disallow=all allow=gsm allow=ilbc allow=g726 language=en maxauthreq=30 context=fgcom minregexpire=30 maxregexpire=10800 maxexpirey=10800 defaultexpirey=10800 ; [guest] type=user username=guest secret=guest context=fgcom qualify=yes callerid=Guest IAX User host=dynamic requirecalltoken=no ;
fgcom.inc
This is a special file generated using a script. It should be placed in the Asterisk config directory (/etc/asterisk/ normally).
You need the gen_phonebook.pl script (https://sourceforge.net/p/flightgear/fgcom/ci/master/tree/server/gen_phonebook.pl?format=raw) and nav.dat.gz and apt.dat.gz from the git repository.
Put them all in the same folder and run the script.