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

Руководство по настройке SIP — звонки WhatsApp Business | Документация для разработчиков

Руководство по настройке SIP — звонки через WhatsApp Business

Обновлено: 15 декабря 2025 г
При включении SIP вы не можете использовать связанные с вызовами конечные точки Graph API , и связанные с вызовами веб-хуки не отправляются.

Обзор

Протокол инициации сеанса (SIP)— это протокол сигнализации, используемый для инициирования, поддержания, изменения и завершения сеансов связи в реальном времени между двумя или более конечными точками.
API для бизнес-звонков WhatsApp поддерживает использование SIP в качестве протокола сигнализации вместо наших конечных точек Graph API и вебхуков.

Прежде чем начать

Прежде чем приступить к сигнализации SIP-вызовов, подтвердите следующее:
Вы соответствуете общим предварительным требованиям для работы по специальности.Ваше приложение имеет права на отправку сообщений с корпоративного телефонного номера, для которого вы хотите включить SIP. Проверьте это, отправляя и получая сообщения с помощью конечных точек обмена сообщениями Graph API, а затем используйте то же приложение для настройки SIP-сервера на рабочем телефонном номере для совершения звонков.Для подтверждения используйте API состояния здоровья с идентификатором PHONE_NUMBER_ID.Режим работы вашего приложения — «Рабочий», а не «Разработка».У вас есть соответствующий стандартам сторонний SIP-сервер, поддерживающий TLS и дайджест-аутентификацию.
см. в разделе «Возможные настройки сигнализации и мультимедиа». Дополнительные сведения

Схемы вызовов с использованием SIP

Прежде чем начать, убедитесь, что вы включили и настроили SIP для номера телефона компании. Meta генерирует уникальный пароль пользователя SIP для каждой комбинации номера телефона компании и приложения. Вам понадобится эта информация, и вы можете получить ее, используя конечную точку getCall Settings.

Безопасность

Для SIP-протокола обязателен протокол TLS. Meta предоставит действительный сертификат сервера с именем субъекта, охватывающим наш SIP-домен wa.meta.vc. Ваш SIP-сервер должен сделать то же самое, поскольку Meta гарантирует действительность вашего сертификата и то, что имя субъекта охватывает SIP-домен, настроенный вами для бизнес-телефонного номера Meta НЕ поддерживает взаимный TLS (также известный как mTLS). Это означает, что когда Meta берет на себя роль TLS-клиента, ваш TLS-сервер не должен запрашивать клиентский сертификат. Если вы все же запросите клиентский сертификат, Meta предоставит его, но имя субъекта сертификата будет указывать на случайный динамический хост, который не пройдет проверку сертификата.Meta добавляет параметр transport=TLS к URI запроса в рамках SIP-запросов к вашему SIP-серверу.Для звонков, инициированных бизнес-процессами, запрос SIP-приглашения от вашего SIP-сервера будет проверяться с использованием дайджест-аутентификации. «Звонки, инициированные бизнес-процессами». Более подробную информациюДля вызовов, инициированных пользователем, настоятельно рекомендуется запрашивать подтверждение SIP INVITE через Meta, используя дайджест-аутентификацию для повышения безопасности. разделе «Вызовы, инициированные пользователем». Более подробную информацию

Как проверить наличие действующего TLS-сертификата

Когда пользователь WhatsApp звонит в компанию, распространенной причиной того, что ваш SIP-сервер не получает SIP INVITE от Meta, является ошибка проверки сертификата. Вы можете использовать информацию, представленную здесь, чтобы подтвердить правильность настройки.
Выполните команду openssl s_client -quiet -verify_hostname {hostname} -connect {hostname}:{port} , правильно заменив hostname и port на ваши значения.
Пример действительного сертификата сервера
$ openssl s_client -quiet -verify_hostname meta-voip.example.com -connect meta-voip.example.com:5061Подключение к 64:ff9b::68f8:b0b8 глубина=2 C=US, ST=NewJersey, L=JerseyCity, O=Сеть USERTRUST Центр, CN=USERTrust RSA сертификации=
проверка возвращает:1
глубина=1 C=AT, O=ZeroSSL, CNSiteZeroSSL RSA DomainSecure0 CA проверка :1глубина
=1CN =example.comпроверка возвращает:возвращает
Пример ситуации, когда имя хоста и порт не прослушивают TLS-соединение
openssl s_client -quiet -verify_hostname lb01.voice.usw2.pure.cloud -connect lb01.voice.usw2.pure.cloud:5060Подключение к 34.211.206.63009F0DFB01000000:ошибка:0A000126:SSL routines::unexpected eof while reading:ssl/record/rec_layer_s3.c:693:
Пример недействительного сертификата
$ openssl s_client -quiet -verify_hostname meta-inb.byoc.mypurecloud.com -connect meta-inb.byoc.mypurecloud.com:5061Подключение к 64:ff9b::3652:f1c0 глубина=0 jurisdictionC=US, jurisdictionST=California, businessCategory=PrivateOrganization, serialNumber=1515861, C=US, ST=Indiana, L=Indianapolis, O=GenesysCloudServices,Inc., CN=voice.mypurecloud.com ошибка проверки:num=62:несоответствие имени хоста возврат:1
глубина=2 C=US, O=DigiCertInc, OU=www.digicert.com, CN=DigiCertHighAssurance EV Root verify return:1
depth=1 C=US, O=DigiCertInc, OU=www.digicert.com=,,CNValidation ST=DigiCert SHA2 Extended,Server verify return:1
depth0= jurisdictionC=US, jurisdictionST=Californiareturn businessCategory=PrivateOrganization, serialNumber=1515861, C=USO ,=Indiana, L:Indianapolis, =ServicesGenesysCloud1Inc.,= CNverifyvoice.mypurecloud.comCACA
В этом случае вы можете изменить сертификат, чтобы он соответствовал имени хоста, или изменить имя хоста настроенного SIP-сервера, чтобы оно соответствовало вашему сертификату.

