FreeSIP-SIP/VoIP Hub


OpenSource, SIP Projects

Gossipper: A Go Rewrite of SIPp for Load Testing

By admin  |  16 May, 2026  |  Comments Off on Gossipper: A Go Rewrite of SIPp for Load Testing


Gossipper is a modern software repository that provides a Go-based rewrite of the SIPp tool, specifically designed for generating high-performance SIP signaling loads. The project improves upon the original engine by offering a cleaner architecture and better support for XML scenario compatibility, including advanced actions like RTP streaming and PCAP audio replay. Users can interact with the system through a full-screen terminal user interface, a line-oriented command shell, or a web-based control panel powered by an integrated HTTP API. Its current scope includes robust support for UDP, TCP, and TLS transports, alongside detailed JSON and CSV statistics for tracking call success and latency. Additionally, the tool features structured event logging and integration with Homer over HEP3 to facilitate deep monitoring of network traffic. The repository is licensed under AGPL-3.0 and includes extensive documentation to help developers implement complex 3PCC flows and load-testing profiles.

Gossipper is a behavior-oriented rewrite of SIPp in Go, rather than a literal source port, and it introduces several core architectural and functional differences designed for modern load-testing environments.

The primary differences between Gossipper and the original SIPp include:

1. Engine Architecture and Language

  • Go-Based: Built in Go, it focuses on a cleaner engine architecture compared to the original C++ codebase.
  • Subcommands: Unlike SIPp’s single-mode execution, Gossipper uses subcommands like sipp (for SIPp-style flags), server (for management), and tui or cli for interactive modes.

2. User Interface and Management

  • Interactive TUI/CLI: Includes a full-screen TUI launcher and a line-oriented interactive shell (gossipper cli) for managing tests.
  • Web Control UI & HTTP API: Features an embedded web-based Control UI and a JSON HTTP API (/api/v1/) for remote management, health checks, and live WebSocket stats.
  • Server Mode: The gossipper server subcommand allows for long-running management of SIP UAS and clients via JSON configuration profiles.

3. Observability and Logging

  • OpenTelemetry (OTel) Support: Gossipper includes a non-blocking structured event logger that can export data to OpenTelemetry collectors via OTLP/gRPC or OTLP/HTTP.
  • Homer Integration: Built-in support for mirroring SIP signaling to Homer over HEP3.
  • Enhanced Statistics: JSON summary exports provide more granular data than SIPp, including latency repartition buckets and standard deviation for call lengths and RTD timers.

4. Transports and 3PCC

  • Multi-IP Transports: Introduces the ui transport, which allows source IP rotation per call selected from a CSV file.
  • Distributed 3PCC: Command exchange (sendCmd/recvCmd) can occur across multiple Gossipper instances using a TCP peer map, in addition to internal process handoffs.
  • TLS Management: Provides specific server-side and client-side TLS aliases (e.g., sl, cl, cln) and allows for easier certificate management via CLI flags.

5. Media Handling

  • Modern Media Stack: Uses the pion library for RTP/RTCP, supporting audio PCAP replay, RFC 2833 DTMF generation, and pragmatic video/image PCAP replay.
  • SRTP Support: Includes native support for SRTP and DTLS-SRTP for scenario media.

6. XML Compatibility

  • Incremental Parity: Gossipper does not have 100% parity with SIPp’s XML scenarios; compatibility is being added incrementally.
  • Expanded Actions: It adds several new XML actions and keywords not found in standard SIPp, such as urlencode, urldecode, verifyauth, and specific OTLP logging attributes.

Source:

https://github.com/sipcapture/gossipper/tree/main

admin
admin