Resumen

  • RFC 3966 permitió que dos URI tel con distinto texto fueran equivalentes: ignoró separadores visuales, mayúsculas y orden de parámetros, pero mantuvo la forma local o global, el contexto y todos los nombres de parámetro.
  • La equivalencia era una decisión sobre un recurso numerado, no evidencia de la misma persona, terminal físico, asignación vigente, ruta, consentimiento, respuesta humana o servicio.

Los números telefónicos nacieron para ser pronunciados, copiados y recordados. Por eso aceptan agrupaciones y signos que ayudan al ojo. Una base de datos, en cambio, compara cadenas. RFC 3966, de diciembre de 2004, estableció una forma de reconciliar ambas realidades para el esquema tel.

El URI nombraba recursos identificados por números. No describía los pasos locales para alcanzarlos y no señalaba necesariamente un dispositivo físico. Marcar un dígito de salida, elegir prefijo internacional, generar tonos o enviar datos después de la conexión correspondía al software y a la configuración local.

La ruptura con RFC 2806 fue deliberada: desaparecieron selección de carrier, pausas, cadenas post-dial y formas específicas de fax y módem. RFC 3601 pertenece a la historia de secuencias que ordenan acciones. RFC 3966 quería un nombre canónico de recurso.

No toda diferencia sobrevivía a la comparación

Dos URI globales, o dos locales, podían resultar iguales después de quitar , ., ( y ) de los dígitos. La comparación no distinguía mayúsculas. Los parámetros se emparejaban por nombre sin importar el orden en que aparecían.

El olvido era selectivo. Una forma local y otra global no se declaraban iguales sólo porque un plan privado pudiera dirigirlas al mismo destino. Si un parámetro existía en una cadena y faltaba en la otra, eran diferentes. phone-context, la extensión y los parámetros obligatorios conservaban su peso.

Una aplicación que guarda únicamente la cadena original divide un recurso por diferencias visuales. Otra que elimina contexto y parámetros fusiona recursos distintos. El algoritmo correcto necesita mantener los dos riesgos a la vista.

La sintaxis recomendaba además un orden de emisión: isub o ext primero, luego phone-context y, al final, otros parámetros en orden lexicográfico. Eso facilitaba sistemas que hacían comparación textual, incluidos contextos relacionados con RFC 3261. Sin embargo, la regla semántica seguía comparando parámetros por nombre. Canonizar no sustituía analizar.

RFC 3986 proporcionó después el marco general de URI. Para conservar evidencia, conviene almacenar los octetos recibidos, el árbol analizado y la representación canónica, sin sobrescribir la primera con la tercera.

El contexto completaba el nombre, no construía la ruta

RFC 3966 prefería números globales. Un código de emergencia, una extensión privada u otro número de servicio podía requerir forma local. En ese caso phone-context era obligatorio y se expresaba como dominio bajo control administrativo o como primeros dígitos de un número global válido.

El contexto y los dígitos locales debían formar juntos un identificador globalmente único. Pero el contexto no era un prefijo para concatenar. 911 bajo +1 no se convertía en +1-911. Un dominio de contexto tampoco tenía que resolver en DNS; su función era delimitar un espacio administrado.

Por ello, la igualdad de dos URI locales no demostraba una gateway, un plan compatible ni una asignación viva. La propia especificación señalaba que incluso un número global podía estar desactualizado o no ser alcanzable desde determinada ubicación.

Quien sólo identificaba podía tratar el contexto como opaco. Quien quería llamar debía comprenderlo y operar dentro de él. Identificación y acción partían de la misma cadena, pero exigían comprobantes distintos.

Entender los parámetros seguía siendo requisito

ext indicaba una estación detrás de un PBX no ISDN; isub una subdirección ISDN. No podían coexistir. RFC 4715 refinó la codificación de isub. RFC 4694, RFC 4759 y RFC 4904 añadieron parámetros de portabilidad, ENUM y grupos troncales.

Los parámetros futuros obligatorios comenzaban por m-. Si el receptor no comprendía uno, no podía utilizar el URI. Los opcionales sí podían ignorarse. Dos URI con el mismo m- desconocido podían alinearse estructuralmente y seguir siendo inoperables para ese programa. Igualdad y capacidad eran pruebas separadas.

RFC 5341 organizó posteriormente el registro, hoy visible en IANA tel URI Parameters. El registro coordina nombres y referencias, no la verdad actual de una instancia ni el soporte de un receptor.

Un número podía terminar en varios lugares humanos

Durante la configuración de una llamada, el mismo URI podía traducirse en varios URI. La señalización decidía servicios y rutas. Un punto podía tener varios identificadores, y un número no equivalía necesariamente a una persona o a un único aparato.

RFC 6116 describió después la resolución ENUM desde números E.164 a servicios. El resultado depende de registros, tiempo y política. No transforma el algoritmo de igualdad en prueba sobre quién contestará.

Las consideraciones de seguridad exigían consentimiento explícito antes de que un cliente Web iniciara una llamada. Podía haber costes, ocupación de línea o revelación del número llamante. Un enlace podía mostrar un número y apuntar a otro. Por tanto, comparar dos objetivos no decía si la presentación fue honesta ni si el usuario autorizó la acción.

El registro del RFC Editor, la búsqueda de erratas y el Datatracker fijan el historial oficial. No aportan medidas de despliegue ni de llamadas.

Un expediente operativo conserva texto original, forma local o global, dígitos antes y después de quitar separadores, cambios de caja, conjunto y orden de parámetros, forma canónica, tipo y dueño del contexto, ext o isub, reconocimiento de m-, versión del parser, regla y resultado. Después añade asignación, conversión al plan de marcado, objetivo de señalización, ruta, consentimiento, respuesta y servicio.

RFC 3966 permitió olvidar el aspecto de una cadena sin olvidar su estructura. La responsabilidad moderna consiste en no atribuir a esa estructura la identidad y los resultados que nunca observó.

Fuentes