Установка freeswitch+CDR+postgresql на CentOS 6

Установка и настройка freeswitch с отчетом о звонках  в базу postgresql на CentOS 6.

Обновляем систему

yum –y update

устанавливаем необходимые пакеты

yum install git gcc-c++ autoconf automake libtool wget python make expat-devel ncurses-devel zlib zlib-devel e2fsprogs-devel libjpeg-devel unixODBC-devel openssl-devel sqlite-devel libcurl-devel pcre-devel speex-devel gnutls-devel libogg-devel libvorbis-devel curl-devel gdbm gdbm-devel libedit-devel ldns dns-devel libldns-dev postgresql postgresql-server postgresql-devel

Установка freeswitch

cd /usr/src
git clone -b v1.4 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh –j

в файле /usr/src/freeswitch/modules.conf раскоментируем строку

mod_cdr_pg_csv

Продолжаем установку

./configure --enable-core-pgsql-support

Если в процессе появится ошибка

checking for libldns >= 1.6.6... checking for ldns_str2rdf_a in -lldns... no
configure: error: You need to either install libldns-dev or disable mod_enum in modules.conf

То необходимо установить ldns и ldns-devel

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
yum install ldns ldns-devel -y

после чего снова запустить

./configure --enable-core-pgsql-support
make
make install

Установим аудиофайлы

make sounds-install
make moh-install
make hd-moh-install
make hd-sounds-install
make uhd-moh-install
make uhd-sounds-install
make cd-sounds-install
make cd-moh-install

Установим русские аудиофайлы

make sounds-ru-install
make cd-sounds-ru-install
make uhd-sounds-ru-install
make hd-sounds-ru-install

Добавляем freeswitch в автозагрузку

useradd freeswitch
cd /usr/local/
chown -R freeswitch:freeswitch freeswitch
chmod -R g+w freeswitch
cd /usr/src/freeswitch/build
cp freeswitch.init.redhat /etc/init.d/freeswitch
chmod +x /etc/init.d/freeswitch
cp freeswitch.sysconfig /etc/sysconfig/freeswitch

Подредактируем /etc/init.d/freeswitch

PROG_NAME=freeswitch
PID_FILE=${PID_FILE-/usr/local/freeswitch/log/freeswitch.pid}
FS_USER=${FS_USER-freeswitch}
FS_FILE=${FS_FILE-/usr/local/freeswitch/bin/freeswitch}
FS_HOME=${FS_HOME-/usr/local/freeswitch}
LOCK_FILE=/var/lock/subsys/freeswitch
FREESWITCH_ARGS="-nc"
RETVAL=0

Создадим ссылку для CLI

cd /usr/local/bin/
ln -s /usr/local/freeswitch/bin/fs_cli fs_cli

По умолчанию после установки будут существовать номера 1000-1019 с default паролями 1234, так что, первым делом поменяем этот пароль на любой другой. Для этого в файле vars.xml находим строку <X-PRE-PROCESS cmd=”set” data=”default_password=1234″/> и меняем значение default_password на любое другое значение.

Теперь запускаем cli

fs_cli

и в командной строке делаем reload mod_sofia или reloadxml

На этом установка freeswitch закончена

Настройка Postgresql

Запускаем postgresql

service postgresql initdb
/etc/init.d/postgresql start

Добавляем в автозвгрузку

chkconfig postgresql on

Установим пароль на пользователя postgres и создадим базу для CDR.

sudo -u postgres psql
postgres=# alter user postgres with password 'postgres';
postgres=# CREATE DATABASE freeswitchdb; 

Выбираем нашу базу freeswitch

postgres=# \c freeswitchdb;

И создаем таблицу

CREATE TABLE cdr(
 ID SERIAL PRIMARY KEY,
 local_ip_v4 CHAR(16), 
 caller_id_name CHAR(20), 
 caller_id_number CHAR(20),
 outbound_caller_id_number CHAR(20),
 destination_number CHAR(20),
 context CHAR(20),
 start_stamp timestamp default NULL,
 answer_stamp timestamp default NULL,
 end_stamp timestamp default NULL,
 duration INT, 
 billsec INT, 
 hangup_cause CHAR(30),
 uuid CHAR(50),
 bleg_uuid CHAR(50),
 accountcode CHAR(20),
 read_codec CHAR(10),
 write_codec CHAR(10)
);

В файле /var/lib/pgsql/data/pg_hba.conf добавляем строки

host all all 127.0.0.1/32 md5.
local all all md5

Настройка freeswitch для работы с postgresql

в /usr/local/freeswitch/conf/autoload_configs/cdr_pg_csv.conf.xml прописываем данные для подключения к postgresql, для этого прописываем

<param name="db-info" value="host=127.0.0.1 dbname=freeswitchdb user=postgres password=postgres connect_timeout=10" />

Где:

host-ip адрес сервера с базой postgresql

dbname-наша база

user, password-логин и пароль для подключения к базе

также в секции <schema> мы можем добавить или удалить нужные нам поля.

Для автозагрузки модуля в файл /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml добавляем строку

<load module="mod_cdr_pg_csv"/>

Загружаем модуль mod_cdr_pg_csv

fs_cli -x 'load mod_cdr_pg_csv'

Теперь отчет о звонках будет писаться в базу.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: