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 markedassumed.
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 andmos_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_sourcesaying so. - Reception reports — the far end's own fraction lost, cumulative loss and jitter from SR and RR blocks, kept under
endpoint_reportedand 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=rtpmapan offer declared.
RFC 4733
Telephone events in RTP
- Digit extraction — telephone-event payloads decoded, with the repeated end packets deduplicated.
- Masking — every surface prints
xfor a digit until--dtmf-cleartextopts 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=cryptolines 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_RANDOMmaster 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
vconfeature, 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
recordingDialog Object with asha512content hash.