Модуль v.4 · Урок 1
Входящие и исходящие звонки через Twilio и FastRTC
Чему вы научитесь
- Различать входящие и исходящие звонки в архитектуре агента
- Понимать роль Twilio как телефонного транспорта
- Видеть, что даёт FastRTC для потока аудио
- Понимать, где в этой схеме живёт логика разговора
- Связывать двустороннюю телефонию с остальными модулями v.4
Откуда взят сценарий
Этот модуль построен по мотивам учебного курса realtime-phone-agents-course от The Neural Maze: «колл-центр агентства недвижимости» с входящими и исходящими звонками. Это зрелый пошаговый туториал «от принципов до продакшена», а не готовый продукт.
Мы берём из него архитектурные идеи, а не копируем код один в один: версии библиотек и провайдеров меняются, а принципы остаются.
Две стороны телефонии
Production-агент должен уметь обе вещи: принимать входящие звонки и сам совершать исходящие.
| Тип | Кто инициирует | Типовой сценарий |
|---|---|---|
| Входящий | Абонент звонит вам | Ресепшен, поддержка, FAQ |
| Исходящий | Агент звонит абоненту | Напоминания, обзвон базы, подтверждения |
Входящий и исходящий используют одну и ту же логику разговора, но по-разному запускаются. Это важно заложить в архитектуру сразу.
Twilio как транспорт
Twilio здесь играет роль из урока v.3/01: даёт телефонный номер и связывает PSTN с вашим кодом. Входящий звонок Twilio направляет на ваш вебхук, а исходящий вы инициируете запросом к его API.
sequenceDiagram
participant A as Абонент
participant T as Twilio
participant S as Ваш сервер (агент)
A->>T: входящий звонок на номер
T->>S: вебхук + медиапоток
S-->>T: ответ агента (аудио)
T-->>A: голос агента
Note over S,T: исходящий: S->>T запрос на звонок, дальше так же
FastRTC: поток аудио к агенту
FastRTC отвечает за поток аудио в реальном времени между телефонией и логикой агента. Он берёт на себя приём и отдачу звуковых чанков, чтобы вы занимались разговором, а не возились с низкоуровневым медиа.
Идея запуска проста: вы определяете обработчик, который получает звук и возвращает звук, а транспорт связывает его с Twilio.
Обработчик реплики на FastRTC
Где живёт логика
Заметьте: в обработчике выше вызов agent(text) — это вся ваша логика
разговора. Транспорт (Twilio, FastRTC) и логика чётко разделены.
Благодаря этому в следующих уроках мы заменим agent на версию с RAG,
а stt/tts — на собственные модели, не трогая телефонию.
Следующий урок
RAG и поиск по данным во время разговора — научим агента отвечать по реальным данным компании.