3
This commit is contained in:
149
README.md
149
README.md
@@ -1,25 +1,23 @@
|
||||
# MikoPBX Public SIP Telephony Bot
|
||||
|
||||
Telegram-бот для публичной SIP-телефонии на базе MikoPBX.
|
||||
Telegram-бот для публичной SIP-телефонии на MikoPBX с полной синхронизацией.
|
||||
|
||||
## Основные возможности
|
||||
## Авторизация в MikoPBX
|
||||
|
||||
### Для обычных пользователей
|
||||
- Регистрация **строго 7-значного** номера
|
||||
- **Один номер на одного пользователя** (ограничение)
|
||||
- Выбор пароля: сгенерировать или ввести свой
|
||||
- Получение **полных параметров подключения** (домен, сервер, порт, транспорт, outbound proxy, STUN и т.д.)
|
||||
- Просмотр своих аккаунтов
|
||||
Бот поддерживает **два способа** авторизации (приоритет — Bearer Token):
|
||||
|
||||
### Для администраторов
|
||||
- Полный список всех аккаунтов
|
||||
- Смена номера / пароля
|
||||
- Удаление аккаунтов
|
||||
- **Привязка уже существующих номеров из MikoPBX** к Telegram ID пользователя
|
||||
1. **Bearer Token** (рекомендуется) — самый стабильный
|
||||
2. **Basic Auth** (fallback)
|
||||
|
||||
### Синхронизация с MikoPBX
|
||||
- Полная двусторонняя синхронизация (создание, изменение номера, изменение пароля, удаление)
|
||||
- Возможность привязывать уже существующие в MikoPBX аккаунты
|
||||
---
|
||||
|
||||
## Как создать Bearer Token в MikoPBX
|
||||
|
||||
1. Зайди в веб-интерфейс MikoPBX
|
||||
2. Перейди в **Система → Права сотрудников**
|
||||
3. Создай пользователя или открой существующего
|
||||
4. В разделе **REST API** / **API Keys** создай токен
|
||||
5. Скопируй токен и вставь в `.env`
|
||||
|
||||
---
|
||||
|
||||
@@ -28,125 +26,46 @@ Telegram-бот для публичной SIP-телефонии на базе M
|
||||
```env
|
||||
# MikoPBX
|
||||
MIKOPBX_HOST=http://192.168.1.50:8081
|
||||
MIKOPBX_ADMIN_LOGIN=admin
|
||||
MIKOPBX_ADMIN_PASSWORD=твой_пароль
|
||||
|
||||
# === Bearer Token (рекомендуется) ===
|
||||
MIKOPBX_API_TOKEN=1bbb7b1357e8bdb0a933f054aedf3aa1f947f7237f3895a05fa29198a253f935
|
||||
|
||||
# Telegram
|
||||
TELEGRAM_BOT_TOKEN=твой_токен
|
||||
ADMIN_TELEGRAM_IDS=123456789,987654321
|
||||
|
||||
# SIP параметры (показываются пользователям)
|
||||
# SIP параметры
|
||||
DEFAULT_SIP_SERVER=sip.tvoyserver.ru
|
||||
DEFAULT_SIP_PORT=5060
|
||||
DEFAULT_SIP_DOMAIN=sip.tvoyserver.ru
|
||||
DEFAULT_SIP_TRANSPORT=UDP
|
||||
DEFAULT_SIP_OUTBOUND_PROXY=
|
||||
DEFAULT_SIP_STUN=stun.l.google.com:19302
|
||||
```
|
||||
|
||||
**Все параметры подключения настраиваются в `.env`** и автоматически подставляются в сообщение пользователю.
|
||||
|
||||
---
|
||||
|
||||
## Как работает регистрация номера
|
||||
|
||||
1. Пользователь нажимает **"Register new number"**
|
||||
2. Вводит **ровно 7 цифр**
|
||||
3. Вводит имя (опционально)
|
||||
4. Выбирает способ получения пароля:
|
||||
- Сгенерировать случайный
|
||||
- Ввести свой пароль
|
||||
5. Бот создаёт аккаунт в **MikoPBX** с указанным паролем
|
||||
6. Выдаёт **полные параметры подключения**
|
||||
|
||||
**Ограничения:**
|
||||
- Номер строго 7 цифр
|
||||
- У одного Telegram-пользователя может быть только **один** номер
|
||||
|
||||
---
|
||||
|
||||
## Привязка существующих номеров MikoPBX (Админ)
|
||||
|
||||
Это одна из ключевых фич:
|
||||
|
||||
1. Админ → **Admin panel** → **Link existing MikoPBX number**
|
||||
2. Вводит существующий 7-значный номер из MikoPBX
|
||||
3. Вводит Telegram ID пользователя
|
||||
4. Номер привязывается к пользователю
|
||||
|
||||
После этого пользователь может:
|
||||
- Видеть свой номер в разделе "My accounts"
|
||||
- Получать параметры подключения (если пароль был заранее известен)
|
||||
|
||||
**Полезно**, когда номера уже созданы в MikoPBX вручную.
|
||||
|
||||
---
|
||||
|
||||
## Полный список кнопок и команд
|
||||
|
||||
### Главное меню (для всех)
|
||||
- `Register new number` — регистрация нового номера
|
||||
- `My accounts` — мои аккаунты
|
||||
- `Admin panel` — только для администраторов
|
||||
|
||||
### Админ-панель
|
||||
- `All registered accounts` — список всех аккаунтов
|
||||
- `Link existing MikoPBX number` — привязка существующего номера
|
||||
- При просмотре аккаунта:
|
||||
- `Change number`
|
||||
- `Change password`
|
||||
- `Delete account`
|
||||
|
||||
### Команды
|
||||
- `/start` — главное меню
|
||||
- `/cancel` — отмена текущего действия
|
||||
|
||||
---
|
||||
|
||||
## Пример сообщения с параметрами подключения
|
||||
|
||||
```
|
||||
Your SIP account has been created!
|
||||
|
||||
Number: 1001001
|
||||
Secret (password): MySuperPass2025
|
||||
|
||||
--- Full connection parameters ---
|
||||
Domain: sip.tvoyserver.ru
|
||||
Server / Outbound Proxy: sip.tvoyserver.ru
|
||||
Port: 5060
|
||||
Transport: UDP
|
||||
Username / Auth ID: 1001001
|
||||
Password: MySuperPass2025
|
||||
Outbound Proxy:
|
||||
STUN Server: stun.l.google.com:19302
|
||||
|
||||
Recommended clients: Zoiper, MicroSIP, Linphone, Bria
|
||||
Use these credentials in your SIP client.
|
||||
DEFAULT_SIP_STUN=
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Запуск и обновление
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
# Первый запуск
|
||||
docker compose up -d --build
|
||||
|
||||
# Просмотр логов
|
||||
docker compose logs -f mikopbx-bot
|
||||
|
||||
# Пересборка после изменений
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Важные замечания
|
||||
## Основные возможности
|
||||
|
||||
- Номера строго 7 цифр (валидация на стороне бота)
|
||||
- Один Telegram ID = один номер
|
||||
- Все изменения (номер/пароль/удаление) выполняются и в MikoPBX, и в локальной БД
|
||||
- Привязка существующих номеров позволяет работать с уже созданными в MikoPBX аккаунтами без пересоздания
|
||||
- Регистрация **ровно 7-значных** номеров
|
||||
- Один номер на пользователя
|
||||
- Выбор своего пароля при регистрации
|
||||
- Полные параметры подключения (домен, outbound proxy, STUN и т.д.)
|
||||
- **Привязка уже существующих номеров MikoPBX**
|
||||
- Полная синхронизация (создание, смена номера/пароля, удаление)
|
||||
|
||||
Бот полностью готов к эксплуатации.
|
||||
---
|
||||
|
||||
## Логи
|
||||
|
||||
```bash
|
||||
docker compose logs -f mikopbx-bot
|
||||
```
|
||||
Reference in New Issue
Block a user