API ключи (IN DEV)
MikoPBX REST API v3 — Руководство по Python-интеграции
В этой статье описана работа с REST API MikoPBX на примере базовых практических задач: создание сотрудников и SIP-провайдеров, получение истории звонков, мониторинг состояния станции в реальном времени.
Для корректной работы у Вас должен быть действующий https сертификат. Один из простых способов для выпуска доверенного сертификата - Let's encrypt.
Подготовка: API-ключ и окружение
Создание API-ключа
Перейдите в раздел : "Система" → "API ключи".

Нажмите "Добавить API ключ".
Заполните поле Описание (например:
CRM Integration)Скопируйте сгенерированный API-ключ — он отображается только один раз.
Сетевой фильтр: ограничьте доступ по IP или выберите «Разрешены с любых адресов»
Выберите права по ресурсам: «Чтение» (GET) или «Чтение и запись» (POST/PUT/DELETE)
В зависимости от задачи переключите тумблер «Полные права доступа» или настройте права вручную для каждого ресурса. Придерживайтесь принципа минимальных привилегий (Least Privilege) — каждый ключ должен иметь доступ только к тем ресурсам, которые реально нужны.
API-ключ используется только для получения JWT-токена через POST /auth. В последующих запросах передаётся Bearer-токен, а не сам ключ.

В этой инструкции в качестве примеров будут приведены следующие действия с помощью REST API:
Создать сотрудника - необходимо разрешить доступ к интерфейсу "Employees Management" на уровне "Чтение и запись".
Создать провайдера - необходимо разрешить доступ к интерфейсу "Providers" на уровне "Чтение и запись".
Получить статусы регистрации сотрудников и провайдеров - необходимо разрешить доступ к интерфейсу "SIP" на уровне "Чтение".
Получить историю звонков - необходимо разрешить доступ к интерфейсу "Call Records" на уровне "Чтение".
Так же выдайте права на интерфейс "Authentication" на уровне "Чтение и запись".