Звонки, инициированные бизнесом

Предварительные требования
У вас есть необходимое разрешение на совершение звонков от пользователя WhatsApp Узнайте, как получить у пользователей права на совершение звонковПолучите сгенерированный Meta пароль SIP и настройте его на своем SIP-сервере, чтобы он мог отвечать на запросы аутентификации в формате дайджеста от SIP-серверов Meta.
Схема вызовов
Отправьте первоначальный SIP-запрос INVITE на наши серверы. Наш SIP-домен — wa.meta.vc. Для инициирования звонка пользователю WhatsApp с номером телефона 11234567890, URI SIP-запроса должен быть 'sip:[email protected];transport=tls' Этот запрос завершится ошибкой «Требуется аутентификация прокси-сервера SIP 407».Отправьте второй SIP INVITE Authorization в соответствии с RFC 3261.заголовком Атрибут имени пользователя в поле «Авторизация» должен совпадать с именем пользователя в заголовке «От», которое представляет собой номер телефона компанииПароль генерируется Meta, и вы можете получить его, используя конечную точку `getCallSettings`.В заголовке «От» в поле имени пользователя должен быть указан полностью нормализованный номер корпоративного телефонаДоменное имя в заголовке From должно совпадать с именем SIP-сервера, настроенного для номера корпоративного телефонаподдерживает предложение SDP Включаемое вамиОтправьте SIP INVITE на номер пользователя WhatsApp, которому вы хотите позвонить.

Звонки, инициированные пользователем

Предварительные требования
Если вы планируете использовать дайджест-аутентификацию SIP, получите сгенерированный Meta пароль SIP и настройте его на своем SIP-сервере, чтобы он мог отвечать на запросы дайджест-аутентификации от SIP-серверов Meta.
Схема вызовов
Пользователь WhatsApp звонит на рабочий телефонный номер, не зная, использует ли компания SIP или Graph API. Другими словами, пользовательский опыт идентиченЕсли номер корпоративного телефона поддерживает SIP, Meta отправит SIP INVITE на SIP-сервер, настроенный для этого номера корпоративного телефона.Вы отвечаете запросом аутентификации SIP digest (рекомендуется) или SIP OK и передаете ответ SDP.
Если вы не получаете SIP INVITE от Meta, обратитесь к разделу часто задаваемых вопросов по SIP для дальнейшего устранения неполадок.

Пользовательские SIP-заголовки

Следующие пользовательские SIP-заголовки являются общими как для вызовов, инициированных компанией, так и для вызовов, инициированных пользователем
Название заголовка Метаданные Описание
x-wa-meta-call-duration
Необязательный параметр; Строка
Продолжительность вызова в секундах. Эта информация присутствует в запросах SIP BYE от Meta для завершения установленного вызова.
х-ва-мета-вацид
Необязательный параметр; Строка
Идентификатор вызова WhatsApp. Он присутствует в SIP INVITE-запросе от Meta для вызова, инициированного пользователем, и в SIP BYE-запросах от Meta для завершения установленного вызова.
Следующие пользовательские SIP-заголовки предназначены исключительно для вызовов, инициированных пользователем
Название заголовка Метаданные Описание
x-wa-meta-cta-payload
Необязательный параметр; Строка
Отображается, когда пользователь инициирует вызов с помощью кнопки вызова, содержащей заданные бизнес-логикой данные. Подробнее.
x-wa-meta-deeplink-payload
Необязательный параметр; Строка
Присутствует, когда пользователь инициирует звонок через ссылку для подключения, содержащую заданные бизнес-логикой данные. Подробнее.

Настройка или обновление параметров SIP для корпоративного телефонного номера

Используйте этот конечный пункт для обновления настроек вызовов для отдельного корпоративного телефонного номера.

Параметры конечной точки

Заполнитель Описание Пример значения
<PHONE_NUMBER_ID>
Целое число
Необходимый

Рабочий телефонный номер, для которого вы обновляете настройки API вызовов.
+12784358810

Параметры тела

Параметр Описание
статус
Нить
Необязательный

Включить или отключить сигнализацию SIP-вызовов для указанного корпоративного телефонного номера.
По умолчанию отключено.
Если статус , «ВКЛЮЧЕНО»этот номер телефона будет использовать исключительно SIP для сигнализации вызовов и не будет работать с Graph API. Веб-хуки не отправляются.
Если статус установлен на DISABLED, значения SIP- серверов не сбрасываются.
Если вы снова включите SIP для того же номера телефона, серверов вступят в силу ранее настроенные значения
В одном запросе можно настроить как серверы статуса, так и SIP-серверы
серверы
Нить
Необязательный

Конфигурация маршрутизации SIP-сервера.
Для каждого телефонного номера можно настроить только один SIP-сервер. Серверы представляют собой массив, что обеспечивает перспективность системы.
Ранее мы разрешали использование нескольких приложений, каждое со своим собственным SIP-сервером, но эта конфигурация не будет работать, поскольку Meta завершит вызов после получения BYE от любого из SIP-серверов.
Если в GET-запросе вы видите несколько SIP-серверов, это означает, что вы использовали POST API с разными токенами доступа, принадлежащими разным приложениям.
Соответствующее приложение извлекается из токена доступа, использованного для выполнения вызова API.
Чтобы удалить ранее настроенный SIP-сервер, передайте в это поле пустой массив. Если после очистки вы все еще видите оставшиеся серверы, они могут принадлежать разным приложениям, поэтому вам необходимо использовать соответствующие токены доступа для их удаления.
Обратите внимание, что при включенном статусе SIP должен существовать как минимум один SIP-сервер для любого приложения. Чтобы удалить серверы для всех приложений, используемых с корпоративным телефонным номером, статус SIP следует отключить.
имя хоста — (Строка) Обязательно
Имя хоста SIP-сервера.
Запросы должны использовать протокол TLS.
порт — (Строка) Обязательно
Порт на вашем SIP-сервере, который будет принимать запросы.
Запросы должны использовать протокол TLS.
Порт по умолчанию — 5061
request_uri_user_params — (String) Optional
Необязательное поле для передачи любых параметров, которые вы хотите включить в пользовательскую часть URI запроса, используемого в нашем SIP INVITE на ваш SIP-сервер.
Максимальный размер пары ключ/значение — 128 символов.
Примером использования могут служить группы транков (RFC 4904.)
sip:[email protected]tgrp=wacalltrunk-context=byoc.example.com
В этом примере используются два пользовательских параметра: tgrp и trunk-context.
В этом случае эффективная строка URI SIP-запроса будет выглядеть следующим образом : sip:+1234567890;tgrp=wacall;[email protected]

