Гид по технологиям

Как установить сервер Shockvoice на Linux с помощью Mono

• 5 min read • Инструкции • Обновлено 17 Nov 2025
Установка Shockvoice на Linux через Mono
Установка Shockvoice на Linux через Mono

Краткое описание

Shockvoice — это голосовой VoIP-сервер, реализованный на C#. Он запускается под Mono и поэтому может работать на большинстве Unix-подобных платформ. Клиент в начале доступен только для Windows. Эта инструкция пошагово объясняет установку сервера на Linux с использованием Mono и MySQL (вариант с sqlite также описан).

Что нужно подготовить

  • Сервер под Linux с правами root или sudo.
  • Доступ в интернет для скачивания Mono и пакета Shockvoice.
  • Понимание базовых команд shell и администрирования MySQL.

Короткие определения:

  • Mono — реализация .NET для Unix-систем.
  • Shockvoice — серверная часть голосового сервиса, написанная на C#.

Содержание инструкции

  1. Установка Mono.
  2. Скачивание и распаковка Shockvoice.
  3. Настройка базы данных (MySQL или sqlite).
  4. Запуск install.sh и создание config.xml.
  5. Копирование библиотек в /usr/lib и запуск сервера.

1. Установка Mono

Скачайте последнюю версию интерпретатора .NET для Linux — Mono:

http://www.go-mono.com/mono-downloads/download.html

Если в списке нет вашей системы, можно взять полный бинарный пакет:

http://www.mono-project.com/Other_Downloads

В этом примере используется пакетный установщик с FTP-ресурса Novell. Команды ниже — точные примеры, выполните их с правами, достаточными для записи в текущую директорию и установки пакета в /opt.

wget http://ftp.novell.com/pub/mono/archive/1.9.1/linux-installer/2/mono-1.9.1_2-installer.bin

Сделайте файл исполняемым:

chmod +x mono-1.9.1_2-installer.bin

Запустите инсталлятор:

./mono-1.9.1_2-installer.bin

Следуйте подсказкам установщика. В примере бинарные файлы установлены в /opt.

Важно: используйте актуальную версию Mono из официального сайта. В примере показана старая версия для совместимости с оригинальным пакетом Shockvoice.

2. Скачивание пакета Shockvoice

Получите серверную сборку с официального сервера загрузок:

http://www.shockvoice.net/downloads.php

В примере используется сборка Linux Server_v0.8.0pre2 (имя архива svserver-0.8.0pre2-linux.tar.gz).

Создайте целевую директорию для установки:

mkdir -p /usr/share/shockvoice

Скопируйте пакет в эту директорию или скачайте прямо туда, затем распакуйте:

tar -C /usr/share/shockvoice -xvzf svserver-0.8.0pre2-linux.tar.gz

3. Подготовка базы данных

Варианты: MySQL (рекомедуется в этой инструкции) или sqlite (файл shockvoice.s3db). Ниже пример с MySQL.

Создайте базу данных:

mysqladmin -uroot -p create shockvoice

Импортируйте таблицы из предоставленного SQL-дампа:

mysql -uroot -p shockvoice < /usr/share/shockvoice/shockvoice.mysql.sql

Создайте пользователя базы данных и выдайте разрешения (в примере — svuser):

mysql -uroot -p
Enter Password:

Внутри mysql shell выполните:

GRANT USAGE ON shockvoice.* TO svuser@localhost IDENTIFIED BY '';
GRANT ALL ON shockvoice.* TO svuser@localhost IDENTIFIED BY "";
FLUSH PRIVILEGES;

Замените на надёжный пароль.

Примечание: если вы используете sqlite, пропустите создание БД и импорт. Для sqlite используйте файл shockvoice.s3db как базу.

4. Запуск install.sh и генерация config.xml

Перейдите в папку и запустите установочный скрипт:

cd /usr/share/shockvoice && ./install.sh

Скрипт задаст вопросы и попытается найти Mono и mono-service в вашей системе. В примере вывод выглядел так:

Continue? (y/n) y Do you have unpacked Shockvoice in /usr/share/shockvoice? (y/n) y Do you want to create the service_start and service_stop file? (recommend) (y/n) y searching for mono… Found mono binary in /opt/mono-1.9/bin/mono .. good searching for mono-service.exe… Found mono-service.exe binary in /opt/mono-1.9/lib/mono/gac/mono-service/2.0.0.0__0738eb9f132ed756/mono-service.exe .. good Creating startscript Creating stopscript Do you want to create the config.xml file? (y/n) y

