Friday, July 13, 2007

Google Talk API and source code release

Last month, the Jabber Software Foundation (JSF) released documentation for two extensions to the Jabber (XMPP) protocol, named Jingle Signaling and Jingle Audio. On the same day, Google -- co-creators of the extensions -- released a BSD-style-licensed library called libjingle, the implementation of the extensions that powers the company's Google Talk software. In addition to opening the API used in Google Talk itself, both actions will benefit open source instant messaging clients and perhaps increase the pressure on closed systems like Skype.

The Planet will beat the competition by 10% - FREE setup & FREE month to migrate

Jingle Signaling is Jabber Extension Proposal 0166, and makes it possible to initiate and manage peer-to-peer sessions from within an XMPP client, and to interface with SIP and H.323 services. Jingle replaces the session management functions of the older Transport for Initiating and Negotiating Sessions (TINS) protocol (JEP-0111), and implements Network Address Translation (NAT) traversal.

Jingle's NAT traversal mode closely follows the behavior of the Interactive Connectivity Establishment (ICE) protocol, an in-progress IETF draft. ICE attempts to negotiate the best possible connection between peers by trying all of the available permutations and gauging which one results in the best performance. This approach is highly successful, despite how trial-and-error it may sound. Jingle can also attempt to negotiate a connection with the older Simple Traversal of User Datagram Protocol (UDP) Through NAT (STUN) protocol, RFC 3489.

The Jingle Signaling protocol can negotiate any type of session, and its release was accompanied by Jingle Audio (JEP 0167), an audio chat session format. Jingle Audio sessions can specify any type of audio encoding stream, though it is designed with RTP transport in mind, since that is the most common.

In fact, both Jingle Signaling and Jingle Audio grew out of Google's in-house protocol designs for their free Google Talk chat service. The JSF was in the initial stages of designing a replacement for TINS when they discovered that Google Talk was doing similar work. Jingle is the result of their cooperation.

Googling

When the JSF published its Jingle specifications, Google simultaneously released the Google Talk API based on those specifications. In addition, though other proprietary products (including some owned by Google itself) stop at publishing their APIs, Google released a library implementation of Google Talk's underlying API under an open source license. The Libjingle package contains libjingle -- which implements Jingle Signaling and Jingle Audio -- and several other low-level components implementing perr-to-peer connections, socket and thread creation, XMPP, and streaming media.

Since Jingle is built upon XMPP, support may find its way into other XMPP-capable applications as well. Psi quickly announced its intention to add Jingle support to its client, and Gaim developer Sean Egan is himself a Google employee. Without mentioning libjingle by name, Egan posted a message on the Gaim news page indicating that its next revision will support Google Talk features -- including voice chat. We have seen no official announcements from other IM projects, though speculation is rampant -- particularly about those apps that already support XMPP.

Competing
Proprietary IM clients can make use of libjingle as well, since it was released under a Berkeley-style license. Of course, as with XMPP and other standards, the odds are small that large-network players like AOL or Skype will adopt the new protocol. But Google's release of the code certainly puts greater pressure on them.

Contrast Google's move with Skype's API program. Developers can use the Skype API only to extend the Skype app's functionality, while the libjingle release allows developers to create independent, interoperable software that works well with Google Talk. Google already permits other XMPP clients to connect to the Google Talk network for traditional XMPP messaging; those clients can now do so with voice chat as well.

Since the infrastructure for setting up, negotiating, and managing multimedia and text-only chats are so similar, applications that can do one but not the other are rapidly becoming a thing of the past.