Ответ об успехе

Ответ с ошибкой

Получение настроек телефонных звонков (SIP)

Используйте эту конечную точку для проверки конфигурации параметров функции Calling API, включая значения SIP.
Этот конечный пункт может возвращать информацию о других настройках функций Cloud API.

Параметры конечной точки

Заполнитель Описание Пример значения
<PHONE_NUMBER_ID>
Целое число
Необходимый

Рабочий телефонный номер, для которого вы получаете настройки API вызовов.
+12784358810
Требуются разрешения приложения
whatsapp_business_management: Для обновления API для конечных бизнес-клиентов требуется расширенный доступ.

Ответ с ошибкой

Примеры SIP-запросов

Звонки, инициированные бизнесом (с использованием WebRTC)

Первоначальный SIP-запрос INVITE
INVITE sip:+12195550714@wa.meta.vc;transport=tls SIP/2.0Record-Route:<sip:+159.65.244.171:5061;transport=tls;lr;ftag=Kc9QZg4496maQ;nat=yes>Via: SIP/2.0/TLS 159.65.244.171:5061;received=2803:6081:798c:93f8:5f9b:bfe8:300:0;branch=z9hG4bK0da2.36614b8977461b486ceabc004c723476.0;i=617261Via: SIP/2.0/TLS 137.184.87.1:35181;rport=56533;received=137.184.87.1;branch=z9hG4bKQNa6meey5Dj2g
Max-Forwards:69From:<sip:+17125550259@meta-voip.example.com>;tag=Kc9QZg4496maQTo:<sip:+12195550714@wa.meta.vc>Call-ID: dc2c5b33-1b81-43ee-9213-afb56f4e56ba
CSeq:96743476 INVITE
Contact:<sip:mod_sofia@137.184.87.1:35181;transport=tls;swrad=137.184.87.1~56533~3>User-Agent:SignalWireAllow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, refer
Session-Expires:600;refresher=uac
Min-SE:90Content-Type: application/sdp
Content-Disposition: session
Content-Length:2427
X-Relay-Call-ID: dc2c5b33-1b81-43ee-9213-afb56f4e56ba
Remote-Party-ID:<sip:+17125550259@meta-voip.example.com>;party=calling;screen=yes;privacy=off
Content-Type: application/sdp
Content-Length:2427<<SDP опущено для краткости>>
Ответ 407 от Meta
SIP/2.0407проксиаутентификацияТребуетсяЧерез: SIP/2.0/TLS 159.65.244.171:506106081i/;получено=2803:798c:93f8:5f9b:bfe8::300:=;ветвь=z9hG4bK0da2.36614b8977461b486ceabc004c723476.0-617261;rport=Через: SIP2.0/=TLS 137.184.87.1:35181;56533;137.184.87.1получено;сервераbranch=z9hG4bKQNa6meey5Dj2g
Record-Route:<sip:+159.65.244.171:5061;transport=tls;lr;ftag=Kc9QZg4496maQ;nat=yes>Call-ID: dc2c5b33-1b81-43ee-9213-afb56f4e56ba
From:<sip:+17125550259@meta-voip.example.com>;tag=Kc9QZg4496maQTo:<sip:+12195550714@wa.meta.vc>;tag=z9hG4bK0da2.36614b8977461b486ceabc004c723476.0CSeq:96743476 INVITE
Proxy-Authenticate:Digest realm="wa.meta.vc",nonce="419ac2415577f8e1",opaque="440badfc05072367",algorithm=MD5,qop="auth"
Второй SIP INVITE отправлен с подтверждением авторизации
INVITE sip:+12195550714@wa.meta.vc;transport=tls SIP/2.0Record-Route:<sip:+159.65.244.171:5061;transport=tls;lr;ftag=Kc9QZg4496maQ;nat=yes>Via: SIP/2.0/TLS 159.65.244.171:5061;received=2803:6081:798c:93f8:5f9b:bfe8:300:0;branch=z9hG4bK1da2.ed8900012befced853927008d619d374.0;i=617261Via: SIP/2.0/TLS 137.184.87.1:35181;rport=56533;received=137.184.87.1;branch=z9hG4bKry3yp9y12p8mc
        Max-Forwards:69From:<sip:+17125550259@meta-voip.example.com>;tag=Kc9QZg4496maQTo:<sip:+12195550714@wa.meta.vc>Call-ID: dc2c5b33-1b81-43ee-9213-afb56f4e56ba
        CSeq:96743477 INVITE
        Contact:<sip:mod_sofia@137.184.87.1:35181;transport=tls;swrad=137.184.87.1~56533~3>User-Agent:SignalWireAllow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
        Supported: timer, path, replaces
        Allow-Events: talk, hold, conference, refer
        Proxy-Authorization:Digest username="17125550259", realm="wa.meta.vc", nonce="419ac2415577f8e1", uri="sip:[email protected];transport=tls", response="blah", algorithm=MD5, cnonce="/mVZtYFCEj65YQJCrBEAAg", opaque=440badfc05072367, qop=auth, nc=00000001Session-Expires:600;refresher=uac
        Min-SE:90Content-Type: application/sdp
        Content-Disposition: session
        Content-Length:2427
        X-Relay-Call-ID: dc2c5b33-1b81-43ee-9213->applicationafb56f4e56ba/;
        Remote-Party-ID:<sip:+17125550259@meta-voip.example.com;screen<<SDPContentpartyoff:=calling;>>=yes=privacyContentType
        -:-Length 2427sdpкраткости
        опущендля ""
