Подключение WhatsApp SIP к FreePBX (Asterisk)

Для подключения звонков WhatsApp в CRM Битрикс24 воспользуйтесь этой инструкцией: Подключение звонков WhatsApp в Битрикс24


С июля 2025 года компания Meta предоставляет возможность приёма звонков из WhatsApp на любой сервер IP телефонии. В данной инструкции мы рассмотрим процесс подключения WhatsApp Calling к FreePBX 17, работающему на Asterisk версии 22.5

Обязательные требования для получения возможности работать со звонками:

  1. Кредитка привязана к аккаунту WhatsApp в качестве платежного средства
  2. Номер WhatsApp имеет лимит (Tier) для исходящих сообщений 2000 и больше в сутки
WhatsApp Manager Messaging Limits

При первом подключении к WhasApp Cloud номер будет иметь лимит в 250 исходящих сообщений в сутки. Чтобы увеличить лимит можно использовать два способа:

  1. Пройти верификацию бизнеса
  2. Отправить 1000 и больше исходящих сообщений за месяц на уникальные номера и не попасть в бан

Активация WhatsApp SIP Calling на вашем номере

  1. Подключите ваш номер к WhatsApp Cloud API на этой странице
  2. Перейдите в настройки номера, кликнув по нему в общем списке подключенных номеров
  3. Поле " Направление звонка" - "На SIP сервер" или "В SIP транк" в зависимости от выбранной схемы подключения
  4. Нажмите "Отправить"

Откройте в приложении WhatsApp номер, который подключили и проверьте что в его профиле появилась кнопка "Call".

ВНИМАНИЕ! Без предварительного разрешения вызываемого абонента совершить исходящий звонок нельзя!

То есть не получится просто взять и начать звонить всем подряд из своей CRM или 2гис.

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

  1. Привязать банковскую карту к аккаунту WhatsApp в качестве платёжного средства
  2. Получить предварительное разрешение от абонента на звонок. Разрешение на входящий звонок клиент может выдать самостоятельно в вашем профиле WhatsApp или оно будет автоматически выдано на 7 дней, если клиент сам позвонит вам со своего WhatsApp
whatsapp cloud call_permission_request

Используя наш сервис вы можете подключить звонки WhatsApp двумя способами:

Схема звонка 1 (В SIP транк)

Сервер Meta (wa.meta.vc) ---> Промежуточный VOIP сервер ---> Ваша SIP АТС

Это упрощенный вариант быстрого подключения мы рекомендуем для тестирования и проверки работоспособности звонков

  1. В списке подключенных номеров WhatsApp Cloud кликните по нужному номеру и в блоке "Настройки звонков" выберите пункт "В SIP транк", нажмите кнопку "Отправить"
  2. После применения настроек в блоке Настройки звонков будет отображаться: адрес сервера, SIP логин и пароль. Используйте эти данные на своей АТС для подключения и совершения звонков.

whatsapp sip trunk

Схема звонка 2 (На SIP сервер)

Enable whatsapp calling

Сервер Meta (wa.meta.vc) ---> Ваша SIP АТС

Этот вариант будет удобен тем компаниям, в которых есть опытный специалист по IP телефонии, чтобы настроить и поддерживать подключение.

Подготовка сервера FreePBX

  1. Сервер FreePBX должен быть доступен из интернета по порту 5061 TCP
  2. Присвойте вашему серверу FreePBX доменное имя, например pbx.example.com
  3. На странице Admin > Certificate Management создайте или загрузите сертификат для вашего домена
Screenshot from 2025-08-17 13-11-47Screenshot from 2025-08-17 13-16-48

Проверка настроек сервера IP-телефонии Asterisk

С внешнего сервера проверьте корректность подключения командой

openssl s_client -quiet -verify_hostname {hostname} -connect {hostname}:{port}

Результат успешной проверки будет выглядеть примерно так:

$ openssl s_client -quiet -verify_hostname pbx.example.com -connect pbx.example.com:5061
Connecting to 64:ff9b::68f8:b0b8
depth=2 C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority
verify return:1
depth=1 C=AT, O=ZeroSSL, CN=ZeroSSL RSA Domain Secure Site CA
verify return:1
depth=0 CN=example.com
verify return:1

Создание SIP транка для подключения WhatsApp Calling к Asterisk

freepbx whatsapp sip trunk

Получить адреса всех подсетей WhatsApp Cloud API для сопоставления

whois -h whois.radb.net -- '-i origin AS32934' | grep ^route: | awk '{print $2}' | grep -v ":" | sort -u
whatsapp sip trunk freepbx asterisk

Screenshot from 2025-08-22 11-33-13

Сохраните настройки транка и создайте входящий маршрут где в качестве DID укажите номер вашего WhatsApp с которого планируете принимать звонки в формате +77776665544

Screenshot from 2025-08-17 13-34-13

Настройка исходящих звонков через транк WhatsApp Cloud

Настройте исходящий маршрут для созданного транка

freepbx whatsapp outbound call route

Пример настроек Asterisk для WhatsApp Calling без FreePBX

# pjsip.transports.conf
[0.0.0.0-tls]
type=transport
protocol=tls
bind=0.0.0.0:5061
external_media_address=123.123.123.123
external_signaling_address=123.123.123.123
ca_list_file=/etc/ssl/certs/ca-certificates.crt
cert_file=/etc/asterisk/keys/example.com-fullchain.crt
priv_key_file=/etc/asterisk/keys/example.com.key
method=tlsv1_2
verify_client=no
verify_server=no
allow_reload=no
tos=cs3
cos=3
local_net=10.8.0.0/24


# pjsip.conf
[wa.meta.vc]
type=aor
qualify_frequency=60
contact=sip:wa.meta.vc

[wa.meta.vc]
type=endpoint
transport=0.0.0.0-tls
context=from-meta
disallow=all
allow=opus
aors=wa.meta.vc
send_connected_line=no
rtp_keepalive=0
language=en
user_eq_phone=no
t38_udptl=no
t38_udptl_ec=none
fax_detect=no
trust_id_inbound=no
t38_udptl_nat=no
direct_media=no
media_encryption=sdes
rtp_symmetric=yes
dtmf_mode=auto

[wa.meta.vc]
type=identify
endpoint=wa.meta.vc
match=69.171.224.0/19