XEP-0166: Relax transport element requirement
It's possible a responder may want to replace transport before session/content accept. In this case it's necessary to send initial transport offer twice (with replace and with accept) which basically looks wrong. Instead it's better to omit transport element when it was already negotiated.
This change probably needs ns bump.
hey @Ri0n
I don't think this is the correct way to do it. session-initiate is always the first message in a jingle session and the only thing that can create a session id, see https://xmpp.org/extensions/xep-0166.html#concepts
This means you can't do a transport-replace earlier as you don't have a session-id.
Now transport-replace is difficult... XEP-0260 uses this in odd ways to fallback from s5b to ibb. There is no negotiation of the transport to use (even though session-accept says there can be multiple transports but the session-initiate can only contain a single one?!) so this is probably done via disco/caps.
I do think there is something to fix here.
(maybe we should move to standards@ to keep discussions in one place)
@fippo I say nothing about session-initiate. It's about session-accept or content-accept (when session was already accepted before) and xep-0166 says we can do a lot of negotiation before session-accept. So nothing wrong is here. We can do transport-replace before session-accept.
Regarding multiple transports in session-initiate/accept there is a way to add multiple content elements with same name but different transports. Basically I already implemented a support for this in Psi (for incoming requests). But none of XEPs says it's a valid case explicitly.
a standards@ thread is already started https://mail.jabber.org/pipermail/standards/2019-June/036204.html
I say nothing about session-initiate
Ah, the spec is written in confusing ways. The section where you made the first change and that specifies what elements are contained in the Initiation and talks about the session-initiate but in a way that makes it sound a bit like its about the content element in general. session-initiate shall always have a transport element
Moving to standards@ for the rest
Oh. maybe I did the change a little bit blindly. I'll review/change it. Yep let's keep discussing at standards@
It was mentioned already, but technical discussion must not take place in the issue tracker, but on the mailing list.
~~I’ll close this for now, please re-open once list discussion has settled.~~
Council has rejected this modification.