Пример ответа об ошибке
SIP/2.0403 сервер wa.meta.vcизне,- INVITE соответствует ни настроенному для идентификатора номера телефона {ID}Via: SIP/2.0/TLS [2803:6080:c954:b533:ecfb:5cec:300:0]:39459;rport=39459;received=2803:6080:c954:b533:ecfb:5cec:300:0;branch=z9hG4bKPjf9f3d0bddb3dbe0c9b1e3b486f39784a;aliasVia: SIP/2.0/TLS 148.72.155.236:5061;rport=30498;received=2803:6080:d014:8e40:ddbb:4ed7:300:0;branch=z9hG4bKPjfd270ec8-7aaf-4a65-b290-4bef3b50b7b7;aliasRecord-Route:<sip:onevc-sip-proxy-dev.fbinfra.net:8191;transport=tls;lr>Record-Route:<sip:wa.meta.vc;transport=tls;lr>Call-ID:91578781-44f1-4268-9a7f-d7efec1abf72
        From:<sip:+17125550259@wa.meta.vc>;tag=3a63b370-a697-4a5a-82b4-e8105e23f176
        To:<sip:+12195550714@wa.meta.vc>;tag=e0d30a05-657b-47ec-a668-e05ca79f9f05
        CSeq:15659 INVITE
        Allow: INVITE, ACK, BYE, CANCEL, NOTIFY, OPTIONS X-FB-External-Domain: wa.meta.vc
        Warning:399 wa.meta.vc "SIP server wa.meta.vc from INVITE does not match any SIP server configured for phone number id {ID}"Content-Length:0Content-Length:0
Прощай, глоток
BYE sip:+5559800000693@wa.meta.vc;transport=tls;ob SIP/2.0Via: SIP/2.0/TLS 137.184.4.155:5061;received=2803:6080:c074:cac:10ed:4b05:400:0;i=8d2dc2Via: SIP/2.0/TLS 143.198.136.243:35181;rport=38087;received=143.198.136.243Route:<sip:wa.meta.vc;transport=tls;lr>Маршрут:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Максимальноеколичествопереадресаций:69​​От:<sip:+12145551869@meta-voip.example.com>;tag=NcKQ6mtDKSDQBКому:"5559800000693"<sip:+5559800000693@wa.meta.vc;tag=92a01092-ee78-4870-865f-bc176203a6bd
вызоваИдентификатор>: исходящий:wacid.HBgPMjAwNzU2OTA0ODY5OTY1FRIAEhggMjQ4QzUwOUQ1REQ0NDUwNENEQzRFMTgwRTNGQjAwNjEcGAsxMjE0NTU1MTg2ORUCAAACSeq:98734935 BYE
User-Agent:SignalWireAllow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Reason: Q.850;cause=16;текст="NORMAL_CLEARING"Content-Length:0
X-Relay-Call-ID: b72c0c65-e319-41b3-afb7-19ebcca05d38Content-Length:0
SIP INVITE (с SDES)
INVITE sip:+12195550714@wa.meta.vc;transport=tls SIP/2.0Record-Route:<sip:54.172.60.1:5061;transport=tls;lr;r2=on>Record-Route:<sip:54.172.60.1;lr;r2=on>CSeq:2 INVITE
From:"12145551869"<sip:+12145551869@meta-voip.example.com>;tag=28460006_c3356d0b_5cdada8c-cbf0-4369-b02d-cc97d3c36f2b
To:<sip:+12195550714@wa.meta.vc>Max-Forwards:66
P-Asserted-Identity:<sip:+12145551869@meta-voip.example.com>Min-SE:120Call-ID: f304a1d2cafb8139c1f9ff93a7733586@0.0.0.0Contact:"12145551869"<sip:+12145551869@172.25.10.217:5060;transport=udp>Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Via: SIP/2.0/TLS 54.172.60.1:5061;received=2803:6080:f934:8894:7eb5:24f9:300:0;branch=z9hG4bK1e5a.0da2ace9cc912d9e5f2595ca4acb9847.0Via: SIP/2.0/UDP 172.25.10.217:5060;rport=5060;branch=z9hG4bK5cdada8c-cbf0-4369-b02d-cc97d3c36f2b_c3356d0b_54-457463274351249162Supported: timer
User-Agent:TwilioGatewayProxy-Authorization:Digest username="12145551869", realm="wa.meta.vc", nonce="2a487cb01d4ed43b", uri="sip:[email protected];transport=tls", response="3f58df7af575b948625aeffd51bf9060", algorithm=MD5, cnonce="b338deb7f0e004e66353e26d34ad62b7", opaque="725a06fb2cd89a32", qop=auth, nc=00000002Content-Type: application/sdp X-Twilio-CallSid: CA93eac6be615da5e6836c7059e9555348
Content-Length:422Content-Type: application/sdp
Content-Length:422

