рубрики

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'

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

Рубрика: VoIP | Теги: freeswitch,CDR,postgresql,mod_cdr_pg_csv
Система Orphus
-->