Перейти к основному содержимому

Вебхук-запрос о статусе настройки звонков для подписи WhatsApp

Обновлено: 16 декабря 2025

После вызова метода api/channel-profile/whatsapp/{sender}/settings edna Pulse отправит вебхук-запрос со статусом настройки звонков для подписи WhatsApp.

к сведению

При вызове метода api/channel-profile/whatsapp/{sender}/settings укажите в параметре callbackUrl URL-адрес для вебхук-запроса — конечную точку вашей системы, которая будет обрабатывать входящие POST-запросы от edna Pulse.

File IconПолучение статуса настройки звонков для подписи WhatsApp

Формат вебхук-запроса

{
"requestId": "string",
"status": "string",
"calling": {
"status": "string",
"callIconVisibility": "string",
"callbackPermissionStatus": "string",
"callHours": {
"status": "string",
"timezoneId": "string",
"weeklyOperatingHours": [
{
"dayOfWeek": "string",
"openTime": "string",
"closeTime": "string"
},
{
"dayOfWeek": "string",
"openTime": "string",
"closeTime": "string"
}
],
"holidaySchedule": [
{
"date": "string",
"openTime": "string",
"closeTime": "string"
}
]
},
"sip": {
"status": "string",
"servers": [
{
"hostname": "string",
"port": "string",
"requestUriUserParams": {
"KEY1": "string",
"KEY2": "string",
"KEY3": "string"
}
}
]
},
"srtpKeyExchangeProtocol": "string"
}
}

Пример вебхук-запроса

{
"requestId": "e49f9a4c89c902902a24b0a2c7ccc7bb",
"status": "SUCCESS",
"calling": {
"status": "ENABLED",
"callIconVisibility": "DEFAULT",
"callbackPermissionStatus": "ENABLED",
"callHours": {
"status": "ENABLED",
"timezoneId": "America/Manaus",
"weeklyOperatingHours": [
{
"dayOfWeek": "MONDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "TUESDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "WEDNESDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "THURSDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "FRIDAY",
"openTime": "1030",
"closeTime": "1830"
},
{
"dayOfWeek": "SATURDAY",
"openTime": "1100",
"closeTime": "1630"
},
{
"dayOfWeek": "SUNDAY",
"openTime": "1100",
"closeTime": "1630"
}
],
"holidaySchedule": [
{
"date": "2026-01-01",
"openTime": "1200",
"closeTime": "1700"
},
{
"date": "2026-02-01",
"openTime": "1200",
"closeTime": "1700"
}
]
},
"sip": {
"status":"ENABLED",
"servers": [
{
"hostname":"sip.com",
"port":"5061",
"requestUriUserParams": {
"call_type":"wa",
"tgrp": "wacall"
}
}
]
},
"srtpKeyExchangeProtocol":"SDES"
}
}

Параметры вебхук-запроса

ПараметрТип данныхХарактерОписание
requestIdstringОбязательныйВнутренний идентификатор запроса. Соответствует значению параметра requestId в ответе на запрос метода api/channel-profile/whatsapp/{sender}/settings. File IconПолучение статуса настройки звонков для подписи WhatsApp
statusstringОбязательныйСтатус выполнения запроса метода api/channel-profile/whatsapp/{sender}/settings.
Возможные значения:
- SUCCESS — успешно;
- FAILED — неуспешно, есть ошибки.
callingobjectОбязательныйНастройка звонков для подписи.
calling.statusstringНеобязательныйСтатус, в котором указана настройка включения или отключения звонков для подписи.
Возможные значения:
- ENABLED — звонки для подписи включены;
- DISABLED — звонки для подписи отключены.
calling.callIconVisibilitystringНеобязательныйНастройка отображения иконки кнопки вызова WhatsApp для получателей при общении с компанией. Отображается, если звонки включены для подписи.
Возможные значения:
- DEFAULT — отображение иконки кнопки вызова включено, значение по умолчанию;
- DISABLE_ALL — отображение иконки кнопки вызова отключено. developers.facebook.com
calling.​callbackPermissionStatusstringНеобязательныйНастройка, которая отправляет получателю запрос на разрешение об исходящих звонках со стороны компании после входящего звонка получателя. Запрос на разрешение отображается как при пропущенном, так и при успешном звонке.
Возможные значения:
- ENABLED — отображение запроса получателю на разрешение о звонках со стороны компании включено;
- DISABLED — отображение запроса получателю на разрешение о звонках со стороны компании отключено.
Для звонка получателю требуется явное разрешение от получателя на получение звонков. developers.facebook.com
calling.callHoursobjectНеобязательныйНастройка, указывающая часовой пояс и график работы. Получатель сможет совершать входящие звонки в компанию только в указанные часы работы. developers.facebook.com
calling.callHours.statusstringОбязательный, если параметр calling.callHours не пустойСтатус включения настройки графика работы компании.
Возможные значения:
- ENABLED — настройка графика работы компании включена;
- DISABLED — настройка графика работы компании отключена.
Если настройка графика работы компании отключена — компания считается открытой 24 часа в сутки, 7 дней в неделю.
calling.callHours.timezoneIdstringОбязательный, если параметр calling.callHours не пустойЧасовой пояс, в котором работает компания. developers.facebook.com
calling.callHours.​​weeklyOperatingHoursarray of objectsОбязательный, если параметр calling.callHours не пустойГрафик работы компании по дням недели.
calling.callHours.​weeklyOperatingHours.dayOfWeekstringОбязательный, если параметр calling.callHours.​weeklyOperatingHours не пустойДень недели.
Возможные значения:
- MONDAY — понедельник;
- TUESDAY — вторник;
- WEDNESDAY — среда;
- THURSDAY — четверг;
- FRIDAY — пятница;
- SATURDAY — суббота;
- SUNDAY — воскресенье.
calling.callHours.​weeklyOperatingHours.openTimestringОбязательный, если параметр calling.callHours.​weeklyOperatingHours не пустойВремя открытия компании по графику работы в формате 24-часов. Например, 1130 = 11:30 AM.
- Допускается максимум 2 записи в один день недели.
- openTime должно быть раньше closeTime.
- Перекрывающиеся записи не допускаются.
calling.callHours.​weeklyOperatingHours.closeTimestringОбязательный, если параметр calling.callHours.​weeklyOperatingHours не пустойВремя закрытия компании по графику работы в формате 24-часов. Например, 1130 = 11:30 AM.
- Допускается максимум 2 записи в один день недели.
- openTime должно быть раньше closeTime.
- Перекрывающиеся записи не допускаются.
calling.callHours.​holidaySchedulearray of objectsНеобязательныйНеобязательная настройка для изменения стандартного графика работы компании на период праздников, выходных или отпуска.
calling.callHours.​holidaySchedule.datestringОбязательный, если параметр calling.callHours.​holidaySchedule не пустойДата в формате YYYY-MM-DD, для которой указаны изменения стандартного графика работы компании.
calling.callHours.​holidaySchedule.openTimestringОбязательный, если параметр calling.callHours.​holidaySchedule не пустойВремя открытия компании в период изменения стандартного графика работы в формате 24-часов. Например, 1130 = 11:30 AM.
- Допускается максимум 2 записи в один день недели.
- openTime должно быть раньше closeTime.
- Перекрывающиеся записи не допускаются.
calling.callHours.​​holidaySchedule.closeTimestringОбязательный, если параметр calling.callHours.​holidaySchedule не пустойВремя закрытия компании в период изменения стандартного графика работы в формате 24-часов. Например, 1130 = 11:30 AM.
- Допускается максимум 2 записи в один день недели.
- openTime должно быть раньше closeTime.
- Перекрывающиеся записи не допускаются.
calling.sipobjectНеобязательныйНастройка сигнализации звонков через протокол установления сеанса — SIP. Если SIP включен, вы не сможете использовать API-методы и вебхуки, связанные с звонками. developers.facebook.com
calling.sip.statusstringНеобязательныйСтатус включения настройки сигнализации звонков через SIP для данной подписи.
Возможные значения:
- ENABLED — настройка сигнализации звонков через SIP включена;
- DISABLED — настройка сигнализации звонков через SIP отключена, значение по умолчанию.
При статусе ENABLED для подписи будет использоваться только протокол SIP для сигнализации звонка, API не будет работать.
Если в статусе установить DISABLED, значения в параметре calling.sip.servers не сбрасываются. Если вы снова включите SIP для той же подписи, ранее настроенные значения будут активны.
calling.sip.serversarray of objectsНеобязательныйНастройка маршрутизации SIP-сервера.
Для одного приложения может быть настроен только один SIP-сервер.
Для одной подписи может быть настроено несколько SIP-серверов, т.к. подпись может быть использована в нескольких приложениях.
Чтобы удалить ранее настроенный SIP-сервер, передайте в этом параметре пустой массив. Если вы увидите, что некоторые серверы остались после удаления, эти серверы могут принадлежать другим приложениям, поэтому вам необходимо использовать соответствующие токены доступа, чтобы очистить их.
calling.sip.servers.hostnamestringОбязательный, если параметр calling.sip.servers не пустойИмя хоста SIP-сервера.
Запросы должны использовать TLS.
calling.sip.servers.portstringОбязательный, если параметр calling.sip.servers не пустойПорт SIP-сервера, который будет принимать запросы. Запросы должны использовать TLS.
Порт по умолчанию — 5061.
calling.sip.servers.​requestUriUserParamsobjectНеобязательныйЛюбые дополнительные параметры, которые вы передаёте в пользовательскую часть URI-запроса, используемого в SIP INVITE на ваш SIP-сервер.
Максимальный размер ключа/значения — 128 символов.
Примером использования могут быть Trunk Groups (RFC 4904):
-sip:+1234567890@sip.example.com;
-tgrp=wacall;
-trunk-context=byoc.example.com. datatracker.ietf.org developers.facebook.com
calling.​srtpKeyExchangeProtocolstringНеобязательныйНастройка использования протокола обмена ключами SRTP.
Возможные значения:
- SDES — простой текстовый ключ, определяется в SDP, отправляется по SIP или по API. Может помочь сократить время установления звонка;
- DTLS — обмен зашифрованными ключами, соответствующий отраслевым стандартам. Рекомендуется к использованию. Значение по умолчанию.

Формат ответа

В ответ на вебхук-запрос от вашего сервера должен возвращаться статус с кодом 200.

Если в ответ на вебхук-запрос не возвращается статус с кодом 200 — edna Pulse выполняет еще 10 попыток отправки вебхук-запроса с интервалом 2^Х секунд между попытками (где Х — номер попытки), пока в ответ не придет код 200.

подсказка

Таким образом, при отсутствии ответа запрос повторяется через 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 секунд после первой попытки.