New Ring Strategies
We’ll start with the ringallv2 strategy – only available in Follow-Me. You may be asking: what’s so hard about ringing all the phones at once that you need “yet another version” of the same thing? Consider a Follow-Me setup that begins with an Initial Ring (to avoid those “fire drills”) followed by the list of cell phones, home office phones, etc. that all ring together if not answered. A call comes in and eventually goes to voicemail (because, sometimes, we really don’t want to be found). Now, check your phone’s missed calls; there is not one, but two missed calls from that one phone call (which many people find rather annoying). Here’s another quirk you may have run into. A call comes in, it rings, you go to pick it up and just at the moment you answer it hangs up, leaving dead air for you to talk to while your second line and other Follow-Me List of phones start ringing again. If you have experienced this, you know it is very annoying. What is going on?
Under most Ring Strategies, the phone is controlled as follows: First, ring the primary phone for the Initial Ring time if set. If the phone is not answered, then Asterisk times out, and goes back and re-rings the phone along with the rest of the phones in the list. This results in two calls, and thus 2 missed calls. It also creates the opportunity to pick up the receiver during the transition from the first to the second call, resulting in the “dead air.”
The ringallv2 strategy is about changing these subtle, but annoying, behaviors. In this strategy, FreePBX® forks two “threads” of control. The first rings your primary extension while the second thread sleeps for a while (the Initial Ring time). If you haven’t answered within that time, the second thread kicks in and starts to ring the other phones (while the first thread continues ringing your primary extension – thus no more hang-up or double missed calls). That’s about it. There is a lot of complexity behind the scene to make sure the “-prim” modes work and DND information is correctly communicated between the threads – but the result is a well behaved Ring Strategy. (We’ll warn you though – the CDR records can start to get a bit interesting when using this strategy – and if you toss call confirmation into the mix, it gets really fun).
The next two strategies: firstavailable and firstnotonphone introduce new behavior. We will warn you ahead of time, that none of us are big users of these strategies (yet). So, if you find any incorrect behavior in what we describe next, please point it out to us so we can correct the article (or correct the behavior – which ever is appropriate).
These strategies try to mimic behavior that is closer to the traditional telephony hunt group which is quite different from the FreePBX® definition of the two hunt strategies. The firstavailable strategy will hunt through the list of extensions until it gets to one that is available to ring. At that point, it will try no further and continue ringing that line for the Ring Time duration and, if not successful, it will skip to the configured destination if no answer. If the line has Call Waiting, it is defined as being available. The firstnotonphone is a subtle but potentially important variation to firstavailable. The system will not only try to hunt until reaching an available extension, but it will continue to progress down the list until reaching an extension that is completely un-occupied. The difference here is that firstavailable will consider an occupied line with Call Waiting as available, but firstonphone will not. So if it rings an occupied line with Call Waiting enabled and gets no answer, firstonphone will continue to hunt for another extension, firstavailable would not.
The implication of using an external number versus an extension with these strategies will result in un-determined behavior since FreePBX® will not have any information as to the state of those numbers. You should keep this in mind when choosing these Ring Strategies.
Voicemail Busy Message on Multi-Line Phones
Consider this common scenario: You have a phone with multiple line appearances or Call Waiting. While on the line, another call comes in which you ignore. Today the caller receives the unavailable voicemail greeting, not the busy greeting. Which do you want them to receive? Before FreePBX® 2.3, the caller is always presented with the unavailable greeting unless you have specifically controlled the greeting type through an explicit destination.
Many of us would prefer to present a caller with the busy greeting in this scenario. To change to this behavior, you will want to note the new setting in, CWINUSEBUSY, in amportal.conf that enables this mode if set to “yes.” (The default behavior remains the same in order to preserve backward compatibility, so you must go in and set this.)
To recap, we reinvented the ringall strategy, ringallv2, on Follow-Me in addition to providing two new strategies, firstavailable and firstnotonphone that mimic the behavior of old style hunt groups. We also revealed the secret of why the voicemail busy message may never get played to your callers and how to rectify that, if you want.
Please post to us to let us know what you think of the FreePBX® Technical Series and if you find it useful. We look forward to hearing from you. In the mean time, we hope you’ve had a chance to load our recent FreePBX 2.2.2 Release and now we are going to get busy bringing you the 2.3 beta program we promised.
-philippe (on behalf of the FreePBX® team)