boundless-author-7811
04/09/2026, 11:41 AMtall-airline-16756
04/09/2026, 11:43 AMtall-airline-16756
04/09/2026, 11:43 AMsudo tcpdump -i any -w sip_capture.pcap port 5060 or port 5061 or portrange 10000-20000
• Adjust the RTP port range to match your server’s configured media ports.
1. Inspect with Wireshark / tshark
◦ Open the .pcap in Wireshark and use filters like sip, rtp, sdp to isolate traffic.
◦ tshark command-line filters: tshark -r sip_capture.pcap -Y sip or -Y rtp.
1. What to look for
◦ SIP: INVITE/200/BYE messages, SDP offers/answers (media codecs, IP/port), Via/Contact headers.
◦ RTP: SSRC, sequence numbers, timestamps, payload types, packet loss/jitter.
◦ TLS: if SIP runs over TLS, capture will show encrypted payloads; you’ll still see IP/port and TLS handshake metadata.
1. Self-hosting considerations
◦ Ensure packet capture runs on the interface actually carrying SIP/RTP (or use a mirrored port).
◦ Ensure firewall/NAT rules and media port forwarding match your LiveKit/SIP configuration.
◦ If SIP service is in a container, capture on the host interface or inside the container network namespace.
1. Verification steps after capture
◦ Confirm SIP handshake and SDP negotiation succeeded.
◦ Confirm RTP streams are sent/received and check sequence/timestamp continuity.
◦ Check for NAT/ICE issues if media IPs in SDP don’t match expected addresses.
If you want, tell me:
• which ports/range your SIP/media are configured to use,
• whether SIP uses TLS,
• and whether the server is bare-metal, VM, or container — and I’ll give the exact tcpdump/tshark commands and filters tailored to your setup. Sources: SIP overview | LiveKit docs | Agents telephony integration | LiveKit Documentation | Understanding TLS in SIP | LiveKit, with interactive elementsboundless-author-7811
04/09/2026, 12:05 PMtall-airline-16756
04/09/2026, 12:05 PMprometheus.yml) add the LiveKit endpoint:
scrape_configs:
- job_name: livekit
static_configs:
- targets: ['<LIVEKIT_HOST>:<METRICS_PORT>']
• Replace <LIVEKIT_HOST> and <METRICS_PORT> with your server host and the metrics port.
1. Deployment notes
◦ If self-hosted on a VM/container: capture metrics from the host or container network interface where LiveKit binds.
◦ If running in Kubernetes: add a Service targeting LiveKit pods and configure Prometheus to scrape the Service (or use a PodMonitor/ServiceMonitor if using Prometheus Operator).
◦ If metrics endpoint is behind auth or TLS, configure Prometheus scrape options (basic_auth, tls_config) accordingly.
1. Verify and build dashboards
◦ After scraping starts, check Prometheus for LiveKit metrics (look for names related to sessions, participants, bitrate, packet_loss, frames, etc.).
◦ Use Grafana to create dashboards; you can graph bitrate, packet loss, participant counts, and connection quality over time.
If you’d like, tell me:
• your deployment type (bare-metal/VM, Docker Compose, or Kubernetes),
• LiveKit version and the metrics port you’re using,
and I’ll provide the exact Prometheus scrape config and a sample Kubernetes Service/ServiceMonitor or Docker Compose snippet.
Sources: server-sdk-go | livekit/livekit_composite | DeepWiki | Announcing LiveKit Cloud | LiveKit | Announcing LiveKit Cloud | LiveKit | Say hello to improved Cloud analytics | LiveKit | Server-side | livekit/livekit_composite | DeepWiki, with interactive elements