wiki:WikiStart

Version 32 (modified by alx, 9 years ago) ( diff )

Обновлены ссылки с trusty на xenial

Система диспетчерской связи MC04-Dispatcher / MC04-SoftSwitch

Последние изменения в MC04-Dispatcher

1067 by alx on 2022-01-20 11:20:14
Пытаемся использовать pjsua даже при ошибке получения локального адреса IPv6
(такое может произойти если IPv6 административно запрещен на компьютере).
Closes #592.
1066 by alx on 2021-12-20 15:59:12
debian/svn2cl.xsl заменен на debian/svn2cl.awk.
1065 by alx on 2021-12-17 10:36:57
Исправлена (точнее, удалена) предвариетнльная декларация структуры MYSQL.
(more)

Формат таблицы cdr в базе данных конференций

mysql> describe cdr;
+------------+------------------+------+-----+---------------------+----------------+
| Field      | Type             | Null | Key | Default             | Extra          |
+------------+------------------+------+-----+---------------------+----------------+
| id         | int(10) unsigned | NO   | PRI | NULL                | auto_increment |
| has_record | tinyint(1)       | YES  |     | 0                   |                |
| starttime  | timestamp        | NO   |     | 0000-00-00 00:00:00 |                |
| endtime    | timestamp        | NO   |     | CURRENT_TIMESTAMP   |                |
| xml        | text             | NO   |     | NULL                |                |
| conference | varchar(255)     | NO   |     |                     |                |
+------------+------------------+------+-----+---------------------+----------------+
6 rows in set (0.00 sec)

Как настроить функцию громкого боя абоненту

  1. В базе данных freeswitch (mod_db) создать запись с realm alarms и key username следующего формата:

<address> .1.3.6.1.4.1.32109.9999.4.<slot>.7.0

где <address> - адрес блока 3U, в котором стоит плата PE-04, <slot> - номер слока, в котором стоит PE-04. Пример конфигурации громкого боя для абонента varko и платы PE-04 в слоте 12 блока с адресом 192.168.0.228:

db insert/alarms/varko/192.168.0.228 .1.3.6.1.4.1.32109.9999.4.12.7.0

Удалить (отключить) функцию громкого боя для абонента можно такой командой:

db delete/alarms/<username>

например отключение громкого боя для пользователя varko:

db delete/alarms/varko

  1. Необходимо разрешить запись в блок 3U по протоколу SNMPv2c c community "private". Для этого надо зайти в блок по ssh и в файле /etc/snmp/snmpd.conf раскомментировать строчку

com2sec readwrite default private

Это можно сделать, например, такой командой:

sed -i 's/^#com2sec readwrite/com2sec readwrite/' /etc/snmp/snmpd.conf

или отредактировать файл в текстовом редакторе:

vi /etc/snmp/snmpd.conf

После редактирования конфиг-файла необходимо выполнить рестарт SNMP-агента такой командой:

/etc/init.d/snmpd restart

Как добавить/отредактировать абонента

Список абонентов в виде файлов находится в /etc/freeswitch/conf/directory/default в виде файлов *.xml. Конфигурация пользователей описана здесь: https://wiki.freeswitch.org/wiki/XML_User_Directory_Guide.

Пользователь включается в группы заданием атрибута groups в теге <user/>, значением которого является список групп, разделенных символом ';'.

Диспетчеру и технику может быть задан атрибут allow в теге <user/>, значением которого является список разрешенных действий, разделенных символом ';'. В настоящий момент АРМ диспетчера распознает следующие действия: recordings - просмотр CDR конференций и прослушивание записей.

Пример конфигурации абонента:

<include>
  <user id="varko" groups="Совещание;Главные">
    <params>
      <param name="password" value="alk56djf"/>
    </params>
    <variables>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Оператор-10"/>
    </variables>
  </user>
</include>

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

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

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

echo deb http://adc-line.ru/feeds/ubuntu xenial main | sudo tee -a /etc/apt/sources.list
sudo apt-key add adc.key

где adc.key - наш публичный ключ:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQGhBFEPhAMRBACy6rIo7GP9mQxG28ndYk1UqaJ/D8MdfZbpjemJk0MGrXJMJErQ
eLx6Z91+Sx4SfP4fRSNt9kaP9roFta/Xvma1X8HzPMlp/KXWx3cNGV70gAlzX0IH
U3eeb4b1FjBFeyXokOLa35pruN++zskBjPn/p6ZRwQ9NQJovE+Oyr+u3TwCg4yhy
s7pVTHfhMGrkyukIW7ICVH8D/ipuFzhz3f8R70O3z8xKmJoslmjtryqHRIB14XB9
rcxLV/IwjjIlIrQWRCabegroEy4eAGNEZa6ZhYCkKg0IpJ+Dp7f9y5OknO6J8x4e
aEeQhoYhGPpj/vSS0pmbJHv8BAqLGvBpHC1aUFI9H2VVRJ1sUene/TTCX95+z6EU
vfiYA/j/5695A/VUClr+roQJPtKnHFJ0v8fvpwApIn7kVWRTLwe7/3guQ6KXEX92
XVQPaK3fdpBQ2Sx2gwUgMKydPtJTLk9thQvYo1k4oTBEDa2H55Qa6k3tgt3bKMrr
rSv5ZFlS/QqZr9KdLQRcYZ+pjlIP2HcCUK87GxjA1DP6E6sItBNBREMgTHRkIChz
aWduIG9ubHkpiGAEExECACAFAlEPhAMCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDLxmDhd4pzw8S9AJ9l83VUYK2mlBYvDG1ME8KMEEmDhgCgtCw6ao0+IgvM
EmbjD+bBc3mvzF8=
=YLY2
-----END PGP PUBLIC KEY BLOCK-----

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

sudo apt-get update
sudo apt-get upgrade

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

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

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

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

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

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

sudo apt-get install mysql-server

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

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

sudo apt-get install tftp tftpd xinetd

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

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

Установка snmp

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

sudo apt-get install snmp

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

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

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

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

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

mysql -uroot -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

замените строку 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

... ...

Настройка рабочего места диспетчера

Устанавливаем ubuntu-server с mini.iso. Заводим пользователя dispatcher с паролем dispatcher. Когда спросит о сервисах, отметить для установки openssh.

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

sudo apt-get update
sudo apt-get upgrade

Устанавливаем X:

sudo apt-get install xorg

Устанавливаем java:

sudo apt-get install openjdk-7-jre-headless

Разрешаем любому пользователю запускать X:

sudo dpkg-reconfigure x11-common

и выбираем "Anybody".

Добавляем пользователя в группу audio:

sudo usermod -aG audio dispatcher

Устанавливаем SIP_client:

sudo mkdir -p /usr/local/share/SIP_client
sudo scp -r alx@192.168.0.75:work/dispatcher/dispatcher/SIP_client /usr/local/share/

Устанавливаем скрипт запуска: /etc/init/SIP_client.conf

Настраиваем дефолтное устройство вывода звука в alsa (перенаправляем звук на dmixer для организации многопоточного звука) /etc/asound.conf

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.