Решения · Для разработчиков

Кнопка звонка на вашем сайте, на которую отвечает агент

WebRTC-клиент позволяет посетителю позвонить агенту из браузера. Ваш бэкенд запрашивает у платформы временный пароль, передаёт его странице, и страница начинает звонок одним скриптом. Секретный ключ никогда не попадает в браузер.

Создание клиента

В разделе Телефония › WebRTC-клиенты выберите агента и перечислите домены, где будет использоваться кнопка, добавив localhost для локальных тестов. Вы получите имя клиента (wc_…) и секретный ключ (wk_…), который показывается только один раз.

1. Ваш бэкенд запрашивает временный пароль

Пароль действует 60 секунд и на один звонок.

curl -X POST https://developers.swissai.dev/api/webrtc/token \
  -H "X-Api-Key: wk_ваш_секретный_ключ" \
  -H "Content-Type: application/json" \
  -d '{"client": "wc_3f9a1c2b7d4e", "identity": "visitor-1842"}'

// 200
{ "wss": "wss://pbx.swissai.dev:8089", "domain": "pbx.swissai.dev",
  "user": "w4c1f09ab37de5521", "pass": "…", "target": "sip:ag_7f3a2b91@pbx.swissai.dev", "expires_in": 60 }

2. Страница начинает звонок

Загрузите скрипт и передайте ему ответ как есть. onState получает connecting, calling, connected и idle; onError — причину, если звонок не может начаться.

<button id="call">Позвонить нам</button>
<script src="https://developers.swissai.dev/js/call.js"></script>
<script>
document.getElementById('call').onclick = async () => {
  const params = await (await fetch('/call-token', { method: 'POST' })).json(); // ваш бэкенд
  SwissCall.start(params, { onState: s => console.log(s), onError: m => alert(m) });
};
</script>

Тот же агент, те же инструменты, и в тексте тоже

Агент за кнопкой — тот же, что отвечает на телефон, со своим промптом и инструментами. С тем же именем клиента и ключом ваш бэкенд может отправлять ему текстовые сообщения через chat API и читать звонки и расходы клиента через GetCalls. Оба вызова можно опробовать в тестовой области панели с кодом для копирования.

Частые вопросы

Почему пароль приходит от моего бэкенда?

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

Какие браузеры работают?

Любой современный браузер с WebRTC и доступом к микрофону, на компьютере и мобильном.

Стоят ли звонки из браузера столько же, сколько телефонные?

Да. Они считаются минутами тарифа, как и любой другой звонок.

Похожие страницы

Проверьте на своих звонках

Создайте аккаунт, настройте агента в панели и позвоните ему из браузера. Бесплатный пробный период 30 дней со 100 минутами, карта не нужна.

Начать бесплатноПоговорить с демо-агентом