SvxLink на Raspberry PI - голосовой сервер

НОЯБРЬ 2016
(обновлено в 2019)

В этой статье, максимально просто описаны все стадии создания радиолюбительского голосового сервера, без лишних подробностей.

SvxLink, это голосовая платформа, для радиолюбительских сервисов. К ней можно подключить несколько радиостанций, для работы в симплексном и дуплексном режимах. Список стандартных возможностей (сервисов):

Работают автономно:
Help — интерактивная голосовая помощь
Parrot — эхо-репитер (репитер с отложенной передачей)
SelCall — селективный вызов разных стандартов
DtmfRepeater — ретранслятор DTMF сигналов (удалённое управление)
TclVoiceMail — голосовая почта (для локальных пользователей)
RemoteRelay — управление реле по радиоканалу
TxFan — управление вентилятором обдува передатчика
anons — голосовой маяк и объявления в эфире

Требуют подключение к tcp/ip сети:
EchoLink — подключение к сети EchoLink
FRN — подключение к сети Free Radio Network
PropagationMonitor — информация о прохождении из dxmaps.com
MetarInformation — метеосводки аэропортов
remoteTRX — удалённый приёмник/передатчик
svxReflector — соединение нескольких svxlink в общую сеть
svxserver — создание разговорных групп
rtl_sdr — дополнительные usb-приёмники
aprs — aprs маяк (показывает группу и кол-во соединений)

Установив SvxLink на микрокомпьютер Raspberry_PI, мы получаем лицензионно чистый, дешевый, стабильно работающий, компактный, голосовой сервер с дистанционным управлением и гибкой конфигурацией.

Платы Raspberry PI проверенные с SvxLink:
ВерсияДатаПроцессорЧастотаЯдерОЗУGPIOUSBEthernetWiFiBluetooth
B2012ARM1176JZ-F700 МГц1512 Мб26 пинов2 портаесть
 B+2014ARM1176JZ-F700 МГц1512 Мб40 пинов4 портаесть
2B2015ARM Cortex-A7900 МГц41 Гб40 пинов4 портаесть
3B2016ARM Cortex-A53 x641,2 ГГц41 Гб40 пинов4 портаесть802.11n4.1
3B+2018ARM Cortex-A53 x641,4 ГГц41 Гб40 пинов4 портаесть802.11ac4.2
4B2019Cortex-A72 (ARM v8)1,5 ГГц41-4 Гб40 пинов4 портаесть802.11ac5.0

Любая версия Raspberry_PI, хорошо работает с SvxLink. Встроенная звуковая карта имеет только выход, поэтому нам требуется внешняя.

Для сборки простой конфигурации, нам понадобится:
1. Raspberry PI + блок питания 5В + SD-карта 4Гб.
2. USB звуковая карта СМ108
3. Транзистор КТ503, резисторы и конденсаторы любого типа
4. Радиостанция любая (на схеме подключение к Hytera MD-785G)
5. Блок питания 13В, 15А
6. Антенна, кабель, разьёмы

Схему соединения вы видите на картинке. У меня используется Raspberry PI с 26 контактным разьёмом. Снимаем корпус со звуковой карты, а контакты у разьёмов припаиваем к деталям интерфейса, так надёжнее. Всё детали размещаем в корпусе подходящего размера.

По умолчанию, svxlink будет наcтроен так, что управление PTT берётся с gpio9. Сигнал об открытии шумоподавителя (COS) поступает на gpio18 (можно изменить).


Прежде чем идти дальше, нужно прочитать статью 'Установка SVXLINK на Raspberry_Pi' и выполнить все действия указанные там.


Если svxlink находится в домашней сети, за файрволом (роутером), возможно потребуется открыть наружу следующие порты:

UDP 5198 и 5199 - echolink звук
TCP 5200 - echolink управление
TCP 5300 - svxReflector
TCP/UDP 10024 - frn
TCP 14580 - aprs

Внимание!
Дальнейшая настройка и конфигурация Raspberry PI требует подключённого интернета, радиостанции и интерфейса звуковой картой.

Редактируем конфигурационный файл, для этого набираем команду sudo nano /etc/svxlink/svxlink.conf
Установки отвечающие за передачу сигнала в эфир:

