Archive for the ‘Voxeo’ Category

P2PSIP and pushing voice down into local clouds…

Friday, May 23rd, 2008

p2psip.jpgWhy do you write so much about P2P SIP? Who’s really going to use it? Why do you care? Isn’t it really just a lame attempt to create an open standards version of Skype?

As you might imagine, I’ve heard those questions more than a few times. And yet still I keep writing about it. Why? Part of the answer lies in my post back in Decembertoday the world of SIP is all really “client/server” but the future might be quite different. Today you have SIP user agents that register and connect to SIP servers (which might be SIP proxies, SIP registrars or other types of servers). In fact, our own Prophecy product is a powerful SIP application server. Our Evolution developer portal is a massive SIP-application-server-in-the-cloud (more here) that connects to and from SIP clients.

But now imagine a SIP deployment without servers.

Imagine that you could simply distribute a series of SIP phones and have them all rapidly interconnect to each other and start communicating. Think of how fast you could potentially deploy a small office. In this time of US presidential campaigns, I think of the “advance teams” that are dropped into some office space in some city to organize an area. Imagine if they could be given a bunch of phones which just self-organized into a working communication environment? Plug the phones into a network switch and have them sort out extensions, PSTN gateways, all of that. There are all sorts of similar situations. Teams of consultants or auditors. Emergency environments. Short-term branch offices. Outside of the rapid deployment, there are just general uses in small businesses that don’t want to pay for servers. You could even see it being used in a home environment. Today this kind of thing can be done with “teleworker” phones hooked back to a central IP-PBX or hosted service (I know because I helped launch one back in 2003), but what if it could be even easier?

This is the promise of P2P SIP. Take a bunch of SIP endpoints and they form their own P2P “cloud” (or “overlay network” in P2P lingo). They discover resources like PSTN gateways or application servers. If a phone dies, the P2P cloud routes around it and continues. Communication happens.

Now the reality is not quite there today. There is a great amount of work being done within the IETF on this subject through the P2PSIP Working Group. There are P2PSIP implementations (mostly open source and a few commercial). There is a great amount of academic research going on (one example here). It is all still early days, though.

And on one level, that is what is so exciting. We are re-imagining what a network could be. We are pushing the power and intelligence truly out to the very edge of the network.

We are creating clouds.

Local clouds. Self-organizing clouds. Network “clouds” that connect to other clouds. It’s a different mindset… a different paradigm… thinking of networks not in terms of servers with their clients but in terms of nodes able to communicate with other nodes.

Will it work on a large scale? We’ll see… there’s a whole whack of security issues… privacy issues… scalability issues… but people are looking at those issues. Skype has certainly shown that a P2P telephony environment can be created and can be quite successful. (Although it should be noted that purists might not consider Skype a pure P2P network because they do have enrollment servers that deal with authentication, etc.) Other P2P networks for file sharing have shown the potential is there to build massively scalable networks. The building blocks are all around us.

So what’s the Voxeo angle, eh? Why do I care about it?

Two answers, really. First, there is the basic reality that just because you are creating a new way of connecting a telephony system it doesn’t remove the need for voice application services. You still want to run voice applications. You still need IVR systems. You still need ways to mashup voice with web services. You still need to connect to the PSTN. Some of those services may be able to live within the actual P2P cloud. Some of them will need to be in external servers or services. Obviously that’s what we do and so my interest is in how our software and services might play in this evolving space.

Second, it’s all about clouds. While there is a huge buzz these days about “cloud computing” and “virtualization“, this is what we’ve been doing here at Voxeo since our founding back in 1999! You can go right now to our Evolution developer portal, create your free account and start building voice applications that run in our massively distributed computing cloud. Behind the scenes, there’s a massively-scalable, geographically-distributed, open-standards-based, redundant (and, incidentally, patented) network architecture that virtualizes your voice and IVR applications. You have no idea what server your voice apps are running on and you don’t care. Need more ports… need more CPU cycles… the cloud adjusts for all of that. It’s all transparent to you.

