Перейти к основному содержимому
megapromotingДавайте обсудим

Экспертиза · Голосовые агенты

Агент, который говорит — на вашей странице и по телефону — и которого можно прервать.

Мы создаём голосовых агентов на Kallina: написанная роль, утверждённая база знаний, инструменты, которые они вызывают во время разговора, и предел, за которым они передают разговор человеку. Румынский — язык по умолчанию для новых агентов.

Уже построеноТри собственные реализации, перечисленные ниже. (1) Платформа Kallina — 472 edge-функции Deno и 559 миграций базы данных, подсчитанные сегодня в репозитории; `https://app.kallina.info` отвечает 200. (2) Компонент на этом сайте, `src/components/agents/KallinaVoiceAgent.tsx`, который реализует правильный путь сессии и документирует два способа, которыми voice agent молча выходит из строя. (3) Мост `elevenlabs-bridge` и сессия `openai-realtime-session`, где находятся реальные параметры прерывания и детекции речи. Оговорка, которую мы говорим: телефонная часть зависит от SIP-host, а host, через который проходят наши тестовые линии, на дату написания не отвечает — см. страницу телефонии. В web маршрут сегодня проверяем.

Голосовой агент у нас — это не «бот, который читает сценарий». У него есть четыре вещи, записанные до первого звонка: роль, база знаний, одобренная вами, набор инструментов, которые он имеет право вызывать, и предел, за которым он передаёт разговор человеку. То, что выходит из разговора, — это не только transcript: у звонка есть длительность, стоимость, разбитая по поставщику, запись и анализ, всё привязано к счёту бизнеса.

Двигатель не один, и это решение, а не случайность. В конфигурации агента вы выбираете между ElevenLabs Conversational AI, OpenAI Realtime и Gemini Live, или оставляете «auto», и платформа выбирает по языку, нагрузке и доступности. Поверх него вы отдельно выбираете текстовый мозг из каталога, в котором у каждой модели в интерфейсе показаны задержка и стоимость за минуту. Когда кто-то спрашивает «почему отвечает медленно», ответ содержит цифры, а не мнения.

То, что люди ощущают сильнее всего, — это прерывание. В OpenAI Realtime обнаружение речи семантическое, с порогом 0,5, буфером 300 ms до и 500 ms тишины, чтобы считать, что вы закончили говорить; переключатель «разрешить прерывания» включён по умолчанию. В ElevenLabs событие прерывания передаётся дальше телефонной станции, чтобы немедленно остановить воспроизведение. А время, через которое агент считает, что ваше молчание — это ответ, настраивается для каждого агента отдельно — у одного нашего агента по продажам оно сжато до 12 секунд вместо 15 по умолчанию.

Агент живёт в двух разных местах, с разными ограничениями. На веб-страницу он входит через одну строку скрипта или через собственный компонент, и золотое правило такое: страница никогда не хранит идентификатор агента и ни один ключ поставщика — запросите у платформы сессию и получите подписанный URL короткого срока действия. По телефону он входит через SIP-trunk, и там ограничения задаёт оператор и АТС, а не агент; об этом мы пишем отдельно, на странице телефонии.

ИИ голосовые агенты в Республике Молдова — как это работает, на практике · видео на румынском, с субтитрами и расшифровкой на русском

Полная расшифровка

Ладно, давайте сразу перейдём к сути. Сегодня мы делаем крайне точный технический разбор того, как голосовые агенты на самом деле работают в бизнес-среде. Мы будем опираться исключительно на архитектуру платформы Kallina, разработанной прямо в Республике Молдова, компанией MEGA PROMOTING S.R.L.. Без маркетингового языка, без раздутых обещаний, только факты, чистая инфраструктура и, очевидно, операционная реальность. Для любой команды, которая управляет бизнесом и опирается на понятные процессы, понимание технологии под капотом, честно, абсолютно необходимо. Сегодня у нас очень методичный путь. Проходим по шести пунктам. Сначала разбираем проблему, потом механизм работы, далее — анатомию сбоя, раздел про движки и прерывания, технические ограничения и, в конце, следующий шаг. Это абсолютно прозрачный взгляд на систему. Итак, первый раздел — проблема, время и запросы. Давайте посмотрим, с чего именно мы стартуем.