v=0
o=root 11854148721185414872 IN 172.18.155.180IP4Twilio
s=GatewayMediaIN
c=IP4 168.86.138.232
t=00
m=audio 19534 RTP/SAVP 10708101
a=crypto:**************************************************************************
a=rtpmap:0 PCMU/8000
a=rtpmap:107 opus/48000/2
a=fmtp:107 useinbandfec=1
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:1010-16
a=ptime:20
a=maxptime:20
a=sendrecv
SIP OK (с SDES)
SIP/2.0200 OK
Via: SIP/2.0/TLS 54.172.60.1:506102803;2.0received=:6080:f934:8894:7eb5:24f9:300:;branch=z9hG4bK1e5a.0da2ace9cc912d9e5f2595ca4acb9847.0=UDPVia: SIP//172.25.10.217:5060;rport5060;branch=z9hG4bK5cdada8c-cbf0-4369-b02d-cc97d3c36f2b_c3356d0b_54-457463274351249162Record-Route:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Record-Route:<sip:wa.meta.vc;transport=tls;lr>Record-Route:<sip:54.172.60.1:5061;transport=tls;lr;r2=on>Record-Route:<sip:54.172.60.1;lr;r2=on>Call-ID: f304a1d2cafb8139c1f9ff93a7733586@0.0.0.0From:"12145551869"<sip:+12145551869@meta-voip.example.com>;tag=28460006_c3356d0b_5cdada8c-cbf0-4369-b02d-cc97d3c36f2b
To:<sip:+12195550714@wa.meta.vc>;tag=0d185053-2615-46c7-8ff2-250bda494cf1CSeq:2 INVITE
Allow: INVITE, ACK, BYE, CANCEL, NOTIFY, OPTIONS
Supported: timer X-FB-External-Domain: wa.meta.vc
Contact:<sip:+12195550714@wa.meta.vc;transport=tls;ob;X-FB-Sip-Smc-Tier=collaboration.sip_gateway.sip.prod>;isfocus
Content-Type: application/sdp
Content-Length:645

v=0
o=-17466572865952 IN IP4 127.0.0.1
s=-
t=00
a=group:BUNDLE audio a=msid-semantic: WMS 42da9643-cb50-4eca-95d3-ca41b3f1f4bb m=audio 3480 RTP/SAVP 107101
c=IN IP4 157.240.19.130
a=rtcp:9 IN IP4 0.0.0.0
a=mid:audio a=sendrecv a=msid:42da9643-cb50-4eca-95d3-ca41b3f1f4bb WhatsAppTrack1
a=rtcp-mux a=crypto:**************************************************************************
a=rtpmap:107 opus/48000/2
a=fmtp:107 maxaveragebitrate=20000;maxplaybackrate=16000;minptime=20;sprop-maxcapturerate=16000;useinbandfec=1
a=rtpmap:101 telephone-event/8000
a=maxptime:20
a=ptime:20
a=ssrc:1238967757 cname:WhatsAppAudioStream1

Звонки, инициированные пользователем (с использованием WebRTC)

ПРИГЛАШЕНИЕ НА ПОЛУЧЕНИЕ ПИВА
INVITE sip:+17015558857@meta-voip.example.com;transport=tls SIP/2.0Via: SIP/2.0/TLS [2803:6080:e888:51aa:d4a4:c5e0:300:0]:33819;rport=33819;received=2803:6080:e888:51aa:d4a4:c5e0:300:0;branch=z9hG4bKPjNvs.IZBnUa1W4l8oHPpk3SUMmcx3MMcE;aliasMax-Forwards:70From:"12195550714"<sip:+12195550714@wa.meta.vc>;tag=bbf1ad6e-79bb-4d9c-8a2c-094168a10beaTo:<sip:+17015558857@meta-voip.example.com>Contact:<sip:+12195550714@wa.meta.vc;transport=tls;ob>;isfocus
Call-ID: outgoing:wacid.HBgLMTIxOTU1NTA3MTQVAgASGCAzODg1NTE5NEU1NTBEMTc1RTFFQUY5NjNCQ0FCRkEzRhwYCzE3MDE1NTU4ODU3FQIAAA==CSeq:2824 INVITE
Route:<sip:onevc-sip-proxy-dev.fbinfra.net:8191;transport=tls;lr>
X-FB-External-Domain: wa.meta.vc
Allow: INVITE, ACK, BYE, CANCEL, NOTIFY, OPTIONS
User-Agent:FacebookSipGatewayContent-Type: application/sdp
Content-Length:1028

v=0
o=-17411131863672 IN IP4 127.0.0.1
s=-
t=00
a=group:BUNDLE audio a=msid-semantic: WMS 632a909f-1060-4369-96a4-7bd03e291ee7
a=ice-lite m=audio 3480 UDP/TLS/RTP/SAVPF 111126
c=IN IP4 57.144.135.35
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:17754698871 udp 212226022357.144.135.353480 хоста поколения 0 сеть-стоимость 50
a=кандидат:33557151111 udp 21222627832a03:2880:f343:131:face:b00c:0:699c3480 тип хоста поколения 0 сеть-стоимость 50
a=ice-ufrag:RmDDkfzkwbexPfbC
a=ice-pwd:
a=fingerprint:
a=setup:actpass=mid:audio=sendrecv=msid:632a909f-1060-4369-96a4-7bd03e291ee7a********************************************************************************************************************************aaтипWhatsAppTrack1
a=rtcp-mux a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc a=fmtp:111 maxaveragebitrate=20000;maxplaybackrate=16000;minptime=20;sprop-maxcapturerate=16000;useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=maxptime:20
a=ptime:20
a=ssrc:849255537 cname:WhatsAppAudioStream1
Прощай, глоток
BYE sip:+5559800000693@wa.meta.vc;transport=tls;ob SIP/2.0Via: SIP/2.0/TLS 137.184.4.155:5061;received=2803:6080:c074:cac:10ed:4b05:400:0;i=8d2dc2Via: SIP/2.0/TLS 143.198.136.243:35181;rport=38087;received=143.198.136.243Route:<sip:wa.meta.vc;transport=tls;lr>Маршрут:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Максимальноеколичествопереадресаций:69​​От:<sip:+12145551869@meta-voip.example.com>;tag=NcKQ6mtDKSDQBКому:"5559800000693"<sip:+5559800000693@wa.meta.vc;tag=92a01092-ee78-4870-865f-bc176203a6bd
вызоваИдентификатор>: исходящий:wacid.HBgPMjAwNzU2OTA0ODY5OTY1FRIAEhggMjQ4QzUwOUQ1REQ0NDUwNENEQzRFMTgwRTNGQjAwNjEcGAsxMjE0NTU1MTg2ORUCAAACSeq:98734935 BYE
User-Agent:SignalWireAllow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Reason: Q.850;cause=16;текст="NORMAL_CLEARING"Content-Length:0
X-Relay-Call-ID: b72c0c65-e319-41b3-afb7-19ebcca05d38Content-Length:0
SIP INVITE (с SDES)
INVITE sip:+12145551869@meta-voip.example.com;transport=tls SIP/2.0Via: SIP/2.0/TLS [2803:6080:f948:9597::]:57363;rport;branch=z9hG4bKPj3a9f2ad89e4a3df61408aa84f7d9a63e;aliasRecord-Route:<sip:wa.meta.vc;transport=tls;lr>Record-Route:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Via: SIP/2.0/TLS [2803:6080:f948:9597:d33c:e00:400:0]:5061;branch=z9hG4bKPj3a9f2ad89e4a3df61408aa84f7d9a63e
            Via: SIP/2.0/TLS [2803:6080:f948:9597:1ac5:cdf8:300:0]:63057;rport=63057;получено=2803:6080:f948:9597:1ac5:cdf8:300:0;ветвь=z9hG4bKPj-phic0sbns27DiP0OlrxRxgLtNg4mio7;псевдонимMax-Forwards:69От:"12195550714"<sip:+12195550714@wa.meta.vc>;тег=8a0f7e65-6e9e-4801-bf92-85c3ef2485d9Кому:<sip:+12145551869@meta-voip.example.com>Контакт:<sip:+12195550714@wa.meta.vc;transport=tls;ob>;isfocus
            Call-ID: outgoing:wacid.HBgLMTIxOTU1NTA3MTQVAgASGCA4QkY1MTJCQkNFNTgxMEVFRERFRTUzNTFERkE1MDU0MhwYCzEyMTQ1NTUxODY5FQIAAACSeq:31159 INVITE X-FB-External-Domain: wa.meta.vc
            Allow: INVITE, ACK, BYE, CANCEL, NOTIFY, OPTIONS
            User-Agent:FacebookSipGatewayContent-Type: application/sdp
            Content-Length:645

