Standards behind every number

The ITU-T and IETF standards sipnab measures against and the protocols it reads, one card per specification, with what sipnab does under each.

Quality metrics

sipnab reports the metrics VoIP engineers already work in — one card per ITU-T or IETF standard, listing the figures it grounds. Every figure comes from the packets, and a figure nothing measured stays absent rather than reading as zero.

ITU-T G.107

The E-model

  • MOS — E-model R = 93.2 − Id − Ie-eff from delay plus jitter, codec and loss, mapped to a score by Annex B and clamped to [1.0, 4.5].
  • Delay input — the one-way delay behind the score: your [media] one_way_delay_ms, else half an RTCP round trip, else 100 ms marked assumed.

ITU-T G.113

Codec impairment

  • MOS grounding — the equipment impairment Ie from Table I.1 for G.711 and G.729, Opus scored as G.711, or your own [media.codec_ie]. Any other codec gets a placeholder and mos_grounding: unpublished.

ITU-T G.114

Delay guidance

  • Round-trip verdict — warn and bad thresholds default to the 150 ms and 400 ms one-way guidance, doubled. A stream nobody reported a round trip for carries round_trip_note, never a pass.

RFC 3550

RTP and RTCP

  • Jitter — interarrival jitter per stream by the running estimator the specification defines, grounded only when the clock rate is known.
  • Packet loss — lost versus expected packets from sequence-number gaps, with the lost sequence numbers kept for the loss map.
  • Round-trip time — from a receiver report's LSR and DLSR fields (section 6.4.1), anchored on when sipnab saw the report, with round_trip_source saying so.
  • Reception reports — the far end's own fraction lost, cumulative loss and jitter from SR and RR blocks, kept under endpoint_reported and never fed to the MOS.

RFC 3611

RTCP Extended Reports

  • VoIP Metrics — the XR (PT=207) block of Section 4.7: the endpoint's own R-factor, MOS-LQ and MOS-CQ, loss and discard rates, burst and gap durations, round-trip and end-system delay, under endpoint_reported.
  • XR round trip — the reporting endpoint's own round trip, which wins over the SR echo when both exist: round_trip_source: xr_voip_metrics.

Standards implemented

The protocols and formats sipnab parses, decrypts, sends and receives, one card per specification with what sipnab does under it. Every title links to the document itself.

RFC 3261

Session Initiation Protocol

  • Parsing — every request and response, header by header.
  • Dialogs and timing — dialog tracking with post-dial delay, setup, ring and teardown times.
  • Lint — conformance findings against the specification, each pointing at the frame that earned it.

RFC 8866

Session Description Protocol

  • Offer/answer parsing — connection and media lines, codecs, direction attributes and a=crypto.
  • SDP timeline — every offer and answer in order, with hold, resume, codec changes and media anchor moves called out.

RFC 3551

RTP profile for audio and video

  • Codec identification — static payload types and clock rates from Tables 4 and 5, or the a=rtpmap an offer declared.

RFC 4733

Telephone events in RTP

  • Digit extraction — telephone-event payloads decoded, with the repeated end packets deduplicated.
  • Masking — every surface prints x for a digit until --dtmf-cleartext opts in, because the digits after answer are the PIN.

RFC 3711

Secure RTP

  • Decryption — AES-CM key derivation and payload decryption with keys from SDES a=crypto lines or a key file.
  • Authentication — stateful auth-tag verification, HMAC-SHA1 through the crypto backend.

RFC 8446

Transport Layer Security

  • TLS 1.3 — record decryption from the traffic secrets in an SSLKEYLOGFILE.
  • TLS 1.2 — from a CLIENT_RANDOM master secret plus the captured ServerHello (RFC 5246), and no plaintext sipnab cannot authenticate.

RFC 5389

Session Traversal Utilities for NAT

  • Binding diagnosis — Binding Requests and Responses parsed, and the request that never came back reported as the reason a phone offered its private address.

HEP v3

Homer Encapsulation Protocol

  • Send — HEP v3 to a Homer collector with -H.
  • Receive — versions 2 and 3 from every proxy that sends to it, with -L, behind a source allowlist and a rate limit.

draft-ietf-vcon-vcon-core

Virtualized Conversation

  • Export — one observed dialog as a vCon container: the parties, the SIP ladder, a diagnosis of the call and what the capture missed. Needs the vcon feature, which the gnu and macOS builds carry and the static musl builds do not.
  • Audio inline — RTP the run retained travels inside the container as a recording Dialog Object with a sha512 content hash.