Our “cloud” is then connected out into other “clouds”. You can connect to our cloud from the PSTN, SIP or Skype and then go back out to the PSTN or SIP clouds. We’re part of the massive interconnect currently being built online.

So as there is the potential to create local P2P “clouds”, my interest on multiple levels is pretty basic - how do we connect those small local clouds to our larger cloud and from there to the rest of the interconnected voice and data networks? I want to look at how our services can enable the proliferation of P2P SIP clouds.

Sure, large numbers of “production” deployments of P2P SIP are probably 3-5 years out… maybe even longer (but maybe not). At the current time there’s not a whole lot I can really do except engage in the ongoing conversations about P2P SIP and try to see what where it’s going. But that’s what I and my colleagues in our Office of the CTO do. We’re the guys up in the crow’s nest looking out and scanning the horizon for what’s coming next. Companies that expect to be around have to keep doing that. So that’s what I do. And that’s why I write about P2P SIP and why I’ll keep writing about it.

It’s all about the clouds… and how we connect them all together…

Technorati Tags:
, , , , , , , , , , , ,

P-Charge-Info and incredible disconnect between PSTN billing and the new world of SIP

Tuesday, May 13th, 2008

ietflogo-2.jpgDo “intrastate” versus “interstate” billing rates make any sense whatsoever in the world of SIP where geography ceases to be relevant?

There is a fundamental disconnect today between the legacy world of PSTN billing practices and this new world of SIP-based interconnection that we are all building. The Internet ignores geography. We can connect to any random points in the cloud, regardless of where they are physically located.

But until the day when we have truly built the IP-interconnect and can all be bypassing the PSTN, we do have to deal with the PSTN… and all the legacy tariff/billing infrastructure that goes with it. How do you mesh the two worlds?

Consider this case within the US:

  • A company in Massachusetts with phone number 617-555-1111 calls a customer
    also in Massachusetts with phone number 617-555-2222.

  • The Caller ID presented to the receiving party is 617-555-1111.

  • The company calling is billed the intrastate rate because the call appears
    to have originated and terminated within Massachusetts. For this
    example, and purely picking a number out of the air, let’s say the call at intrastate rates would have cost $5.

  • However, the company in MA was actually using a hosted telephony service
    and while the call appears to have originated from Massachusetts based
    on the CallerID presented to the user (and transmitted as “6175551111@sipgw.carrier.com” in the SIP From
    and/or P-Asserted-Identity headers), the number actually entered the PSTN
    from a data center in New York with the number 212-555-1111.

  • Had the calling company presented their billing identifier as 212-555-1111, they
    would have been billed the interstate rate for calling and for this
    example let say that the call would have only cost $3. (And yes, for those of you outside the US, this is true, calls within a state are more expensive than calls between states!)

  • Naturally, the calling company wants to present its Caller ID to the
    end user as its own number of 617-555-1111 but it is contracting with the
    SIP telephony hosting provider in part to get cheaper rates. The hosting provider would
    naturally like to be billed at the interstate rate versus the intrastate rate
    when the calls enter the PSTN from their data centers.

There is the disconnect. PSTN billing is still tied to the identity of the originating number as seen through the carrier’s billing systems. Yet with SIP, the caller identity can be different from the identity of the PSTN interconnect point. (And yes, “Caller ID” can be spoofed on the PSTN but there are still underlying billing identifiers in the PSTN signaling.) As long as we continue to have tariffs in North America that have different rates based on geography, we’ll continue to have this problem.

A few years back, the folks over at Sonus Networks came up with an idea to address this disconnect - pass a custom SIP header called “P-Charge-Info” in the SIP INVITE that sets up the call and include in that header the SIP address to which to charge the call. They added this header to some of their equipment and some carriers started using it. So in the case above, the SIP headers might include headers like these:

From: <sip:617555111@sipgw.carrier.com>
P-Charge-Info: <sip:2125551111@proxy.hostingprovider.com>

