v3, 2.8 and Custom Contexts

“The v3 ISO is almost here…” and then the schedule slips again. If you’ve been around software long enough you know that release dates always slip. Luckily, unlike some of the big software giants out there, we try not to slip our schedules by years πŸ™‚ We also have an excuse, it’s Open Source, which makes it a bit harder to control the resources when almost all of them are community members donating their time to the project while often trying to run their own businesses as well! Here are some updates on the v3 ISO, version 2.8 and a popular third party module in need of help, Custom Contexts.

v3 ISO

The v3 code is in pretty good shape as Darren pointed out in his blog last week. There are a handful of bugs that are being worked but what’s a few bugs… and there is an upgrade capability in v3 to update the code, a precursor to its future “Module Admin” capability. For now the biggest delay is simply getting the ISO processes built so we can get some ISOs out to you.

Since v3 will run both Asterisk and FreeSWITCH we will have two ISOs initially, at least until we can get fancy to allow Asterisk or FreeSWITCH to be chosen during ISO install time. We seem to be in good shape on the Asterisk front. Bryan (GameGamer43) with Schmoozecom.com has offered to leverage their ISO process used for their robust commercial products and put together a CentOS 5 based ISO since they have all the required Asterisk RPMs build and readily available to generate one.

We are a little lacking on the FreeSWITCH front though. No one has stepped up to offer help in generating the FreeSWITCH RPM for the ISO. Talking with the great folks over in “FreeSWITCH Land” they do have a spec file that should build the required RPMs but we are looking for someone who is willing to do that so that we can get them over to Bryan to spin up the FreeSWITCH version of the v3 ISO. If you would like to help move things along, please let us know or even better, send us the RPMs!. (PM me if this is something you would be willing to help with!) We’ll get it to the FreeSWITCH team as well so that they can make it available to anyone.

2.8 Progress

The 2.8 version has been moving along quite nicely and I’m not too far off from making it available to a larger audience. We originally had it pegged for the middle of May but just moved it into June to deal with the need to balance resources between v3 and 2.8, and get the Company Directory module out and tested which has been moving along but not yet finished.

No Custom-Context in 2.8

The early beta testing drew attention to the fact that one of the popular third party modules, Custom Context, will no longer function due to changes we made in the outbound routing section of FreePBX. I previsouly warned about this and it was confirmed with the beta testing of 2.8. This has resulted in quite a few threads being spurred both in our forums as well as those of other distros that package FreePBX (whether they call it FreePBX or not…).

One of our community members, kenn10, decided to take it upon himself to see if he could rally up support from the community to find someone (with my help) to make the required changes and migrations to keep Custom Context in the mix given how important many community members indicated it was in the various forum discussions. I have helped facilitate his efforts by creating a dedicated page and setting up a paypal account to facilitate the collection of needed funds in order to get the module updated so that it continues to work in 2.8 and beyond. I’ve also spent a good amount of time reviewing what is needed to move it forward. (Of course I also contacted the original author to see if they were available to do the modifications (for pay or for free) but unfortunately they indicated that they are having trouble finding time to even sleep these days!)

The reaction has been a bit luke warm to this point considering some of the strong sentiments expressed of the importance of custom context to many resellers and businesses, so kenn10 is waiting patiently to see if the required funds can be raised in order to move forward with the required work. I’m hoping that this blog post may make a few more of you who are making a living off of FreePBX come forward and help make sure that you can continue to use custom context going forward.

If this module is important to you and/or your business, please help yourself and make sure it does not go End of Life! Here is the link with more information and where you can contribute to its future.

Custom Context Bounties Page

For now it’s time to sign off, I’ll be back in another week or so with more.

Philippe – on behalf of the FreePBX Team!

Hello from the FreePBX v3 coders!

