On 29.11.2017 20:25, Ruslan N. Marchenko wrote:

On 29.11.2017 17:42, Jonas Wielicki wrote:

Daniel thinks that there are clients which can only do SI, but doesn’t recall
any off the top of his head.
Telepathy-gabble for one supports only SI. I'm currently looking if i can monkeypatch existing ft-manager to handle jingle but this is in early PoC phase as of yet.

I'm lazily progressing in this PoC and stumbled upon certain questionable behaviour. Before claiming it as a (gajim) bug I want some comments.

So we have a jingle session which is declined (no handler for this channel type registered hence auto-declined) by Telepathy. However gajim (which I use as a reference implementation for the test) not accepting the decline and lists transfer as hanging till 'unavailable' presence.

Session transcript:

Incoming session from gajim:
(telepathy-gabble:3286): wocky-DEBUG: _end_element_ns: Received stanza
* iq xmlns='jabber:client' type='set' lang='de' nsp0='jabber:server' id='d315b7de-c823-4c97-a636-17fd0d5f8692' to='[email protected]/Emush' from='[email protected]/gajim.UECVS9Q6'     * jingle xmlns='urn:xmpp:jingle:1' initiator='[email protected]/gajim.UECVS9Q6' sid='4ce275a0-f858-4607-8272-418430f14bb1' action='session-initiate'
        * content name='fileLREV64SKBODW8GAP' creator='initiator'
            * description xmlns='urn:xmpp:jingle:apps:file-transfer:3'
                * offer
                    * file
                        * name
                            "lpcx"
                        * date
                            "2015-01-24T22:37:13"
                        * size
                            "267"
                        * desc
            * transport xmlns='urn:xmpp:jingle:transports:ibb:1' block-size='4096' sid='9c9e19a0-a383-46c1-8fd1-f1d5407437bc'

Intermediate TP ack (TP stack implementation, could be ignored)
(telepathy-gabble:3286): wocky-DEBUG: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='set' to='[email protected]/gajim.UECVS9Q6' id='49488115057'     * jingle xmlns='urn:xmpp:jingle:1' initiator='[email protected]/gajim.UECVS9Q6' sid='4ce275a0-f858-4607-8272-418430f14bb1' action='session-info'
        * ringing xmlns='urn:xmpp:jingle:apps:rtp:info:1'

TP IQ ACK
(telepathy-gabble:3286): wocky-DEBUG: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='result' from='[email protected]/Emush' to='[email protected]/gajim.UECVS9Q6' id='d315b7de-c823-4c97-a636-17fd0d5f8692'

TP Jingle Content NACK - this is questionable, again generated by stack but is not violation (unused by FT:3 XEP)
(telepathy-gabble:3286): wocky-DEBUG: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='set' to='[email protected]/gajim.UECVS9Q6' id='55569122241'     * jingle xmlns='urn:xmpp:jingle:1' initiator='[email protected]/gajim.UECVS9Q6' sid='4ce275a0-f858-4607-8272-418430f14bb1' action='content-reject'
        * reason
            * decline
        * content name='fileLREV64SKBODW8GAP' senders='initiator' creator='initiator'

Gajim Jingle ringing IQ ACK
(telepathy-gabble:3286): wocky-DEBUG: _end_element_ns: Received stanza
* iq xmlns='jabber:client' type='result' lang='de' id='49488115057' nsp0='jabber:server' to='[email protected]/Emush' from='[email protected]/gajim.UECVS9Q6'

Gajim Jingle content-nack IQ ACK
(telepathy-gabble:3286): wocky-DEBUG: _end_element_ns: Received stanza
* iq xmlns='jabber:client' nsp0='jabber:server' id='55569122241' type='result' lang='de' to='[email protected]/Emush' from='[email protected]/gajim.UECVS9Q6'

TP Jingle Session NACK
(telepathy-gabble:3286): wocky-DEBUG: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='set' to='[email protected]/gajim.UECVS9Q6' id='283410939952'     * jingle xmlns='urn:xmpp:jingle:1' initiator='[email protected]/gajim.UECVS9Q6' sid='4ce275a0-f858-4607-8272-418430f14bb1' action='session-terminate'
        * reason
            * cancel

Now this is where I think it's getting stuck. TP deallocates Jingle session by this time, only leaving IQ ACK handler.
So when it gets following:
(telepathy-gabble:3286): wocky-DEBUG: _end_element_ns: Received stanza
* iq xmlns='jabber:client' type='set' lang='de' id='8fbd3391-2f2d-4ccb-af1f-4b363fdc7581' nsp0='jabber:server' to='[email protected]/Emush' from='[email protected]/gajim.UECVS9Q6'     * jingle xmlns='urn:xmpp:jingle:1' initiator='[email protected]/gajim.UECVS9Q6' sid='4ce275a0-f858-4607-8272-418430f14bb1' action='session-terminate'
        * reason
            * success
it replies with
(telepathy-gabble:3286): wocky-DEBUG: _write_node_tree: Serializing tree:
* iq xmlns='jabber:client' type='error' from='[email protected]/Emush' to='[email protected]/gajim.UECVS9Q6' id='8fbd3391-2f2d-4ccb-af1f-4b363fdc7581'     * jingle xmlns='urn:xmpp:jingle:1' initiator='[email protected]/gajim.UECVS9Q6' sid='4ce275a0-f858-4607-8272-418430f14bb1' action='session-terminate'
        * reason
            * success
    * error code='404' type='cancel'
        * item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'
        * unknown-session xmlns='urn:xmpp:jingle:errors:1'
        * text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'
            "session 4ce275a0-f858-4607-8272-418430f14bb1 is unknown"
which to me looks like in accordance with XEP-0166 Example 29 and its preceding abstract.

Finally Gajim ACKs Session-NACK IQ
(telepathy-gabble:3286): wocky-DEBUG: _end_element_ns: Received stanza
* iq xmlns='jabber:client' lang='de' type='result' nsp0='jabber:server' id='283410939952' to='[email protected]/Emush' from='[email protected]/gajim.UECVS9Q6'

however transfer session remains in waiting state.

Now the question is - what is proper behaviour here? XEP is explicit for this case: Quote: As soon as an entity sends a session-terminate action, it MUST consider the session to be in the ENDED state (even before receiving acknowledgement from the other party)

TP follows v032 which already has this statement (736bb5c <https://github.com/xsf/xeps/commit/736bb5c9e6db60dc82050245d914cad48ea9fe5c> on Oct 8, 2008) so is it a gajim bug or am I missing something here?

Regards,
Ruslan
_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: [email protected]
_______________________________________________

Reply via email to