Posts Tagged NewsPost

FreePBX 2.8 out the Door and 2.9 Coming Strong

freepbx

freepbx

We are excited to have the 2.8 release finalized and released for general availability. We moved to final release status at the beginning of this past week finishing the 2.8 Milestone with 332 closed tickets comprising of 231 bugs and 101 feature requests and similar. As always, a majority of the bug fixes are bugs from version 2.7 and earlier which are usually only addressed in the new release.

The efforts of 2.8 have been going strong since the beginning of March and we extended the beta testing period to assure a solid release since there were several changes in critical sections of the dialplan. There are way too many changes to recap all the added benefits throughout the release, some visible, some hidden. Some of the big areas that had substantial improvements include Outbound Routes (and some visual changes to outbound trunks), the newCompany Directory, some HA related enhancements to the Backup and Restore module, some significant scalability improvements to Queues, visual improvements to tool tips and “destination select boxes” thoughout and a host of other enhancements and new features across the system.

Join the 3900 systems who have moved to 2.8 so far and spend some time digging around to see what new features may be valuable to your system!

While we relish in a job well done on 2.8, the steam is already building up on work for 2.9! I mentioned plans around the Endpoint Manager and DAHDi configuration modules in last week’s blog and progress on that front continues to be strong! The definition of other features for 2.9 is still very much in the planning state as you will notice if you visit the 2.9 Milestone. We’ve had some suggestions in the forums and in tickets concerning other important areas people would like us to work on but more input is very welcome. If you already have feature requests in the ticket system, feel free to bump them onto the the radar scope. We will be looking though existing requests but they can be easy to miss when there are almost 500 tickets to sift through!

,

No Comments

High Availability backup and restore

In our never ending quest to make FreePBX the best phone system that doesn’t require money to buy (and even better than most that do cost money…), allow us to introduce you to the latest features in the Backup & Restore module. Last week we alluded to a critical server error, but left you guessing as to how we address that. This is a big step in that direction.

Along with the kind assistance provided by some customers of FreePBX Professional Support (in the form of time donated for a feature they needed for their business), the boys over at Schmoozecom Com (disclaimer: including yours truly) have once again surpassed all expectations. As of FreePBX 2.8, (currently in beta – more on that later) the Backup module includes built in support for High Availability clustering!

The following is an interview I had with Me (aka myself), elaborating on the new features:
Read the rest of this entry »

, ,

No Comments

FreePBX 2.8 beta2

Version 2.8 has really shaped up with quite a few new features from when we first launched the 2.8 Milestone. I’m really excited to see many of the changes and nuggets of features that we have squeezed into this release since kicking it off just 3 months ago! We are almost at the home stretch so roll up your sleeves and help us get there!

We started out highlighting the All New Directory which has panned out quite nicely. We still need to get some better recordings made up to polish off the default recordings but we are very much looking for your feedback on what’s there so far. Also, don’t miss the tie-in with the 2.8 IVR which let’s you enable direct dialing to Directory members in addition to or in place of the dial-by-name functionality.

I showed some Sneak Previews of some of the changes including several visual improvements such as the double cascading destination selections and the new Outbound Routes and Trunks Dial Rules GUI boxes. However, as excitement built up for this release so did the additional contributions, bug fixes and various other great ideas that have made this another blockbuster release! As of this blog, there are 223 closed tickets against the milestone so far, of which about 1/3 of those are new Feature Requests, big and small!

For those of you who followed the efforts of Kenn10 and the Custom Context Efforts, it looks like that was a success so I will be coordinating with Kenn10 to get that effort under way as well!

Since there are several changes in some of the critical core components of the dialplan, I’m approaching this beta more cautiously then usual. We could really use another wave of testing and new testers before I add the 2.8 Version Upgrade module to the 2.7 repository. Your help in both flushing out any issues or giving us other feedback about things you like (or dislike) would be very welcome! (For instance – check out the Accordion effect on the Left Module navigation bar – do we keep that, or put it back the way it was, or other suggestions?)

With this beta2 release we are more-or-less freezing new features on 2.8. There is a small handful of changes that we plan on rolling in and did not want to hold up beta2, but beyond these, we will be pushing most new feature requests out until we get 2.8 finalized.