v=0
o=-17466599669802 IN IP4 127.0.0.1
s=-
t=00
a=group:BUNDLE audio a=msid-semantic: WMS 07092115-d151-427e-8722-26c70936b104
m=audio 3480 RTP/SAVP 111126
c=IN IP4 157.240.19.130
a=rtcp:9 IN IP4 0.0.0.0
a=mid:audio a=sendrecv a=msid:07092115-d151-427e-8722-26c70936b104WhatsAppTrack1
a=rtcp-mux a=crypto:**************************************************************************
a=rtpmap:111 opus/48000/2
a=fmtp:111 maxaveragebitrate=20000;maxplaybackrate=16000;minptime=20;sprop-maxcapturerate=16000;useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=maxptime:20
a=ptime:20
a=ssrc:1615009994 cname:WhatsAppAudioStream1
SIP OK (с SDES)
SIP/2.0200 OK
            CSeq:31159 INVITE
            Call-ID: outgoing:wacid.HBgLMTIxOTU1NTA3MTQVAgASGCA4QkY1MTJCQkNFNTgxMEVFRERFRTUzNTFERkE1MDU0MhwYCzEyMTQ1NTUxODY5FQIAAAFrom:"12195550714"<sip:+12195550714@wa.meta.vc>;tag=8a0f7e65-6e9e-4801-bf92-85c3ef2485d9To:<sip:+12145551869@meta-voip.example.com>;tag=66596922_c3356d0b_fee164be-566a-4679-a80d-5bfdf1d0aa9eVia: SIP/2.0/TLS 157.240.229.209:5061;rport=51830;received=69.171.251.115;branch=z9hG4bKPj3a9f2ad89e4a3df61408aa84f7d9a63e;aliasVia: SIP/2.0/TLS [2803:6080:f948:9597:d33c:e00:400:0]:5061;branch=z9hG4bKPj3a9f2ad89e4a3df61408aa84f7d9a63e
            Via: SIP/2.0/TLS [2803:6080:f948:9597:1ac5:cdf8:300:0]:63057;rport=63057;получено=2803:6080:f948:9597:1ac5:cdf8:300:0;ветвь=z9hG4bKPj-phic0sbns27DiP0OlrxRxgLtNg4mio7;псевдонимЗапись-Маршрут:<sip:54.172.60.1:5060;lr;r2=on;twnat=sip:69.171.251.115:51830>Запись-Маршрут:<sip:54.172.60.1:5061;транспорт=tls;lr;r2=on;twnat=sip:69.171.251.115:51830>Record-Route:<sip:wa.meta.vc;transport=tls;lr>Record-Route:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Server:TwilioContact:<sip:+172.25.16.223:5060>Разрешить: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
            Content-Type: application/sdp X-Twilio-CallSid:CAb0d74508fe5fcdf6ec70ea3cf4e9b90bContent-Length:446Content-Type: application/sdp
            Content-Length:446

v=0
o=root 13536703851353670385 IN 172.18.164.24IP4Twilio
s=GatewayMediaIN
c=IP4 168.86.138.176
t=00
m=audio 15822 RTP/SAVP 111126
a=rtpmap:111 opus/48000/2
a=fmtp:111 maxplaybackrate=16000;sprop-maxcapturerate=16000;maxaveragebitrate=20000;useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=fmtp:1260-16
a=crypto:*************************************************************************
a=ptime:20
a=maxptime:20
a=sendrecv

Звонки, инициированные пользователем, с дайджест-аутентификацией (с использованием медиафайлов SDES)