Hi folks,
I haven’t posted a blog entry on here previously, so let’s start with an introduction. My name is Darren Schreiber and I’m the creator of the FreePBX v3 software. I wanted to take a chance to update everyone on the state of affairs regarding v3, as there have been some developments, questions and posts that make it clear it’s time for a v3-specific update.

v3 is alive and well and is still actively being developed. We are just a couple weeks out from what we are titling the “FreePBX v3 General Preview”. Consider this more mature than a beta but not quite a production release – we’re really just looking for bugs at this point – but we believe much of the core functionality needed to run a small or medium sized PBX is now there. This includes device setup, multi-user conferencing, voicemail, number management, general call routing, ring groups and basic trunk setup. FreePBX v2 has a history of having extremely reliable upgrades, so we don’t want to tarnish that reputation by releasing too early. Therefore, we’re not *quite* ready to call this production-ready, although it is getting close. We also believe the foundations are there to build features that are missing and to push out updates to folks when a new feature comes along.

Now, let’s take a closer look at what’s new.

[b]Look & Feel[/b] Some of you have not seen the FreePBX v3 interface since we revealed it last year and it’s changed a tremendous amount. Just to show you how much we value your feedback, we’ve completely redesigned the core skin, the colors and the navigational approach. This has resulted in a cleaner look and has made it easier to get around. The most complained about issue was the scrolling navigation bar at the top – so now, it’s gone! It’s been replaced with a rich, category-based menu bar that groups similar items together.

Take a look at some of the screen shots of the new interface:

[img_assist|nid=10258|title=FreePBX v3 – Device Manager|desc=The device editor – note the new navigation bar at the top!|link=none|align=center|width=640|height=403] [img_assist|nid=10259|title=FreePBX v3 Screenshot – Auto Attendants|desc=Auto Attendant Editor|link=none|align=center|width=640|height=470] [img_assist|nid=10260|title=FreePBX v3 Screenshot – Ring Groups|desc=Ring Groups|link=none|align=center|width=640|height=388] [img_assist|nid=10261|title=FreePBX v3 Screenshot – XML Editor|desc=FreeSWITCH XML Editor|link=none|align=center|width=640|height=295] [img_assist|nid=10262|title=FreePBX v3 Screenshot – Help Popups|desc=Help Popups|link=none|align=center|width=640|height=320] [img_assist|nid=10263|title=FreePBX v3 Screenshot – Destinations|desc=v3 – Destination Popups|link=none|align=center|width=640|height=192] [img_assist|nid=10266|title=FreePBX v3 Screenshot – Destinations Picker|desc=Pick a destination and routing options|link=none|align=center|width=640|height=227] [b]Development Progress[/b] Under the hood, there is some really neat stuff in the new v3 for both Asterisk and FreeSWITCH!

[i]Asterisk[/i] We should first note that the Asterisk driver is now fully built and should be functional. We are really in need of a few testers here, as there are likely many bugs to be found. All general features we currently expose (listed earlier in this article) are now available for Asterisk. Please help us play with it!

For Asterisk, we’ve heavily utilized the AMI interface in Asterisk 1.6 (and higher) which allows for writing of configuration files remotely. While we haven’t yet exposed a way to configure the Asterisk host IP, you can do it within the PHP files for now. [i](HINT: modules/asterisk/config/asterisk.php)[/i] This feature lets you keep your web server, database and FreePBX interface on one machine (in the cloud, if you wish) and your actual Asterisk box on a completely separate machine. Each time you make a change in the FreePBX v3 interface, the FreePBX software connects via TCP to the Asterisk box’s AMI interface, requests the change be written to disk, and records it in the local FreePBX database for consistency. In this manner you could use an ALIX or other small board running Asterisk at a client site while keeping your FreePBX GUI interface in the cloud. With some reasonably minor tweaks, this opens the door to all sorts of neat enhancements – like having a change in your config automatically propagate to multiple boxes, or splitting configuration options between clients. You could also make “throw-away” style Asterisk boxes – when you need a new one, you just install Asterisk on it and point an existing FreePBX node to the box, and the config could be re-generated fully. The possibilities are somewhat limitless. You could alternatively rip out just the AMI library from FreePBX v3 for use in your own program – it’s completely independent.