Это как раз тот вопрос, из-за которого операционные менеджеры не спят по ночам. Где именно теряется операционное время и, что очень важно, сколько непроверенных запросов исчезает ежедневно. В обычной компании время просто испаряется между пропущенными звонками, заявками, которые не принимаются вовремя, и всеми видами взаимодействий, которые, ну, потом просто невозможно проверить. И это не просто маленькая проблема дискомфорта. Речь идёт о гигантском операционном ресурсе, который теряется день за днём в неоптимизированном рабочем процессе. Переходим ко второй части — механизм, как это работает. Давайте зайдём в саму инженерию платформы. Посмотрите на эту цифру, 472. Это точное количество новых Edge-функций, которые сейчас держат платформу на плаву. То есть, ясно, мы не говорим о прототипе на выходные или о симпатичном фасадном интерфейсе. Это массивная инфраструктура на реальном сервере, спроектированная для управления крайне сложными маршрутами и бизнес-логиками.

И, чтобы подчеркнуть уровень зрелости, на инфраструктуре PostgreSQL, размещённой через Supabase, есть ровно 559 миграций базы данных. Эти цифры показывают нам сверхпрочную основу с реализованными политиками безопасности на уровне строк. По сути, это система, построенная для масштабирования и для того, чтобы держать данные в безупречном порядке. Теперь посмотрите, как выглядит порядок операций на web-агенте, потому что эта деталь — абсолютно гениальна. На шаге 1 страница запрашивает доступ к микрофону. На шаге 2 посетитель должен согласиться. И только на шаге 3 отправляется запрос на сервер, чтобы открыть сессию, получая обратно подписанный URL, действительный лишь короткое время. Почему это такой важный стратегический ход? Всё просто: если на шаге 2 микрофон отклонён, система не идёт дальше. Математически это означает 0 минут расхода и 0 денег, выброшенных в окно, на фантомные сессии.

Раздел 3, вероятно, мой любимый. Анатомия сбоя. Потому что ничто не строит доверие сильнее, чем полная прозрачность, не так ли? Представьте себе вот этот кошмарный сценарий. На web-странице был внедрён голосовой агент, но когда вы нажимали на кнопку, не происходило абсолютно ничего. Ни звука, ни какого-либо предупреждающего сообщения, ни ошибки в консоли разработчика. Полная тишина. Для любого, даже для опытного техника, такой дефект на первый взгляд казался невозможным для локализации. Почему? Потому что не было никакого журнала ошибок. Полностью молчаливый сбой. Когда начали копать глубже, технический анализ выявил двух полностью невидимых врагов. Во-первых, сервер отправлял заголовок, который полностью запрещал использование микрофона. Браузер, будучи послушным, соблюдал правило и отклонял запрос, но делал это без предупреждения визуального интерфейса. Во-вторых, один голосовой компонент импортировался на страницу статически.

Файл просто не находился, возвращая ошибку 404. Из-за этого весь скрипт рушился в фоне, в тишине, блокируя любую дальнейшую настройку. Но посмотрите, насколько элегантным было решение. Проблема, очевидно, была не в AI, а напрямую в сети. Был изменён заголовок сервера, чтобы разрешить микрофон из собственного источника, видите там, в состоянии repaired, и импорт кода был перенесён ровно внутрь действия нажатия кнопки. Дефект полностью исчез. Теперь, если кто-то нажимает кнопку и микрофон заблокирован браузером, сбой больше не молчит. Сразу появляется чёткое сообщение на румынском языке, которое точно объясняет, что нужно изменить. Это и есть инженерия с головой, полностью убирающая неприятные сюрпризы. Двигаемся дальше, к четвёртому разделу — движки, языки и прерывания. Пришло время точно посмотреть, на что способен этот system. Здесь мы оставляем в стороне субъективные мнения и говорим только в миллисекундах.

Когда вы используете модель Flash от ElevenLabs, задержка составляет всего 75 миллисекунд. Чтобы вы понимали, для человеческого уха это практически мгновенно. С другой стороны, если вы предпочитаете абсолютно премиальное качество голоса, как у модели Turbo, задержка достигает примерно 250 миллисекунд. В телефонном разговоре каждая миллисекунда критична, и платформа позволяет вам выбрать именно тот движок, который вам нужен, строго в зависимости от операционных потребностей компании. Очень частый вопрос, который мы слышим: ладно, но могу ли я прерывать агента, пока он говорит? Ответ — твёрдое да, только механизм отличается. Например, в OpenAI Realtime детекция семантическая. У неё порог установлен на 0.5 и технический запас безопасности в 300 миллисекунд. В случае с ElevenLabs, в ту секунду, когда возникает прерывание, событие напрямую уходит на телефонную станцию, систему PBX, чтобы мгновенно отрезать звук.

Более того, период тишины, который агент ждёт, прежде чем ответить в свою очередь, можно очень тонко настроить. Его можно, например, сократить до 12 секунд вместо значения по умолчанию 15, что делает разговор гораздо более естественным и быстрым. С точки зрения поддерживаемых языков официальная конфигурация агента успешно работает с 32 разными языками. Но один операционный момент здесь для нас имеет первостепенное значение: румынский язык по умолчанию установлен для абсолютно всех новых агентов, создаваемых на этой платформе. Мы дошли до пятого раздела, технические ограничения и ответственность, потому что иногда не менее важно знать, чего система не может сделать, чтобы у вас были корректные ожидания. Давайте проведем очень четкую границу. Агент может выполнять внешние функции, может запускать внутренние инструменты прямо на сервере и может без проблем переводить звонок к человеческому коллеге.

Но система запрещает агентам импровизировать в строго регулируемых сферах. Подумайте об этом. Агент, который начинает импровизировать там, где законодательство крайне жесткое, становится огромным риском для компании, ни в коем случае не преимуществом. Более того, такие вещи, как автоматическое выполнение удаления данных по истечении определенного срока, — это не просто галочки в меню. Они представляют собой отдельные процедурные проекты, которые организация должна внедрять специально. Безопасность, с другой стороны, рассматривается с абсолютной строгостью. Веб-страницы, на которых размещены агенты, получают исключительно тот подписанный URL, о котором я говорил. Никогда, но абсолютно никогда, они не получают ID агента или API-ключ, который можно было бы украсть и использовать за счет компании. Что касается голоса, телефония на 100% зависит от работающего внешнего SIP trunk и, чтобы быть максимально прозрачными относительно текущих ограничений, внешние тестовые SIP-линии в данный момент не отвечают.

Это чрезвычайно честный подход со стороны инженеров, который показывает, что техническая реальность всегда на первом месте, вне любого коммерческого разговора. И вот мы дошли до шестого, последнего, кстати, раздела, следующий шаг в процессе. Что мы делаем дальше со всей этой информацией? Весь этот технический разбор должен привести нас к суперобъективной оценке ваших рабочих процессов. Вот в чем настоящий вопрос. Какой операционный процесс внутри организации на самом деле нуждается в том, чтобы работать эффективнее? Мы же не внедряем искусственный интеллект просто ради моды, верно? Цель — определить то самое точное, логичное место, где voice agent может рационально встроиться, масштабироваться и работать в условиях максимальной безопасности. В качестве финальной точки здесь у вас есть операционные координаты компании MEGA PROMOTING S.R.L. из Кишинева, включая IDNO и веб-адрес?

Это для возможного строго технического обсуждения, призванного прояснить, как можно интегрировать эти сложные структуры в системы, которые вы уже используете в своем бизнесе. Перед любым решением я бы оставил провокационный вопрос, над которым мы все могли бы поразмышлять. Выдержали бы текущие процессы управления клиентами в наших компаниях действительно такой же жесткий и прозрачный технический анализ, как тот, через который прошла эта система? На рынке, определяемом постоянными инновациями, взгляд, основанный строго на фактах и цифрах, по-прежнему остается, безусловно, самым мощным инструментом, который есть в нашем распоряжении. До следующего раза!

Что входит

Работа, по составляющим

Сессия запрашивается у платформы, а не у голосового поставщика

Страница отправляет `POST /functions/v1/widget-voice-session` с публичным идентификатором виджета и получает обратно подписанный URL. У неё никогда нет идентификатора агента и ни одного ключа. Неправильный вариант — `startSession({ agentId })` прямо в HTML — полностью обходит слой сессии, кредитов и журнала платформы и раскрывает агента любому, кто откроет исходный код страницы. Это первая проверка, которую мы делаем для любой реализации, которую берём на сопровождение.

Микрофон запрашивается до сессии, значит отказ ничего не стоит

Порядок фиксирован и важен: сначала запросите микрофон с `getUserMedia({audio:true})`, и только если человек согласится, запрашивайте сессию. Если посетитель откажется, не будет выдан ни один подписанный URL и не будет потрачено ни одной минуты. Запрос микрофона выполняется внутри нажатия кнопки, до любого ожидания, которое может выйти за пределы жеста — иначе браузер игнорирует запрос.

Агент можно прерывать, и это настраивается цифрами

