wiki:SoftswitchSetup

Установка MC04-Softswitch

Устанавливаем ubuntu-server с mini.iso:

Заводим пользователя adс с паролем adс. Когда спросит о сервисах, отметить для установки openssh.

Добавляем наш репозиторий:

Для Ubuntu 24.04:

echo deb https://repo.adc-line.ru/ubuntu noble main | sudo tee /etc/apt/sources.list.d/adc.list

Для Ubuntu 20.04:

echo deb https://repo.adc-line.ru/ubuntu focal main | sudo tee -a /etc/apt/sources.list

Для Ubuntu 16.04:

echo deb https://repo.adc-line.ru/ubuntu xenial main | sudo tee -a /etc/apt/sources.list

Для Ubuntu 14.04:

echo deb https://repo.adc-line.ru/ubuntu trusty main | sudo tee -a /etc/apt/sources.list

Добавляем наш публичный ключ:

sudo wget -O /etc/apt/trusted.gpg.d/adc.gpg https://repo.adc-line.ru/keys/adc.gpg

Обновляемся:

sudo apt update
sudo apt dist-upgrade

Устанавливаем freeswitch и русские звуки к нему:

Для Ubuntu 20.04 и выше:

sudo apt install freeswitch-meta-adc freeswitch-sounds-ru-ru-elena

Для Ubuntu 14.04:

sudo apt install freeswitch-all freeswitch-sounds-ru-ru-elena

Конфигурируем freeswitch по вкусу.

Установка базы данных

Если не планируется держать базы данных на том же хосте, что и freeswitch, этот раздел можно пропустить.

Устанавливаем mysql-server:

sudo apt install mysql-server

Установка TFTP сервера

Если для конфигурации умных телефонов нужен сервер TFTP, то устанавливаем его так:

sudo apt install tftp tftpd xinetd

Установка NTP сервера

Телефонам нужно получать время, если в сети нет NTP-сервера, устанавливаем: sudo apt install ntp

Установка snmp

Если требуется функция громкого боя, устанавливаем snmp:

sudo apt install snmp




Конфигурирование MC04-Softswitch

Конфигурация Freeswitch

Скопировать "демонстрационную" конфигурацию в /etc/freeswitch

Создание и настройка базы данных

Подключаемся к mysql и создаем базу данных (в данном примере dispatcher), создаем таблицу options, устанавливаем права доступа к ней для freeswitch, добавляем пароль event-сокета freeswitch:

mysql -u root -p
/* создаем базу данных */
CREATE DATABASE dispatcher;
/* даем права доступа для freeswitch */
GRANT ALL PRIVILEGES ON dispatcher.* TO freeswitch@localhost IDENTIFIED BY 'mysql-password';
FLUSH PRIVILEGES;
USE dispatcher
/* создаем таблицу опций */
CREATE TABLE `options` (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  name varchar(64) NOT NULL,
  value varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (id),
  UNIQUE KEY name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/* Вписываем в таблицу пароль для freeswitch event socket */
INSERT INTO options (name, value) VALUES('event-socket-pwd','socketpass');

mysql-password хранится в конфигурационном файле /etc/freeswitch/autoload_configs/conference_cdr_mysql.conf.xml (параметр "mysql-password")

socketpass хранится в конфигурационном файле /etc/freeswitch/autoload_configs/event_socket.conf.xml(параметр "password")

Cоздаём пользователей 1, 2, 3, 4 с паролем 1 для доступа извне с привилегией SELECT (для подключения MC04-Dispatcher)

GRANT SELECT ON dispatcher.* TO '1'@'%' IDENTIFIED BY '1';
GRANT SELECT ON dispatcher.* TO '2'@'%' IDENTIFIED BY '1';
GRANT SELECT ON dispatcher.* TO '3'@'%' IDENTIFIED BY '1';
GRANT SELECT ON dispatcher.* TO '4'@'%' IDENTIFIED BY '1';

Добавить пароль и шелл для пользователы freeswitch, пароль должен совпадать с socketpass (нужно для подключения MC04-Dispatcher по ssh).

sudo passwd freeswitch
sudo usermod -s /bin/sh freeswitch

...

Разрешаем доступ к серверу снаружи :

В файле /etc/mysql/my.cnf /etc/mysql/mysql.conf.d/mysqld.cnf

замените строку bind-address = 127.0.0.1

на bind-address = *

Перезагрузите сервер MySQL: sudo service mysql restart

Настройка tftp сервера для авто-конфигурирования телефонов (например CISCO)

необходимо создать файл /etc/xinetd.d/tftp sudo touch /etc/xinetd.d/tftp и добавить следующее содержимое

service tftp                          
 {                                    
 protocol        = udp                
 port            = 69                 
 socket_type     = dgram              
 wait            = yes                
 user            = nobody             
 server          = /usr/sbin/in.tftpd 
 server_args     = /tftpboot          
 disable         = no                 
 }   

Создадим директорию /tftpboot. Это будет рабочая директория для TFTP сервера. sudo mkdir /tftpboot

Изменим владельца этой директории на adc: sudo chown adc:adc /tftpboot

Рестарт демона xinetd. sudo /etc/init.d/xinetd restart

В директорию /tftpboot помещаем конфигурационные файлы телефонов Готово.

Настройка ntp сервера

в файле /etc/ntp.conf: Разрешить доступ из нужной подсети: добавить строкуrestrict 172.16.11.0 mask 255.255.255.0 nomodify notrap и доступ изнутри restrict 127.127.1.0 Если наш сервер не подключен к интернету(или другим ntp серверам), то он перейдёт в стратум=16 и другие устройства не захотят получать время от него. Что-бы этого не произошло: находим строчки добавленых серверов, и закоментим их #, а вместо них добавим внутренний источник времени server 127.127.1.0

сохраняем файл и перезапускаем ntpsudo service ntp restart

Окончательная конфигурация MC04-Softswitch

  • Изменить конфигурацию сервера согласно потребностям
  • Изменить пароль администратора Ubuntu (пользователь adc)
  • Изменить пароль root MySql
  • Изменить пароли пользователей 1,2,3,4 в MySql и их же внести в конфигурационные файлы соответствующих пользователей /etc/freeswitch/directory/default/
  • Изменить пароль MySql пользователя freeswitch, затем этот пароль указать в файле /etc/freeswitch/autoload_configs/conference_cdr_mysql.conf.xml
  • Изменить пароль freeswitch event socket в файле /etc/freeswitch/autoload_configs/event_socket.conf.xml и в таблице опций в БД Mysql

... ...

Last modified 6 weeks ago Last modified on Sep 23, 2024, 10:44:18 PM
Note: See TracWiki for help on using the wiki.