Howto:Set up a FGCom server

From FlightGear wiki
Jump to navigation Jump to search

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.