Already we have seen Google Talk open up one proprietary IM client to XMPP (Apple's iChat); Jingle could have the same effect for voice chat.



Dissecting Google Talk with packet sniffer

As I mentioned to James Seng in a comment I posted to his Google Talk post Google Talk isn't using SIP (yet). James confirmed my packet capture analysis of Google Talk with some sniffing of his own, which you can check out in his More About Google Talk blog post. He has some interesting discoveries, including Google appearing to install a STUN server on every Google Talk client to solve the VoIP NAT issues. James writes "In other words, like Skype, Google Talk turns every client into a possible server to help relay voice call between two users." Doesn't this sound eerily like Skype's super nodes that everyone gripes about?

James has echoes my sentiments when he writes, "Very smart thing to do technically speaking but let me go read the Google Talk UAT again. (Hmm...What happen to the 'Don't be Evil' plan?)"

Google Talk Test Drive

I just installed Google Talk and so far I can't tell what codecs it supports or what protocol it is using for the voice. I know the IM portion is using Jabber, which means you can configure third-party IM clients such as GAIM or iChat to work with Google Talk. I did a port scan and 5060 isn't open, so it isn't using the standard SIP port. Checking Google Talk's site, I found this with regards to SIP:

4. Do you plan to support other real-time communication protocols?
Google Talk supports XMPP with the beta release. We plan to support SIP in a future release. Additionally, we will evaluate other protocols as appropriate, to continue to deliver on our commitment to open communications.

Well, no SIP for now. Nevertheless, this software clearly looks like an attempt to go up against Skype. The user interface is very simplistic, either modelling after Google's "simple" web home page or they're just getting this product's feet wet before they add all the "bells & whistles". It does have one-click access to your Gmail email account (launches default browser) and it also features a small window popup in the lower right system tray when you receive an incoming emaiil or instant message. It also appears that similar to Google's Gmail email service that you can save your Chat history. Unlike Gmail however, it appears you can opt-out of recording your chat sessions. To logon you simply use your Gmail account. Looks like the GMail invites should see a spike due to Google Talk. Wonder if people are still selling Gmail invites on eBay?

I'll report more after I make a test call.

Update: Made my first Google Talk Call
The sound quality was excellent and latency was very minimal. I actually made a PSTN call and a Google Talk call and held the microphone up to the PSTN phone I was using. On the remote end I had the person turn his external speakers up so I could hear when my voice came through. I did some simple counting and almost immediately I could hear my voice come out of the remote speakers, into the remote callers phone handset, over the PSTN, and then to my phone handset. Pretty amazing how minimal the latency was considering it was round trip.My only complaint is that you can't right-click a contact and initiate an immediate Google Talk voice call. You had to start a chat session first - a bit annoying. Anyway, here's a screenshot of the call:
Google Talk Test call

Update: Found this regarding codec support: Wow, they're supporting Global IP Sounds amazing codec right out of the gate! It's no secret that one of the reasons Skype sounds so damn good is the Global IP Sound codec.

Today, Google Talk supports the following standard voice codecs: PCMA, PCMU, G.723, iLBC. We are also evaluating the Speex codec. We also support codecs from Global IP Sound: ISAC, IPCMWB, EG711U, EG711A

And check this out, unlike Skype they will be working with third-party VoIP softphones/IM clients. This is also from the Google Talk page:

2. Whom are you federating with?
As a first step towards fulfilling our commitment to federation, we will federate with EarthLink and Sipphone, service providers who share our belief in enabling user choice and open communications.

3. When will federation with EarthLink and Sipphone be available?
We do not have details at this time on when federation will be enabled. But we are working closely with Earthlink and Sipphone to federate EarthLink's Vling service and Sipphone's Gizmo Project with the Google Talk service as quickly as possible, while offering the best possible user experience.

Some key points about Google Talk:

* Works with other Jabber clients but IM only - no voice support via 3rd party apps
* No SMS support
* No file transfer support
* No Jabber-to-Jabber intra-server communication
* No Mac or Linux client (Windows only)
* Can't organize contacts into groups
* Can rename the clients via right-click context menu but not a single-click rename
* Good voice quality
* Uses a proxy server run by Google (eavesdropping concern for some)
* Can't right-click a contact then initiate a voice call
* No video support
* No conference chat or conference Voice Chat
* No PSTN capability (i.e. SkypeOut) (yet)

Some other interesting links to check out regarding Google Talk:



Google Talk

After all the talk about Google VoIP, all the theories about what Google's purchase of tons of dark fiber means, all my prognostications on Google VoIP, it finally appears that Google is going to have a VoIP offering called Google Talk to be launched tomorrow. First, hat tip to Om, for covering this story on Monday where he discusses Google using Jabber technology within Google Talk. Jabber is known as "the Linux of instant messaging" -- an open, secure, ad-free alternative to consumer IM services like AIM, ICQ, MSN, and Yahoo.

Google always tried to utilize open standards, so it is no surprise to me that they chose the Jabber technology. There is no word on whether or not Google Talk will simply be an instant messaging client with simple P2P "voice chat" features or if it will incorporate PSTN dialing as well to compete directly with Skype and their SkypeOut service. Also, since Google is renowned for adopting open standards, I would have to assume that if they are doing VoIP that they are utilizing the SIP protocol. I also wonder if they are using an open SIP stack such as the one by SIP Foundry or some other equivalent. Further, the ability for Google Talk to do P2P calling competes directly with Skype - so how does this affect Skype's recent "shopping around" for buyers? I wonder if Skype approached Google with such a high pricetag that Google said "screw it, we'll build it ourselves".

It will also be interesting to see if Google Talk will encorporate P2P SIP to traverse through NAT firewalls. If that is the case, then we finally have a Skype killer on our hands.

Update: Typo on my part, meant to type Google Talk not Google Voice. I changed my blog post to reflect this.
Update 2: Rich Tehrani has some thoughts on Google Talk as well.





Wednesday, July 11, 2007

Top 10 VoIP Predictions for 2007

There were enough new VoIP products, deals, VC rounds and Voice 2.0 buzz in 2006 to keep a small army of bloggers busy. VoIP News asked some of the most influential VoIP bloggers to gaze into their crystal balls and report back what they think might happen in the coming year. Here are their replies:



1. Cablecos will continue to win the battle in consumer VoIP, but Vonage will survive—they're the independent of choice for most people, and not everybody will want to give all their business to a big phone or cable company.

Jon Arnold, Jon Arnold's Blog

2. The FCC begins to look at all VoIP as phone service and applies E911 rules.
Andrew Abramson, VoIP Watch

3. Pure-play VoIP providers [will] start taking cues from new players like GrandCentral and TalkPlus. So, instead of just getting dialtone and voicemail on your Vonage, hopefully by this time next year, you'll have all the cool telephony features you get from somebody like TalkPlus. In 2007, pure-players will either provide value or die out.
Ted Wallingford, Signal to Noise

4. Vendor consolidation will continue, as Tier 1/2 vendors acquire smaller vendors to round out their portfolios. Expect to see companies like Sonus, Audiocodes and Tektronix making some deals.
Jon Arnold, Jon Arnold's Blog

5. The SipPhone/Gizmo Project gets acquired.
Andrew Abramson, VoIP Watch

6. We see companies like Iotum that have a relevance engine to tie in Messenger and Outlook, so we see not only that you’re in a meeting, but who you’re meeting with, and whether it should interrupt.
Ken Camp, telecom writer-speaker-analyst, Digital Common Sense

7. From a standpoint of changing the end-user experience, [the Siemens OpenStage SIP phone] is the biggest change to the telephone set since the ‘60s. ... 2007 will be the beginning of change in the handset—what does it look like and its feature set.
Ken Camp, telecom writer-speaker-analyst, Digital Common Sense

8. Security will be a big issue within the VoIP industry as enterprises start to get serious about the technology and look to make sure they have the systems in place to protect themselves properly.
Mark Evans, Mark Evans: A Canadian Take on Telecom and Technology

9. More than 200,000 Chinese people per day (on some days) are downloading, installing and starting to use Skype. This is the definition of disruption.
Oliver Starr, MobileCrunch

10. I definitely see voice features becoming an integral part of the way customer-service applications, enterprises, and publishers use the Web. Voice-based communications through a Web trigger or hyperlink is becoming more common and will be even more so in 2007, thanks to aggressive moves by Adobe to add VoIP into Flash, and thanks to upstarts like Sitòfono.
Ted Wallingford, Signal to Noise

Google the Telco Killer?

First, Google might partner with any number of telcos as a last-mile provider for a branded VoIP network, just as Apple recently partnered with Cingular to finish calls on its new iPhone. Google isn’t saying—but then, it’s not talking about all those unused (“dark”) fiberoptic lines it bought, either, which could enable it to start its own VoIP network with only minimal outside involvement.

Telco ambitions may partly explain why Google is heavily involved in the Net-neutrality debate, battling big phone and cable companies’ efforts to give preferential treatment to certain data streams (their own, their sponsors’, whoever pays for it) while potentially limiting others. Google sees such efforts as a threat to people’s ability to get quick search and other information from Google. In addition, an end to Net neutrality could also threaten relatively bandwidth-intensive applications like Google Talk, which carriers could slow-track in favor of their own voice or VoIP traffic.

But then, why bother trying to be a phone company when your IM client lets users bypass phone companies—even cell providers—for practically nothing? Some companies—notably Nimbuzz —already take advantage of Google Talk’s commitment to open standards. The Nimbuzz IM client lets you call IM buddies worldwide from your mobile, paying only “your cheapest local rate” for the call. As an IM client, Nimbuzz voice bypasses whatever software counts cell minutes or registers international tariffs, although the blog MobileCrunch thinks sound quality could be improved. In effect, the cell-service provider’s role and rate-setting power shrink dramatically in a world of interoperable IM clients like Google Talk.

Google's VOIP Strategy

s Google getting set to compete with the telcos – or maybe change voice communication forever? It’s starting to look that way.

Google Talk Beta is a 1.5 MB instant-messenger download for Windows Vista, XP or 2000 whose functions resemble AOL Instant Messenger or Skype: primarily voice, chat and file transfers. Google explains the service in depth on its Web site.



There is currently no Mac and Linux version of Google Talk, although Google says Mac and Linux fans can communicate with Google Talk users via any of several IM clients that support the open XMPP standard. Google Talk doesn’t currently use the SIP standard and its traffic won’t be encrypted until the full release. Google currently lists Trillian, GAIM, iChat, Adium and Psi as interoperable with Google Talk.

If you have a Gmail account, Google Talk automatically loads your contacts as potential persons to call or IM. In addition, you can save IM chats to your Gmail account or specify that a chat be “off the record” and not saved by either user’s Gmail account, although people using non-Google IM clients could potentially save chats on their PCs. (This feature is either a Sarbanes-Oxley blessing or a pretrial-discovery curse, depending on your perspective.)

Google could go in several directions from this first step toward telephony. Most obviously, Google Talk is another piece in Mountain View’s continuing effort to assemble a Google desktop (and perhaps even the fabled Google OS). However, Google’s legions of Ph.D.s may be up to something much more disruptive.

In December 2006, Dave Girouard, vice president and general manager of Google's enterprise division, told Internet News that Google would ride into enterprise settings on the shoulders of people who already use Google apps on their own. Some observers question this strategy, considering some Google tools haven’t had great luck with consumers yet. Om Malik, for one, observed that as of July 2006 only 44,000 people used Google Talk for IM conversation.

Now come the interesting parts: First, Girouard said Google would beef up Google Talk to increase compatibility with traditional telecom systems and other vendors’ VoIP offerings. Second, in the same article, Forrester researcher Charlene Li said Google might make those voice files searchable. Girouard’s and Li’s remarks open up major speculation as both a telco competitor and as a game-changer.