Интеграция SIP‑звонков WhatsApp

Введение

WhatsApp теперь поддерживает SIP-вызовы через WhatsApp Cloud API, обеспечивая голосовые звонки с использованием SIP поверх TLS/SRTP.

Это обеспечивает нативную интеграцию между WhatsApp и 3CX, расширяя существующую интеграцию только для сообщений, чтобы также поддерживать голосовые вызовы WhatsApp, которые можно маршрутизировать на добавочные номера 3CX, очереди, IVR или ИИ агентов.

Обратите внимание, что текущая реализация голосовых вызовов поддерживает только входящие вызовы WhatsApp в 3CX.

Предварительные требования

  • Включение WhatsApp SIP требует активного приложения WhatsApp на портале разработчиков Meta с правами на обмен сообщениями для бизнес-номера телефона, для которого требуется включить SIP.
  • Если это еще не настроено, следуйте шагам, описанным в нашем Руководстве по интеграции WhatsApp, и получите ID номера телефона и токен доступа пользователя (User Access Token), описанные в руководстве выше. Они необходимы для аутентификации запросов к Graph API Meta для включения SIP.
  • Поскольку включение SIP-вызовов в приложении WhatsApp в настоящее время недоступно через UI-портал Meta, необходимо использовать сторонний инструмент, такой как Postman, для отправки POST-запросов к Graph API Meta.
  • Чтобы интегрировать несколько номеров WhatsApp одновременно, каждый номер должен быть связан с отдельным приложением WhatsApp в портале Meta for Developers. Процесс настройки, описанный в данном руководстве, от создания приложения WhatsApp до конфигурации SIP-транк в 3CX, необходимо повторять для каждого номера WhatsApp, который вы хотите интегрировать.
  • Подробнее можно прочитать в официальном руководстве по WhatsApp SIP.

Шаг 1: Создание приложения WhatsApp

  • Если обмен сообщениями WhatsApp уже настроен в 3CX, этот шаг можно пропустить и получить ID номера телефона и токен доступа пользователя из уже настроенного WhatsApp в 3CX. Зайдите в консоль администратора > Voice & Chat > Ваш Транк сообщений WhatsApp.
  • Если нет, следуйте шагам, описанным в нашем Руководстве по интеграции WhatsApp, и получите ID номера телефона и токен доступа пользователя.

Шаг 2: Включение SIP на номере WhatsApp

  • Отправьте следующий POST-запрос к Graph API Meta, используя curl или любой другой инструмент.
  • Команду curl можно импортировать непосредственно в Postman, перейдя в "File → Import" и вставив:

curl -X POST "https://graph.facebook.com/v24.0/<PHONE_NUMBER_ID>/settings" \

  -H "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \

  -H "Content-Type: application/json" \

  -d '{

    "calling": {

      "status": "ENABLED",

      "callback_permission_status": "ENABLED",

      "call_icon_visibility": "DEFAULT",

      "srtp_key_exchange_protocol": "SDES",

      "sip": {

        "status": "ENABLED",

        "servers": [

          {

            "hostname": "<YOUR_3CX_FQDN>",

            "port": <YOUR_SIPS_PORT>

          }

        ]

      }

    }

  }'

  • Убедитесь, что перед отправкой в команде выше следующие данные заменены на собственные:
  • <PHONE_NUMBER_ID> = ID номера телефона, полученный на Шаге 1 выше
  • <YOUR_ACCESS_TOKEN> = Маркер доступа пользователя, полученный на Шаге 1 выше
  • <YOUR_3CX_FQDN> = FQDN вашей АТС 3CX; например: mypbx.3cx.com
  • <YOUR_SIPS_PORT> = Обычно 5061, если АТС использует порты по умолчанию
  • Если запрос успешен:

{"success":true}

  • В curl должен прийти ответ об успехе

  • Или в Postman

Шаг 3: Проверка конфигурации SIP

  • Отправьте следующий GET-запрос к Graph API Meta:

curl -X GET "https://graph.facebook.com/v17.0/<PHONE_NUMBER_ID>/settings?fields=calling&include_sip_credentials=true" \

  -H "Authorization: Bearer <YOUR_ACCESS_TOKEN>"

  • Убедитесь, что перед отправкой в команде выше следующие данные заменены на собственные:
  • <PHONE_NUMBER_ID> = ID номера телефона, полученный на Шаге 1 выше
  • <YOUR_ACCESS_TOKEN> = Маркер доступа пользователя, полученный на Шаге 1 выше
  • Если запрос успешен, должен прийти ответ, аналогичный следующему:

{

    "calling": {

        "status": "ENABLED",

        "call_icon_visibility": "DEFAULT",

        "callback_permission_status": "ENABLED",

        "srtp_key_exchange_protocol": "SDES",

        "sip": {

            "status": "ENABLED",

            "servers": [

                {

                    "app_id": 112233445566778,

                    "hostname": "pbx.3cx-example.com",

                    "port": 5061,

                    "sip_user_password": "aabbccddeeffgghhiijjkkllmmnnoopp"

                }

            ]

        }

    },

    "storage_configuration": {

        "status": "DEFAULT"

    }

}

  • В curl

  • Или в Postman

Шаг 4: Включение настроек вызовов в WhatsApp Business Manager

  • Если Phone Numbers не отображается, нажмите All tools

  • Откройте вкладку Call Settings и убедитесь, что включены эти опции:
  • Allow voice calls
  • Allow callbacks
  • Display call buttons

Шаг 5: Создание транка в 3CX

Чтобы создать новый WhatsApp SIP транк:

  • Скачайте шаблон WhatsApp отсюда
  • В консоли администратора 3CX перейдите на вкладку "Admin → Advanced → Templates → Provider Templates"
  • Нажмите кнопку Import Provider, выберите скачанный выше шаблон и нажмите кнопку Import:

  • Задайте Имя для нового WhatsApp SIP транка
  • Установите Маршрут по умолчанию для входящих SIP-вызовов WhatsApp
  • Снимите флажок Create an outbound rule
  • Установите Основной номер транка на номер WhatsApp
  • Оставьте все остальные поля со значениями по умолчанию
  • Нажмите кнопку Save
  • Теперь можно принимать входящие вызовы WhatsApp на номер WhatsApp, и они будут доставляться в выбранное назначение в 3CX. 

Альтернативно, можно создать универсальный (Generic) SIP транк в 3CX вручную, убедившись, что используется следующая конфигурация:

  • Authentication Type: IP-based
  • Host: wa.meta.vc
  • Port: Auto discovery
  • Transport Protocol: TLS
  • SRTP Mode: Enforced
  • Codecs: OPUS

Дополнительная информация

Версия документа

Последнее обновление документа 3 августа 2026

https://www.3cx.ru/docs/whatsapp-sip-calling-integration/