udvnl

 
<<< Назад

Установка SIP сервера FreeSWITCH 1.10.10 на Raspberry Pi OS Lite (Debian11)

Возможно кому-нибудь пригодится, старые варианты установки FreeSWITCH, которые я описывал на текущий момент неактуальны.
Версия Raspbian 11 (Debian version: 11 (bullseye), к сожалению на текущий момент не поддерживается, поэтому пришлось устанавливать вручную.
100% установку мне не удалось достигнуть не смогла установиться библиотека SpanDSP, но пока в ней у меня нет необходимости, предназначена она для обработки тональных сигналов и DTMF, работе факса, использовании некоторых кодеков.
Описания установки для Raspbian в сети вообще не нашел, есть описание для Ubuntu, но оно % 70 подошло к малине, остальное пришлось доделывать.

На всякий случай ссылка на описание установки FreeSWITCH 1.10.8 для Ubuntu 18.04 | 20.04
Установка на Ubuntu
Первым делом требуется регистрация и получения токена на signalwire.
Посмотреть и скопировать его можно в личном кабинете вкладке API, возможность просмотра один раз при создании, потом он не показывается, требуется создать по новой (поэтому лучше скопировать и сохранить в каком либо документе).
Если в процессе установки пришлось перегрузить малину, лучше ввести сохраненный токен по новому.
Все действия выполнял из под рута.

sudo -i
TOKEN=Your TOKEN

Обновляем систему и устанавливаем необходимое ПО, зависимости и библиотеки.

apt-get update && apt-get install -yq gnupg2 wget lsb-release
apt install --yes git cmake autoconf automake unzip yasm libcurl4-openssl-dev pkg-config mc
apt install --yes libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libjpeg9 libjpeg-dev libtiff-dev libopus-dev liblua5.2-0 liblua5.2-dev unixodbc-dev ntpdate libxml2-dev sngrep portaudio19-dev libtiff-dev python3.9-distutils
apt install --yes libsndfile1-dev libavformat-dev libswscale-dev libavresample-dev libpq-dev libpq-dev libpq5 

Установка необходимых компонентов и библиотек

Все компоненты, в т.ч. и FreeSWITCH скачиваем и устанавливаем в директории /usr/local/src/

Скачиваем и устанавливаем Libks:

git clone https://github.com/signalwire/libks.git /usr/local/src/libks
cd /usr/local/src/libks
sudo cmake .
sudo make && sudo make install

Переинициализируем и проверяем установку:

ldconfig && ldconfig -p | grep libks

В ответ должен быть вывод наподобие:

root@pi:/usr/local/src/libks# ldconfig && ldconfig -p | grep libks
libks2.so.2 (libc6,hard-float) => /lib/libks2.so.2
libks2.so (libc6,hard-float) => /lib/libks2.so
libksba.so.8 (libc6,hard-float) => /lib/arm-linux-gnueabihf/libksba.so.8
root@pi:/usr/local/src/libks#

Установка клиента signalwire

git clone https://github.com/signalwire/signalwire-c.git /usr/local/src/signalwire-c
cd /usr/local/src/signalwire-c
cmake .
make && make install

Проверяем установку

ldconfig && ldconfig -p | grep signalwire

Установка Sofia SIP

git clone https://github.com/freeswitch/sofia-sip /usr/local/src/sofia-sip
cd /usr/local/src/sofia-sip
 ./bootstrap.sh 
 ./configure
make &&  make install

Проверяем:

ldconfig && ldconfig -p | grep signalwire

Установка Spandsp

git clone https://github.com/freeswitch/spandsp /usr/local/src/spandsp
cd /usr/local/src/spandsp
./bootstrap.sh 
./configure
make && make install

Проверяем:

ldconfig && ldconfig -p | grep spandsp

Несмотря на вывод ответа и кажущуюся правильность установки впоследствии при сборке FS у меня всё время Возникали ошибки,
Поэтому в дальнейшем я просто исключил при сборке FS этот компонент.

Установка и сборка FreeSWITCH

Загружаем FreeSWITCH 1.10.10 release в /usr/local/src директорию, далее распаковываем архив

sudo wget -c https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.10.-release.tar.gz -P /usr/local/src
cd /usr/local/src
tar -zxvf freeswitch-1.10.10.-release.tar.gz
cd freeswitch-1.10.10.-release

Предварительная настройка перед компиляцией и сборкой FS с исключением модуля Spandsp

./configure --disable-mod_spandsp

После, редактируем файл модулей и закомментируем mod_spandsp (можно и отредактировать включив или отключив друие модули) в файле /usr/local/src/freeswitch-1.10.10.-release/modules.conf
Собираем и устанавливаем как сам FS, так и звуковые файлы.

make 
make install 
make cd-sounds-install
make cd-moh-install 

После установки

Далее по стандартной инструкции FS.
Создаем ссылки на файлы:

ln -s /usr/local/freeswitch/conf /etc/freeswitch 
ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli 
ln -s /usr/local/freeswitch/bin/freeswitch /usr/sbin/freeswitch

Создаем непривилегированного пользователя для запуска сервиса FreeSWITCH

groupadd freeswitch 
adduser --quiet --system --home /usr/local/freeswitch --gecos 'FreeSWITCH open source softswitch' --ingroup freeswitch freeswitch --disabled-password 
chown -R freeswitch:freeswitch /usr/local/freeswitch/ 
chmod -R ug=rwX,o= /usr/local/freeswitch/ 
chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/*

Запуск сервиса автозагрузки

Для работы FreeSWITCH в фоновом режиме как стандартного сервиса создаём в редакторе файл автозапуска:

nano /etc/systemd/system/freeswitch.service

И добавляем следующее содержимое:

[Unit] 
Description=FreeSWITCH open source softswitch 
Wants=network-online.target Requires=network.target local-fs.target 
After=network.target network-online.target local-fs.target 

[Service] 
; service 
Type=forking 
PIDFile=/usr/local/freeswitch/run/freeswitch.pid 
Environment="DAEMON_OPTS=-nonat" 
Environment="USER=freeswitch" 
Environment="GROUP=freeswitch" 
EnvironmentFile=-/etc/default/freeswitch 
ExecStartPre=/bin/chown -R ${USER}:${GROUP} /usr/local/freeswitch 
ExecStart=/usr/local/freeswitch/bin/freeswitch -u ${USER} -g ${GROUP} -ncwait ${DAEMON_OPTS} 
TimeoutSec=45s 
Restart=always 

[Install] 
WantedBy=multi-user.target

Перегружаем systemctl daemon и запускаем в фоновом режиме, проверяем статус запуска:

 systemctl daemon-reload
 systemctl start freeswitch
  systemctl status freeswitch

Далее можем зайти в командный интерфейс FS CLI

sudo fs_cli

Выход из командной строки CTRL+D
И включаем сервис FreeSWITCH в автозагрузку

 systemctl enable freeswitch.service

После этого можем перегрузить наш RaspberryPi.

Обсуждение (0) (0)

Смотрите так же:
21.06.2024 Послеустановочные заметки
21.05.2024 RHVoice установка, проверка и прочее
03.11.2023 Пару мыслей о совместном применении SIP телефонии и систем «Умного Дома», а также немного об организации независимого от Internet канала связи с УД.
14.10.2023 Контроль SystemD и инструмент работы с системными логами через веб браузер
03.01.2023 Установка MajorDoMo с помощью скрипта от SergeJey на Raspberry Pi
09.12.2022 Где Телефон?
30.05.2022 Вариант установки Majordomo на Windows 10 с использованием пакета XAMPP. Немного о переносе и создании тестовой копии системы с Raspberry PI на Windows
09.03.2022 Небольшие заметки по подключению и использованию сервиса CONNECT
27.02.2022 Zigbee2mqtt, немного о стиках CC2531 и Sonoff USB Zigbee 3.0 Dongle Plus (сравнение, подключение, тестирование).
23.09.2021 Второй раз в первый класс. Часть 1: начало работы c базовым образом для RPi.
31.12.2020 Возможность создания канала управления через телефонные сети для системы домашней автоматизации.
06.07.2020 Чтение файлов из образа img Операционной системы. Возможность записи образа на меньшую по размеру SD карту памяти
19.06.2020 Raspberry Pi: немного о резервном копировании и актуальной копии системы
07.05.2020 Установка VoIP сервера FreeSWITCH с частичной интеграцией в систему MajorDoMo
28.04.2020 Установка базового образа MajorDoMo на Raspberry Pi. Начало первые шаги.
07.10.2019 Возможность создания видео звонков у MajorDoMo (RPI +WebCam)
11.09.2019 Создание голосового оповещения MajorDoMo
21.08.2019 Установка USB аудиокарты и настройка звука в Raspberry Pi
04.04.2019 Сертификация в Z-Wave
11.03.2019 RPI Monitor полезное ПО для Raspberry PI и Orange Pi
04.02.2019 Тестирование пропускной способности канала Ethernet (Wi-Fi) с помощью утилиты IPerf
23.12.2018 Пошаговая инструкция с картинками по установки MajorDoMo на Raspberry Pi 3 с помощью скрипта от Immortal
20.10.2018 Установка Freeswitch 1.8.2 на Debian 9 (Raspbian Stretch) на базовый образ системы «Умного дома» MajorDomo
14.08.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение первого устройства Z-Wave и первые шаги по автоматизации
08.07.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение контроллера RaZberry и первые шаги по Z-Wave
29.06.2018 Пошаговая инструкция по установке образа Majordomo на Raspberry Pi
21.06.2018 Удаленное наблюдение за близкими, но к сожалению, больными людьми.

Минск, Беларусь

На форуме: udvnl