В этой статье, мы будем работать с Python, поэтому необходимо установить все зависимости:
number
✅
string, 2–8 цифр
Добавочный номер
user_username
✅
string, 1–100 символов
ФИО сотрудника
sip_secret
✅
string, 5–100 символов
Пароль SIP-аккаунта
user_email
—
string email, ≤255
Email для уведомлений
mobile_number
—
string E.164, ≤50
Мобильный (+7...) для переадресации
mobile_dialstring
—
string, ≤255
Строка набора мобильного
sip_transport
—
udp / tcp / tls / udp,tcp
Транспорт SIP (по умолч.: udp)
sip_dtmfmode
—
auto / rfc4733 / inband / info
Режим DTMF (по умолч.: auto)
sip_enableRecording
—
boolean
Запись разговоров (по умолч.: true)
sip_networkfilterid
—
number | "none"
ID сетевого фильтра
sip_manualattributes
—
string, ≤1024
Дополнительные SIP-параметры
fwd_ringlength
—
integer, ≤180
Время дозвона до переадресации (сек, по умолч.: 45)
fwd_forwarding
—
number | hangup | busy
Безусловная переадресация
fwd_forwardingonbusy
—
number | hangup | busy
Переадресация при занятости
fwd_forwardingonunavailable
—
number | hangup | busy
Переадресация при недоступности
Создание сотрудника
Ответ API (HTTP 201)
Коды ответов
201
Сотрудник успешно создан
400
Ошибка валидации (слабый пароль <5 символов, неверный формат номера)
401
Токен истёк — нужно обновить через /auth
403
Нет прав на запись для ресурса /employees
409
Конфликт — номер уже занят
Список сотрудников
Массовое создание
5. Управление SIP-провайдерами
Для CRUD: POST /sip-providers
Для просмотра всех (SIP + IAX): GET /providers (только чтение)
Создание SIP-провайдера
Список всех провайдеров
6. История звонков (CDR)
Эндпоинт: GET /cdr — только чтение.
Поддерживает фильтрацию по дате, номеру, статусу, длительности.
Базовый запрос с фильтрацией
Статистика за период
Поля CDR-записи
start
datetime
Время начала звонка
answer
datetime
Время ответа (пусто — пропущен)
endtime
datetime
Время завершения
src_num
string
Номер звонящего
dst_num
string
Номер назначения
disposition
string
ANSWERED / NO ANSWER / BUSY / FAILED
billsec
int
Длительность разговора (секунды)
duration
int
Полная длительность (включая дозвон)
recordingfile
string
Путь к MP3-записи разговора
📼 Стриминг записей:
GET /cdr/{id}/recording— поддерживает HTTP Range.
7. Мониторинг: статусы SIP и активные звонки
Статусы SIP-устройств
Эндпоинт: GET /sip — только мониторинг.
Активные звонки в реальном времени
Эндпоинт: GET /pbx-status
Значения поля state
stateOK
Устройство зарегистрировано и доступно
UNKNOWN
Не зарегистрировано (оффлайн)
Unreachable
Было зарегистрировано, но не отвечает на QUALIFY-пинги
OFF
Регистрация отключена в настройках провайдера
9. Полный скрипт мониторинга
10. Справочник эндпоинтов
Базовый путь: https://YOUR_HOST/pbxcore/api/v3/
⚠️ «Чтение» = GET. «Чтение и запись» = GET + POST + PUT + DELETE. Права настраиваются отдельно для каждого ресурса в разделе «API ключи».
Телефония и маршрутизация
/employees
CRUD
Сотрудники (внутренние номера)
/extensions
GET
Все номера: сотрудники, IVR, очереди — только чтение
/sip-providers
CRUD
SIP-провайдеры
/iax-providers
CRUD
IAX-провайдеры
/providers
GET
Все провайдеры (SIP + IAX) — только чтение
/call-queues
CRUD
Очереди вызовов
/ivr-menu
CRUD
IVR-меню
/incoming-routes
CRUD
Входящие маршруты (DID)
/outbound-routes
CRUD
Исходящие маршруты
/off-work-times
CRUD
Расписание нерабочего времени
/conference-rooms
CRUD
Конференц-залы
/dialplan-applications
CRUD
Приложения диалплана
Мониторинг и статистика
/sip
GET
Статусы SIP-устройств (peers + registry)
/iax
GET
Статусы IAX-соединений
/pbx-status
GET
Активные звонки и каналы в реальном времени
/cdr
GET
История звонков с фильтрацией и пагинацией
/cdr/{id}/recording
GET
Стриминг записи разговора (HTTP Range)
/advice
GET
Системные рекомендации и предупреждения
/sysinfo
GET
Аппаратная информация о сервере
/syslog
GET
Системные логи и диагностика
Аутентификация и управление доступом
/auth
POST
Получить JWT access_token по API-ключу
/auth/refresh
POST
Обновить access_token через refresh_token
/api-keys
CRUD
Управление API-ключами
/asterisk-managers
CRUD
Пользователи AMI
/asterisk-rest-users
CRUD
Пользователи ARI (для ARI-приложений)
/users
CRUD
Пользователи веб-интерфейса
/passkeys
CRUD
WebAuthn / FIDO2 passkeys
/passwords
GET/POST
Генерация и валидация паролей
/network-filters
GET
Сетевые фильтры для UI-списков
Системные настройки
/system
GET/POST
Ping, reboot, update, factory reset
/general-settings
GET/PUT
Общие настройки АТС
/time-settings
GET/PUT
Часовой пояс и NTP
/network
GET/PUT
Сетевые интерфейсы, IP, DNS, NAT
/firewall
CRUD
Правила файервола
/fail2ban
GET/PUT
Политики блокировки IP
/mail-settings
GET/PUT
Настройки SMTP / OAuth2
/storage
GET/PUT
Управление дисками и хранилищем
/s3-storage
GET/PUT
S3-облачное хранилище записей
/modules
CRUD
Модули расширения
/license
GET/POST
Управление лицензиями
/sound-files
CRUD
Звуковые файлы (IVR, MOH, объявления)
/files
CRUD
Управление файлами (chunked upload)
/custom-files
CRUD
Пользовательские конфигурационные файлы
/search
GET
Глобальный поиск по всем сущностям
/openapi
GET
OpenAPI/Swagger спецификация
📖 Интерактивная Swagger-документация:
https://your-mikopbx.com/pbxcore/api/v3/openapi
Last updated
Was this helpful?

