Resumen

  • RFC 3407 permitió declarar formatos que un terminal podía y quería soportar sin comprometer la sesión con ninguno.
  • La capacidad declarada, la selección posterior y el resultado observado pertenecían a capas de evidencia distintas.

SDP había mezclado dos trabajos. Una línea m= describía la configuración de la sesión y, al mismo tiempo, se usaba para anunciar alternativas. Enumerar varios codecs podía comprometer al emisor a soportarlos de forma simultánea, aunque la memoria del DSP solo permitiera una combinación. La gramática no mostraba la escasez que existía detrás.

La solución de RFC 3407 fue intencionadamente limitada. Nuevos atributos formaban un conjunto de capacidades que receptores antiguos podían ignorar. Cada descripción decía qué formato era posible, pero no lo elegía. Para usarlo hacía falta un proceso externo, como oferta/respuesta.

El documento prohibió convertir posibilidad en pronóstico: recibir un formato no autorizaba a suponer que una negociación posterior con ese único formato tendría éxito. Los parámetros, recursos, combinaciones y preferencias del par seguían abiertos. El anuncio justificaba una tentativa.

El conjunto completo tenía una época. Un número de secuencia único cubría todas sus descripciones. Al llegar un conjunto nuevo, el anterior dejaba de ser válido. Como el receptor podía perder actualizaciones, los saltos del contador módulo 256 no eran causa de rechazo. La continuidad numérica no era una condición de verdad.

La ubicación limitaba el alcance. Una capacidad de sesión se aplicaba a corrientes del tipo indicado. Una capacidad colocada junto a una línea multimedia solo se aplicaba a esa línea, incluso si describía otro tipo. Si una declaración global nombraba un tipo sin corriente correspondiente, su aplicación quedaba indefinida salvo que hubiera una sola corriente. Mover la misma línea podía cambiar su significado.

Los parámetros también eran parte de la capacidad. cpar podía imponer una variante de formato o un valor de ancho de banda. Los límites mínimo y máximo expresaban un solo rango. Ignorarlos permitía que una etiqueta correcta condujera a una configuración no soportada.

Los números de capacidad eran referencias locales dentro del conjunto actual, no identidades globales. También toleraban huecos. Otro mecanismo podía usarlos como asas, pero RFC 3407 no definía cómo esa referencia obtenía consentimiento.

La renegociación añadía riesgos de seguridad. Si parámetros sensibles cambiaban sin autenticación, un atacante podía empujar a las partes hacia una alternativa inferior o provocar ciclos de negociación que agotaran el servicio. Declarado no significaba autorizado.

RFC 5939 llegó después con capacidades, configuraciones potenciales y reales, y procedimientos de oferta/respuesta. Recomendó su marco para nuevas implementaciones y permitió publicar ambas formas cuando existían pares heredados. No declaró obsoleto RFC 3407; además, sus procedimientos no utilizaban las descripciones antiguas. La compatibilidad de transporte no fusionaba los significados.

La enseñanza supera a SDP. Una matriz de compatibilidad prueba una posibilidad bajo condiciones declaradas. No prueba una elección bilateral ni la continuidad de recursos, y mucho menos que el flujo funcionó. Esas observaciones necesitan recibos separados.

Fuentes