There are two options to install or upgrade to 2.8 and help us test. If you want to stick with the GUI only, you can manually download the 2.8 Upgrade Module onto your existing FreePBX install and then upgrade though the Module Admin GUI.

You can get the Upgrade module here:

2.8 Version Upgrade Module

which is not yet available through the online repository until we get a little more testing done.

Alternatively, you can download the 2.8.0beta2 tarball and use the traditional install_amp installation/upgrade option, instructions can be found on the Upgrade Instructions page.

Which ever route you take, please give us feedback either here, though the ticket system or in the forums to help us drive this release to a final version!

Philippe - On behalf of the FreePBX Team

,

No Comments

Preview the all-new Directory

Do you use the Dial-by-Name option of the current FreePBX Directory? If no, read on as you might find there is goodness to come. If yes, have you ever wanted to add a user with no voicemail? have your admin called instead of you? wanted to add a Ring Group or Queue to it, call an external cell phone, or more?

The current Dial-by-Name directory achieves some basic goals but has always left a lot to be desired. In a lot of use cases it was plagued with issues that made it less than desirable and in my opinion often not viable.

If all your users had voice mail boxes, and all your users were on the same system, and none of your users were reachable via Queues, Ring Groups, or Custom Extensions, and you didn’t need to exclude any voice mail user from the list, and you’re happy with the default prompts, and [your own specific needs here] – then it was great to have around. For the rest of us, read on…

The FreePBX development team, in conjunction with Schmooze Com are proud to announce the all-new Directory Module. We have aimed to fix just about every thing that was wrong with the old directory – and then some. Some of the features that we are really excited about include:

  1. Add/Remove just about anything anyone/thing that you can spell
  2. Include users from other systems (by setting a custom user)
  3. Multiple directories
  4. Multiple entries (for different spelling/tags)
  5. Include all users or just some

There are other features as well, but we wouldn’t want to spoil the surprise! Nevertheless, here is a screen shot of the new Directory (spoiler alert ;-) ):

Read the rest of this entry »

,

No Comments

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!

,

No Comments

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.

Read the rest of this entry »

,

No Comments

Small Changes Big Consequences

I sat around this Saturday morning clearing out some recent bugs so I could head off to Maui tomorrow with a clear conscious and enjoy my vacation. As I did so I pondered what to blog about having just given you a well received sneak preview of the next v2 release. One of today’s bugs made me think it would be good to talk about the hard choices of what goes in a release and what does not. Before I go on though, if any of you readers are out in Maui in the next 1.5 weeks, send me a PM, maybe we can have a drink!

Many of you have a favorite feature request you want in the next release. Sometimes it may come complete with a fully functioning patch sitting in the tracker and it can be very frustrating to you when we decide it is not going to go in the release. “Why won’t you just put it in, it’s just a few lines of code and it’s all right there…” is something I’ve encountered on more than one occasion. It may appear to be simple and sometimes things are, but more often then not they are not. Unfortunately when looking at your own feature you may not always see the subtle things it may break, and often we don’t see them right away either but experience has taught us that they are there.

An example is the addition of the CallerID field for outbound routing that was introduced in 2.7. It was presented to us at the tail end of the 2.6 release cycle by a very knowledgeable community member who said “look, if you simply modify the javascript validation that restricts the use of “/” in dialpatterns for outbound routes, we can add the ability to support outbound routing by extension with the use of the CallerID field.” This sounded harmless enough that one of the developers decided to checkin the code even though we were in feature freeze and close to release. Well one of the privileges / curses of being the project leader is that I get to be the one who says “that has to go, it’s too late to add features so put it in the next release.” Something that is never appreciated. None the less I took it out and moved it into 2.7 where it would have ample time to be tested and run through proper beta cycles.

Needless to say, small changes can have big consequences, especially when they are sitting in a critical call flow path. The first issue that came up and was included in the original checkin was the fact that we don’t even know the true “CID” of the extension until Macro(user-callerid) is executed which doesn’t happen until you are in the route. Well that’s just a minor change, we’ll just move that instruction out of the route and in the outbound-allroutes context. Sure enough that does the trick and all looks great, or does it? Eventually someone comes along with a route that has multiple trunks and you start scratching your head wondering how a call is completing on a trunk that is not part of your route?!? Oops … the CID is changed by Macro(outbound-callerid) so if the trunk falls through to another trunk, “everything has changed.” Well that’s an easy enough fix once again (after many hours of scratching your head..), We’ll just reset the CID each time we exit one of the Macro(dialout-trunk) or equivalents. Now we’re getting somewhere, it all seems to work, right? So far, so good but that’s not to say that everything else that used to work is still working.

