Subscribe via Email

Your email:

Browse by Tag

SIP Sessions

Current Articles | RSS Feed RSS Feed

Back to the Future: SIP and Web APIs

It may be of interest to readers of this blog that recently a thought-provoking Internet Draft was published by Henry Sinnreich et al: SIP APIs for Communications on the Web - draft-sinnreich-sip-web-apis-00. In a nutshell, the Internet Draft exhibits critique of SIP and suggests a consequent usage of HTTP technology for VoIP used along with other Internet applications.

The question begs, whether the critique is justified and whether the shortcomings mentioned introduce sufficient pain to make one-self busy with abandoning SIP. I think the critique is largely fair; I'm less sure that there is a time window in which the level of pain can cause such a change.

The critique cites several reasons: standards' complexity, insufficient consideration of NAT traversal and difficulties to link to web apps - to name the most significant ones. The complexity statement can be easily confirmed by looking at the VoIP RFC Watch site maintained by Nils Ohlmeier or by checking the SIP WG RFC dependency graph. And, NAT traversal has proven itself to be a large problem resulting in the formation of new network element type - the session border controller (SBC). Non-voice apps are indeed still letting us wait for them.

The real question to me is whether these difficulties will create enough motivation to change from SIP to Web technology. The window of opportunity seems closed: complexity can be somewhat lowered; like it or not, we have SBCs for NAT traversal; and web-apps can be built with or without SIP.

Still, isn't the number of these workarounds a good enough reason to give the HTTP legacy a try? I have recently found out that remote sharing of "smart boards" (i.e. whiteboards with direct output to PCs) works over web port 80 via a third party to facilitate NAT and firewall traversal. Most video apps are using HTTP (even though typically one-way), and the number of emails exchanged via HTTP certainty creates a fair traffic share. To me it looks like we're already giving HTTP a try...

Comments

Agreed that the ID has many thought provoking ideas. But it continues to maintain one unnecessary function, that of requiring an outgoing and incoming servers (Sec 4.4). This normally doesn't happen during web browsing. Why not the caller contact the callee's server directly and use OpenID to authenticate herself? 
 
By the way, EnThinnai has implemented such an idea and allows anybody to call its users who avoid SPIT with a whitelist.
Posted @ Sunday, February 14, 2010 6:46 AM by Aswath Rao
Thank you for your comment. How would you like to accomplish inbound NAT traversal then? 
 
 
 
Jiri 
 
Posted @ Tuesday, February 16, 2010 12:30 PM by Jiri Kuthan
My proposal includes a server at the callee's end. So there is still a way to perform ICE. After all even RIP requires ICE in some form or other as is mentioned in the ID. The real problem in SIP (as practiced) and in the new proposal is that they require a "server" at the originating end, which leads to lots of issues - interoperability, federation agreements and so on.
Posted @ Wednesday, February 17, 2010 12:19 AM by Aswath Rao
Interesting proposal. What however does a caller behind a NAT do if it can't receive inbound signaling without the assistance of a server which knows its whereabouts? I suppose it needs 'its own' server to receive an INVITE. Now if you desire to skip this server on the way out, you either handle NAT traversal on your own or you put the burden on destination server. The former case would require something like ICE, which is simply not adopted today. The latter may or may not be able to find acceptance of the destination server that may quite reasonably assume to receive de-natted traffic from other domains. Therefore, I don't see how a caller could profit by letting a request from behind a NAT to bypass its domain's server. It appears to add more hurdles than benefits to me. 
 
 
 
Jiri
Posted @ Tuesday, February 23, 2010 6:13 AM by Jiri Kuthan
I guess I didn't make the basic architecture more clearly. The architecture assumes the worst case - the caller does not have a server of his own. The caller contacts the callee's server directly, just like a browser contacts a web server. 
 
Furthermore, the callee's server assists both the end points in NAT traversal using ICE like scheme. 
 
The benefit of this architecture is that it allows anybody to reach the callee from a browser. It avoids SPIT because it uses OpenID for authentication and white/blacklist provided by the callee.
Posted @ Thursday, February 25, 2010 8:08 PM by Aswath Rao
Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics