Monday, October 25, 2010

The Good, the Bad and the Ugly

Skype have closed one more third-party this week. Nimbuzz announced that, like Fring, they were forced by Skype to stop supporting it in their Clients.
It is even more evident now, that the good signs about Skype Openness we saw beginning last year are completely flushed now, probably due their eagerness of pursuing an IPO and new management.
Although, what they did not count is the bad impact in their own user base and public image effects of such blocks. It proves once more that companies should not rely on Skype as something solid to build product features. Not only that, according to Skype, third-party MUST not build product features based on their services.
Skype also claim they have an API. Really? Not exactly, they have a Client SDK/API. And why it matters, is that if a client or device want to make use of it, they need to have exclusive granted privileges for a black box piece of software to be embedded and shipped within your product. Yes, if you want to support Skype, you need to build your product on top of that, and also make sure the product is exclusively Skype friendly. If that wasn't enough they also say that they do not guarantee for how long the piece of software will be valid.
Skype wants to do what AOL did, trying to force their users to install their Software and only use their own Browser/Client to access Internet. 
The Bad.


SIP is widely adopted worldwide specially among technical people, geeks and behind the curtains, even used as base landlines telephony like in Netherlands.
  • The interoperability is something achievable theoretically, meaning that several different SIP Clients can talk to each other
  • SIP release the Telecom from the "Dark Ages" to the "Modern Times", showing that Telephony could be done using IP and good software
  • Vast majority of Communication equipments and platforms have support for it.
  • It enabled the possibility to create huge portfolios of Value aggregated Services based on Legacy Telecom Centrals
  • It is responsible for the cheap VoIP as we know it
  • Most terminations that Skype buys, are provided via SIP
  • Estimated numbers of SIP Providers worldwide is bigger than 50.000
  • SIP Providers can sell termination minutes not only to end users, but also to other Providers
Although there are some not pretty facts about SIP:
  • SIP Protocol is not as practical and simple as it should be by 2010
  • SIP is not extensible, the current attempt of extending it (3GPP) is failing badly, taking more than 10 years of pure specifications, without any success to reach mass market. The current result is a HUGE stack of workarounds badly described and full of contradictions
  • SIP Calling is great and almost straight-forward, but Messaging, Presence, Contacts and Extended Services are way too complex for current Market Status
  • SIP is always backed by big corporations that tries to mystify it, trying as much as possible to postpone the life-cycle of the protocol.
  • The current Market needs and demands extra features than only Calling. There is no such thing as a mass market SIP based service with extensive features like: Presence, Contacts, Whiteboard, Video, File Sharing etc.
  • Apple Facetime is a frustrated attempt to use SIP for extended Video Call service ( Why frustrated? A service that works based on "trial-error" and does not have interoperability support in 2010, is a failure by default ). Apple end up implementing a half-SIP, half-XMPP, half-STUN solution. Which is completely closed for interoperability. It claims to implement it ALL, and supports NONE.
  • The complexity of the protocol makes it hard and restricted to highly specialized developers, which have their jobs lifetime guaranteed, but decreases the potential mass adoption of the protocol. The Ugly. 

Wednesday, October 20, 2010

Facetime and Video Call Matrix


Today Apple released Facetime for Mac OS, making it possible to have easy and H264 quality Video Calls between IPhones, IPods and Mac Desktops/Laptops.
besides the lack of Device Capability Discovery, meaning that you need to know who has support for it based on Trial and Error. Hard to believe for a 2010 Technology.
The moment also calls for attention of the extremely fragmented market of Video Call Clients Interoperability.

Current Status, October 2010:
Oct 2010
Prediction, January 2011:
Jan 2011
All the Buzz aside, Facetime still pretty limited, due:
  • Strange Username/Device setup
  • Confusion about device/contact support
  • Lack of simple start/stop Video buttons
  • 3G support
  • Interoperability
I still hope a XMPP Jingle Based Messiah to come and solve the fragmentation and interoperability matters.

Thursday, October 14, 2010

Jingle and Gaming

I've being discussing too much about VoIP on Jingle and we are almost forgetting that Jingle is also very suitable for Realtime Games, that requires very low Latency.
Having Multi-Player games using Jingle doesn't mean all the commands, events and actions will be sent in XMPP Format through IQs.
Jingle can also be used to negotiate direct TCP or UDP ByteStreams which is the most suited for low latency Games like Shooting Games for instance:

<iq from='romeo@3drealms.com/borntobewild'
 id='ph37a419'
 to='juliet@dnforever.com/makemyday'
 type='set'>
    <jingle xmlns='urn:xmpp:jingle:1'
     action='session-initiate'
     initiator='romeo@3drealms.com/borntobewild'
     sid='ohhyeah'>
        <content creator='initiator' name='dukenukem'>
            <description
             xmlns='http://dukenukemonline.com'
             media='game'>
                <payload-type id='1' type='controller'/>
            </description>
            <transport
             xmlns='urn:xmpp:jingle:transports:tcp'
             pwd='asd88fgpdd777uzjYhagZg'
             ufrag='8hhy'>
                <candidate component='1'
                 foundation='2'
                 generation='0'
                 id='y3s2b30v3r'
                 ip='192.0.2.3'
                 network='1'
                 port='45664'
                 priority='1694498815'
                 protocol='tcp'
                 rel-addr='10.0.1.1'
                 rel-port='8998'
                 type='srflx'/>
            </transport>
        </content>
    </jingle>
</iq>


So if you are looking forward to build Multiplayer Games, you may consider ejabberd or Openfire a ready to use platform for such.
This is an insight post, so please fell free to send question and ideas as comments.