В OpenAI Realtime: семантическое обнаружение речи, порог 0,5, буфер 300 ms, 500 ms тишины, прерывание разрешено по умолчанию. В ElevenLabs: событие `interruption` передаётся станции, чтобы остановить воспроизведение. Сверху этого `turn_timeout` для каждого агента решает, через сколько времени тишины агент считает, что настала его очередь — по умолчанию 15 секунд, сжато до 12 у агента по продажам. И сообщение клиента «я не могу его прервать» очень часто имеет другую причину, чем пороги: слишком длинные ответы. Это мы исправляем в промпте и в лимите токенов, а не в обнаружении речи.

Вызывает инструменты во время разговора

Агент не заперт в том, что уже знает. Он может вызывать серверные функции, пока говорит, — чтобы прочитать доступность, записать встречу, отправить SMS или опросить каталог. Инструменты объявляются для каждого агента отдельно, с типизированными параметрами и собственным сроком выполнения, чтобы медленный инструмент не блокировал разговор.

Передача человеку — часть сценария, а не исключение

В мессенджере передача коллеге имеет собственное состояние в потоке — `handoff_status`, момент передачи, причина, кто назначен, заметки по решению — реализованное в отдельном модуле на 619 строк. По телефону перевод выполняется централью: слепой перевод через `##` и assisted transfer через `*2`, при этом звонок попадает в контекст dialplan, написанный для этого. Это два разных механизма, потому что это два разных канала; мы описываем их оба в сценарии.

Движок и голос выбираются явно, а не по умолчанию

Четыре позиции поставщика: `elevenlabs`, `openai-realtime`, `gemini-live` и `auto`. Для синтеза голоса на языках, отличных от английского, по умолчанию используется `eleven_flash_v2_5` — 32 языка, около 75 ms; вариант более высокого качества, `eleven_turbo_v2_5`, — около 250 ms. В OpenAI Realtime есть десять голосов и движки до `gpt-realtime-2.1`. Выбор — это поле в конфигурации агента, а не наше предположение.

Языки

Конфигурация агента поддерживает 32 языка, внутренняя языковая карта платформы содержит 41 запись, а панель администрирования переведена на 20. Это три цифры для трёх разных вещей, и их нельзя смешивать. Румынский — язык по умолчанию для нового агента.

Что остаётся после звонка

Транскрипт, аудиозапись, длительность, стоимость с разбивкой по поставщику, плюс послезвонковый анализ и краткое резюме разговора, сгенерированное для памяти клиента. Анализ не является самоцелью: на нём основано решение о том, сделал ли агент то, что должен был, или в сценарии есть дыра.

Потребление проверяется до действия, а не в счёте

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

Как это выглядит

Путь, шаг за шагом.

01

Выбираем один маршрут и пишем его границы

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

02

Мы строим агента: роль, знания, инструменты, ограничения

Prompt, утверждённая вами база знаний, инструменты, к которым он может обращаться, и пороги разговора — поставщик, голос, текстовая модель, время тишины, поведение при прерывании. В итоге у нас есть настроенный агент, а не demo.

03

Мы выводим его на канал и проверяем маршрут, не расходуя минуты

В web: строка script или собственный компонент поверх API запуска и остановки. Есть script, который проходит ровно путь browser — строка в конфигурации, конфигурация widget-а, запрос сеанса — и останавливается на signed URL, не открывая аудиосоединение. Он запускается на widget-е или на всех, возвращает code выхода, значит может входить в плановую проверку. По телефону: номер входит на trunk, а входящие и исходящие звонки тестируются отдельно, потому что ломаются отдельно.

04

Мы измеряем, что вышло, и исправляем сценарий

После первых реальных разговоров мы читаем транскрипты и послезвонковый анализ, а не впечатления. Чаще всего мы исправляем не модель, а длину ответов и границы сценария — две вещи, которые меняются в prompt в тот же день.

IntrareVerificareDeciziePublicareНичто не проходит дальше без проверки.ПОРЯДОК — ЭТО АРГУМЕНТ
Маршрут разговора: страница запрашивает микрофон, платформа выдаёт подписанную сессию, агент говорит и его можно перебить, вызывает инструмент, а то, что выходит за его роль, передаётся человеку.

Данные

К чему прикасаемся, где оно лежит и сколько остаётся

Вопросы, которые задаёт всякий, у кого есть ответственный за защиту данных, — заданы здесь раньше, чем их задаст он.

