FreePBX 2.6 Final, SIPSTATION Module and other progress

A lot has been happening and we have been so busy it seems the only time to escape and get some information out is getting on a plane. (And that is quickly disappearing with in flight internet, luckily not available on today’s flight…).

A few things have been happening since I last blogged and it’s time to give a quick update. We brought 2.6 out of beta just in time for Astricon 2009 two weeks ago. This was a particularly exciting Astricon. It was both the 10th Anniversary of Asterisk and the 5th for FreePBX. We hung out on the exhibit floor in our Open Source booth with some great props (thanks Sledge!). (I’ll try to get some pictures up here in the next day or two).

The 2.6 release had over 6000 users at the time we took it out of a release candidate! (I still need to generate the final tarball and update the site in a few place, sigh, but you can update through the online Module Repository for now) It contains quite a few new features and a handful of “hidden” changes that I always refer to as internal plumbing upgrades. One change we introduced is the Extended Repository. This provides a mechanism for us to expose some of the more common “un-supported” but otherwise popular modules that are part of FreePBX but have required finding them and manually installing them in the past. There are also a handful of new modules so if you haven’t upgraded yourself from 2.5 or earlier releases, several thousand of your fellow community members should have paved the way for you to have the confidence of pushing that upgrade button.

We are also excited to push out a new module that interacts with our FreePBX.com SIP Service, SIPSTATION™ that is available for purchase online. The service has been really well received and has been a great way to get access to the best SIP Service available (powered by Bandwidth.com’s purpose built VoIP network) and support the project at the same time. You can now use our new sipstation module to auto configure your services once purchasing them online from the portal. In it’s first version, the module provides a very easy ability to connect to our redundant gateways, provide realtime diagnostics on both server side and client side status, and a central dashboard and control point to easily configure your service into existing outbound routes as well as setup your DIDs and outbound CIDs, all in one central location. It even has a really nifty Firewall Test diagnostic which helps you determine if your RTP media ports are properly forwarded from our firewall, since most of us put our systems properly behind a firewall and have to deal with the realities of NAT.

This is the first step in closer integration that we will build on bringing client side control of services that you obtain through our offerings. We will expand on this to bring features like PSTN failover numbers per DID directly configurable from within FreePBX and other ideas that are on the drawing board. If you haven’t tried our service and you want to make your life easier, here’s another reason to give it a go!

On the FreePBX v3 front, a lot of progress is being made though it continues to be in a developer release state. The Asterisk driver is well on its way and work continues on both the Asterisk and FreeSWITCH front. This has been really exciting as it’s an important milestone in proving out the design of writing a GUI and framework capable of supporting multiple engines, a goal that has been in place since early 2006 when AMP was renamed to FreePBX and introduced the first generation of modular architecture present in the 2.x version.

For now, it’s time to sign off (at least that’s what the flight attendants are telling us, in preparation for landing…) If you haven’t pulled the plug and upgraded to 2.6, now’s the time! If you want to hop on the development train of v3, come chat in the #freepbx-dev IRC channel. Lastly, if you want to see a really cool module (which is just the beginning), go sign up for some service, get your keycode and activate the SIPSTATION™ module to get a glance of the ease of use that tight integration can deliver!

Philippe – on behalf of the FreePBX Team!

FreePBX 2.6 Beta 2 – Come Join the Fun

If you don’t keep an eye on the regular activity via the FreePBX Timeline or other means you may not be aware of the immense activity that has been going on with FreePBX 2.6. (You mean you don’t have that bookmarked as your home page because you have real work to do?:-)

FreePBX 2.6 Beta 1 has been available for download for quite some time and so far has proven to be quite reliable. We’ve been a bit stealthy in announcing it while spending a lot of time housekeeping so that you can get a good picture of what its current state is.

You can click on the 2.6 Milestone to get a good snapshot and summary of where things are and what the current state is, and from there you can drill down to see all the tickets associated with 2.6. At the time of this writing, we show 421 closed tickets (feature requests and bugs) and only 14 open (97% complete).

The Milestone gives the best summary but some highlights included in 2.6 are provided here. One exciting addition is the option to view an Extended Online Module Repository which not only includes the standard (and new) modules that are regularly supported by the Core FreePBX team, but also includes several popular and commonly requested modules that are available but may have been hard to find in the past and more tedious to download. Some of the new modules (including those available through the Extended Repository) include :

  • Asterisk SIP Settings & Asterisk IAX Settings
  • Provides the ability to manage common global SIP and IAX settings that have often been confusing and error prone to do in configuration files, and includes a handy auto-configuration helper to determine your sip_nat.conf related settings (and further eliminates the need for that file).
  • Outbound Route Messages
  • Allows the ability to override the default “All Circuits Busy” message encountered when all trunks fail, and allows for explicit messages to be played for Emergency Routes.
  • Weak Password Checks
  • Provides an auditing function for all your SIP and IAX passwords to help harden your system and protect it from the many automated scripts on the internet seeking out and exploiting such systems. Because of the security implications, this module was also introduced earlier into version 2.5.
  • Bulk Extensions & Bulk DIDs
  • Allows you to manage or provision large quantities of users and DIDs from a spreadsheet format.
  • Custom Context & Route Permissions
  • Provide some advanced functionality to limit routes or other features and capabilities to different extensions.