To the person receiving the call, nothing has changed. The “Caller ID” that is presented on their phone is the same identity they saw before. But inside the cloud, the billing identity has been changed.

[Do note that there's a double-edged sword here. If the hosting provider and the carrier agree to use P-Charge-Info as the authoritative header for billing purposes, and then in my example above the Massachusetts customer starts making a lot of calls into New York they will wind up being charged the higher intrastate rate based on the P-Charge-Info header. So some analysis of calls needs to be done before agreeing to use this special header.]

Anyway, as one of the largest providers of VoiceXML/CCXML hosting, we are always looking at ways to ensure our customers receive the fairest billing. Late last year after one of our carriers suggested we look at using the P-Charge-Info header, we did so and were quite pleased with the results. Subsequently we have now started using this with multiple carriers.

Being strong proponents of open standards, we noticed that P-Charge-Info was not yet registered on IANA’s list of SIP parameters and so we approach Sonus Networks about going through the RFC 3427 process of registering a custom P-header. They agreed and so Tolga Asveren from Sonus Networks and I submitted an Internet Draft defining the P-Charge-Info header. We received a good bit of feedback/critique and our fourth version (-03) was just posted today.

Why are we going through this registration process, which can be quite lengthy? Several reasons:

  • Expanded Usage - We would like to use this with other carriers but until this draft there was no specification for exactly how the header should be used. We would like this to be available as something to point other carriers/service providers to.

  • Prevention of Further P-header Proliferation - Right now, if someone is looking for a SIP header to pass billing information, odds are they will look at IANA’s registry to see what headers have been added to SIP. Today the only billing headers are those of the 3GPP defined in RFC 3455 which do differ in intent from what P-Charge-Info does. If they don’t like the RFC 3455 P-headers, they may very well go off and invent their own P-header (anyone can) to deal with passing billing information.

    Our concern is that as we all in the industry continue building this IP interconnect, sooner or later we’re going to want to find ways to exchange billing information and if we have six different headers in production use it’s going to be a real headache. In the ideal world we would have a standard header (not a P-header) for passing billing information and probably we eventually will… but that will take some time to get developed and then deployed. In the meantime, let’s document and register what’s out there now so that people can see the choices they have and not necessarily go right off creating yet another billing information header.

  • Prevention of Identity Conflict - It’s very possible that someone going off and creating their own SIP P-header could very well choose to call their header “P-Charge-Info”. One would hope that someone creating a new P-header might use Google to search for the header name they are planning to use (in which case they would discover this existing usage of P-Charge-Info), but someone might not and start using it. It could then happen that some day someone out there would wind up needing to interoperate with two different pieces of equipment that both use a “P-Charge-Info” header, but in different ways. IANA registration is designed to help prevent this.

  • It’s The “Right Thing” To Do - If you read section 4.2 of RFC 3427 it states very clearly:

    Any P-header
    used outside of a very restricted research or teaching environment
    (such as a student lab on implementing extensions) MUST meet those
    requirements [of section 4.1] and MUST be documented in an RFC and be IANA registered.

    Now obviously no one is enforcing this. There are many P-headers in common usage today that are not documented. No one will slap you down and revoke your right to use SIP if you don’t. But it’s the right thing to do for the reasons outlined above as well as to respect the process defined in RFC 3427.

So where is P-Charge-Info in the RFC 3427 process of IANA registration? Well, Tolga and I now have a fourth revision of our Internet Draft out (it’s the fourth because the first was “-00″) and we would very definitely like comment on the draft. Please do send them in via email (or leave them as comments here). Once the document has gone through more review (perhaps another draft or two) we will then continue the steps in section 4.1 of RFC 3427 and request “expert review”. Ultimately the goal is to have the document published as informational RFC so that it can be registered with IANA.

As I said, comments and feedback are definitely welcome. What do you think of the document? of the problem we are trying to solve?

Technorati Tags:
, , , , , , , , ,

SIPit 22 begins today in New Hampshire…

Monday, April 14th, 2008

sipit.jpgWhat happens when a 100 or so SIP developers and engineers get together with all their gear? Well, starting today at the University of New Hampshire’s Interoperability Lab in Durham, NH, those developers will be participating in SIPit 22 and testing the interoperability of their solutions with those of everyone else. Sponsored by the SIP Forum and currently coordinated by Robert Sparks, the events provide a place for SIP implementors to test out how well their products work with others’. When you attend, you essentially arrange with others there to test your product with theirs and do so. The results are not published… it’s just a place for engineers/developers to go and work together on interop. Summaries of what occurred are released and you can get a sense of what goes one through the summary of SIPit 21 this past November in Beijing.

As you might expect, since I’m writing about this, one of our lead SIP developers is up there at SIPit 22 with our Prophecy product. As we’re working on some improvements in our SIP support that we’ll release in new versions of Prophecy over the next year or so, he’s looking forward to testing our new work and learning how well it works (or doesn’t work) with many other SIP implementations.

Given that SIP is composed of so many pieces and there are so many options in the way in which you can implement parts of SIP, events like SIPit that foster interoperability are really a key way to helping the industry grow. It’s great to see the SIP Forum continue to sponsor the SIPit events and we look forward to participating more in the future. Meanwhile, we’ll be very curious to see what results are brought home at the end of the week… :-)