Далее скрипт попросит параметры БД. Пример ввода в интерактивном режиме:

Please enter type of database you want to use. (e.g. sqlite, mysql or postgres) mysql

Please enter server which stores the database Shockvoice. (e.g. shockvoice.s3db for sqlite or localhost for mysql) localhost

Please enter name of the database. (leave empty for sqlite) shockvoice

Please enter username who connects to the database. (leave empty for sqlite) svuser

Please enter password for database user. (leave empty for sqlite)

Подтвердите введённые данные и дождитесь создания config.xml. > Важное: если при запуске install.sh вы получаете ошибку "==: unexpected operator", откройте install.sh и замените первую строку на: ``` #!/bin/bash ``` ## 5. Копирование библиотек и запуск сервера Скопируйте нативные библиотеки, чтобы Mono мог их найти. Пример: ``` cp libMonoPosixHelper.so libsvcodec.so /usr/lib ``` Если система 64-битная, может потребоваться удалить libsvcodec.so (он несовместим). Также, если вы используете sqlite3 и в /usr/lib отсутствует libsqlite3.so.0, скопируйте её тоже. Запустите сервер командой: ``` ./service_start ``` Проверьте логи и попробуйте подключиться клиентом. ## Альтернативный способ управления службой (systemd) Если вы предпочитаете systemd вместо скриптов service_start/service_stop, можно создать простой unit-файл. Пример — адаптируйте пути под вашу систему: ``` [Unit] Description=Shockvoice Server After=network.target [Service] Type=forking WorkingDirectory=/usr/share/shockvoice ExecStart=/usr/share/shockvoice/service_start ExecStop=/usr/share/shockvoice/service_stop User=svuser Group=svuser Restart=on-failure [Install] WantedBy=multi-user.target ``` Сохраните как /etc/systemd/system/shockvoice.service, затем выполните: ``` systemctl daemon-reload systemctl enable --now shockvoice ``` ## Проверка и отладка Чек-лист для проверки после запуска: - Процесс mono (или mono-service) запущен. - Порт сервера открыт в брандмауэре. - Сервер успешно подключается к базе данных (проверьте логи). - Клиент может подключиться и авторизоваться. Типичные проблемы и решения: - mono не найден: проверьте PATH или укажите полный путь к бинарю. - Ошибка при подключении к MySQL: проверьте user/host/пароль, права и адрес сервера. - libsvcodec.so вызывает проблемы на 64-битной системе: удалите её или используйте совместимую сборку. - Если server не стартует — смотрите service_start и логи в каталоге /usr/share/shockvoice. ## Безопасность и эксплуатация - Запустите сервис под выделенным пользователем с ограниченными правами. - Ограничьте сетевой доступ через брандмауэр (доступ только с доверенных адресов). - Делайте регулярный бэкап базы данных и конфигурации config.xml. - Обновляйте Mono и Shockvoice до безопасных версий. ## Критерии приёмки - Сервер стартует без ошибок. - Клиент может установить соединение и передать голос. - Записи логов содержат успешные соединения и отсутствие критических исключений. - В базе данных появились записи пользователей/сессий при тестах. ## Чек-листы по ролям Администратор: - Установить Mono и зависимости. - Создать системного пользователя и каталог установки. - Настроить и протестировать бэкапы базы данных. Оператор: - Запуск/остановка службы. - Мониторинг логов и доступности. - Выполнение горячих правок конфигурации при указании администратора. Разработчик: - Проверка совместимости сборки с текущим Mono. - Сборка/компиляция дополнительных плагинов под Mono. ## Шпаргалка команд - Скачивание: wget - Распаковка: tar -xvzf -C - Создание БД: mysqladmin -u root -p create - Импорт схемы: mysql -u root -p < dump.sql - Копирование библиотек: cp lib*.so /usr/lib ## Краткое резюме Эта инструкция покрывает общий путь установки Shockvoice: установка Mono, распаковка пакета, настройка MySQL (или sqlite), запуск install.sh, копирование библиотек и запуск сервера. Основные риски — несовместимость библиотек на 64-битных системах и некорректные параметры подключения к БД. Следуйте чек-листам, делайте бэкапы и ограничьте сетевой доступ. Полезное напоминание: всегда проверяйте актуальность версий Mono и пакетов перед развёртыванием в продакшен.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро