Posts categorized "Asterisk"

Calling all Ruby and Asterisk developers! First Adhearsion Conference in SF Aug 14-15

adhearsionconf.jpgFor all of you out there working with the Adhearsion open source telephony framework to easily create communications apps on top of Asterisk using the Ruby programming language.... the first "AdhearsionConf" will be held August 14-15 in San Francisco.

Jay Phillips, the creator of Adhearsion, will be in the event and undoubtedly a great amount of hacking on Adhearsion will occur throughout the time.

The exact location and schedule are still being confirmed, but mark the date!


If you found this post interesting or useful, please consider either subscribing to the RSS feed, following me on Twitter or subscribing to my email newsletter.



Adhearsion open source telephony framework has new source code repository

adhearsionlogo.jpgI've long been a fan of the work that Jay Phillips did to create the Adhearsion open source telephony framework and so I was delighted to read today of news of its future. To give some context, Jay first created Adhearsion a number of years back because he was frustrated with how hard it was to create dial plans with the open source Asterisk PBX. So Jay went off and created a framework where a programmer could use the Ruby programming language to very simply create voice applications.

Jay went on to team up with Jason Goecke to further develop Adhearsion and then last year Jay and Jason joined Voxeo (my employer) to create Voxeo Labs out in San Francisco. While Jay has since moved on, Jason continues to move Adhearsion forward and announced today that Adhearsion has a new home on Github ... and hinted at much greater plans in store. I'm looking forward to seeing what all they may be...


If you found this post interesting or useful, please consider either subscribing to the RSS feed, following me on Twitter or subscribing to my email newsletter.



Tim Panton's VERY cool demo: Google Wave + Skype + Asterisk + Ibook

Over on Skype Journal, Phil Wolf posted about Tim Panton's VERY cool demo which he gave at Astricon and then apparently just yesterday at eComm Europe. Tim from phonefromhere.com mashes up Google Wave, Skype, Asterisk (with Skype for Asterisk) and Ibook to make Skype calls from within a Wave, complete with recordings of utterances and, naturally, the ability to have an annotated collaboration session in Wave:

Phil quotes Jason Goecke (a colleague of mine at Voxeo) describing how it works:

"it is a Google Wave Gadget with his PhoneFromHere.com IAX2 Java softphone as the client. Then, the IAX2 Java phone connects to Asterisk with Skype for Asterisk installed. Then, there is a server-side element, Ibook, that is breaking apart utterances into individual files. So that as each person speaks, it captures it into its own file. Then, as that happens, a text frame is sent from Asterisk to the softphone with the file details. The gadget then uses some Javascript to embed a link. IAX2 supports text frames."

Read Phil's full post for more info and for Phil's views on what this all means.

VERY cool demo!


If you found this post interesting or useful, please consider either subscribing to the RSS feed or following me on Twitter or identi.ca.



Digium takes on the "fax issue" with Fax For Asterisk...

digiumlogo.gifI can't stand fax. I can't. It's a technology that I just wish would go away. It kills me that fax is one of the main reasons I didn't drop my landline in my move. Yet the reality is that fax usage is everywhere... and probably will be for quite some time if for no other reason than the complete and utter simplicity of fax usage. Print out your message, or write your message (you know... that thing we all used to do... take a writing tool (pen, pencil, crayon, charcoal, etc.), grasp it in your hand and make marks on some writing surface...), just stick that message in your fax machine, punch in the number and press Send. It's hard to get much simpler than that.

But the lack of fax has been a barrier to many a premise-based IP-PBX deployment. Everything's going great... people are looking at all the great things they can do with VoIP and Unified Communications, etc. They are figuring out distributed architectures that are all IP-based. It's all looking really cool technically and will save money, too. All is going well and then someone asks "What about the fax machines?" And so people wind up with kludge solutions using analog breakouts or local lines or attempting Fax-over-IP or keeping some TDM around or... or... or...

We as an "IP communications industry" have to figure out a way to address the "fax issue" if we really do want to build our big interconnect and move beyond the PSTN into a richer communication experience. (And the SIP Forum, by the way, has formed a FoIP Task Group to look at this issue.)

In this context, I was intrigued to see that this week the folks at Digium announced a new service called (Duh!) "Fax For Asterisk". Here's the standard blurb:

Digium's Fax For Asterisk is a commercial facsimile (Fax) termination and origination solution designed to enhance the capabilities of Open Source and commercial Asterisk as well as Switchvox. Fax For Asterisk bundles a suite of user-friendly Asterisk applications and a licensed version of the industry's leading fax modem software from Commetrex. Fax For Asterisk provides low speed (14400bps) PSTN faxing via DAHDI-compatible telephony boards as well as VoIP faxing to T.38-compatible SIP endpoints and service providers. Licensed on a per-channel basis, Digium's Fax For Asterisk provides a complete, cost-effective, commercial fax solution for Asterisk users.

Translation: You can send and receive faxes through Asterisk using either TDM or Fax-over-IP (T.38), licensed on a per-channel basis.

In a rather smart move on Digium's part, they've also rolled out "Free Fax For Asterisk" where you can get a free 1-channel license for Fax For Asterisk for an Asterisk installation. This will let people at least play with FFA and may be all that some small offices need.

I'm naturally intrigued by the FoIP side of the offering, which the FAQ dives into in a bit more detail. Unfortunately I've been doing some work on my home network and my Asterisk installation isn't operational right now, but I expect I'll be bringing that back online soon and expect I'll then be experimenting with this a bit more as well. So if I could get termination with a SIP service provider who offered T.38.... could I at least solve the receiving side of the picture? (And yes, I can also solve that through eFax and a zillion other providers.) The sending side still requires some hardware changes on my end to scan it in...

Now if we can just make it ultimately as simple as sticking the papers to send in the document feeder and pressing Send...


If you found this post interesting or useful, please consider either subscribing to the RSS feed or following me on Twitter or identi.ca.


Technorati Tags: , , , , ,


Voxilla Tutorial - Running Asterisk in a EC2 Cloud

Long-time readers will know that I have been intrigued for a long time with what we now call "cloud computing" (and have written about it and spoken about it) and also continue to find the world of open source telephony interesting.

