> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ycloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# whatsapp.call.connect

> Происходит, когда входящий звонок предоставляет SDP offer или звонок, инициированный бизнесом, предоставляет SDP answer.

Используйте `whatsapp.call.connect` для обработки этого события на вашей конечной точке Webhook.

## Триггеры

Происходит, когда входящий звонок предоставляет SDP offer или звонок, инициированный бизнесом, предоставляет SDP answer.

Подпишитесь на `whatsapp.call.connect`, когда будете [настраивать конечную точку Webhook](https://docs.ycloud.com/ru/api-reference/guides/api-fundamentals/configure-webhooks.md).

Используйте `sdpType`, чтобы отличить offer от answer. Для входящего offer создайте SDP answer перед тем, как принять звонок.

## Синтаксис

YCloud отправляет HTTP-запрос `POST` на настроенный вами URL-адрес Webhook. Следующая структура демонстрирует один из вариантов полезной нагрузки. Значения в угловых скобках являются плейсхолдерами; их типы перечислены в разделе **Параметры**. Необязательные поля и другие варианты описаны ниже.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "<ID>",
  "type": "whatsapp.call.connect",
  "apiVersion": "<API_VERSION>",
  "createTime": "<CREATE_TIME>",
  "callingConnect": {
    "id": "<ID>",
    "wacid": "<WACID>",
    "phoneId": "<PHONE_ID>",
    "from": "<FROM>",
    "to": "<TO>",
    "direction": "<DIRECTION>",
    "dialTime": "<DIAL_TIME_VALUE>",
    "sdpType": "<SDP_TYPE>",
    "sdp": "<SDP>"
  }
}
```

## Параметры

Проверяйте HTTP-заголовок `YCloud-Signature` перед обработкой тела JSON. См. раздел [проверка подписи](https://docs.ycloud.com/ru/api-reference/guides/api-fundamentals/configure-webhooks.md).

### Оболочка события

| Параметр | Тип | Обязательный | Описание |
| - | - | - | - |
| `id` | string | Да | Уникальный идентификатор события. Минимальная длина: `6`. Максимальная длина: `128`. |
| `type` | string | Да | Всегда `whatsapp.call.connect`. |
| `apiVersion` | string | Да | Версия API, используемая для формирования этого события. |
| `createTime` | string (date-time) | Да | Время создания события в формате [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339). Например, `2022-06-01T12:00:00.000Z`. |

### Полезная нагрузка события

| Параметр | Тип | Обязательный | Описание |
| - | - | - | - |
| `callingConnect` | object | Нет | Полезная нагрузка `callingConnect`, специфичная для события. |

Четыре общих поля оболочки являются обязательными. Поля полезной нагрузки зависят от варианта события. В таблице каждого объекта статус **Обязательный** действует при наличии родительского объекта. Необязательные поля могут быть опущены; наличие в примере не делает поле обязательным.

#### callingConnect

| Параметр | Тип | Обязательный | Описание |
| - | - | - | - |
| `id` | string | Да | Уникальный идентификатор события звонка. |
| `wacid` | string | Да | Идентификатор звонка WhatsApp. Этот идентификатор однозначно определяет сессию звонка. |
| `phoneId` | string | Нет | Идентификатор номера телефона WhatsApp Business. |
| `from` | string | Нет | Номер телефона звонящего в формате [E.164](https://en.wikipedia.org/wiki/E.164). |
| `fromUserId` | string | Нет | Идентификатор пользователя в рамках учетной записи WhatsApp Business (BSUID) звонящего для звонков, инициированных клиентом. |
| `fromParentUserId` | string | Нет | Родительский идентификатор пользователя в рамках учетной записи WhatsApp Business звонящего для звонков, инициированных клиентом. |
| `to` | string | Нет | Номер телефона принимающего звонок в формате [E.164](https://en.wikipedia.org/wiki/E.164). |
| `toUserId` | string | Нет | Идентификатор пользователя в рамках учетной записи WhatsApp Business (BSUID) принимающего звонок для звонков, инициированных бизнесом. |
| `toParentUserId` | string | Нет | Родительский идентификатор пользователя в рамках учетной записи WhatsApp Business принимающего звонок для звонков, инициированных бизнесом. |
| `customerProfile` | object | Нет | Информация профиля клиента, включая имя пользователя WhatsApp, если доступно. |
| `direction` | string | Нет | Направление звонка.<ul><li>`USER_INITIATED`: Звонок, инициированный клиентом в сторону бизнеса.</li><li>`BUSINESS_INITIATED`: Звонок, инициированный бизнесом в сторону клиента.</li></ul> |
| `sdpType` | string | Нет | Тип SDP для соединения WebRTC.Значения: `offer`, `answer`. |
| `sdp` | string | Нет | Информация Session Description Protocol (SDP), соответствующая стандарту [RFC 8866](https://datatracker.ietf.org/doc/html/rfc8866). Содержит параметры медиасессии для соединения WebRTC. |
| `dialTime` | integer (int64) | Нет | Время набора вызова в миллисекундах в формате Unix timestamp. |

> [accordion] callingConnect.customerProfile
>
> | Параметр | Тип | Обязательный | Описание |
> | - | - | - | - |
> | `name` | string | Нет | Имя аккаунта WhatsApp. |
> | `username` | string | Нет | Имя пользователя WhatsApp. |

## Пример

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

> [accordion] Событие подключения вызова WhatsApp
>
> Пример полезной нагрузки при подключении вызова WhatsApp
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_call_connect_123",
>   "type": "whatsapp.call.connect",
>   "apiVersion": "v2",
>   "createTime": "2024-01-01T12:00:00.000Z",
>   "callingConnect": {
>     "id": "6757b723960b25543b9ecc66",
>     "wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxUCABIYIEF",
>     "phoneId": "461269257068832",
>     "from": "+12025550124",
>     "to": "+12025550123",
>     "direction": "USER_INITIATED",
>     "dialTime": 1733826430000,
>     "sdpType": "offer",
>     "sdp": "v=0\r\no=- 1732169627243 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio\r\na=msid-semantic: WMS af3b01e3-eb42-4244-812e-db903c062ae7\r\na=ice-lite\r\nm=audio 3480 UDP/TLS/RTP/SAVPF 111 126\r\nc=IN IP4 31.13.87.130\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:785588535 1 udp 2122260223 31.13.87.130 3480 typ host generation 0 network-cost 50\r\na=candidate:1906600321 1 udp 2122262783 2a03:2880:f217:d0:face:b00c:0:699c 3480 typ host generation 0 network-cost 50\r\na=ice-ufrag:CvRXRnInnWhQzLIE\r\na=ice-pwd:HGXUGAFI8wK6seuVknBT2Q==\r\na=fingerprint:sha-256 FB:56:A1:C5:37:35:6C:5C:1B:05:23:B0:DD:BB:2E:C9:5F:E4:70:61:7B:D9:1D:09:84:76:46:23:12:38:B7:01\r\na=setup:actpass\r\na=mid:audio\r\na=sendrecv\r\na=msid:af3b01e3-eb42-4244-812e-db903c062ae7 WhatsAppTrack1\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 maxaveragebitrate=20000;maxplaybackrate=16000;minptime=20;sprop-maxcapturerate=16000;useinbandfec=1\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:20\r\na=ptime:20\r\na=ssrc:659928310 cname:WhatsAppAudioStream1\r\n"
>   }
> }
> ```

> [accordion] Подключение вызова, инициированного пользователем
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_6757b723a5a42d369ef48480",
>   "type": "whatsapp.call.connect",
>   "apiVersion": "v2",
>   "createTime": "2024-12-10T03:36:03.749Z",
>   "callingConnect": {
>     "id": "6757b723960b25543b9ecc66",
>     "wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxrtLopSdPMwd",
>     "phoneId": "461269257068832",
>     "from": "+12025550124",
>     "fromUserId": "ID.13491208655302741918",
>     "fromParentUserId": "ID.11815799212886844830",
>     "to": "+12025550123",
>     "direction": "USER_INITIATED",
>     "sdpType": "offer",
>     "sdp": "<<RFC 4566 SDP>>"
>   }
> }
> ```

> [accordion] Подключение вызова, инициированного бизнесом
>
> ```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
> {
>   "id": "evt_676e5a0d7a9cb742d02d7645",
>   "type": "whatsapp.call.connect",
>   "apiVersion": "v2",
>   "createTime": "2024-12-27T07:41:01.554Z",
>   "callingConnect": {
>     "id": "676e5a0d94c533526d3c5ad5",
>     "wacid": "wacid.HBgNNjI4MTM2MTkwNTEzMxUCABE",
>     "phoneId": "461269257068832",
>     "from": "+12025550124",
>     "to": "+12025550123",
>     "toUserId": "ID.13491208655302741918",
>     "toParentUserId": "ID.11815799212886844830",
>     "direction": "BUSINESS_INITIATED",
>     "sdpType": "answer",
>     "sdp": "<<RFC 4566 SDP>>",
>     "dialTime": 1735283452000
>   }
> }
> ```

После проверки подписи и надежного сохранения события верните ответ `2xx`. Выполняйте длительные операции асинхронно.

```http theme={"theme":{"light":"github-light","dark":"github-dark"}}
HTTP/1.1 200 OK
```

Пошаговые сценарии см. в разделе [примеры с пояснениями](https://docs.ycloud.com/ru/api-reference/guides/examples/webhook-examples/whatsapp-calling-connect-webhook-examples).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.