Version 1 (modified by 8 years ago) ( diff ) | ,
---|
Вариант настройки отказоустойчивого сервера FreeSwitch
Исходные данные
Имеется ubuntu-16.04 c настроенным и работающим сервером FreeSwitch, установленным из нашего репозитория, и используемым для организации диспетчерской связи. Требуется сделать резервирование из двух идентичных серверов FreeSwitch.
Переносим базы данных FreeSwitch в MySQL
Устанавливаем драйвер MyODBC и настраиваем доступ к базе данных
Проверим, что в системе установлен пакет libodbc1
Пакет libodbc1 должен быть уже установлен, так как он является зависимостью пакета libfreeswitch1. Убедимся в этом:
$ dpkg -l libodbc1
Установим драйвер myodbc
- Скачиваем архив mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit.tar.gz отсюда;
- Распаковываем архив:
$ tar zxvf mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit.tar.gz
- Переходим в распакованный каталог:
$ cd mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit
- Скопируем драйвер в каталог odbc:
$ sudo cp lib/* /usr/lib/x86_64-linux-gnu/odbc/
- Конфигурируем установленный драйвер с помощью инсталлятора:
$ sudo bin/myodbc-installer -d -a -n MySQL -t "DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so;"
- Конфигурирвем источник:
$ sudo bin/myodbc-installer -s -a -n freeswitch -t "DRIVER=MySQL;SERVER=127.0.0.1;DATABASE=dispatcher;OPTION=67108864"
где "dispatcher" - имя нашей базы данных на сервере MySQL.
В результате в каталоге /etc должны быть созданы файлы odbc.ini и odbcinst.ini с приблизительно таким содержанием:
odbc.ini:
[freeswitch] Driver = MySQL SERVER = 127.0.0.1 DATABASE = dispatcher PORT = 3306 OPTION = 67108864
odbcinst.ini:
[MySQL] Description=MySQL driver Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so Setup=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5S.so UsageCount=1 FileUsage=1
Проверим работу с базой данных MySQL серез ODBC
$ isql freeswitch <username> <password> +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> show tables; +-----------------------------------------------------------------+ | Tables_in_dispatcher | +-----------------------------------------------------------------+ | cdr | | options | | recordings | +-----------------------------------------------------------------+ SQLRowCount returns 10 10 rows fetched SQL> quit
где <username> и <password> - имя и пароль, установленные для доступа FreeSwitch к базе данных при конфигурации FreeSwitch.
Конфигурируем FreeSwitch для хранения его данных в MySQL
Конфигурируем SIP профили FreeSwitch для хранения данных в MySQL
В файлах конфигурации SIP профилей в разделе <settings/> добавляем такой параметр:
<param name="odbc-dsn" value="odbc://freeswitch:<username>:<password>"/>
где <username> и <password> - имя и пароль, установленные для доступа FreeSwitch к базе данных при конфигурации FreeSwitch. Например:
<param name="odbc-dsn" value="odbc://freeswitch:freeswitch:lagjh46dh3"/>
Здесь же включаем track-calls:
<!-- Enable Track Calls --> <param name="track-calls" value="true"/>
Теперь в консоли FreeSwitch перезапускаем профили командой:
> sofia profile <profile-name> restart
где <profile-name> - имя SIP профиля, например:
> sofia profile internal restart
Контролируем, что профили перезупустились с помощью команды в консоли FreeSwitch:
> sofia status
В нашей базе данных должны создаться новые таблицы. Проверим это:
$ mysql -u <username> -p <dbname> -e 'show tables' Enter password: +-------------------------------------+ | Tables_in_dispatcher | +-------------------------------------+ | cdr | | options | | recordings | | sip_authentication | | sip_dialogs | | sip_presence | | sip_registrations | | sip_shared_appearance_dialogs | | sip_shared_appearance_subscriptions | | sip_subscriptions | +-------------------------------------+
Конфигурируем хранение core-db в MySQL
В конфиг-файле switch.conf.xml добавляем параметр:
<param name="core-db-dsn" value="odbc://freeswitch:<username>:<password>"/> <param name="core-recovery-db-dsn" value="odbc://freeswitch:<username>:<password>"/>
где <username> и <password> - имя и пароль, установленные для доступа FreeSwitch к базе данных при конфигурации FreeSwitch.
Здесь же устанавливаем имя коммутатора:
<param name="switchname" value="freeswitch"/>
Теперь выполняем рестарт FreeSwitch:
$ sudo service freeswitch restart
Убедимся, что в базе данных появились новые таблицы:
$ mysql -u root -p dispatcher -e 'show tables' Enter password: +-------------------------------------+ | Tables_in_dispatcher | +-------------------------------------+ | aliases | | basic_calls | | calls | | cdr | | channels | | complete | | detailed_calls | | interfaces | | nat | | options | | recordings | | recovery | | registrations | | sip_authentication | | sip_dialogs | | sip_presence | | sip_registrations | | sip_shared_appearance_dialogs | | sip_shared_appearance_subscriptions | | sip_subscriptions | | tasks | +-------------------------------------+
Attachments (1)
- pic1.jpg (19.5 KB ) - added by 8 years ago.
Download all attachments as: .zip