Our first casualty comes in, the popular third party module Custom Contexts is broken. This is not one of our modules so who cares, right? Isn’t that why it is not a core module and not supported by the core team? Well technically that’s true however it is not in our interest to break other things that worked and FreePBX has always tried hard to not break compatibility and things that used to work. So after spending yet more time thinking about the failure mode and what we could do differently out comes another change and this time we are feeling pretty good about “that small change to the javascript validation allowing the “/” character” finally being put to rest. Then comes the day before my trip to Maui and in comes the next report, the AMPBADNUMBER=false configuration that allows “Early Dial” configured phones to work properly has been broken by our nifty little fix of moving Macro(user-callerid) into outbound-allroutes. So once again off to spend more time thinking about and testing various alternatives to resolve the newest bug without knocking down the rest of the card castle… For now, once again we think its finally licked, at least until the next issue gets presented. (If that happens in the next couple weeks though, you can rest assured that I’ll let the power of open source solve the problem in my absence because despite how much I may enjoy working on FreePBX, it’s not going to happen in Maui!)

I hope this digression helps to understand that there is often much more than meets the eyes when thinking about new features and capabilities for FreePBX. When you have an installed base counted in the hundreds of thousands you are going to find people doing all sorts of things that you haven’t anticipated. We try to take this into account when considering new feature development. We look at many other factors as well. Who’s interested in doing the feature? How popular is the request? Are there other ways of doing certain things today that may make one feature less urgent then another one? What do we anticipate the consequence and required support to be? Is the author of a requested feature going to be around/willing to maintain the new code and be responsive to issues when they come up? Is the feature important enough that a customer is willing to pay the true anticipated cost of implementing and future support of that feature? (Remember the javascript change above; imagine the reaction if a customer had made such a request and were told it would cost them $1000, which would have been a bargain when considering the time it has taken so far…).

So … next time you are wondering why that small feature of yours may still be outstanding, or why a knowledgeable developer may have quoted you what sounded like an exaggerated sum for something that seemed easy and small, I hope you can appreciate the job and challenge we have when evaluating such requests and considering what is in or out of a release.

For now, I’m signing off and thinking about beaches and sunshine….I’ll be back in a couple weeks!

Philippe – On behalf of the FreePBX Team

,

No Comments

Sneak Preview of 2.8

Work on FreePBX 2.8 is progressing at break neck speeds (has it been just a week since my last blog?) and I couldn’t hold back giving you a sneak preview! Although 3.0 takes the cake in visual improvements and web 2.0 features, 2.8 is taking steps to improve on a few areas that long time FreePBX users can really appreciate. Where as we set out to work on internal plumbing along with a few features, we naturally find areas to digress, to your benefit.

So what’s so exciting that I had to go blogging about it just a week after announcing 2.8 plans? If you spend much time in FreePBX you probably become skilled at navigating land mines! (You know, those annoying tooltips which are scattered around the page to help all those newbies but popup instantly the minute you get your cursor within detonation range!)Seriously though, this has annoyed me for years especially knowing that there was surely 2-3 lines of magic that could make it much more usable. Well kudos to Moshe again (lazytt) with Schmoozecom.com for solving the problem after I put the bug in his ear. Sure enough a very minor change to the CSS file, and depending on how you count, one line of jquery magic and 5.5 years of frustration solved in a puff of smoke! Here’s the secret sauce:

  $("a.info").hover(function(){
    var pos = $(this).offset();
    var left = (200 - pos.left)+"px";
    $(this).find("span").css("left",left).stop(true, true).delay(500).animate({opacity: "show"}, 750);
    }, function() {$(this).find("span").stop(true, true).animate({opacity: "hide"}, "fast");
});

Between that snippet of code and a few changed lines in the CSS file, we get this:

