udvnl

 
<<< Back

Установка 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.

Discuss (0) (0)

See also:
2024-06-21 Послеустановочные заметки
2024-05-21 RHVoice установка, проверка и прочее
2023-11-03 Пару мыслей о совместном применении SIP телефонии и систем «Умного Дома», а также немного об организации независимого от Internet канала связи с УД.
2023-10-14 Контроль SystemD и инструмент работы с системными логами через веб браузер
2023-01-03 Установка MajorDoMo с помощью скрипта от SergeJey на Raspberry Pi
2022-12-09 Где Телефон?
2022-05-30 Вариант установки Majordomo на Windows 10 с использованием пакета XAMPP. Немного о переносе и создании тестовой копии системы с Raspberry PI на Windows
2022-03-09 Небольшие заметки по подключению и использованию сервиса CONNECT
2022-02-27 Zigbee2mqtt, немного о стиках CC2531 и Sonoff USB Zigbee 3.0 Dongle Plus (сравнение, подключение, тестирование).
2021-09-23 Второй раз в первый класс. Часть 1: начало работы c базовым образом для RPi.
2020-12-31 Возможность создания канала управления через телефонные сети для системы домашней автоматизации.
2020-07-06 Чтение файлов из образа img Операционной системы. Возможность записи образа на меньшую по размеру SD карту памяти
2020-06-19 Raspberry Pi: немного о резервном копировании и актуальной копии системы
2020-05-07 Установка VoIP сервера FreeSWITCH с частичной интеграцией в систему MajorDoMo
2020-04-28 Установка базового образа MajorDoMo на Raspberry Pi. Начало первые шаги.
2019-10-07 Возможность создания видео звонков у MajorDoMo (RPI +WebCam)
2019-09-11 Создание голосового оповещения MajorDoMo
2019-08-21 Установка USB аудиокарты и настройка звука в Raspberry Pi
2019-04-04 Сертификация в Z-Wave
2019-03-11 RPI Monitor полезное ПО для Raspberry PI и Orange Pi
2019-02-04 Тестирование пропускной способности канала Ethernet (Wi-Fi) с помощью утилиты IPerf
2018-12-23 Пошаговая инструкция с картинками по установки MajorDoMo на Raspberry Pi 3 с помощью скрипта от Immortal
2018-10-20 Установка Freeswitch 1.8.2 на Debian 9 (Raspbian Stretch) на базовый образ системы «Умного дома» MajorDomo
2018-08-14 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение первого устройства Z-Wave и первые шаги по автоматизации
2018-07-08 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение контроллера RaZberry и первые шаги по Z-Wave
2018-06-29 Пошаговая инструкция по установке образа Majordomo на Raspberry Pi
2018-06-21 Удаленное наблюдение за близкими, но к сожалению, больными людьми.

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

На форуме: udvnl