wiki:WikiStart

Version 23 (modified by san, 8 years ago) ( diff )

--

Система диспетчерской связи 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. Заводим пользователя admin с паролем admin. Когда спросит о сервисах, отметить для установки openssh.

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

echo deb http://adc-line.ru/feeds/ubuntu trusty 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 сервера

sudo apt-get install tftp tftpd xinetd

Конфигурирование 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';
}}
...

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

В файле {{{/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 помещаем конфигурационные файлы телефонов
Готово.


=== Окончательная конфигурация 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 с [http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/mini.iso 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/
}}}


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

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

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.