Archive

Posts Tagged ‘XMPP’

Funny ideas (virtual Terminal via IM???)

I think the XMPP protocol can be considered as a sort of middleware allowing to transport any type of data in the network without worrying too much about the nature of the data, the place where data is, and protocols used to transport data from one side to another.

In a certain way this behaviour is quite similar to Sockets that, using a public service (such as a Jabber server), allow you to bypass many of the barriers (NATs, firewalls, …) dividing two hosts on the Internet.

Think about this idea: developing a libpurple plugin acting like netcat or a pipe between two buddies, that you can use to pass ANY kind of data or stream. Something like: right click on buddy and click on “create socket on port 1234” or “create named pipe”.

I know this is a trivial idea and there are plenty of systems that do this. But what can make the difference (IMHO) is that:

  • XMPP is XML based and this allows anyone to define their own protocol
  • a lot of IMs support  XMPP and chat/IMs are very popular and widely used, moreover they are a public services and usually can pass through NATs quite easily (although this should not be a problem with IPv6!)
In the last months I’ve stopped developing  XMPP / Gtalk invisibility plugins[1] to try to implement an “old” idea: create a virtual terminal controlled via IM.

After an initial stage to get a bit of knowledge about (pseudo) terminal emulators (Advanced Unix Programming rocks :)) I’ve given birth to Instant messaging Virtual Terminal (ImVT). It’s now a very buggy prototype, but for “easy” tasks it does its job. I was able to run commands like ssh, vim (with some issues), and some other commands that require a terminal. Forget to run commands that produce constantly output (i.e. top).

Unfortunately I can not spend too much time developing it so, for now, it’s only a small buggy toy.
If anyone more experienced (especially in terminal emulators programming!) thinks that I am not too insane and likes the idea to help to develop… just send me an email!

Please pay attention to security issues: every buddy allowed to chat with the account used by ImVT can gain access to the terminal emulator!!!

  1. [1] I’m looking forward to develop Google Invisibility Tracker enhancement log every buddies’ status change and every presence stanza received, including those sent by iGoogle or Gmail when chat is turned off (that means that buddy was on the Internet). I just have to find time to do it!

Google fixed the “bug” to scan invisible buddies

It seems that Google has fixed what we used to consider a bug but was not properly a bug but simply an implementation choice.

From XMPP IM page:

5.1.3. Presence Probes

Upon receiving a presence probe from the user, the contact’s server SHOULD reply as follows:

3. Else, if the contact has no available resources, the server MUST either (1) reply to the presence probe by sending to the user the full XML of the last presence stanza of type “unavailable” received by the server from the contact, or (2) not reply at all.

obviously if we consider invisibility like a offline status we have to accept both cases. Until now we could scan invisible buddies because Google Server used two different behaviors for Offline and Invisible status.

And now?

Now the “half scan method” is no more useful. I don’t know any other method to do the same.

For now the only way I know to have information about invisible buddies is this plugin but it’s neither tested nor reliable and you have to be online when your buddies goes invisible.