Где хранятся данные
PostgreSQL через Supabase, размещённый на собственной инфраструктуре, с 559 версионированными миграциями, из которых 195 затрагивают политики Row Level Security. Файлы — записи, документы знаний, голосовые образцы — хранятся в отдельных хранилищах, при этом путь начинается с идентификатора рабочего пространства, чтобы изоляция была в структуре, а не только в запросе.
То, что никогда не попадает на вашу страницу
Ключ поставщика голоса и идентификатор агента. Страница получает только подписанный URL с коротким сроком действия, выданный платформой. Практическое следствие: тот, кто читает исходный код вашей страницы, не может использовать вашего агента за ваш счёт.
Что записывается из звонка
Аудио, транскрипт, длительность, номер звонящего, результат звонка и последующий анализ. Для случаев, когда агент помнит клиента между звонками, сохраняется и краткое резюме предыдущего разговора. Всё связано с рабочим пространством; общего хранилища поверх клиентов нет.
Удаление по запросу есть; автоматического удаления по сроку пока нет
Мы говорим это как есть, потому что это разница между обещанием и функцией. Удаление по запросу реализовано: отдельная функция удаляет объекты из файлового хранилища, вызывает процедуру удаления из базы и инвалидирует сессии; отдельно есть экспорт данных и функция для данных звонка. Что не реализовано: настраиваемые сроки хранения по рабочему пространству. Они спроектированы во внутреннем документе за апрель, но колонка конфигурации не появляется ни в одной миграции — значит, сегодня удаление по сроку выполняется процедурой, а не часами. Если вашему проекту нужно автоматическое удаление, это входит как работа, а не как настройка.
Кого информируют о том, что он разговаривает с агентом
Уведомление о том, что собеседник говорит с автоматической системой, основание записи разговора и текст, который зачитывается в начале звонка, определяются вместе с вами и входят в сценарий. Это не техническая настройка: это решение оператора данных, то есть ваше.

Случай

Кнопка, которая ничего не делала — и даже не выдавала ошибку

Ситуация

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

Что мы построили

Причин было две, обе по своей природе молчаливые. Первая: заголовок `Permissions-Policy` сервера содержал `microphone=()`, и браузер отклоняет запрос к микрофону, не показывая пользователю ничего заметного. Вторая: голосовой SDK импортировался статически, а модуль, который при статическом импорте возвращает 404, валит весь скрипт — значит, и запрос конфигурации умирал вместе с ним, из-за чего дефект выглядел ровно как «ничего не произошло». Я перенёс импорт SDK внутрь нажатия кнопки, поставил запрос микрофона перед запросом сессии и записал заголовок сервера как `microphone=(self)`, с политикой безопасности контента, которая явно разрешает сеть распространения SDK.

Что получилось

Сегодня на этом сайте заголовок, отдаваемый в production, — `camera=(), microphone=(self), geolocation=(self)`, а политика безопасности контента явно перечисляет источник SDK. Сбой больше не молчаливый: отказ в доступе к микрофону выдаёт сообщение на румынском языке, которое говорит, что именно нужно изменить, а отказ ничего не стоит, потому что сессия даже не запрашивается.

Чего этот случай не говорит

Обе причины связаны с инфраструктурой, а не с агентом. Если ваш сайт обслуживается кем-то другим и заголовки не находятся под нашим контролем, их проверка становится условием начала работы, а не сюрпризом в конце.

Вопросы

О чём нас спрашивают перед тем, как позвонить

С чем он, конкретно, разговаривает? Какой движок стоит за ним?

Выбираете между ElevenLabs Conversational AI, OpenAI Realtime и Gemini Live, или оставляете «auto», и платформа выбирает по языку и доступности. Для синтеза голоса на языках, отличных от английского, по умолчанию используется `eleven_flash_v2_5` — 32 языка, около 75 ms; если вам нужно более высокое качество и вы принимаете большую задержку, `eleven_turbo_v2_5` — около 250 ms. В OpenAI Realtime есть десять голосов, а движок работает вплоть до `gpt-realtime-2.1`. Текстовый «мозг» выбирается отдельно, из каталога, где у каждой модели рядом указаны задержка и стоимость в минуту.

Могу ли я прервать его, когда он говорит, или нужно ждать, пока он закончит?

Можете. В OpenAI Realtime детекция речи семантическая, с порогом 0,5, буфером 300 ms и 500 ms тишины, а переключатель прерывания включён по умолчанию. В ElevenLabs событие прерывания отправляется телефонной станции, чтобы остановить воспроизведение. Если всё же кажется, что «его нельзя прервать», причина обычно в другом: агент отвечает абзацами, а не предложениями. Это исправляется в prompt и в лимите токенов, а не в порогах.