The AMI-based driver also follows the same design pattern as the FreeSWITCH driver. It changes only things it actively “understands” and is intending to modify. If you’ve added dialplan sections or configuration options in other files, we don’t touch those, we just work around them. This adds some overhead and can be turned off if necessary.

[i]FreeSWITCH[/i] For FreeSWITCH, we’ve spent a lot of time working on the SIP Interface module. We admit it’s still a bit too confusing, but once you learn it, you’ll understand that it empowers you to operate multiple clients on the same box, giving each client their own IP/port combo to operate on and allowing for the separation of call routing between clients. This is an important foundational piece of multi-tenancy and we’ll likely do a full tutorial on how to use this feature soon.

There are a host of other enhancements and under-the-hood goodies so I’ll try and post them periodically on this site going forward.

[b]Bugs, Chatter, Moving Forward…[/b] We have a laundry list of bugs still in the hopper over at http://www.freepbx.org/v3/report/3. We’re hoping to finish those up this week and next. We’ll then re-build and re-post an ISO for easy installation and setup, including some demo data pre-loaded. This should let everyone easily test out (and even deploy, if you’re a bleeding-edge type of person) an install of FreePBX v3.

I’ve seen some chatter in the community related to why v3 has “taken so long” to get a first production-ready release out. We just want to remind folks of the ambitious goals with this project – not just “getting it working”. We’ve put a tremendous amount of time and energy into mapping out how we want things to grow going forward to ensure they don’t become spaghetti code. FreePBX v2 was previously much more organic, but even it took over five years to get where it is today. So v3 will likely still need some time under it’s belt before it’s as mature. In addition, we’re building our own ISO, making things skinnable, supporting multiple switching engines and providing other such features that were never a part of v2. So there’s a tremendous amount of lower-level programming happening that still has yet to be exposed. That said, we are close to a release, so just a little more patience and we’ll get you on your way.

[b]Licensing[/b] Last but not least, we wanted to let everyone know that we’ve changed the licensing on FreePBX v3. FreePBX v3 is now licensed MPL. This license is slightly more open then our previous selection of the CPAL license, but it removes any attribution requirements on the interface/GUI pages. The main drive for doing this was to ensure our license is inline with others out there and is easily recognizable and understood. MPL is a much more popular license, although we may also dual-license FreePBX v3 down the road if we get enough requests for alternative licenses.

[b]Join Us![/b] We think we’re off to a great start – but we’re looking for more help. If you think you can participate in any of the following areas:

– Programming PHP (any skill level)
– Testing Asterisk / FreeSWITCH installs
– Building an ISO
– Setting up automated builds
– Building CSS-based skins (and general graphics work)
– Verifying language translations
– Writing documentation

or would like to just generally join in with our work on v3, please visit us at:

