few-parrot-72708
04/15/2026, 11:01 AMtall-airline-16756
04/15/2026, 11:01 AMtall-airline-16756
04/15/2026, 11:02 AMopenssl s_client -connect <sip-host>:5061 -servername <sip-host>
Note any handshake errors, certificate chain issues, or hostname mismatch.
• Ensure the certificate’s CN/SAN matches the SIP domain you configured and that intermediate certs are sent.
1. SNI and hostname used by LiveKit
◦ Verify LiveKit is sending the correct SNI/hostname for the SIP provider. If SNI is wrong, the provider may drop the TLS connection and you won’t see INVITEs.
1. Cipher/TLS version compatibility
◦ Confirm the SIP gateway accepts TLS 1.2+ and common cipher suites (ECDHE+GCM). If the gateway requires legacy ciphers, the handshake can fail silently.
1. Firewall / port / routing
◦ Ensure outbound TCP to the provider’s TLS port (e.g., 5061) is allowed from the LiveKit host/network.
◦ Check for NAT or firewall that might block or reset TLS sessions.
1. Provider-side requirements (WhatsApp SIP gateway)
◦ Confirm with the WhatsApp SIP gateway what they expect for TLS (port, SNI name, mutual TLS/client certs required).
◦ If the gateway requires mutual TLS (client cert), that must be configured on the LiveKit side.
1. Logs to collect
◦ From LiveKit: SIP signaling logs for the trunk when TLS is selected (connection attempts, TLS errors).
◦ From the SIP provider: any connection or TLS rejection logs.
◦ From openssl s_client output: full handshake details.
1. Auto/UDP INVITE arrives but call doesn’t proceed — likely media or signaling mismatch
◦ Check SIP responses to the INVITE (180/183/200/4xx/5xx). Which response does the provider return?
◦ Verify SDP compatibility (codecs, SRTP vs RTP). WhatsApp often requires secure media — if the provider expects SRTP and LiveKit sends RTP (or vice versa), the call won’t progress.
◦ Confirm NAT traversal and RTP ports are open; ensure LiveKit’s media IP/port seen by the provider is reachable.
Next step: please share
• the openssl s_client output (redact certs if needed),
• snippets of LiveKit SIP logs showing the TLS attempt and/or the UDP INVITE + provider responses,
• the SIP provider’s expected TLS details (port, SNI, mutual TLS requirement).
With those I can pinpoint whether it’s a TLS handshake issue, SNI/hostname mismatch, firewall, or an SDP/media mismatch and provide exact config changes.
Sources: Understanding TLS in SIP | LiveKit | Agents telephony integration | LiveKit Documentation, with interactive elementsfew-parrot-72708
04/15/2026, 2:15 PMtall-airline-16756
04/15/2026, 2:16 PMopenssl s_client -connect wa.meta.vc:5061 -servername wa.meta.vc
• Paste the handshake output (or any errors). If it times out or shows cert/name errors, that explains no INVITE over TLS.
2) Check whether Meta requires SNI or a specific Host header
• The INVITE’s Request-URI is correct, but the TLS SNI must match the certificate name Meta expects. If openssl shows a different cert, note the CN/SAN.
3) Confirm whether Meta requires mutual TLS (client certificate)
• If they require client certs, the TLS handshake will be rejected silently—confirm with the gateway spec and check openssl for "verify return code" or "handshake failure".
4) Verify LiveKit’s outbound transport behavior
• When transport=TLS, ensure LiveKit is actually attempting TCP/TLS to port 5061 (not still sending UDP). Share LiveKit SIP/log lines for the TLS attempt (connection attempt, TLS errors).
5) For the UDP/Auto case (INVITE arrives but no progress)
• Share the SIP response codes (if any). If no response, Meta may require TLS-only signaling.
• Check SDP: your SDP shows RTP/AVP PCMA/PCMU (no SRTP). Meta/WhatsApp often requires secure media (SRTP). If they expect SDES or DTLS-SRTP and you send plain RTP, they’ll drop the call.
• Confirm codecs and whether media must be encrypted; if required, enable SRTP (DTLS-SRTP) and ensure correct SDP format.
6) Firewall / NAT
• Ensure outbound TCP 5061 and RTP ranges are allowed and not intercepted by a proxy that strips SNI or TLS.
• Verify the Contact and SDP IP (13.235.180.195) is reachable from Meta for RTP.
What to share back:
• openssl s_client output for wa.meta.vc:5061
• LiveKit SIP/TLS attempt log lines (TLS connect errors)
• Any SIP responses from Meta after the UDP INVITE (4xx/5xx/none)
• Confirmation if Meta requires mutual TLS or encrypted media
Send those and I’ll pinpoint whether this is a TLS handshake/SNI/client-cert issue or an SDP/media mismatch and give exact config changes.
, with interactive elementsfew-parrot-72708
04/15/2026, 2:17 PMtall-airline-16756
04/15/2026, 2:17 PMsip:wa.meta.vc:5061;transport=tls (not sips:).
• Share the LiveKit SIP log lines that show the connection attempt when transport=TLS (connection open, TLS handshake, or TCP connect error).
2) Verify the actual packet flow from LiveKit when TLS is selected
• Capture a packet trace on the LiveKit host while initiating an outbound call (tcpdump filter: host wa.meta.vc and (tcp port 5061 or udp port 5061)).
• Confirm you see a TCP SYN and TLS handshake from the LiveKit IP. If you only see UDP, LiveKit is still sending UDP.
3) Check SNI/Host header used by LiveKit
• Your openssl showed certificate for *.meta.vc — good. Ensure LiveKit sends SNI wa.meta.vc (or the same host you used with openssl). If you can’t confirm, paste the LiveKit TLS log or the tcpdump TLS Client Hello SNI (I can show how to extract it if needed).
4) If TLS connect is fine but Meta still doesn’t reply to INVITE over TLS
• Compare the INVITE Request-URI and From/To formatting when using TLS vs UDP — some gateways require specific From/Contact formatting (E.164, no extra params). Paste both INVITE headers for comparison.
• Confirm you’re sending the INVITE to port 5061 (your trace shows UDP->5061; for TLS it must be TCP->5061).
5) UDP INVITE arrives but call doesn’t progress — likely media/SDP expectation
• Your SDP shows plain RTP (PCMA/PCMU). Meta/WhatsApp commonly requires secure media (DTLS-SRTP or SDES). Confirm the provider’s media requirement.
• If Meta requires DTLS-SRTP, enable DTLS on the LiveKit trunk and ensure the INVITE includes `a=setup`/DTLS fingerprint lines. Share the SDP you send over UDP and what (if any) response you get.
6) Firewall/NAT & RTP reachability
• Ensure LiveKit’s Contact/SDP IP (13.235.180.195) and RTP port 52918 are reachable from Meta. Run a basic UDP echo from Meta side is not possible, but confirm your NAT/firewall allows inbound RTP from 163.70.144.192/wa.meta.vc range (ask provider for their IPs if unknown).
What to share next (most useful):
• LiveKit SIP logs for the TLS attempt (connection/TLS handshake and subsequent INVITE if any).
• tcpdump output showing whether TCP SYN/TLS ClientHello are sent to wa.meta.vc:5061.
• The full INVITE headers and SDP when transport=TLS (if any), and the UDP INVITE + any SIP responses you saw.
• Confirmation from Meta whether they require secure media (DTLS/SDES) or any specific SIP header formatting.
Send those and I’ll pinpoint whether this is a LiveKit config (still sending UDP), SNI/host mismatch, header/URI formatting issue, or an SDP/media encryption mismatch and give exact config changes.
, with interactive elements