Сервер для взаимодействия с условной маршрутизацией
Требования
Linux;
Python 3.8+;
Свободный порт 9900.
Установка
Создайте дерикторию и перейдите в неё:
mkdir -p ~/extcontrol && cd ~/extcontrol
Скачайте и положите в созданную директорию файл externalcontrolserver.py.
python3 -m venv .venv
./.venv/bin/pip install aiohttp
Примечание
venv обязателен - на Ubuntu 22.04+ pip install в системный питон блокируется (PEP 668).
Настройка
Скрипт
В скрипте замените в переменной my_ip IP-адрес на адрес сервера в Вашей локальной сети.
Примечание
Можно указать 0.0.0.0, чтобы слушать на всех интерфейсах.
Настройка Firewall
Если ufw включён (grep ENABLED /etc/ufw/ufw.conf), сделайте команду:
sudo ufw allow from 192.168.0.0/16 to any port 9900 proto tcp
Настройки на АТС
Поле |
Значение |
|---|---|
URL |
ws://<ваш_ip>:9900/ws/ |
Токен |
wsdfrthyuiohkujyhtgrfd (переменная auth в скрипте) |
Примечание
Слэш (/) в конце URL обязателен.
Запуск
cd ~/extcontrol
./.venv/bin/python externalcontrolserver.py
Проверка
С хоста АТС сделайте curl-запрос:
curl -o /dev/null -w "%{http_code}\n" http://<ваш_ip>:9900/ws/
Ответ |
Значение |
|---|---|
403 |
всё верно, сервер отвечает (заголовка нет — так и должно быть) |
404 |
забыт слэш (/) в конце URL |
timeout |
какие-то проблемы в сети |