So what’s different about that tooltip other than looking a heck of a lot nicer? Well the code snippet does the magic but for most of you it’s probably greek, so here’s what it does… If you move the mouse over a label with tooltip, you will have a 1/2 second grace period before the land mine goes off. Once that time has passed though it doesn’t explode open like before, it fades in over a 3/4 second period and as soon as the cursor is moved from the target, it quickly fades away. The end result, you can move the cursor freely across the screen without being bombarded by exploding tooltips!

That’s not the only magic Moshe has been up to. In my last blog I commented on the cascading select boxes that would make those long cluttered destination targets a thing of the past. It took a few more lines of jquery and some other code changes but the results are spectacular! A picture of the new IVR layout tells the whole story, and these cascading select boxes now replace all modules that have a “Destination if no Answer” style selection. Here’ s the new look:

Now imagine that screen with a dozen choices compared to the old look! (And behind the scene, we’ve also increased the server side rendering performance of such multiple destination options significantly!)

Moving on to Outbound Routes and Trunks. While working on the internal plumbing I decided to get rid of those dialruletextareas in favor of a GUI that might make it more intuitive and less error prone. So out goes the textarea and in comes something that looks like this:

Let me translate this for those used to the old format. Recall outbound routes can match on a pattern including an optional dial prefix, and send the resulting number (less the prefix) to the trunks. In addition, FreePBX 2.7 added the ability to match on the CID portion as well. The results might look like the following, these rules allow access to this route by dialing 9 first (like those traditional inflexible PBXs that we love running circles around):

9|011.
9|1NXXNXXXXXX
9|411
9|311
9|NXXXXXX

This example allows for 7 and 11 digit NPA dialing, as well as international, 311 and 411 access using a prefix of 9. It drops the 9 and sends the resulting number to the trunks.

You can see where a CallerID (typically an extension number or pattern matching a group of extensions) can be added as part of the match. There is also an optional prepend field not previously available. These digits are prepended to the resulting match prior to going to the trunks. This new feature can solve some powerful problems. One example, providing 7 digit dialing to extensions that are remote. For example, your main office is in Seattle where 7 digit dialing results in 206 being prepended. However you have branches with remote extensions in Chicago and you want their 7 digit dialing to prepend a 312. I’ll leave it as an exercise to the readers to see how to achieve this and for those coming to our upcoming OTTS Training at Digium, I’ll give you the answer if you have not figured it out.

The trunk page has been modified with a similar GUI interface. It has also added the ability to include the “+” as a valid digit which was previously not possible. You light-weight appliance users will also appreciate the elimination of the underlying fixlocalprefix AGI script in place of native dialplan used to apply these rules.

Enough blogging, it’s time for you to get your hands dirty and help us make this a reality! You can download the 2.8.0beta1 tarball and see all this for yourselves. If tarballs intimidate you (or, what’s a tarball comes to mind…) thendownload the version upgrade module to your desktop, then upload it in Module Admin through the GUI and get yourself on the bleeding edge without touching the command line! (You won’t find the upgrade module in the Online Repositoryyet, you will have to install it this way). There’s still more feature development to come on 2.8 so there will be at least another beta release before we do a feature freeze. If you don’t see all the advertised features there like the great Company Directory that Schmoozecom.com is working on (yup … Moshe again) that is why.

For now, have fun and thanks for getting involved!

Philippe – on behalf of the FreePBX team!

,

No Comments

OTTS Training, v3, 2.8 – Times are Busy

Are you keeping an eye on the ticket trackers (v2 and v3), blogs or the website in general because there is a lot happening and it’s a really exciting time for FreePBX! On the v2 front we pushed 2.7 out the door a couple of weeks ago with several exciting enhancements and over 4000 systems already upgraded! Work is going strong on 2.8 discussed below, and we’ve got an OTTS FreePBX trainingcoming next month well timed for the subsequent release scheduled for mid May! The v3 side has been extremely active as well with an upcoming general preview release just weeks away!

OTTS FreePBX Training

If you’re not familiar with our training program you can get details on the OTTS training link on this site. It’s the only officially sponsored FreePBX training that is hands on and heavily lab oriented. The next class is scheduled for April 27-29 at Digium’s Headquarters so if you are thinking of coming, get registered now. If you are a previous attendee to our training series (all you Leap Frogs out there) and are interested in coming for a refresher with all that has happened in the last few releases, contact us for a repeat customer discount! This should be an exciting class and as always when at Digium you have the opportunity to meet some of the great minds behind Asterisk, which is almost as good as meeting with us! We’ll also try to have a v3 system configured and available for show & tell if the timing works out!