There are many other enhancements such as FOP 0.30 Updated to work with Asterisk 1.6, Virtual Extensions, many Queue updates and more. Some are highlighted in the 2.6 Milestone but many more are buried in the tickets or by looking through the GUI. As always, the best way to determine what is new is to load up the new version and start to explore, and at the same time, help us validate to move it into a released state!

In the mean time, for those of you exploring the “bleeding edge”, progress on FreePBX 3.0, which was announced earlier this month at ClueCon, is going great! It still remains very much a developer release, with a developer ISO currently available to check it out, but there has been a lot of dev interest which you can observe if you stop by the #freepbx-dev IRC channel (please keep in mind that channel is for development related questions and discussions, #freepbx remains the standard User channel).

For now, please hop on board and help get 2.6 out the door!

Philippe – On behalf of the FreePBX Team

FreePBX v3 – Come Help Us Shape the Future

We are super excited to announce immediate availability of the FreePBX v3 Developers Preview and invite you to get involved to help make this the best PBX application ever! We’ve taken FreePBX’s 5 years of experience plus tons of user feedback, and merged this with the TCAPI project (announced last year at ClueCon) and drawn on some great contributions from the Bandwidth.com Phonebooth Project to create a great foundation for the next generation of FreePBX!

FreePBX made its debut in October, 2004 as the AMP project (Asterisk Management Portal) but quickly changed its name to FreePBX in anticipation of new telephony engines coming down the pipe. At that time we adopted a new modular design which resulted in its proliferation and wide community contributions that continue to be strong today. FreePBX has a lot to be proud of as it has become the defacto PBX interface in this space with millions of downloads and an installed base counted in the hundreds of thousands!

Because of the organic nature of its very rapid community driven growth, FreePBX has developed into a very complex project making it challenging for new developers to get involved. We are really happy to announce the great efforts that have gone into creating a very developer friendly foundation for this new release. We approached the changes in v3 with some of the following very important goals:

  • Make FreePBX truly telephony engine independent
  • A well thought out modular design building on the past 5 years of experience
  • Use of a true MVC framework
  • Choose best in breed components and build on top of them
  • Excellent documentation to encourage developer involvement
  • Easily Skinnable

After months of heavy evaluations, we are making available a developer platform to encourage wide participation to build this into the best platform ever! The initial release includes a FreeSWITCH dialplan generator with FreePBX thanks to the great expertise brought on with the TCAPI project! We are super excited to see the development of other dialplan generators soon and with such a great development community available, Asterisk work is already under way and we hope others will be on board quickly!

In addition to merging of FreePBX, TCAPI and Phonebooth, we have picked Kohana, Doctrine and jQuery as core components to realize our design goals. Kohana is an MVC framework that the project has been tracking for a couple of years as one of the core FreePBX developers was very involved with its original development and made sure it evolved with the requirements critical for a future FreePBX version. Doctrine is a superbly capable ORM layer that provides significant advantages over the native offerings in Kohana, and has replaced Kohana’s native ORM using facilities in Kohana designed for this purpose. The jQuery JavaScript library is already used in FreePBX today and has widespread adoption across the industry.

You can find LOTS of great documentation and examples on the project wiki as well as a fully functioning ISO for download coming soon to get you started evaluating and contributing to this great project!

We are super optimistic that our efforts to make this project easily accessible to developers will assure its rapid evolution and we look forward to meeting you on the IRC (#freepbx-dev) and Forums. In the meantime, FreePBX 2.x has a 5 year head start so it’s still going to take some time for this new version to catch up with comparable features and stability. Therefore, we are simultaneously announcing the formal beta of FreePBX 2.6 to be released by the end of this week (and has been available from SVN for quite some time). This will assure the current FreePBX v2 installed base is strongly supported while v3 quickly evolves.

We are super excited to be bringing so much great stuff to this fantastic world of Open Source Telecommunications which continues to disrupt the whole industry; we are looking forward that these new developments will further intensify that!

For questions about v3, see the FAQ.

Philippe – on behalf of the FreePBX team!

FreePBX Offers SIP Service

Not only does FreePBX provide one of the most feature rich PBXs in the market, with a price that can’t be beat, it is has also been the key for thousands of businesses to escape the lock that traditional telephony providers have had on them for so many decades.

With SIP phone service so readily available, it has led to hundreds of SIP VoIP telephony providers and with that, a lot of confusion as to what providers to use and who is going to provide reasonable service and be ready to support a FreePBX/Asterisk based platform, or who is even going to continue to be around as many have gone out of business. Having worked with hundreds of customer systems, I can tell you that the reliability and technical knowledge amongst these providers varies across the board and choosing who to use or trusting what they are telling you when things go wrong can be a daunting task for the customer base.

With the affiliation of Bandwidth.com as the primary corporate sponsor of FreePBX, we decided to help our customer base by developing a service that would be mutually beneficial to FreePBX users looking for reliable SIP trunking services and for the FreePBX project to gain a revenue stream to further support its development efforts. Bandwidth.com has one of the best VoIP infrastructures in the US market with a nationwide network and multiple points of redundancy across the country. They are also a strong and financially healthy company, with three INC 500 awards from 2005-2008, one of only nine companies to win the award three years running. Of those nine privately held companies, Bandwidth.com was the 4th fastest growing overall and the only Telecom firm on the list.

Although Bandwidth.com has been supplying one of the best SIP trunking services in the industry, they have not offered their service using instant online activation nor is it available to systems that do not have static IP addresses. In order to address this we have created a new FreePBX branded SIP Trunking service delivered on Bandwidth.com’s network with the goal of seamless interoperability with FreePBX and available for quick and easy activation so you can be up and running in minutes. Our initial offerings will target the commonly requested Unlimited 2-Way SIP Trunk service complete with one or multiple DIDs on an account and E911 enabled service across the US.

Although our service will not be free in the same way that FreePBX is, we are striving to create an excellent service at a reasonable price and will evolve the capabilities as new customers come online and provide feedback for what they are looking for. One example of “reasonable” is the cost of DIDs (inbound phone numbers). We have found that many providers serving SOHO and small SMB businesses charge $5-$15 per additional DID per month! There is no good reason for that and as a result, we will price our DIDs for only $1 each per month, so purchase as many as you need!

Are you looking to obtain top quality SIP service that runs on one of the best VoIP network in the country, is designed to work with FreePBX and will directly support the further development of the project?

Cisco Unified CM 6.1 to Asterisk and FreePBX SIP Trunks (Powered by Bandwidth.com)

One of the systems I manage is an 875 Extension Cisco Unified Call Manager(UCM). At the moment the system uses SCAN trunks for long distance calling. These SCAN Trunks are provided by the state of Washington and interconnect via a four port FXO card. Callers use a PIN to make long distance calls. This is some seriously old school technology and as such has sound quality to match.

So, armed with a four port SIP trunk account from Bandwidth.com, I set forth to make a SIP trunk from the UCM to Bandwidth.com. Long story short… it does not look like I can. I can set things up that should work, but don’t. There is an active TAC open with Cisco and when(if) we make it work then I’ll be back in a new blog entry.

Instead, we have “Cisco Unified CM 6.1 to Asterisk as SIP Proxy for Long Distance service.”

What is difficult to impossible with UCM is trivial in Asterisk w/FreePBX.

For Bandwidth.com I made a new SIP Trunk with the name of “freepbx” and here are the PEER Details:

username=myusername
type=peer
sendrpid=yes
secret=mypassword
qualify=yes
insecure=very
host=trunk.freepbx.com
fromdomain=trunk.freepbx.com
context=from-trunk

The Register name was formated like this:

myusername:mypassword@trunk.freepbx.com/360746XXXX
——-
For the UCM, I made a SIP Trunk named “ucm” and here are the PEER Details:

type=peer
context=from-callmanager
host=10.XXX.XXX.XXX
disallow=all
allow=ulaw&alaw
nat=no
canreinvite=no
qualify=yes

and in extensions_custom.conf, courtesy of Philippe, I added ( to have these calls bypass most of the dialplan logic )

[from-callmanager] include => from-internal
exten => _1NXXNXXXXXX,1,Dial(${OUT_12}/${EXTEN});
exten => _1NXXNXXXXXX,n,hangup

NOTE: the the “OUT_12” reflects the “freepbx” trunk and the last thing to do is allow anonymous SIP as the calls are routed w/o authentication from the UCM ( for now.)

From CallManagerToSIP

Now on to UCM.

From CallManagerToSIP

Since we are using no authentication to send calls from UCM to Asterisk this part is somewhat straight forward. First step is to define a “SIP Trunk Security Profile Configuration” making sure the “Outgoing Transport Type” is UDP, which looks like:

From CallManagerToSIP

Then we create the SIP Trunk, noting that the “Calling Search Space” in this case is “Reserved Incoming Calls” which basically does not allow inbound calls to go anywhere:

From CallManagerToSIP

The last three items to set up are the “Route Group, Route List and Route Pattern.”

Here is the Route Group:

From CallManagerToSIP

Here is the Route List:

From CallManagerToSIP

And since we need a way to direct calls out this SIP Trunk to make long distance calls, here is the Route Pattern so users dial “891NXXXXXXXXX” to dial out:

Bare in mind, I only want calls going out this trunk ( not in) so if you wanted bi directional calls… You would adjust the “Calling Search Space” in the trunk to allow it.

Otherwise, that is the setup that is live for now. Once an Authenticated SIP Trunk can be sorted out on the UCM, I plan to go directly to Bandwidth.com and skip the proxy.