There's now a proto-XEP for Rob and psa's "decloaking" / "smoking out presence" extension, with an implementation in Gabble. Fargo should implement it too.
+ if xpath.matches("/presence/decloak", stanza): Check the xmlns, please. + # FIXME: if a client sends a directed unavailable after they make a + # call, currently we just log out. What we should probably do instead + # is only listen to presence update/subscribe on the gateway JID and + # ignore presence to virtual users for logging in/out. Er, yes, that. I predict that to handle this sort of thing correctly, we'll end up with two completely separate sets of callbacks: one for user@gateway, and one for the gateway itself. + # Also, this identity is shared by our virtual users. Hope this is ok. I think the gateway and the individual users should have distinct caps and perhaps also identity. After all, you can't Jingle-call <gw.example.com>, only <bob%example.net@gw.example.com>, so gw.example.com shouldn't have Jingle caps. + # NOTE: We assume here that they are querying us for our caps, and + # therefore don't bother checking that the caps are the same. Um... + c['node'] = 'http://telepathy.freedesktop.org/wiki/fargo' /Fargo has the benefit of actually existing :-P > +import ns Absolute imports, please: import telepathy_fargo.ns as ns. Rationale: http://www.python.org/dev/peps/pep-0328/ (Perhaps we should switch on "from __future__ import absolute_import" in all modules, since AIUI we require Python 2.5 anyway?) Do you want to merge up your branch and I'll do these fixes myself?
Sorry, those comments were regarding <http://git.collabora.co.uk/?p=user/alsuren/telepathy-fargo.git;a=shortlog;h=refs/heads/caps>.
(In reply to comment #1) > Check the xmlns, please. Fixed in my caps branch. > > + # FIXME: if a client sends a directed unavailable after they make a > + # call, currently we just log out. What we should probably do instead > + # is only listen to presence update/subscribe on the gateway JID and > + # ignore presence to virtual users for logging in/out. > > Er, yes, that. I predict that to handle this sort of thing correctly, we'll end > up with two completely separate sets of callbacks: one for user@gateway, and > one for the gateway itself. Done for IQs in my caps branch; still to be fixed for presences. > + # Also, this identity is shared by our virtual users. Hope this is ok. > > I think the gateway and the individual users should have distinct caps and > perhaps also identity. After all, you can't Jingle-call <gw.example.com>, only > <bob%example.net@gw.example.com>, so gw.example.com shouldn't have Jingle caps. Still to be fixed. > + # NOTE: We assume here that they are querying us for our caps, and > + # therefore don't bother checking that the caps are the same. > > Um... To be fixed. > + c['node'] = 'http://telepathy.freedesktop.org/wiki/fargo' > > /Fargo has the benefit of actually existing :-P Fixed in my caps branch. > > +import ns > > Absolute imports, please Fixed in my caps branch. Some other problems related to presence/disco/caps handling: * TelepathyService.got_iq assumes that @to will either be the gateway or one of our virtual users, not some other address (just FIXME'd for now) * needs regression tests! * presence probes aren't implemented (Bug #26141)
This branch still doesn't address my complaints, but it fixes some other nits regarding caps, and adds the beginning of regression test coverage for presence and probes. http://git.collabora.co.uk/?p=user/smcv/telepathy-fargo.git;a=shortlog;h=refs/heads/caps
(In reply to comment #3) > (In reply to comment #1) > > Er, yes, that. I predict that to handle this sort of thing correctly, we'll end > > up with two completely separate sets of callbacks: one for user@gateway, and > > one for the gateway itself. Fixed in master. > > I think the gateway and the individual users should have distinct caps and > > perhaps also identity. After all, you can't Jingle-call <gw.example.com>, only > > <bob%example.net@gw.example.com>, so gw.example.com shouldn't have Jingle caps. Fixed in master. > > + # NOTE: We assume here that they are querying us for our caps, and > > + # therefore don't bother checking that the caps are the same. > > > > Um... Bug #26216. > > + c['node'] = 'http://telepathy.freedesktop.org/wiki/fargo' > > > > /Fargo has the benefit of actually existing :-P Fixed in master. > > > +import ns > > > > Absolute imports, please Fixed in master. > * TelepathyService.got_iq assumes that @to will either be the gateway or one of > our virtual users, not some other address (just FIXME'd for now) Bug #26204 (which is just for robustness - the host ejabberd shouldn't forward stanzas that would fail that check anyway) > * needs regression tests! Fixed in master. > * presence probes aren't implemented (Bug #26141) Fixed in master. I'm going to consider this done, modulo the parts that have been spun out as separate bugs.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.