Protocolo XMPP, envío diferido y jabberes.org

Tagged:

Hola,

Haciendo algunas pruebas me ha surgido una duda sobre el protocolo que quizá aquí me podáis resolver, pues puede que la implementación del servidor jabberes.org tenga algo que ver...

Trataré de ser claro, pero disculpadme si no consigo (y preguntad más detalles si es necesario, claro ;) )

Veamos:
Por una parte, estoy conectado con una cuenta gmail (esto es indiferente, podría ser cualquier otra cuenta Jabber) usando Gaim. Por otra, me conecto con una cuenta jabberes.org usando un programa que estoy desarrollando y probando. En lo sucesivo, las llamaré cuenta A y cuenta B, respectivamente.

Aquí viene la secuencia de eventos:
-Me conecto a la cuenta A (esta estará conectado todo el rato; no insistiré en ello).
-Me conecto a la cuenta B y envío la «presence stanza» inicial con prioridad -16. (Aunque no es relevante ahora, también hago otras cosas necesarias para mis pruebas, como recibir el roster, y solicitar disco#info y disco#items a las cuentas de amigos conectados; todo funciona bien)
-Desde la cuenta A envío un mensaje a la cuenta B. Se puede ver que la cuenta B no recibe nada, lo cual es correcto debido a la prioridad negativa establecida por la cuenta B (RFC3921 11.1.4.1).
-Me desconecto de la cuenta B.
-Me vuelvo a conectar a la cuenta B, de nuevo estableciendo prioridad -16.

Y aquí es cuando llega la sorpresa: en cuanto la sesión se ha iniciado, me entra el antedicho mensaje, que estaba retenido en el servidor, a pesar de haber establecido prioridad negativa. Aunque el RFC3921 11.1.5.3 permite el envío diferido del mensaje, mi impresión antes de hacer la prueba es que la regla de la prioridad negativa debería ser más importante y hacer que se impidiese el envío diferido. De hecho, es que si un cliente tiene que re-conectar debido a un fallo de red, esto hace que el mensaje "se le cuele".

En fin, que no tengo claro si es que alguna de las extensiones del protocolo describe esto más en detalle y yo me lo he perdido, si es un fallo de implementación del servidor jabberes.org, o si hay un vacío normativo al respecto y cada cual hace lo que quiere (como viene a sugerir el propio RFC3921 11.1.5.3). ¿Me echáis una mano?

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

De acuerdo, parece un error

Yo también entiendo que si el cliente conecta con prioridad negativa, no deberían enviársele los mensajes diferidos. Se supone que el cliente conecta con prioridad negativa porque no es capaz de entenderlos, quizá no haya ningun usuario atendiendo el cliente.

He enviado el problema y un parche que lo arregla. La mala noticia es que aunque acepten el parche, la próxima versión saldrá dentro de varios meses, y en jabberes no creo que lo actualizemos antes.

Bien, entendemos lo mismo

Bien, entendemos lo mismo entonces. ;)

Mil gracias por contestar y por enviar el informe. Y no me es tan importante que no se arregle de inmediato; de momento, hago que si se recibe un mensaje (que el programa, efectivamente, no está preparado para presentar al usuario --ni es su intención--) se conteste con un error de tipo "feature-not-implemented". No es muy elegante, pero dada la situación, es lo que hay... ;)

Gracias de nuevo.