So naturally when I'm pointed to a step-by-step tutorial about running Asterisk in Amazon's EC2 cloud, I'm interested. :-) It's a nicely done tutorial and I look forward to seeing what people will do with it. (Unlike Mark Headd, who pointed to the tutorial in a tweet, I won't be trying it out this weekend, but I will be doing so at some point soon.)

Cool stuff...


If you found this post interesting or useful, please consider either subscribing to the RSS feed or following me on Twitter or identi.ca.


Technorati Tags: , , , , ,


Directory forming of Twitter users related to Telephony/VoIP/Asterisk/etc.

telephonytwitterdirectory.jpgDo you use Twitter and are interested in finding people on Twitter to follow related to telephony, VoIP, Asterisk, communications, etc? Well the folks over at the VoIP Users Conference have put together a website that provides a directory of twitter users related to those topics. If you'd like, you can add yourself using this form.

It's nice to see a directory like that, although it's unfortunate that you can't simply click on the person's twitter name to see their page. Perhaps this was done to counteract spammers because if live links were allowed the directory might be rapidly overrun with spammers looking for SEO. I don't know... the good news is that Twitter names are all short.

Naturally I added myself, both with my personal 'danyork' Twitter account as well as the 'voxeo' Twitter account I use for our blog posts and other communication.


If you enjoyed this post, please consider either subscribing to the RSS feed or following me on Twitter or identi.ca.


Technorati Tags: , ,


Clarifying how Asterisk could possibly be used as a Skype-to-SIP gateway

After my post yesterday about "Skype for Asterisk" (and the update post) and the potential it allows for SIP interoperability via Asterisk, I've received a few comments that seemed to interpret what I wrote as somehow indicating that the Skype announcement somehow meant that there was new "Skype to SIP" functionality in the "Skype for Asterisk" announcement.

Just to be clear, there isn't any new "Skype to SIP" functionality in the "Skype for Asterisk" piece announced yesterday by Digium and Skype. None.

It is purely a commercially-licensed software module (which most of us speculate will be a binary software module, i.e. we won't be able to actually see the code) that provides two-way connectivity from Asterisk to and from the Skype cloud. Skype users can call into an Asterisk system. Users connected to an Asterisk system can call out to Skype users. Users on the Asterisk system can also call to the PSTN (via what was called "SkypeOut") and receive calls from the PSTN (via what was called "SkypeIn").

That's it. That was the announcement yesterday. Period. End-of-story.

However, the point I was making in my post yesterday was this announcement has the potential to turn Asterisk into a two-way "Skype-to-SIP" gateway. Asterisk - with the "Skype For Asterisk" module installed - could be deployed into a network where it could provide interconnection between Skype users and SIP users.

Let me explain...

ASTERISK INTERCONNECTION EXPLAINED

Asterisk has a large number of "channel drivers" that allow phones and systems to be connected to the Asterisk system via various protocols. These systems include:

  • SIP phones, systems and clouds
  • Cisco phones and systems (via the SCCP channel driver)
  • H.323 phones and systems
  • MGCP phones
  • other Asterisk systems (via the IAX channel driver)
  • the PSTN and legacy TDM systems (using the various hardware channel drivers)

There is also an unsupported UNISTIM channel drivers to go into Nortel systems and various other channel drivers out there. (I know of someone who is using a radio channel-driver to interconnect two-way radios to Asterisk.)

The beautiful part about Asterisk is that you can simply and easily interconnect all these systems because the individual endpoints simply become extensions in the "extensions.conf" file inside of Asterisk. So extensions that use the SIP channel can call in and connect to an extension that uses H.323. H.323 endpoints can call Cisco IP phones. Cisco IP phones can call an IAX softphone (there are some out there). Any of those different types of endpoints can call the PSTN through either hardware cards or through SIP or IAX trunks. Graphically, the pictures looks something like this:

asteriskendpoints.jpg

Although perhaps to better depict common scenarios, here's how it could look if you include various options for PSTN connectivity:

asteriskinterconnect.jpg

DIVING A BIT DEEPER

To dive a bit deeper into Asterisk configuration, when you decide to use one of the various "channel drivers" you essentially perform two steps:

  1. Modify the channel driver configuration file
  2. Add appropriate extensions or trunk settings to the 'extensions.conf' file.

Now you might be doing this by editing the configuration files directly using your favorite text editor - or more likely these days you are probably using one of the many different graphical user interfaces to do the actual configuration modification. In the end, the config files are being modified in some manner.

For the SIP channel driver, the config file is the aptly named sip.conf and in the file you enter information such as:

  • Connection information to a SIP Service Provider if you are doing a "SIP trunk" for PSTN connectivity (username, password, connection details, etc.)
  • Connection information to an IP-PBX or application server to which you are connecting via SIP
  • Information about the different SIP phones connected to your Asterisk server

Note that you could use the SIP channel driver to connect individual SIP phones to Asterisk; you could connect your Asterisk server to the PSTN via a SIP trunk; or you could do have both SIP phones and a SIP trunk. In fact, you can have multiple SIP trunks. You could connect over to an existing IP-PBX or to an application server that supports SIP. Asterisk is incredibly flexible in the way that you can configure it.

The second step is to configure the extensions.conf file to have use this channel driver. For instance, to make it so that all calls starting with the digit "9" go out a SIP trunk, you might do something like this:

exten => _9.,1,Dial(SIP/${EXTEN:[email protected],30,r)
(Taken from the voip-info page on sip.conf)

To configure actual phones as extensions, you would enter something like this in extensions.conf (taken from the sample file on an Asterisk install I have around):

exten => 6245,1,Dial(SIP/Grandstream1,20,rt)   ; permit transfer
exten => 6245,1,Dial(SIP/Grandstream1&SIP/Xlite1,20,rtT)
exten => 6361,1,Dial(IAX2/JaneDoe,,rm)         ; ring without time limit
exten => 6389,1,Dial([email protected])

If someone dials one of these extensions, it would then ring the associated phone. Note that for extension 6245 it will actually ring two different phones. Note also that the phones will have to be configured themselves to register with Asterisk, etc.

Now, Asterisk dialplan creation is an enormous subject in and of itself... but this is the general idea. You configure the channel drivers to support connections to either (or both) service providers or endpoints (phones) using the given protocol. You then configure actual extensions or trunk connections in the extensions.conf file.

SO HOW *MIGHT* THIS WORK WITH 'SKYPE FOR ASTERISK'?

Now we don't have any information yet about how this new channel driver would work... but most all of the channel drivers work in a similar fashion. I would expect that there will be something like a skype.conf file that will let you establish what Skype user names are associated with the Skype For Asterisk module. You will probably need to include the login credentials, any restrictions on access (by Asterisk users), etc.

Separately, in the extensions.conf file, you will wind up probably putting in something like this to enable outbound connections:

exten => _9.,1,Dial(SKYPE/${EXTEN:[email protected],30,r)

Or something like that. Now all calls that start with 9 will go out the "Skype trunk".

If you wanted to associate a user ID on the Asterisk system with a Skype ID, you would possibly add something like this:

exten => 6400,1,Dial(SKYPE/danyork,,rm)

Now any calls to ext 6400 on that Asterisk system would go to my Skype ID. You could imagine getting a bit fancier with something like this:

exten => 6400,1,Dial(SKYPE/danyork,,rm)
exten => 6400,1,Dial(SIP/1234,,rm)

which would have the effect of calls to ext 6400 going to both my Skype ID and a SIP phone.

So Skype can just be another way for inbound or outbound calls to enter the Asterisk server - and Skype users can simply be added as extensions on an existing Asterisk server.

Returning to my graphic above (gotta love quick graphics via Skitch!), the picture now looks like this:

asteriskinterconnectwskype.jpg

The "Skype For Asterisk" module allows two way connectivity into the Skype cloud and also the use of Skype as another mechanism for PSTN connectivity.

SO WHAT ABOUT "SKYPE-TO-SIP"?

The point of my post yesterday was now that two-way Skype connectivity becomes just another channel driver for Asterisk, you have all sorts of interconnection possibilities. As a standalone system, you could connect SIP phones on an Asterisk server out to the Skype cloud.

You can also deploy Asterisk as a "SIP-to-Skype" gateway. You could connect an Asterisk box via SIP to an existing IP-PBX and enable connectivity from that IP-PBX to Skype users. You could even be incredibly stupid (given existing security issues) and connect your Asterisk box directly to the Internet and provide a SIP-to-Skype gateway. (If you aren't aware of the SIP security issues, listen to any of my Blue Box podcast episodes or read the VOIPSA blog.)

If the Skype For Asterisk module delivers the functionality it sounds like it will, there are a whole range of possibilities now available for interconnection between the Skype cloud and other VoIP systems simply by putting an Asterisk box in the middle.

We'll see. All of this is mere speculation until we can actually use the Skype For Asterisk module.

Technorati Tags: , , , , ,


More on how "Skype For Asterisk" actually works...

As per usual, Tom Keating gets us more details on the "Skype For Asterisk" beta program I just wrote about... in his update post, Tom explains how it will work:
Well, on an inbound call to your Skype username, both your Skype desktop client rings (if running) and your Asterisk IP phone rings. You can take the call using either your PC's Skype software or your IP phone. Similarly, if someone calls your SkypeIn number, both will ring. Further, if someone dials your corporate auto-attendant, and then enters an extension number, it will still ring both your Skype client and your regular IP phone.

His post discusses how you can assign Skype names to Asterisk call queues and then includes this intriguing text:

When asked how Skype IP-PBX gateway appliances are affected by this announcement, Stefan Öberg VP & GM Telecom for Skype said, "The appliances that are out there now have built their solutions on standard Linux client. They've used the public API on that and basically are running many instances of Skype Linux client. Obviously, that's not the way the Linux client was meant to be implemented. So those solutions are not scalable or reliable to the extend that businesses would want them to be. The difference with this solution is that we've built it together to scale and to be reliable."

If I understand this correctly, this has the potential to be huge! As far as I know, all the existing "Skype-to-PBX" solutions use the rather kludgey solution of basically running multiple instances of the Skype client on the system. Each "Skype trunk" is essentially just a separate instance of the Skype client. As Stefan Öberg indicates, there are serious scaling issues with this approach.

However, this has been the only options developers have had! Skype has not - prior to this (if it works how it sounds like it works) - provided any "back-end API" that would let a system interact directly with the Skype P2P cloud. The only API developers have had is the client API that lets them interact with a local Skype client. So that's how all the "Skype-to-X" products have been built.

Does this mean that Skype has exposed some additional API that is available through this Skype For Asterisk product? If so, this could be VERY interesting...

Kudos to Tom for providing the updated information.

Technorati Tags: , , , , ,


Does "Skype for Asterisk" tear down some of Skype's walls? (and allow SIP-to-Skype?)

skype_logo.pngdigiumlogo.gifDoes today's announcement of a beta version of "Skype for Asterisk" signal a way to tear down some of Skype's walls? And does this move Skype along toward better SIP interoperability?

The announcement happened out at Astricon today and TMC's Tom Keating had one of the first posts about it - updated with info from TMC reporters who are at Astricon. Both the Digium news release and the Skype blog post highlight these four points that Asterisk users will be able to do:

  • Make, receive and transfer Skype calls with multiple Skype names from within Asterisk phone systems, using existing hardware.
  • Complement existing Asterisk services with low Skype global rates (as low as 1.7€¢ / 2.1US¢ per minute to more than 35 countries worldwide).
  • Save money on inbound calling solutions such as free click-to-call from a website, as well as receive inbound calling from the PSTN throughcreate virtual offices all over world using Skype’s online numbers.
  • Manage Skype calls using Asterisk applications such as call routing, conferencing, phone menus and voicemail.

I want to focus on one part of the first bullet. Recall that in my last post about Skype and SIP interoperability I talked about how Skype currently has one-way connectivity via SIP to external SIP clouds. A SIP system can receive calls from a Skype user, but cannot make calls into Skype's cloud. (My employer Voxeo's application platform is one example.) Yet here's the first bullet of the announcement:

  • Make, receive and transfer Skype calls with multiple Skype names from within Asterisk phone systems, using existing hardware.

Ta da... two-way connectivity in and out of the Skype cloud.

What's more, because Asterisk is really a telephony platform that speaks multiple protocols, you could easily see the ability to interconnect into other systems... including SIP clouds. Here's a quick graphic showing how it could work:

skypeforasteriskinterop.jpg

I changed the color of the arrows to and from the PSTN to reflect the fact that PSTN connectivity could really occur from either the Skype cloud or directly from the Asterisk system. Conceivably you might have an Asterisk system with existing PSTN connectivity (through either hardware cards or SIP or IAX trunks) that only wants to use the Skype For Asterisk channel driver to communication to/from Skype users. On the other end, Asterisk can connect to systems running the protocols of SIP, H.323 or SCCP (Cisco Skinny), as well as whatever other protocols Asterisk sysadmins might add to their Asterisk box. They could be on-premise systems such as IP-PBXs or they could be hosted systems or "clouds" of network connectivity.

Now what is really being announced today is that you can register to join the beta program for Skype For Asterisk. You cannot download the code yet. You can't inspect it to see how it works. All we can do is speculate and sign up to join the beta program (which, it indicates, may involve an NDA).

Still, it's an interesting move and it will be intriguing to see how this actually works.

I'd like to understand, though, how this is or is not similar to what has been offered by Chanskype for a few years now. Is this the same code? i.e. did Skype buy or obtain the Chanskype code or team? Given the lack of any info in that regard in these announcements, I'm inclined to think it is separate code.... but how does it compare?

We'll have to see as the code becomes available. Tom Keating did say in his post that it will not be available as open source code but rather under a commercial license.

In the meantime, congrats to both the folks at Digium and Skype for making this happen - and I look forward to seeing it in action.

Technorati Tags: , , , ,


Has Asterisk NOT "crossed the chasm" for developers? (Key links to read for open source)

jayphillips.jpgJay Phillips is frustrated. He passionately wants to see open source telephony enjoy success all around the world. Yet right now, when people think "open source telephony", they almost always think of Asterisk... and Jay sees too many challenges for developers embracing Asterisk. Jay, the creator of the Adhearsion telephony framework for Ruby, has spoken about this at recent conferences and pulled together his thoughts in a lengthy post earlier this week entitled "What We're Not Admitting about Asterisk".

Jay argues that Asterisk has not crossed the proverbial chasm for developers and outlines some of the issues he sees.

What is perhaps most interesting about Jay's post is the equally lengthy response by Asterisk creator Mark Spencer. Mark responds to Jay's various points and in doing so provides some good insight into his views on Asterisk's connections to developers, APIs, etc., as well as the differences between the markets that Digium, the company, goes after versus the "market" of Asterisk, the raw telephony platform.

Both Jay's article and Mark's response are definitely worth reading. I'm friends now with both of them and they both bring immense passion and energy to the world of open source telephony. Ultimately they both make the point that we need better tools for developers to create voice applications. This kind of dialogue is great and will only result in better tools in the end. Please do check out the posts.

P.S. Thomas Howe has also weighed in with a post saying this is a clash in world views, which also makes for good reading. I agree with Thomas that we are in a transition into a world of "web-as-a-platform"... basically a transition "into the cloud"... and so we do need "web-centric" interfaces and APIs. But I disagree with Thomas that Asterisk is "tired". To me, Asterisk is just... well... "plumbing". Asterisk is a telephony platform, as is FreeSWITCH... as is Yate... as are all the commercial IP-PBXs. Asterisk is an open source component of the rewiring of our communication infrastructure that we have underway right now. I think anyone, including Mark, would agree that Asterisk has technical challenges it needs to overcome but I, for one, am not ready to write it off yet.

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