Changes between Initial Version and Version 1 of SoftswitchFailOver


Ignore:
Timestamp:
Feb 3, 2017, 4:48:27 PM (8 years ago)
Author:
alx
Comment:

Начальная версия руководства по организации отказоустойчивого сервера (путем резервирования).)

Legend:

Unmodified
Added
Removed
Modified
  • SoftswitchFailOver

    v1 v1  
     1= __Вариант настройки отказоустойчивого сервера FreeSwitch__ =
     2
     3== Исходные данные ==
     4
     5Имеется ubuntu-16.04 c настроенным и работающим сервером !FreeSwitch, установленным из нашего репозитория, и используемым для организации диспетчерской связи. Требуется сделать резервирование из двух идентичных серверов !FreeSwitch.
     6
     7== Переносим базы данных !FreeSwitch в MySQL ==
     8
     9=== Устанавливаем драйвер MyODBC и настраиваем доступ к базе данных ===
     10
     11==== Проверим, что в системе установлен пакет libodbc1 ====
     12
     13Пакет libodbc1 должен быть уже установлен, так как он является зависимостью пакета libfreeswitch1. Убедимся в этом:
     14{{{
     15$ dpkg -l libodbc1
     16}}}
     17
     18==== Установим драйвер myodbc ====
     19
     20* Скачиваем архив mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit.tar.gz [https://dev.mysql.com/downloads/connector/odbc/ отсюда];
     21* Распаковываем архив:
     22{{{
     23$ tar zxvf mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit.tar.gz
     24}}}
     25* Переходим в распакованный каталог:
     26{{{
     27$ cd mysql-connector-odbc-5.3.7-linux-ubuntu16.04-x86-64bit
     28}}}
     29* Скопируем драйвер в каталог odbc:
     30{{{
     31$ sudo cp lib/* /usr/lib/x86_64-linux-gnu/odbc/
     32}}}
     33* Конфигурируем установленный драйвер с помощью инсталлятора:
     34{{{
     35$ sudo bin/myodbc-installer -d -a -n MySQL -t "DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so;"
     36}}}
     37* Конфигурирвем источник:
     38{{{
     39$ sudo bin/myodbc-installer -s -a -n freeswitch -t "DRIVER=MySQL;SERVER=127.0.0.1;DATABASE=dispatcher;OPTION=67108864"
     40}}}
     41  где "dispatcher" - имя нашей базы данных на сервере MySQL.
     42
     43В результате в каталоге /etc должны быть созданы файлы odbc.ini и odbcinst.ini с приблизительно таким содержанием:
     44
     45 odbc.ini:
     46 {{{
     47[freeswitch]
     48Driver = MySQL
     49SERVER = 127.0.0.1
     50DATABASE = dispatcher
     51PORT = 3306
     52OPTION  = 67108864
     53 }}}
     54
     55 odbcinst.ini:
     56 {{{
     57[MySQL]
     58Description=MySQL driver
     59Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5w.so
     60Setup=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc5S.so
     61UsageCount=1
     62FileUsage=1
     63 }}}
     64
     65==== Проверим работу с базой данных MySQL серез ODBC ====
     66
     67{{{
     68$ isql freeswitch <username> <password>
     69+---------------------------------------+
     70| Connected!                            |
     71|                                       |
     72| sql-statement                         |
     73| help [tablename]                      |
     74| quit                                  |
     75|                                       |
     76+---------------------------------------+
     77SQL> show tables;
     78+-----------------------------------------------------------------+
     79| Tables_in_dispatcher                                            |
     80+-----------------------------------------------------------------+
     81| cdr                                                             |
     82| options                                                         |
     83| recordings                                                      |
     84+-----------------------------------------------------------------+
     85SQLRowCount returns 10
     8610 rows fetched
     87SQL> quit
     88}}}
     89где <username> и <password> - имя и пароль, установленные для доступа !FreeSwitch к базе данных при конфигурации !FreeSwitch.
     90
     91=== Конфигурируем !FreeSwitch для хранения его данных в MySQL ===
     92
     93==== Конфигурируем SIP профили !FreeSwitch для хранения данных в MySQL ====
     94
     95В файлах конфигурации SIP профилей в разделе <settings/> добавляем такой параметр:
     96{{{
     97<param name="odbc-dsn" value="odbc://freeswitch:<username>:<password>"/>
     98}}}
     99где <username> и <password> - имя и пароль, установленные для доступа !FreeSwitch к базе данных при конфигурации !FreeSwitch. Например:
     100{{{
     101<param name="odbc-dsn" value="odbc://freeswitch:freeswitch:lagjh46dh3"/>
     102}}}
     103
     104Здесь же включаем track-calls:
     105{{{
     106<!-- Enable Track Calls -->
     107<param name="track-calls" value="true"/>
     108}}}
     109
     110Теперь в консоли FreeSwitch перезапускаем профили командой:
     111{{{
     112> sofia profile <profile-name> restart
     113}}}
     114где <profile-name> - имя SIP профиля, например:
     115{{{
     116> sofia profile internal restart
     117}}}
     118
     119Контролируем, что профили перезупустились с помощью команды в консоли FreeSwitch:
     120{{{
     121> sofia status
     122}}}
     123
     124В нашей базе данных должны создаться новые таблицы. Проверим это:
     125{{{
     126$ mysql -u <username> -p <dbname> -e 'show tables'
     127Enter password:
     128+-------------------------------------+
     129| Tables_in_dispatcher                |
     130+-------------------------------------+
     131| cdr                                 |
     132| options                             |
     133| recordings                          |
     134| sip_authentication                  |
     135| sip_dialogs                         |
     136| sip_presence                        |
     137| sip_registrations                   |
     138| sip_shared_appearance_dialogs       |
     139| sip_shared_appearance_subscriptions |
     140| sip_subscriptions                   |
     141+-------------------------------------+
     142}}}
     143
     144==== Конфигурируем хранение core-db в MySQL ====
     145
     146В конфиг-файле switch.conf.xml добавляем параметр:
     147{{{
     148<param name="core-db-dsn" value="odbc://freeswitch:<username>:<password>"/>
     149<param name="core-recovery-db-dsn" value="odbc://freeswitch:<username>:<password>"/>
     150}}}
     151где <username> и <password> - имя и пароль, установленные для доступа !FreeSwitch к базе данных при конфигурации !FreeSwitch.
     152
     153Здесь же устанавливаем имя коммутатора:
     154{{{
     155<param name="switchname" value="freeswitch"/>
     156}}}
     157
     158Теперь выполняем рестарт !FreeSwitch:
     159{{{
     160$ sudo service freeswitch restart
     161}}}
     162
     163Убедимся, что в базе данных появились новые таблицы:
     164{{{
     165$ mysql -u root -p dispatcher -e 'show tables'
     166Enter password:
     167+-------------------------------------+
     168| Tables_in_dispatcher                |
     169+-------------------------------------+
     170| aliases                             |
     171| basic_calls                         |
     172| calls                               |
     173| cdr                                 |
     174| channels                            |
     175| complete                            |
     176| detailed_calls                      |
     177| interfaces                          |
     178| nat                                 |
     179| options                             |
     180| recordings                          |
     181| recovery                            |
     182| registrations                       |
     183| sip_authentication                  |
     184| sip_dialogs                         |
     185| sip_presence                        |
     186| sip_registrations                   |
     187| sip_shared_appearance_dialogs       |
     188| sip_shared_appearance_subscriptions |
     189| sip_subscriptions                   |
     190| tasks                               |
     191+-------------------------------------+
     192}}}