[Tx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
............
PTT_TYPE=GPIO
PTT_PIN=gpio9
............
TIMEOUT=300
TX_DELAY=500
............

Установки отвечающие за приём сигнала из эфира:

[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
............
#SQL_DET=VOX
SQL_DET=GPIO
SQL_START_DELAY=0
SQL_DELAY=0
SQL_HANGTIME=2000
............
GPIO_SQL_PIN=gpio18
............
SIGLEV_OPEN_THRESH=5
SIGLEV_CLOSE_THRESH=2
............

Если вы не используете COS, активируйте VOX, для этого уберите # перед строкой SQL_DET=VOX и поставьте перед #SQL_DET=GPIO. Перезагрузите svxlink.

Для настройки уровней передачи и приёма, воспользуйтесь модулем эхо-репитера (команда 1#), должно быть чёткое срабатывание на сигналы разного уровня и громкости. Проверьте модули помощи (0#) и голосовой почты (3#). Выход из модуля #. Добейтесь устойчивой работы!

Внимание!
Без правильной настройки, не следует идти дальше и подключать другие модули!

Регулировать девиацию передатчика, можно подстроечным резистором на плате или в программе alsamixer. Как показано картинке.

После настройки передатчика, настраиваем уровень входного сигнала из эфира. Для этого отключаем АРУ звуковой карты, переходим в режим эхо-репитера и прослушивая свой голос из эфира, настраиваем уровень регулятором на плате и в меню звуковой карты (Mic) как на картинке.

Важно, чтобы на Raspberry PI не было наводок от радиостанции, иначе будут сбои в работе и зависания. После окончания настройки звука, приступаем к подключению svxlink к другим радиолюбительским сетям.

Настройка модуля FRN
Открываем редактор sudo nano /etc/svxlink/svxlink.d/ModuleFrn.conf и меняем строки выделенные красным цветом, в которых указываем свои данные. В данном примере вы подключитесь к реальному FRN-серверу.

[ModuleFrn]
.........
TIMEOUT=3600
.........
SERVER=37.18.35.2
PORT=10024
.........
EMAIL_ADDRESS=yrr@ple.com
DYN_PASSWORD=12345
CLIENT_TYPE=1
CALLSIGN_AND_USER="RZ6HDH, Club"
BAND_AND_CHANNEL="438.55FM CTC88.5"
DESCRIPTION="SvxLink"
COUNTRY=Russia
CITY_CITY_PART="Pyatigorsk"
NET=Echolink

Настройка модуля EchoLink
Открываем редактор sudo nano /etc/svxlink/svxlink.d/ModuleEchoLink.conf и меняем строки. Вписываем свои данные. Для работы модуля в сети Echolink, на ваш позывной должна быть регистрация -L или -R. Просто позывной - работать не будет.

.........
TIMEOUT=360
.........
CALLSIGN=MYCALL-L
PASSWORD=MyPass
SYSOPNAME=MyName
LOCATION=[Svx] Fq, MyTown
.........
DEFAULT_LANG=ru
.........
DESCRIPTION="You have connected to a SvxLink node,\n"
.........

Важно, чтобы в интернет смотрел белый IP и были открыты порты UDP 5198, 5199 и TCP 5200, это обязательное условие работы сети Echolink.

Настройка модуля Metar
Этот модуль берёт сводку погоды аэропорта и зачитывает её. Активируйте модуль командой 5# и выберите номер аэропорта 1#. Далее слушайте свежую метео-сводку. Чтобы настроить модуль зайдите в его конфигурацию командой sudo nano /etc/svxlink/svxlink.d/ModuleMetarInfo.conf

Измените последнюю строку (AIRPORTS=), вписав в неё позывные ближайших к вам аэропортов. Сохраните результат, добавьте название модуля ModuleMetarInfo в основной файл конфигурации svxlink.conf

Настройка модуля VoiceMail
Этот модуль организует систему адресного обмена голосовыми сообщениями (голосовая почта) для радиолюбителей из эфира. Отправка голосовой почты на другие сервера не поддерживается.

Чтобы пользоваться этим модулем, администратор должен его активировать (в svxlink.conf) и завести персональный логин и пароль, для тех радиолюбителей, которые будут им пользоваться.

Открываем файл конфигурации:

sudo nano /etc/svxlink/TclVoiceMail.conf

Добавляем пользователей голосовой почты:

set users(001) "call=UA6HJQ pass=1234 email=ua6hjq@mail.ru";
set users(002) "call=R7HJ pass=6789";
...........

Остальные строки не меняем. Перезагружаем svxlink. Набираем в эфире 3# и следуем голосовым инструкциям.

Модули: ModuleDtmfRepeater, ModuleParrot, ModuleTrx, ModulePropagationMonitor, ModuleHelp, ModuleSelCallEnc, в конфигурировании не нуждаются и работают без предварительной настройки.


Управление SvxLink DTMF-командами
Команды передаваемые через эфир имеют чёткую структуру. Для каждого модуля они однотипны. Например, команды модуля Parrot и логика его работы:

1# - активация первого модуля (попугай)
 # - деактивация модуля
0# - помощь
*# - информация о текущих настройках

У каждого модуля могут быть дополнительные команды, которые нужны для его работы. Администратор сам решает, какие модули будут доступны пользователям его сервера.

На картинке, вы видите систему dtmf-команд, передаваемую по эфиру для управления голосовым сервером. Для выбора модуля, нужна радиостанция с dtmf-клавиатурой.

Не забываем, что каждый подключаемый модуль, должен быть явно указан в строке:

[SimplexLogic]
MODULES=ModuleHelp,ModuleParrot,ModuleDtmfRepeater,ModuleSelCallEnc,ModuleFrn

В названии модулей имеют значение большие и маленькие буквы! Внимательно пишите (а лучше копируйте) названия модулей. После любого редактирования конфига, требуется перезагрузка svxlink.


Сеть на основе SvxLink
Интересно то, что SvxLink может, как подключаться к другим сетям, так и создавать сам сеть для расширения своих возможностей. Один сервер, позволяет развернуть голосовую сеть состоящую из локальных и удалённых терминалов, приёмников, передатчиков, репитеров. В этом SvxLink принципиально отличается от других программ.

Радиолюбители могут подключаться к серверу SvxLink и пользоваться голосовыми сервисами, которые разрешит администратор. С помощью дополнительных приёмников и передатчиков, расположенных в зонах плохого приёма, можно существенно расширить покрытие территории. Один SvxLink с несколькими радиостанциями, может обслуживать нескольких пользователей одновременно.

Вариант использования удалённого передатчика и нескольких пользовательских терминалов, вы видите на блок-схеме:

Пользователи Echolink и FRN сетей, могут быть полностью изолированны друг от друга, в одном сервере. Разным группам пользователей, могут быть доступны разные сервисы.

Например (если посмотреть на схему), Радиолюбители на 145МГц могут работать только в сети Echolink, а пользователи на 438МГц могут работать только в FRN и пользоваться попугаем. Удаленный пользователь, подключающийся через компьютер работает только с голосовой почтой, а пользователь в локальной сети, может слушать все каналы.

Примеры конфигураций SvxLink:

1 2 3 4
5 6 7 8


Сервер
Кроме подключения к сетям echolink и frn, svxlink-и могут обьединяться в отдельную сеть, с разговорными группами (TG), по типу BrandMeister, в DMR сети.

Сделайте следующие настройки в файле /etc/svxlink/svxlink.conf

[GLOBAL]
............
LOGICS=SimplexLogic,ReflectorLogic
............
LINKS=ReflectorLink

[ReflectorLogic]
TYPE=Reflector
HOST=37.18.35.2
PORT=5300
CALLSIGN="RZ6HDH"
AUTH_KEY="passw0rd"
............
DEFAULT_TG=250
MONITOR_TGS=250+,25071,25072
TG_SELECT_TIMEOUT=30
ANNOUNCE_REMOTE_MIN_INTERVAL=300
EVENT_HANDLER=/usr/share/svxlink/events.tcl

[ReflectorLink]
CONNECT_LOGICS=SimplexLogic:9:SXVR,ReflectorLogic
DEFAULT_ACTIVE=1
OPTIONS=DEFAULT_CONNECT,NO_DISCONNECT
TIMEOUT=0

Установите свой позывной и разговорные группы, на которые (по умолчанию) подписан ваш линк, остальные настройки можно не менять.

Дашборд сервера показывает подключенные линки и их состояние:

Статья периодически обновляется!  

Ссылки:  
Raspberry Pi — первый запуск
Установка SVXLINK на Raspberry_Pi
rus-16k.tgz - русская озвучка от 20.10.2019
группа Echolink+FRN в мессенджере ТамТам
Echolink сеть на Кавказе (СКФО)

Видео:  
Работа модулей: эхо-репитер, FRN, метеосводка, Echolink, помощь, почта

UA6HJQ