Ticket #144 (new enhancement)

Opened 7 years ago

Last modified 16 months ago

Obby/Gobby should use the Jabber protocol for network communication

Reported by: anonymous Owned by: armin
Priority: normal Milestone:
Component: libobby Version:
Severity: normal Keywords:
Cc: flo@… Launchpad Bug:

Description

I think, that Obby library and Gobby should use (optionally?) the Jabber protocol and Jabber accounts for communication between the parties editing the document. In contemporary network environments it is very difficult to establish the p2p communication needed by Gobby, due to firewall restrictions.

Change History

Changed 7 years ago by phil

Would the requirement of a useable GroupChat?/MUC-Transport be acceptable?

Changed 7 years ago by stellaris@…

I second the proposal of using jabber. :)

In my opinion, there's one drawback though: you need to rely on an available remote server and/or functioning server2server communication if people are on different servers.

Changed 7 years ago by phil

People should not use servers with broken s2s support. We never expirienced problems of that sort, but well, we maintain your own jabberd instance.

In a certain way you already rely on another remote server to exchange the IP (except if you use the telephone to do that). You even rely on working DNS servers everytime to use the network.

Sorry, but such seconds are really useless. We need people who actually code on features. But in this case it is unnecessary because we will rewrite obby completely, then supporting Jabber, TCP and the discovery of the latter through Avahi.

Jabber allows us to traverse any NATs easily. Why should you be forced to use it? That why there is an "optionally" in the ticket.

Changed 7 years ago by stellaris@…

Thanks for the lecture, phil. I get your drift, good luck with the project.

Changed 7 years ago by phil

The typical reaction... "Good luck"... Well, we are open for enhancements. You cannot know that we plan it already, of course. It's just that seconds which go around the line that implementing a feature requires the internet to work correctly are not very helpful for us. Oh well...

We do not want to scare people off, at least I don't want to... but sometimes I drift away...

Changed 7 years ago by stellaris@…

phil,

I didn't mean to say the internet needs to work correctly, but that adding another external service which can be unreliable at times, could be inconvenient, if not restrictive. It was just a (possibly pretty obvious) thought that crept up here. If it's bullshit, feel free to tell me my so I can learn.

As far as "scaring people off" goes, I wasn't aware that you guys are mostly looking for input from coders, as you mentioned in your first reply.

Anyway, before totally going off-topic here, I'll try and contribute to the project by writing an article about gobby for a German ubuntu community pdf magazine. I hope that's ok with you guys.

Changed 6 years ago by anonymous

Please remove the last five spam comments ;-).

Changed 6 years ago by erlehmann

first, jabber / xmpp can do local stuff w/o relying on servers (XEP 0174): http://www.xmpp.org/extensions/xep-0174.html

second, there is already a xmpp enhancement proposal (XEP 228) for shared editing: http://www.xmpp.org/extensions/xep-0228.html

Changed 4 years ago by eirik.schwenke@…

Hi,

what is the status of libinfinity ... vis-a-vis xmpp/jabber ?

The bug is still open, but not in any of the milestones at: http://gobby.0x539.de/trac/roadmap

A p2p/avahi based solution for editing is great for intranet/home-use -- however being able to tunnel over jabber, would be great. For one thing, fewer protocols makes it feasible to implement usable application-level firewalls/proxies.

I have yet to look at the code -- but is there any interest in making a xmpp bridge for gobby, maybe on the layer below libinfinity ?

-Eirik

Changed 4 years ago by Eirik Schwenke <eirik.schwenke@…>

In answer to myself: I "found":

http://gobby.0x539.de/trac/wiki/Infinote/Protocol

That states: "The basic Infinote protocol uses XML and can be used over any transport that can deliver XML messages between hosts, such as XMPP.".

I also found: http://infinote.0x539.de/libinfinity/API/libinfinity/InfXmppConnection.html

Am I correct in assuming that xmpp-support is in the library, but not visible in the gobby editor?

Best regards,

Eirik

Changed 4 years ago by armin

This is not scheduled for Gobby 0.5.0.

InfXmppConnection basically handles reception and sending of XML messages after having performed an XMPP authentication. It does not support anything beyond that.

In libinfinity, there is an interface called InfXmlConnection, which all connection types that can send XML messages to each other should implement in order to be used with libinfinity.

For Jabber support, in my eyes the following steps are necessery, which unfortunately is a bit more work than just "making it visible in Gobby":

  • Make InfXmppConnection not implement InfXmlConnection anymore, instead create a subclass of it (InfRawXmppConnection, maybe) which does this.
  • Create another subclass of InfXmppConnection, InfJabberConnection, which handles the connection to a Jabber server, basically managing the roster.
  • Create a InfJabberUserConnection class, which represents a connection to a specific jabber user. This should implement InfXmlConnection to send XML messages to that user, and own a InfJabberConnection to send them via the Jabber server. InfJabberConnection should be able to create InfJabberUserConnections from a JID.
  • Add support for this in Gobby. I think the "Direct Connection" field should create a InfJabberUserConnection instead of a InfRawXmppConnection if the entered host name looks like a JID.
  • Additionally, a InfJabberDiscovery class, implementing InfDiscovery, can be implemented, featuring automatic discovery of running infinote servers for all contacts in one's roster.

Changed 16 months ago by Flow

  • cc flo@… added
Note: See TracTickets for help on using tickets.