[url=irc://freepbx-dev@irc.freenode.net]#freepbx-dev[/url] (on irc.freenode.net)

or drop me a line at [email]d@d-man.org[/email] [b]Special Thanks[/b] The two other largest contributors to the project, by far, are Michael Phillips and Karl Anderson. I want to take the opportunity to thank these two individuals for their fantastic work and contribution to making v3 a reality.

A special mention also goes to our quiet code reviewer Dale Hege (fdhege). While he idly sits in the channel, if we ever check anything in that’s broken, he politely reminds us that he’s watching by submitting a patch almost instantly.

[b]In Closing…[/b] I look forward to getting the next generation of FreePBX out there to the world as quickly as possible – and we’re closer to our first release then ever before!

Darren Schreiber

FreePBX and Emergency Operations – Guest Blog

The great thing about FreePBX is not just the software but the great community that comes with it. There have recently been some posts thanking “me” and the FreePBX development team for this great product. The thanks are very much appreciated and when I hear some of the real world stories that constantly surface I am always humbled as to what all of you end up doing with FreePBX.

The fact of the matter is that FreePBX is much more than the software but very much the great community made up of all of you. Without all your great ideas, contributions big and small, forum posts and everything else, we would not have what we do today!

So, with the community in mind, and the fact that the Maui beach is outside calling me (leaving no time to write this week’s blog…), I’d like to share a writeup by one of our very active contributors and OTTS Graduates, Bill/W5WAF…

FreePBX and Emergency Operations
How to be a Hero Without Really Trying
by Bill/W5WAF

I first became aware or asterisk in mid 2004 and began studying up on it. By Late 2004 I had convinced the it director here at the City of Vicksburg to let me spend about $1000 to set up a basic asterisk system and by March of 2005 I had a box of shiny new computer parts, a digium 4 port FXO/FXS card and a half a dozen SIP telephones.

In early April I had a system up that allowed calls from a couple of phones across the room. I was ready for the big step!

I was able to scarf up a couple of POTS lines that weren’t being used and tied them into the box, and behold! I was able to make calls in and out. My next strategy was to set up the phones on the IT department staff’s desks and let everyone play. Meanwhile, I began doing a justification for switching to a VoIP phone system.

Everything went well with the test. The users were pleased and I was ready to spring the justification onto the money people. My costs basically was for a $30,000 investment with an ultimate savings of around $7,000 per month. Ongoing costs would average $750 per month for the PRI.

As I said, I was ready to present my plan when we had a visit from a β€œlady” called KATRINA in late August. Although we are about 200 miles inland, we still had hurricane force winds power outages, but our biggest impact was the influx of refugees from the devastated area. There was never an accurate count, but estimates ran as high as 25,000.

Mainly to deal with this refugee influx, out city administration decided to set up a command center at the Vicksburg Convention Center which was also serving as a shelter. At about 2:30 in the afternoon, the day after KATRINA the Mayor burst in the IT offices and said β€œI need 5 phones in the command in an hour.” I looked at my boss and grinned.

The convention center is on the city’s internal fiber network, so it was an easy matter to reclaim all of the test phones from the IT staff and move them to the Convention Center. The mayor had his 5 phones in an hour. They served well for the nearly 4 weeks the command post was open. It is interesting to note that we had a National Guard medical unit on site. They wanted a couple of POTS lines brought into their command post. It took over a week for Ma Bell to get them in.

Because of the success here and the numbers I presented in the justification, I was authorized to proceed with a full fledged VoIP system.

Since then, we’ve had several emergencies, such as Flooding along the Mississippi River, an 8 inch snowstorm (OK it was only 8 inches, but this IS the deep south), In both of these we utilized the announcement capabilities of the system to record messages for the public and employees.

On Friday March 26, 2010 at about 9:30 am I received a call from the Emergency Management director to report to her office immediately. As I arrived there, the City Public Affairs Officer was also walking in. We both realized that this wasn’t good.

We were briefed on the situation, which was that a landslide at a construction site had placed the City’s main water main was in jeopardy. If this line failed, it would mean the entire city would be out of water.

We were asked to set up the command post in the IT training room. No problem since we have the phones and necessary POE switch stockpiled for just such an event. Then it was forward that phone here, this phone there, these lines to cell phones, set up a public announcement line, etc. The point is that the persons requesting these actions have come to expect us to easily be able to do this, and in fact, we are thanks to FreePBX.

WE WOULDN’T HAVE BEEN ABLE TO DO THIS WITH MOST PHONE SYSTEMS. Certainly not with the CENTREX system FreePBX/Asterisk replaced.

So here we are. Being congratulated and thanked for doing such a great job in an emergency situation. When it was so easy to do. Didn’t break a sweat, thanks to FreePBX.

Oh…one more thing…please don’t let my bosses know how easy it all was. It’ll destroy my mystique.