v3 Happenings

While on the subject of v3 let me brief you on what is going on. In the last couple of months the v3 team has done an amazing job stabilizing the release with heavy work on both the Asterisk and FreeSWITCH engines! The new platform promises to be a fantastic foundation to launch the next generation of FreePBX and we are super excited to what the future potential holds!. The bulk of the work over the last year has been an intense journey exploring the different dimensions involved in redesigning a new platform to launch a next generation FreePBX product. The team is working hard to stabilize the current capabilities so that we can deliver a general preview release in the next weeks, complete with ISO, so that we can start to get some heavy involvement of the broader community. We then have some ideas of ways to have a little fun in getting developers to come pouring in and helping to rapidly accelerate v3 with new modules and features in a similar way to what we saw happen in the FreePBX 2.0-2.3 era, a time of rapid expansion… We’ll follow with another blog and more details on what is going on with v3 soon!

v2 Happenings

The mainstream v2 bread and butter is doing anything but standing still despite the rapid and intense work going on with v3! Version 2.7, released less than two weeks ago, made some great contributions but the momentum has doneanything but slowed down! I’ll digress briefly to make a comment on the general shift in release philosophy with v2. In the past we targeted releases every 6-9 months which resulted in significant change when the releases came out. Despite our stellar track record of near perfect migrations (all the way back to AMP 1.0!), system admins still get a little nervous when they see significant change and thus hesitate to dive in (as they should, though you never heard that from me!). With v2′s level of maturity being over 5 years old, we are shifting to more frequent and smaller releases. This helps us realize a few goals. We can continue to limit updates within a release to bug fixes only which makes most of you more comfortable accepting updates knowing we are not introducing new features. At the same time, we can get new capabilities delivered to you quicker with the introduction of new releases. Lastly, the new releases can be smaller in scope which allows us to focus into the changes required for the new features being introduced and thus continue our un-matched record in increased stability with each new version!

Read the rest of this entry »

,

No Comments

Heavy Queue Usage in FreePBX

When it comes to busy queues and FreePBX, it often results in requests for help in the forums and to our support department because of overloaded systems or certain functions that do not seem work right. FreePBX was designed to be an SMB PBX concentrating on feature rich capabilities at the expense of complex dialplan and AGI scripts, all of which take their toll when you setup a reasonable size call center and start throwing lots of simultaneous calls at a group of queue members. This Technical Corner post will discuss some of the advancements introduced in FreePBX over the years to help accommodate systems that make extensive use of queues. These same changes will have positive impact on low power appliances and any other system that uses queues.

Throughout the article we will refer to FreePBX Queue Agents as members to be consistent with the Asterisk naming convention. FreePBX commonly refers to any queue member as a Queue Agent which is someone who answers calls destined for the queue and does not specifically refer to the Asterisk agents.conf agents.

Before going into the solutions we will frame the problem and describe why FreePBX runs into issues that other Asterisk configurations may not. The root cause of the issues described in this article hinge on two fundamentals that are employed by FreePBX. First of all, FreePBX abstracts extensions from the device(s) they are associated with. You can read more about this in a past article FreePBX Devices and Users Under the Hood. As a result, queue members are not dialed by calling the device directly but instead are sent down the Asterisk dialplan through the Local channel. This allows the extension to be called in the same way that they would be dialed by another user on the system. It also enables all possible features such as call forwarding, follow-me, etc. It further allows arbitrary external phone numbers to be treated as members in addition to other creative uses. This leads to the second fundamental, all internal calls in FreePBX employ the use of the dialparties.agi AGI script along with other AGI scripts when making calls. As a result, calling a queue member is a “heavy” operation (as is calling any extension on the system). In the case of a queue, this is multiplied when employing a ringall strategy (very common) because every queue call that is dispatched ends up in simultaneous calls to every member, and thus a barrage of heavy dialplan and AGI scripts are launched, often just to find out that most of the members are currently in use and should not have their phones rung anyhow.

Read the rest of this entry »

, , ,

No Comments