SIP-сервер Meta поддерживает дайджест-аутентификацию для вызовов, инициированных пользователем. Ваш SIP-сервер должен ответить запросом на дайджест-аутентификацию, и Meta повторно отправит SIP INVITE с ответом на запрос. Имя пользователя, используемое для дайджест-аутентификации, — это (нормализованный) рабочий номер телефона, а пароль генерируется Meta и может быть получен с помощью конечной точки getCall settings.
Первый запрос INVITE от Meta
INVITE sip:+12145551869@meta-voip.example.com;transport=tls SIP/2.0Via: SIP/2.0/TLS [2803:6080:f948:9597::]:47237;rport;branch=z9hG4bKPj1e6c665db16b3ecacf32cadb4497fe77;aliasRecord-Route:<sip:wa.meta.vc;transport=tls;lr>Record-Route:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Via: SIP/2.0/TLS [2803:6080:f948:9597:7253:922a:400:0]:5061;branch=z9hG4bKPj1e6c665db16b3ecacf32cadb4497fe77
Via: SIP/2.0/TLS [2803:6080:f8bc:9272:e488:9927:400:0]:58279;rport=58279;получено=2803:6080:f8bc:9272:e488:9927:400:0;ветвь=z9hG4bKPjr33j97A1mx5J8HWHEy2zIgqZYCCIb4Fb;псевдонимMax-Forwards:69От:"12195550714"<sip:+12195550714@wa.meta.vc>;тег=ece2da15-39e7-4983-ac65-e312f325d94a
Кому:<sip:+12145551869@meta-voip.example.com>Контакт:<sip:+12195550714@wa.meta.vc;transport=tls;ob>;isfocus
Call-ID: outgoing:wacid.HBgLMTIxOTU1NTA3MTQVAgASGCA2MUI2QUY0MDRCMTUyOTM4QkE5ODEwN0ZGQTAwODkxORwYCzEyMTQ1NTUxODY5FQIAFRoACSeq:9989 INVITE X-FB-External-Domain: wa.meta.vc
Allow: INVITE, ACK, BYE, CANCEL, NOTIFY, OPTIONS
User-Agent:FacebookSipGatewayContent-Type: application/sdp
Content-Length:643

v=0
o=-17507168679132 IN IP4 127.0.0.1
s=-
t=00
a=group:BUNDLE audio a=msid-semantic: WMS 4e37b099-8aef-45d0-be4f-1cde2ca5a37d
m=audio 3480 RTP/SAVP 111126
c=IN IP4 57.144.219.49
a=rtcp:9 IN IP4 0.0.0.0
a=mid:audio a=sendrecv a=msid:4e37b099-8aef-45d0-be4f-1cde2ca5a37dWhatsAppTrack1
a=rtcp-mux a=crypto:**************************************************************************
a=rtpmap:111 opus/48000/2
a=fmtp:111 maxaveragebitrate=20000;maxplaybackrate=16000;minptime=20;sprop-maxcapturerate=16000;useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=maxptime:20
a=ptime:20
a=ssrc:215879358 cname:WhatsAppAudioStream1
Ответ 407 от партнерского SIP-сервера
SIP/2.0407проксиаутентификация Требуется
CSeq:9989 INVITE
Call-ID: outgoing:wacid.HBgLMTIxOTU1NTA3MTQVAgASGCA2MUI2QUY0MDRCMTUyOTM4QkE5ODEwN0ZGQTAwODkxORwYCzEyMTQ1NTUxODY5FQIAFRoA-+12195550714@wa.meta.vcFrom:"<sip:12195550714=<:;;tag"ece2da15-39e7-4983>sip:->ac65e312f325d94aTo+12145551869@meta-voip.example.comtag=45065608_c3356d0b_16001fd8-76d2-45f0-bb35-e0441d6dc4a2
Via: SIP/2.0/TLS 31.13.66.215:5061;rport=62080;received=69.171.251.112;branch=z9hG4bKPj1e6c665db16b3ecacf32cadb4497fe77;aliasVia: SIP/2.0/TLS [2803:6080:f948:9597:7253:922a:400:0]:5061;branch=z9hG4bKPj1e6c665db16b3ecacf32cadb4497fe77
Via: SIP/2.0/TLS [2803:6080:f8bc:9272:e488:9927:400:0]:58279;rport=58279;получено=2803:6080:f8bc:9272:e488:9927:400:0;ветвь=z9hG4bKPjr33j97A1mx5J8HWHEy2zIgqZYCCIb4Fb;псевдонимКонтакт:<sip:+172.25.58.54:5060>Proxy-Authenticate:Digest realm="sip.twilio.com",nonce="eyOam_8-l5FVugxsyxFRjnlxq9vy1TjQIMB3mBfJuAvB5gV4",opaque="4a6a068be2ca2032a57912b9a2a6adf7",qop="auth"Content-Length:0Content-Length:0
Второе приглашение с авторизацией от Meta
INVITE sip:+12145551869@meta-voip.example.com;transport=tls SIP/2.0Via: SIP/2.0/TLS 31.13.66.215:5061;rport;branch=z9hG4bKPj16be0694dc6763eb66de5ec5f262db03;aliasRecord-Route:<sip:wa.meta.vc;transport=tls;lr>Record-Route:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Via: SIP/2.0/TLS [2803:6080:f948:9597:7253:922a:400:0]:5061;branch=z9hG4bKPj16be0694dc6763eb66de5ec5f262db03
Via: SIP/2.0/TLS [2803:6080:f8bc:9272:e488:9927:400:0]:58279;rport=58279;получено=2803:6080:f8bc:9272:e488:9927:400:0;ветвь=z9hG4bKPjYp9LqI0D8zJ.wly5wyMyVaH9fUwIU921;псевдонимMax-Forwards:69От:"12195550714"<sip:+12195550714@wa.meta.vc>;тег=ece2da15-39e7-4983-ac65-e312f325d94a
Кому:<sip:+12145551869@meta-voip.example.com>Контакт:<sip:+12195550714@wa.meta.vc;transport=tls;ob>;isfocus
Call-ID: outgoing:wacid.HBgLMTIxOTU1NTA3MTQVAgASGCA2MUI2QUY0MDRCMTUyOTM4QkE5ODEwN0ZGQTAwODkxORwYCzEyMTQ1NTUxODY5FQIAFRoACSeq:9990 INVITE X-FB-External-Domain: wa.meta.vc
Allow: INVITE, ACK, BYE, CANCEL, NOTIFY, OPTIONS
User-Agent:FacebookSipGatewayProxy-Authorization:Digest username="12145551869", realm="sip.twilio.com", nonce="eyOam_8-l5FVugxsyxFRjnlxq9vy1TjQIMB3mBfJuAvB5gV4", uri="sip:[email protected]", response="b28ed6b8bf1418e3c6eca05ef8c7a0b1", cnonce="TY2SszvYCKitUCBlVLpGiPKMQfmBbj", opaque="4a6a068be2ca2032a57912b9a2a6adf7"qop =auth,nc =00000001Content-Type:application /sdpContent
-Length:643v

