{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-20T21:15:31.154Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC7198",
  "document": {
    "abstract": "Packet loss is undesirable for real-time multimedia sessions but can occur due to a variety of reasons including unplanned network outages. In unicast transmissions, recovering from such an outage can be difficult depending on the outage duration, due to the potentially large number of missing packets. In multicast transmissions, recovery is even more challenging as many receivers could be impacted by the outage. For this challenge, one solution that does not incur unbounded delay is to duplicate the packets and send them in separate redundant streams, provided that the underlying network satisfies certain requirements. This document explains how Real-time Transport Protocol (RTP) streams can be duplicated without breaking RTP or RTP Control Protocol (RTCP) rules.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "authors": [
      {
        "name": "Ali C. Begen"
      },
      {
        "name": "Colin Perkins"
      }
    ],
    "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/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docId": "RFC7198",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docLabel": "IETF RFC 7198",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docNumber": "7198",
    "docNumber$meta": {
      "confidence": "high",
      "note": "From the RFC index entry (rfc-index.xml <doc-id>)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "docTitle": "Duplicating RTP Streams",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "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/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "doi": "10.17487/RFC7198",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "href": "https://doi.org/10.17487/RFC7198",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "keywords": [
      "RTP Duplication",
      "Redundancy"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "RTP Duplication",
        "live/live",
        "Redundancy"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T21:15:31.154Z",
      "version": "extractDocs.js@commit:2d729ed26f61"
    },
    "pages": "13",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "publicationDate": "2014-04-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "references": {
      "bibliographic": [
        "RFC2354",
        "RFC4588",
        "RFC6363",
        "RFC6792",
        "orphan/RFC7198/h:b664c612"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=10 proseBlocks=13 skippedAnchorBlocks=11",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
        "updated": "2026-10-20T17:30:45.642Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "normative": [
        "RFC3550",
        "RFC2119",
        "RFC7197",
        "RFC7104",
        "RFC3711"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
        "updated": "2026-10-20T17:30:45.642Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc7198/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
      "updated": "2026-10-20T17:30:45.642Z",
      "version": "extractDocs.js@commit:8277ba975118"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
        "updated": "2026-10-20T17:30:45.642Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "errataExist": false,
      "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/rfc7198/",
        "updated": "2026-10-20T17:30:45.642Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
        "updated": "2026-10-20T17:30:45.642Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "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/rfc7198/",
        "updated": "2026-10-20T17:30:45.642Z",
        "version": "extractDocs.js@commit:8277ba975118"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc7198/",
        "updated": "2026-10-20T17:30:45.642Z",
        "version": "extractDocs.js@commit:8277ba975118"
      }
    }
  }
}