звоноботобзвон

10 000 звонков в день: какая система нужна за кулисами

Из чего складывается обзвон на 10 000 звонков в день: очередь набора, транки, распознавание и синтез речи, нагрузка на сервер и почему облачный тариф упирается в потолок раньше своей коробки.

10 000 звонков в день: какая система нужна за кулисами

Цифра 10 000 в день меняет не масштаб, а саму архитектуру

Один звонок и десять тысяч звонков — это качественно разные инженерные задачи, а не «то же самое, но больше». На сотне звонков можно прожить на коленке: скрипт, один канал связи, выгрузка в конце дня. На десяти тысячах любая мелочь, незаметная на сотне, превращается в системную проблему: канал захлёбывается, распознавание отстаёт, результаты не успевают записываться. Поэтому за кулисами стоит не «робот побольше», а несколько слоёв, каждый со своей задачей. Разберём, из чего реально складывается такой обзвон.

Что крутится под капотом

Очередь и диспетчер набора. Десять тысяч звонков нельзя запустить одновременно — это мгновенно упрёт вас в лимиты линий и в блокировки за всплеск. Нужен слой, который держит темп: сколько линий вести параллельно, как размазать нагрузку по времени суток (утро, обед и вечер дают разный процент поднятия трубки), что делать с недозвонами и когда перезванивать. Это отдельная логика планирования, а не «жми старт».

Телефония и транки. Связь с операторами идёт через каналы — транки, у каждого есть лимит одновременных линий (ёмкость канала). На объёме приходится распределять нагрузку между несколькими транками и операторами: иначе упираетесь в потолок одного канала, и часть звонков просто не уходит. Плюс важна репутация номеров — с одного номера долбить всю базу нельзя, его быстро пометят как спам.

Распознавание и синтез речи в реальном времени. На каждом активном звонке одновременно работают две тяжёлые штуки: синтез голоса (TTS — робот проговаривает фразы) и распознавание ответа клиента (ASR — перевод речи в текст). И то и другое должно идти с низкой задержкой, иначе в разговоре повисают паузы и человек бросает трубку. Тысячи таких сессий разом — это ощутимая нагрузка на процессоры и, как правило, на видеокарты, где крутятся модели распознавания.

Barge-in — робот слышит, что его перебили. На объёме это не украшение, а экономия минут: если клиент заговорил, робот должен замолчать и слушать, а не дочитывать заготовку поверх человека. Без этого разговоры разваливаются массово.

Сбор результатов. Итог каждого звонка должен лететь в хранилище и в CRM в момент завершения, а не копиться в буфере. Иначе к вечеру вы получаете неразгребаемый завал и рассинхрон: в CRM одно, в логах телефонии другое.

Где на объёме ломается облачный тариф

На десяти тысячах звонков в день SaaS-экономика превращается в тыкву: платёж растёт линейно с каждым звонком и каждой минутой, а сверху — доплаты за одновременные линии, за расшифровки, за коннектор к CRM. Своя коробка переводит бóльшую часть затрат в фикс: вы платите за железо и за трафик у оператора, а не за каждую минуту по чужому прайсу. Именно поэтому системы на десятки тысяч звонков почти всегда строят на своей инфраструктуре — на потоке разница между «за минуту» и «за сервер» становится решающей. Логику, которая это вытягивает, показывали в кейсе со звоноботом.

Что учесть до того, как гнать объём

Техническая ёмкость — половина дела. Вторая половина — база и закон. Робот честно прозвонит и мусорные номера, и несогласных — и сожжёт на них ту самую ёмкость. Поэтому объём имеет смысл гнать по своей, согласной базе: по статье 18 закона «О рекламе» телефонная реклама в России допускается только с предварительного согласия абонента. Чистая согласная база — это и меньше жалоб, и выше процент разговора, и меньше риск для номеров.

Планируете объёмы в тысячи звонков в день — обсудим архитектуру под вашу нагрузку через форму.