На скольких языках он говорит?

Конфигурация агента поддерживает 32 языка. Внутренняя языковая карта платформы содержит 41 запись, а панель администрирования переведена на 20 — три цифры для трёх разных вещей. Румынский — язык по умолчанию для нового агента. Для конкретного языка сначала проверяем, какая комбинация голосовой модели и поставщика реально его покрывает, потому что не все модели покрывают одни и те же языки.

Как попадает на мой сайт и что мне нужно у себя изменить?

Одна строка скрипта с публичным идентификатором виджета или ваша собственная компонента поверх `start()` / `stop()` / `toggle()`. На вашем сервере должны быть истинны два условия, иначе кнопка ничего не делает и никакой ошибки не появляется: заголовок `Permissions-Policy` должен разрешать `microphone=(self)` — при `microphone=()` браузер тихо отклоняет микрофон — а политика безопасности содержимого должна разрешать загрузку SDK из используемой сети доставки. Мы проверяем это перед публикацией.

Он может звонить первым, а не только отвечать?

Да, платформа поддерживает вызовы в пакетах, с импортом контактов, повторными попытками и отслеживанием в реальном времени. Но исходящие звонки зависят не только от нас: в нашем реестре проблем задокументирован случай, когда АТС оператора начала возвращать `403 Forbidden` для всех исходящих, при нашей неизменной конфигурации и при том, что входящие звонки работали нормально. Поэтому мы отдельно тестируем исходящие перед тем, как обещать кампанию обзвона, и поэтому не продаём объём исходящих звонков до этого теста.

Что происходит, когда агент не знает ответа?

Передаёт. У каждого агента есть прописанные ограничения и настроенный путь передачи. В мессенджере поток переходит в состояние передачи человеку, с причиной и назначением коллеге. По телефону АТС выполняет перевод — слепой или с сопровождением — на внутренний номер или внешний номер. Всё, что выходит за рамки роли агента, останавливается, не импровизируется; это сознательное проектное решение, потому что агент, который импровизирует в регулируемой сфере, — это риск, а не экономия.

Записываются ли разговоры? Сколько они хранятся?

Да, они записываются, расшифровываются и анализируются, и всё это связано с вашим рабочим пространством. Срок хранения — это ваше решение как оператора данных, а не значение по умолчанию, которое мы вам навязываем — и следует ясно сказать, что автоматическое удаление по сроку сегодня не является простой настройкой в платформе: удаление по запросу реализовано, удаление по сроку выполняется по процедуре. Если вам нужен автоматический таймер, он создаётся в проекте.

Тратятся ли деньги, если посетитель нажимает кнопку, а потом отказывается от микрофона?

Нет. Микрофон запрашивается до начала сессии. Если человек отказывается, запрос на сессию вообще не выполняется, значит, не выпускается ни одного подписанного URL и ничего не расходуется. Отдельно, перед любой операцией, которая стоит денег, платформа проверяет доступный кредит — ворота находятся до вызова, а не в счёте в конце месяца.

Могу ли я сегодня иметь агента, который отвечает на стационарный телефонный номер?

Это зависит от одного элемента, который не является агентом: SIP-хоста, через который входит звонок. Часть с агентом готова и может быть показана на странице сразу. Телефонная часть требует рабочий trunk от оператора и АТС, которая отвечает; на момент написания хост, через который проходят наши тестовые линии, не отвечает, и мы не показываем как доступное то, что не можем запустить перед вами. Для реального проекта телефония рассчитывается отдельно — см. страницу телефонии и contact center.

На чём основаны утверждения выше (21 источников)
  1. app.kallina.info отвечает 200 сегодня; supabase.kallina.info отвечает на edge-функцииhttps://app.kallina.info/ · 2026-09-06
  2. Заголовки, отдаваемые сегодня в продакшене на megapromoting.com, разрешают микрофон и источник SDKhttps://www.megapromoting.com/ · 2026-09-06

19 из них — код и файлы из наших репозиториев. Мы не публикуем их название и строку: вместе, на одной странице, они слишком точно описали бы, как устроены системы, которые принадлежат не только нам. Мы разбираем их вместе с тобой, в репозитории, по запросу — проверка остаётся возможной, просто она проходит в разговоре.

Что вы хотели бы наладить?

Расскажите о своём процессе. Вместе определим, что стоит построить, что можно подключить и как проверим результат.

Давайте обсудим