Модуль v.3 · Урок 2
Голосовой агент поверх Asterisk на AVA
Чему вы научитесь
- Понимать, зачем встраивать агента в существующую АТС, а не строить заново
- Объяснять роль Stasis/ARI в Asterisk для голосового агента
- Ориентироваться в архитектуре проекта AVA
- Понимать идею модульного конвейера «смешивай провайдеров»
- Использовать golden baselines как точку отсчёта качества
Зачем встраивать в существующую АТС
У многих компаний в РФ уже есть телефония на Asterisk или FreePBX. Переезжать ради AI в чужое облако дорого, рискованно и часто запрещено политикой безопасности. Разумнее встроить агента в то, что уже работает.
Для этого есть зрелый open-source проект AVA — AI Voice Agent for Asterisk. Это самый «продуктовый» из разобранных в треке проектов: Admin UI, запись звонков, активная разработка, лицензия MIT.
Как агент попадает в Asterisk
Asterisk умеет отдавать управление звонком внешнему приложению через интерфейс ARI (Asterisk REST Interface) и приложение Stasis. Грубо: в плане набора (dialplan) вы говорите «этот звонок ведёт внешний агент», и Asterisk передаёт ему медиапоток и управление.
flowchart LR
A[Входящий звонок] --> B[Asterisk dialplan]
B -->|Stasis/ARI| C[AVA]
C --> D[STT]
C --> E[LLM]
C --> F[TTS]
C -->|перевод на человека| G[Оператор]
AVA подключается к Asterisk через этот механизм и берёт на себя разговор, а при необходимости переводит звонок на живого оператора.
Модульный конвейер: смешивай провайдеров
Сильная сторона AVA — модульность. Вы не привязаны к одному вендору: каждое звено конвейера можно выбрать отдельно.
| Звено | Варианты провайдеров |
|---|---|
| Realtime / speech-to-speech | OpenAI Realtime, Google Live, xAI Grok |
| STT | Deepgram и другие |
| TTS | ElevenLabs и другие |
| Локальный режим | Собственный AI-сервер на GPU |
Это прямое продолжение урока v.2/03: AVA позволяет выбрать конвейер или realtime под конкретный сценарий и даже держать всё локально ради приватности.
Golden baselines: точка отсчёта качества
В AVA есть несколько готовых эталонных конфигураций — golden baselines. Это проверенные связки провайдеров, которые дают предсказуемое качество.
Идея простая: не настраивайте звено за звеном с нуля, а возьмите рабочий эталон и меняйте от него по одному параметру. Так вы всегда понимаете, что именно ухудшило или улучшило разговор.
Порядок внедрения
Проверьте версию Asterisk. Проекту нужен Asterisk 18+ с включённым ARI. На FreePBX это настраивается в интерфейсе.
Поднимите AVA через Docker Compose. Проект рассчитан на контейнерный запуск рядом с вашей АТС.
Возьмите golden baseline. Стартуйте с эталонной связки провайдеров, а не собирайте свою с нуля.
Заведите один сценарий в Admin UI. Например, входящий ресепшен. Пропишите персону и ветку перевода на человека.
Сделайте тестовый звонок через АТС. Проверьте задержку, распознавание русской речи и корректность перевода на оператора.
Следующий урок
Приватный высокопроизводительный транспорт на active-call — разберём вариант с self-hosting и локальными ASR/TTS на Rust.