=0o
=17507168679132IN IP4 127.0.0.1,s
=-
t=00
a=group:BUNDLE audio=msid-semantic: WMS 4e37b099-8aef-45d0-be4f-IP41cde2ca5a37d-
m=audio 3480 RTP/SAVP 111126
c=IP4 57.144.219.49.rtcp
a=:9IN 0.0 aIN0.0
a=mid:audio a=sendrecv a=msid:4e37b099-8aef-45d0-be4f-1cde2ca5a37dWhatsAppTrack1
a=rtcp-mux a=crypto:**************************************************************************
a=rtpmap:111 opus/48000/2
a=fmtp:111 maxaveragebitrate=20000;maxplaybackrate=16000;minptime=20;sprop-maxcapturerate=16000;useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=maxptime:20
a=ptime:20
a=ssrc:215879358 cname:WhatsAppAudioStream1
SIP-соединение подтверждено партнерским SIP-сервером
SIP/2.0200 OK
CSeq:9990 INVITE
Call-ID: outgoing:wacid.HBgLMTIxOTU1NTA3MTQVAgASGCA2MUI2QUY0MDRCMTUyOTM4QkE5ODEwN0ZGQTAwODkxORwYCzEyMTQ1NTUxODY5FQIAFRoAFrom:"12195550714"<sip:+12195550714@wa.meta.vc>;tag=ece2da15-39e7-4983-ac65-e312f325d94a
To:<sip:+12145551869@meta-voip.example.com>;tag=29360930_c3356d0b_4933dc58-f035-4597-b075-04b19e552329Via: SIP/2.0/TLS 31.13.66.215:5061;rport=62080;received=69.171.251.112;branch=z9hG4bKPj16be0694dc6763eb66de5ec5f262db03;aliasVia: SIP/2.0/TLS [2803:6080:f948:9597:7253:922a:400:0]:5061;branch=z9hG4bKPj16be0694dc6763eb66de5ec5f262db03
Via: SIP/2.0/TLS [2803:6080:f8bc:9272:e488:9927:400:0]:58279;rport=58279;получено=2803:6080:f8bc:9272:e488:9927:400:0;ветвь=z9hG4bKPjYp9LqI0D8zJ.wly5wyMyVaH9fUwIU921;псевдонимЗапись-Маршрут:<sip:54.172.60.0:5060;lr;r2=on;twnat=sip:69.171.251.112:62080>Запись-Маршрут:<sip:54.172.60.0:5061;транспорт=tls;lr;r2=on;twnat=sip:69.171.251.112:62080>Record-Route:<sip:wa.meta.vc;transport=tls;lr>Record-Route:<sip:onevc-sip-proxy.fbinfra.net:8191;transport=tls;lr>Contact:<sip:+172.25.43.84:5060>Разрешить: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Content-Type: application/sdp X-Twilio-CallSid:CAd4d6e59a356c4d1b0ee85323b2d9dab5Content-Length:444Content-Type: application/sdp
Content-Length:444

v=0
o=root 477560318477560318 IN 172.18.156.61IP4Twilio
s=GatewayMediaIN
c=IP4 168.86.137.174
t=00
m=audio 12710 RTP/SAVP 111126
a=rtpmap:111 opus/48000/2
a=fmtp:111 maxplaybackrate=16000;sprop-maxcapturerate=16000;maxaveragebitrate=20000;useinbandfec=1
a=rtpmap:126 telephone-event/8000
a=fmtp:1260-16
a=crypto:*************************************************************************
a=ptime:20
a=maxptime:20
a=sendrecv

Настройка SDES для обмена ключами SRTP

Протокол безопасного обмена ключами в реальном времени (SRTP) — это криптографический протокол, используемый для безопасного обмена ключами шифрования между двумя сторонами по незащищенному каналу связи.
Вы можете настроить обмен ключами SRTP одним из двух способов:
DTLS (по умолчанию) — стандартный для отрасли метод обмена ключами с шифрованием. Рекомендуется.SDES — В протокол SDP включен ключ в открытом текстовом виде, который передается по защищенному протоколу сигнализации, такому как SIP или Graph API. При использовании SDES отпадает необходимость в STUN, ICE и DTLS, что может помочь сократить время установления соединения.

Ответ с ошибкой

Получить протокол обмена ключами SRTP

Параметры конечной точки
Заполнитель Описание Пример значения
<PHONE_NUMBER_ID>
Целое число
Необходимый

Рабочий телефонный номер, для которого вы обновляете настройки API вызовов.
+12784358810
Параметры отклика
Параметр Описание Пример значения
srtp_key_exchange_protocol
Нить
Тип протокола обмена ключами SRTP, настроенного для запрашиваемого номера корпоративного телефона
Возможные значения: SDES и DTLS.
По умолчанию используется DTLS.
Примечание: Если это поле не было явно задано, оно не будет возвращено.
«SDES»
Ответ с ошибкой

IP-адреса

IP-адреса, используемые для настройки SIP, совпадают с адресами, указанными для веб-перехватчиков в разделе «IP-адреса веб-перехватчиков Cloud API».
Данная ссылка предназначена исключительно для указания IP-адресов, которые следует разрешить для SIP-трафика. При включении SIP веб-хуки, связанные с вызовами, не отправляются.

Поиск неисправностей

см. в Ошибки Дополнительные вопросы и ответы, касающиеся ошибки SIP — — для получения информации об ошибках и решениях, связанных с SIP.