{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-13T19:00:21.835Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC5389",
  "document": {
    "abstract": "Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with Network Address Translator (NAT) traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints, and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs, and does not require any special behavior from them. STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution. This is an important change from the previous version of this specification (RFC 3489), which presented STUN as a complete solution. This document obsoletes RFC 3489. [STANDARDS-TRACK]",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "authors": [
      {
        "name": "Jonathan Rosenberg"
      },
      {
        "name": "Rohan Mahy"
      },
      {
        "name": "Philip Matthews"
      },
      {
        "name": "Dan Wing"
      }
    ],
    "authors$meta": {
      "confidence": "high",
      "note": "Parsed from Datatracker doc page article:author (profile full names)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docId": "RFC5389",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docLabel": "IETF RFC 5389",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docNumber": "5389",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docTitle": "Session Traversal Utilities for NAT (STUN)",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "docType": "Standard",
    "docType$meta": {
      "confidence": "high",
      "note": "Mapped from Datatracker std_level or RFC status text",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "doi": "10.17487/RFC5389",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "href": "https://doi.org/10.17487/RFC5389",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "keywords": [
      "SIPs",
      "NAT",
      "STUN",
      "NAT Traversal",
      "ICE",
      "Firewalls",
      "TURN",
      "VoIP"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "SIPs",
        "NAT",
        "STUN",
        "Traversal",
        "ICE",
        "Firewalls",
        "TURN",
        "VoIP"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T19:00:21.835Z",
      "version": "extractDocs.js@commit:8ad844f404e0"
    },
    "pages": "51",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "publicationDate": "2008-10-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "references": {
      "bibliographic": [
        "RFC2616",
        "RFC3261",
        "RFC3264",
        "RFC3424",
        "RFC3489",
        "RFC4107",
        "RFC5226",
        "orphan/RFC5389/h:520611a6",
        "orphan/RFC5389/h:0b81d4d6",
        "orphan/RFC5389/h:2ad0179d",
        "orphan/RFC5389/h:459d4f3d",
        "orphan/RFC5389/h:342bcc27",
        "orphan/RFC5389/h:f42b6c4a"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=26 proseBlocks=34 skippedAnchorBlocks=29",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "normative": [
        "T-REC-V.42.2002",
        "RFC791",
        "RFC1122",
        "RFC1321",
        "RFC2104",
        "RFC2119",
        "RFC2460",
        "RFC2617",
        "RFC2782",
        "RFC2818",
        "RFC2988",
        "RFC3629",
        "RFC4013"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc5389/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
      "updated": "2026-10-13T18:22:21.496Z",
      "version": "extractDocs.js@commit:6d30695438dd"
    },
    "status": {
      "active": false,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "amendedBy": [
        "RFC7350",
        "RFC8553"
      ],
      "amendedBy$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "errataExist": true,
      "errataExist$meta": {
        "confidence": "high",
        "note": "Derived from presence of errata links on RFC/Datatracker pages",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "errataUrl": [
        "https://www.rfc-editor.org/errata/rfc5389",
        "https://www.rfc-editor.org/errata_search.php?rfc=5389"
      ],
      "errataUrl$meta": {
        "confidence": "high",
        "note": "Parsed from errata links on RFC/Datatracker pages",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "latestVersion": false,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "statusNote": "Proposed Standard",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "superseded": true,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "supersededBy": [
        "RFC8489"
      ],
      "supersededBy$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      },
      "supersedes": [
        "RFC3489"
      ],
      "supersedes$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5389/",
        "updated": "2026-10-13T18:22:21.496Z",
        "version": "extractDocs.js@commit:6d30695438dd"
      }
    }
  }
}