[quote=“VoipUser.org”]I had a quick email chat with Michael Robertson about Gizmo Project this afternoon. I asked a couple of questions about this latest release, in particular it’s TCP/IP “fallback” functionality for NAT traversal.
This is an interesting development for Gizmo. Skype does something similar, multiplexing several TCP/IP sockets over standard ports to multiple “super-node” proxies. Using multiple TCP/IP streams in this way offsets the problem of the blocking nature of TCP/IP (packet transfers have to hand-shake, which can introduce delays). I’m not sure whether the Gizmo model uses any form of threaded multiplexing of sockets in this way or if it relies on an assumption that a single TCP connection is “good enough”. I’ll be running some tests on Gizmo and will report back on that.
Anyway, I figured it was just as easy to post my email with Michael up here rather than summarise it. He provides some useful answers to the questions I posed.
My questions in italics.
I read on Russell Shaws zdnet blog about Gizmo using “TCP as fallback” when UDP fails.
I’m interested in this. We’ve already talked a little about your IAX2 compatibility, but actually this is, for me anyway, a more interesting aspect of Gizmo.
[quote]This is what makes it an ideal soft client for Asterisk. When outside of your local network users will experience very spotty connection rates due to complexity with NATs, firewalls and routers. For example some SIP-aware routers actually mangle SIP packets and block connectivity with SIP calls. Consequently the software needs quite a bit of knowledge about to talk to the server and how to route calls so that they will get through messy network configurations. What most people don’t realize is that it’s quite complex and often requires remote media relays to achieve high reliability. It’s not possible just to have client side technology.
Skype does a good job of this and I think Gizmo Project does too. Now by using Gizmo Project these smarts can be applied to any given Asterisk setup. Normally where call flow wouldn’t complete it now will because that same knowledge that we have refined to route tens of millions of calls all over the net will automatically be in place with every Asterisk call. [/quote]
Can you tell me a little about how it works?
[quote]Gizmo Project takes a series of diagnostic steps analyzing the particular network environment it is operating under. It’s a fairly technical process that sends out signals to see what network paths can be successful bi-directional and what bandwidth rates can be achieved. We try to use UDP initially, but many times that’s blocked so we are forced to fallback to TCP. Now the client needs to be set to use TCP AND the server has to be made aware that calls to/from this user will be going over TCP. You can see which path Gizmo Project is using on calls by clicking on the signal bar graphic.
Often times point to point audio is not possible so media relays have to be used. Again this is something the client AND the server have to be in sync with. Also, the client needs to select a nearby media server so that you don’t add unnecessary call latency. SIPphone has data centers around the world which are automatically used.
We don’t have knowledge base entries defining all these processes because it’s quite complex and is constantly evolving. For example, it’s not unusual to find a DSL provider in Finland that is doing something odd which we have to create rules to work around which then get incorporated into our system.
Bottom line is that these steps are essential if you want high reliability with calls. Otherwise you will give one way audio or no audio at all with many calls which is often the case using xten or sjlabs products because there is only so much you can do on the client end. With Gizmo Project, a generic Asterisk installation gets to leverage our entire backend to insure that calls get through with high reliability. [/quote]
I know that the Gizmo folk are looking for some feedback on what people think of version 2.0. If anyone here is putting it through its paces, maybe you can post your findings…
is Gizmo using its own protocol for IM or is it kind of a Jabba protocol ?
is Gizmo using its own protocol for IM or is it kind of a Jabba protocol ?[/quote]
They use XMPP, which allows you to connect and chat with any Jabber network, including GTalk. Not sure if they plan to support Libjingle, the Google XMPP extension for P2P VoIP, but I hear Asterisk is getting a new channel…