10 | | == Последние изменения в MC04-Dispatcher == |
11 | | |
12 | | [[ChangeLog(/,3)]] |
13 | | |
14 | | == Документы == |
15 | | - [https://docs.google.com/document/d/1KI97C5T0YkfX-NbEs0t1mrk2En8bysTlvlXhyKNpnZg/edit?usp=sharing ТО Комплекс МС04/Dispatcher-IP] |
16 | | - [TracEffectiveWork Эффективная работа с TRAC] |
17 | | - [/wiki/MC04Manual Руководство по работе с пультом диспетчера MC04Dispatcher] |
18 | | - [https://drive.google.com/open?id=0B1er6HfyQelVVUllQU5TZTZYMFU Гайдлайны интерфейса ПО MC04 Dispatcher v0.6] |
19 | | == Формат таблицы cdr в базе данных конференций == |
20 | | |
21 | | {{{ |
22 | | mysql> describe cdr; |
23 | | +------------+------------------+------+-----+---------------------+----------------+ |
24 | | | Field | Type | Null | Key | Default | Extra | |
25 | | +------------+------------------+------+-----+---------------------+----------------+ |
26 | | | id | int(10) unsigned | NO | PRI | NULL | auto_increment | |
27 | | | has_record | tinyint(1) | YES | | 0 | | |
28 | | | starttime | timestamp | NO | | 0000-00-00 00:00:00 | | |
29 | | | endtime | timestamp | NO | | CURRENT_TIMESTAMP | | |
30 | | | xml | text | NO | | NULL | | |
31 | | | conference | varchar(255) | NO | | | | |
32 | | +------------+------------------+------+-----+---------------------+----------------+ |
33 | | 6 rows in set (0.00 sec) |
34 | | |
35 | | }}} |
36 | | |
37 | | |
38 | | == Как настроить функцию громкого боя абоненту == |
39 | | 1. В базе данных freeswitch (mod_db) создать запись с realm alarms и key username следующего формата: |
40 | | |
41 | | Для блока MC04-DSL-3U: {{{<address> .1.3.6.1.4.1.32109.9999.4.<slot>.7.0}}} |
42 | | |
43 | | Для блока MC04-VIP: {{{<address> .1.3.6.1.4.1.32109.1.1.0}}} |
44 | | |
45 | | где <address> - адрес блока 3U/VIP, <slot> - номер слока, в котором стоит плата PE-04. |
46 | | |
47 | | Пример конфигурации громкого боя для абонента varko и блока 3U(адрес 192.168.0.228) c платой PE-04 в слоте 12: |
48 | | |
49 | | {{{db insert/alarms/varko/192.168.0.228 .1.3.6.1.4.1.32109.9999.4.12.7.0}}} |
50 | | |
51 | | |
52 | | Пример конфигурации громкого боя для абонента varko и блока VIP(адрес 192.168.0.228): |
53 | | |
54 | | {{{db insert/alarms/varko/192.168.0.228 .1.3.6.1.4.1.32109.1.1.0}}} |
55 | | |
56 | | Удалить (отключить) функцию громкого боя для абонента можно такой командой: |
57 | | |
58 | | {{{db delete/alarms/<username>}}} |
59 | | |
60 | | например отключение громкого боя для пользователя varko: |
61 | | |
62 | | {{{db delete/alarms/varko}}} |
63 | | |
64 | | |
65 | | 2. Необходимо разрешить запись в блок 3U/VIP по протоколу SNMPv2c c community "private". Для этого надо зайти в блок по ssh и в файле /etc/snmp/snmpd.conf раскомментировать строчку |
66 | | |
67 | | {{{com2sec readwrite default private}}} |
68 | | |
69 | | Это можно сделать, например, такой командой: |
70 | | |
71 | | {{{sed -i 's/^#com2sec readwrite/com2sec readwrite/' /etc/snmp/snmpd.conf}}} |
72 | | |
73 | | или отредактировать файл в текстовом редакторе: |
74 | | |
75 | | {{{vi /etc/snmp/snmpd.conf}}} |
76 | | |
77 | | После редактирования конфиг-файла необходимо выполнить рестарт SNMP-агента такой командой: |
78 | | |
79 | | {{{/etc/init.d/snmpd restart}}} |
80 | | |
81 | | == Как добавить/отредактировать абонента == |
82 | | Список абонентов в виде файлов находится в /etc/freeswitch/conf/directory/default в виде файлов *.xml. |
83 | | Конфигурация пользователей описана здесь: [https://wiki.freeswitch.org/wiki/XML_User_Directory_Guide]. |
84 | | |
85 | | Пользователь включается в группы заданием атрибута '''groups''' в теге '''<user/>''', значением которого является список групп, разделенных символом ';'. |
86 | | |
87 | | Диспетчеру и технику может быть задан атрибут '''allow''' в теге '''<user/>''', значением которого является список разрешенных действий, разделенных символом ';'. |
88 | | В настоящий момент АРМ диспетчера распознает следующие действия: |
89 | | '''recordings''' - просмотр CDR конференций и прослушивание записей. |
90 | | |
91 | | Пример конфигурации абонента: |
92 | | |
93 | | {{{ |
94 | | <include> |
95 | | <user id="varko" groups="Совещание;Главные"> |
96 | | <params> |
97 | | <param name="password" value="alk56djf"/> |
98 | | </params> |
99 | | <variables> |
100 | | <variable name="user_context" value="default"/> |
101 | | <variable name="effective_caller_id_name" value="Оператор-10"/> |
102 | | </variables> |
103 | | </user> |
104 | | </include> |
105 | | }}} |
106 | | |
107 | | = Установка MC04-Softswitch = |
108 | | |
109 | | Устанавливаем ubuntu-server с [http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso mini.iso]. |
110 | | Заводим пользователя adс с паролем adс. |
111 | | Когда спросит о сервисах, отметить для установки openssh. |
112 | | |
113 | | Добавляем наш репозиторий: |
114 | | |
115 | | Для Ubuntu 16.04: |
116 | | {{{ |
117 | | echo deb https://repo.adc-line.ru/ubuntu xenial main | sudo tee -a /etc/apt/sources.list |
118 | | }}} |
119 | | Для Ubuntu 14.04: |
120 | | {{{ |
121 | | echo deb https://repo.adc-line.ru/ubuntu trusty main | sudo tee -a /etc/apt/sources.list |
122 | | }}} |
123 | | |
124 | | Создаём файл adc.key - наш публичный ключ, с содержанием: |
125 | | {{{ |
126 | | -----BEGIN PGP PUBLIC KEY BLOCK----- |
127 | | Version: GnuPG v1 |
128 | | |
129 | | mQGhBFEPhAMRBACy6rIo7GP9mQxG28ndYk1UqaJ/D8MdfZbpjemJk0MGrXJMJErQ |
130 | | eLx6Z91+Sx4SfP4fRSNt9kaP9roFta/Xvma1X8HzPMlp/KXWx3cNGV70gAlzX0IH |
131 | | U3eeb4b1FjBFeyXokOLa35pruN++zskBjPn/p6ZRwQ9NQJovE+Oyr+u3TwCg4yhy |
132 | | s7pVTHfhMGrkyukIW7ICVH8D/ipuFzhz3f8R70O3z8xKmJoslmjtryqHRIB14XB9 |
133 | | rcxLV/IwjjIlIrQWRCabegroEy4eAGNEZa6ZhYCkKg0IpJ+Dp7f9y5OknO6J8x4e |
134 | | aEeQhoYhGPpj/vSS0pmbJHv8BAqLGvBpHC1aUFI9H2VVRJ1sUene/TTCX95+z6EU |
135 | | vfiYA/j/5695A/VUClr+roQJPtKnHFJ0v8fvpwApIn7kVWRTLwe7/3guQ6KXEX92 |
136 | | XVQPaK3fdpBQ2Sx2gwUgMKydPtJTLk9thQvYo1k4oTBEDa2H55Qa6k3tgt3bKMrr |
137 | | rSv5ZFlS/QqZr9KdLQRcYZ+pjlIP2HcCUK87GxjA1DP6E6sItBNBREMgTHRkIChz |
138 | | aWduIG9ubHkpiGAEExECACAFAlEPhAMCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX |
139 | | gAAKCRDLxmDhd4pzw8S9AJ9l83VUYK2mlBYvDG1ME8KMEEmDhgCgtCw6ao0+IgvM |
140 | | EmbjD+bBc3mvzF8= |
141 | | =YLY2 |
142 | | -----END PGP PUBLIC KEY BLOCK----- |
143 | | }}} |
144 | | |
145 | | Добавляем наш публичный ключ (файл adc.key) |
146 | | {{{ |
147 | | sudo apt-key add adc.key |
148 | | }}} |
149 | | |
150 | | Обновляемся: |
151 | | |
152 | | {{{ |
153 | | sudo apt-get update |
154 | | sudo apt-get upgrade |
155 | | }}} |
156 | | |
157 | | Устанавливаем freeswitch и русские звуки к нему: |
158 | | |
159 | | {{{ |
160 | | sudo apt-get install freeswitch-all freeswitch-sounds-ru-ru-elena |
161 | | }}} |
162 | | |
163 | | Конфигурируем freeswitch по вкусу. |
164 | | |
165 | | === Установка базы данных === |
166 | | |
167 | | Если не планируется держать базы данных на том же хосте, что и freeswitch, этот раздел можно пропустить. |
168 | | |
169 | | Устанавливаем mysql-server: |
170 | | |
171 | | {{{ |
172 | | sudo apt-get install mysql-server |
173 | | }}} |
174 | | |
175 | | === Установка TFTP сервера === |
176 | | |
177 | | Если для конфигурации умных телефонов нужен сервер TFTP, то устанавливаем его так: |
178 | | |
179 | | {{{sudo apt-get install tftp tftpd xinetd}}} |
180 | | |
181 | | === Установка NTP сервера === |
182 | | Телефонам нужно получать время, если в сети нет NTP-сервера, устанавливаем: |
183 | | {{{sudo apt-get install ntp}}} |
184 | | |
185 | | === Установка snmp === |
186 | | |
187 | | Если требуется функция громкого боя, устанавливаем snmp: |
188 | | |
189 | | {{{sudo apt-get install snmp}}} |
190 | | |
191 | | == Конфигурирование MC04-Softswitch == |
192 | | == Конфигурация Freeswitch == |
193 | | Скопировать "демонстрационную" конфигурацию в /etc/freeswitch |
194 | | |
195 | | === Создание и настройка базы данных === |
196 | | |
197 | | Подключаемся к mysql и создаем базу данных (в данном примере '''dispatcher'''), создаем таблицу options, устанавливаем права доступа к ней для freeswitch, добавляем пароль event-сокета freeswitch: |
198 | | |
199 | | {{{ |
200 | | mysql -u root -p |
201 | | /* создаем базу данных */ |
202 | | CREATE DATABASE dispatcher; |
203 | | /* даем права доступа для freeswitch */ |
204 | | GRANT ALL PRIVILEGES ON dispatcher.* TO freeswitch@localhost IDENTIFIED BY 'mysql-password'; |
205 | | FLUSH PRIVILEGES; |
206 | | USE dispatcher |
207 | | /* создаем таблицу опций */ |
208 | | CREATE TABLE `options` ( |
209 | | id int(10) unsigned NOT NULL AUTO_INCREMENT, |
210 | | name varchar(64) NOT NULL, |
211 | | value varchar(255) NOT NULL DEFAULT '', |
212 | | PRIMARY KEY (id), |
213 | | UNIQUE KEY name (name) |
214 | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
215 | | /* Вписываем в таблицу пароль для freeswitch event socket */ |
216 | | INSERT INTO options (name, value) VALUES('event-socket-pwd','socketpass'); |
217 | | }}} |
218 | | mysql-password хранится в конфигурационном файле {{{/etc/freeswitch/autoload_configs/conference_cdr_mysql.conf.xml}}} (параметр "mysql-password") |
219 | | |
220 | | socketpass хранится в конфигурационном файле {{{/etc/freeswitch/autoload_configs/event_socket.conf.xml}}}(параметр "password") |
221 | | |
222 | | Cоздаём пользователей 1, 2, 3, 4 с паролем 1 для доступа извне с привилегией SELECT (для подключения MC04-Dispatcher) |
223 | | {{{ |
224 | | GRANT SELECT ON dispatcher.* TO '1'@'%' IDENTIFIED BY '1'; |
225 | | GRANT SELECT ON dispatcher.* TO '2'@'%' IDENTIFIED BY '1'; |
226 | | GRANT SELECT ON dispatcher.* TO '3'@'%' IDENTIFIED BY '1'; |
227 | | GRANT SELECT ON dispatcher.* TO '4'@'%' IDENTIFIED BY '1'; |
228 | | }}} |
229 | | |
230 | | Добавить пароль и шелл для пользователы freeswitch, пароль должен совпадать с socketpass (нужно для подключения MC04-Dispatcher по ssh). |
231 | | {{{ |
232 | | sudo passwd freeswitch |
233 | | }}} |
234 | | {{{ |
235 | | sudo usermod -s /bin/sh freeswitch |
236 | | }}} |
237 | | |
238 | | |
239 | | ... |
240 | | |
241 | | Разрешаем доступ к серверу снаружи : |
242 | | |
243 | | В файле ~~{{{/etc/mysql/my.cnf}}}~~ {{{/etc/mysql/mysql.conf.d/mysqld.cnf}}} |
244 | | |
245 | | замените строку {{{bind-address = 127.0.0.1}}} |
246 | | |
247 | | на {{{bind-address = *}}} |
248 | | |
249 | | Перезагрузите сервер MySQL: {{{sudo service mysql restart}}} |
250 | | |
251 | | |
252 | | === Настройка tftp сервера для авто-конфигурирования телефонов (например CISCO) === |
253 | | |
254 | | необходимо создать файл /etc/xinetd.d/tftp |
255 | | {{{sudo touch /etc/xinetd.d/tftp}}} |
256 | | и добавить следующее содержимое |
257 | | {{{ |
258 | | service tftp |
259 | | { |
260 | | protocol = udp |
261 | | port = 69 |
262 | | socket_type = dgram |
263 | | wait = yes |
264 | | user = nobody |
265 | | server = /usr/sbin/in.tftpd |
266 | | server_args = /tftpboot |
267 | | disable = no |
268 | | } |
269 | | }}} |
270 | | Создадим директорию /tftpboot. Это будет рабочая директория для TFTP сервера. |
271 | | {{{sudo mkdir /tftpboot}}} |
272 | | |
273 | | Изменим владельца этой директории на adc: |
274 | | {{{sudo chown adc:adc /tftpboot}}} |
275 | | |
276 | | Рестарт демона xinetd. |
277 | | {{{sudo /etc/init.d/xinetd restart}}} |
278 | | |
279 | | В директорию /tftpboot помещаем конфигурационные файлы телефонов |
280 | | Готово. |
281 | | |
282 | | === Настройка ntp сервера === |
283 | | в файле {{{/etc/ntp.conf}}}: |
284 | | ~~ Разрешить доступ из нужной подсети: добавить строку{{{restrict 172.16.11.0 mask 255.255.255.0 nomodify notrap}}} и доступ изнутри {{{restrict 127.127.1.0}}} ~~ |
285 | | Если наш сервер не подключен к интернету(или другим ntp серверам), то он перейдёт в стратум=16 и другие устройства не захотят получать время от него. Что-бы этого не произошло: |
286 | | находим строчки добавленых серверов, и закоментим их #, |
287 | | а вместо них добавим внутренний источник времени {{{server 127.127.1.0}}} |
288 | | |
289 | | сохраняем файл и перезапускаем ntp{{{sudo service ntp restart}}} |
290 | | |
291 | | === Окончательная конфигурация MC04-Softswitch === |
292 | | |
293 | | - Изменить конфигурацию сервера согласно потребностям |
294 | | |
295 | | - Изменить пароль администратора Ubuntu (пользователь adc) |
296 | | - Изменить пароль root MySql |
297 | | - Изменить пароли пользователей 1,2,3,4 в MySql и их же внести в конфигурационные файлы соответствующих пользователей {{{/etc/freeswitch/directory/default/}}} |
298 | | - Изменить пароль MySql пользователя freeswitch, затем этот пароль указать в файле {{{/etc/freeswitch/autoload_configs/conference_cdr_mysql.conf.xml}}} |
299 | | - Изменить пароль freeswitch event socket в файле {{{/etc/freeswitch/autoload_configs/event_socket.conf.xml}}} и в таблице опций в БД Mysql |
300 | | |
301 | | ... |
302 | | ... |
303 | | |
304 | | |
305 | | |
306 | | |
307 | | = Настройка рабочего места диспетчера = |
308 | | Устанавливаем ubuntu-server с [http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso mini.iso]. |
309 | | Заводим пользователя dispatcher с паролем dispatcher. |
310 | | Когда спросит о сервисах, отметить для установки openssh. |
311 | | |
312 | | Добавляем наш репозиторий: |
313 | | |
314 | | {{{ |
315 | | echo deb https://repo.adc-line.ru/ubuntu xenial main | sudo tee -a /etc/apt/sources.list |
316 | | }}} |
317 | | |
318 | | Добавляем наш публичный ключ: |
319 | | |
320 | | {{{ |
321 | | wget -O - https://repo.adc-line.ru/keys/adc.key | sudo apt-key add - |
322 | | }}} |
323 | | |
324 | | Обновляемся: |
325 | | |
326 | | {{{ |
327 | | sudo apt-get update |
328 | | sudo apt-get upgrade |
329 | | }}} |
330 | | |
331 | | |
332 | | Устанавливаем X: |
333 | | |
334 | | {{{ |
335 | | sudo apt-get install xorg |
336 | | }}} |
337 | | |
338 | | |
339 | | Устанавливаем пульт: |
340 | | |
341 | | {{{ |
342 | | sudo apt-get install mc04dispatcher |
343 | | }}} |
344 | | |
345 | | |
346 | | Разрешаем любому пользователю запускать X: |
347 | | |
348 | | {{{ |
349 | | sudo dpkg-reconfigure x11-common |
350 | | }}} |
351 | | |
352 | | и выбираем "Anybody". |
353 | | |
354 | | Добавляем пользователя в группу audio: |
355 | | |
356 | | {{{ |
357 | | sudo usermod -aG audio dispatcher |
358 | | }}} |
359 | | |
360 | | |
361 | | Настраиваем дефолтное устройство вывода звука в alsa (перенаправляем звук на dmixer для организации многопоточного звука) |
362 | | [/attachment/wiki/WikiStart/asound.conf /etc/asound.conf] |