Technorati Tags:
, , , , , ,

A great set of articles about VoiceXML - from learning it up through its connection to Web 2.0 and social networking

Tuesday, November 27th, 2007

Recently we came across a great series of articles at InformIT on the subject of VoiceXML. Written by Frank Coyne, they cover the range from an introduction to VoiceXML up through using VoiceXML with social networks. Nicely, the author mentions Voxeo and talks about how the exercises he lays out can be done using a free developer account on our evolution.voxeo.com site. Here are the articles:

You can also get a list of all the articles as well as a blog entry from Frank Coyne back in August titled “Mashin’ Up with Voice XML“. To probably no one’s surprise, I was personally most intrigued by Part 5. Having done a ton of work with XSLT stylesheets in the past I enjoyed the part about creating dynamic Voice XML using XSLT stylesheets to generate the VoiceXML:

http://www.informit.com/articles/article.aspx?p=1017851&seqNum=6

Linking VoiceXML to triggering Gmail delivery is also quite cool:

http://www.informit.com/articles/article.aspx?p=1017851&seqNum=8

As I am personally just coming up to speed on VoiceXML, I’ll be working through many of these tutorials in my own evolution account. (Since accounts are free, you are welcome to sign up and check it out yourself.)

Technorati Tags: , ,

Welcome to “Speaking of Standards”, a Voxeo weblog about industry standards

Tuesday, November 20th, 2007

Greetings and welcome to Voxeo’s new weblog, “Speaking of Standards”! I’m Dan York and in this weblog several of us will be writing about our views on industry standards. Standards - and specifically open industry standards - form a core part of Voxeo’s values and are something we take very seriously. Our VoiceXML platform has led the industry in implementing such standards as VoiceXML, CCXML, SCXML and SIP. Our CTO, RJ Auburn, chairs the W3C working group on CCXML and other staff members have been involved in various ways. Open standards are part of our DNA and so we look forward to talking about them here.

Some of you may be familiar with me from my own blog, Disruptive Telephony, or my contributions to the VoIP Security Alliance group weblog. I will still be writing in those other blogs, but in this blog I expect to be primarily writing about the work of the IETF, either draft standards I find interesting, new standards that are out, upcoming meetings or events and also commenting on how we implement various standards within our (Voxeo) platforms. I’ll be joined here in writing by a couple of my colleagues, but I’ll leave it to them to introduce themselves.

Your comments and suggestions are definitely welcome. What would you like to see us write about here? Do you have questions about the IETF or W3C processes? About specific standards? About SIP? VoiceXML?

Technorati Tags: , , ,