Ring Group Problem

I’ve got a situation where we want incoming calls to first the ring receptionist’s phone (ext 10), followed by the receptionist’s backup (ext 11), followed by all of the phones in the office (ext 10, 11, 12, 13). To implement this I created two Ring Groups. The first uses the “memoryhunt” strategy that includes extension 10 followed by 11. If there is no answer this ring group calls the second ring group. The second ring group uses the “ringall” strategy and includes extensions 10, 11, 12, and 13. If there is no answer on this group it rolls to a simple IVR for voicemail.

The problem I’ve got is that in the transition to the second ring group one or both of the phones in the first ring group do not ring. When I look at the log I see a message that states “WARNING[3292] chan_dahdi.c: Unable to ring phone: Device or resource busy” that I assume is the problem. I’m guessing that the line has not fully “hung” up from ringing on the first group before the second ring group tries to activate it. As a result I do not really have a “ringall” group because some of the phones do not ring even though they should be available.

Any suggestions?



I know this might be a kludge, but you could record say 1 cycle of telephone ringing and create an announcement with it. A ring cycle is about 6 seconds.

Have the first ring group fall through to this announcement, and have the announcement fall through to the second ring group.

RingGroup1 > Announcement > RingGroup 2

You don’t really have to use the ringing sound, you could simply record a short announcement such as " We’re sorry. There was no answer. We’re trying another extension. Please hold on."

The main thing is that you want a few seconds for the system to settle down before the second ring group is called.


Bill - thanks for the suggestion. I can definitely try that as it seems like it should work.

Alternatively I was wondering whether there is a way to accomplish what I want within the syntax of a memoryhunt Ring Group in FreePBX. For instance maybe specifying the list of extensions like this or something else:


Is there any such syntax?



Don’t think so, at least I’ve never seen it documented.



the one thing I am surprised about is that extension 10 is ringing on the second iteration when memory hunt rings 10 and 11, since the way memory hunt works is that it ends up hanging up all the extensions and then re-ringing them the next iteration along with then next one added in. (Or is 10 a SIP phone vs. another dahdi extension?)

They are DAHDI lines. I do have some sip lines in the mix, however, they only come into play in the final “ringall” group. There are actually six extensions but I was trying to keep the example as simple as possible.

I have had some complaints that line 10 would not continue ringing when 11 starts to ring but I haven’t actually observed that. When I’ve been testing it 10 has continued to ring while 11 is added to the group.


I suspect your complaints are correct and even if you solve the other problem, you will continue to have this issue. Your best solution may simply be to make some customizations to insert some delays between ring attempts.

Feel free to add a feature request as well as it may be relevant for such situations with dahdi/zap extensions unless there is some setting that I am not aware of that would address such issues.

Thanks for your suggestion. I haven’t done that type modification before. Pardon my ignorance but would that be in the base code or could it be done via modifications to the dial plans in the configuration files?



it would probably be one of the more “complex” modifications actually (though I may be over-estimating it). It would probably be something in macro-dial that interacts with dialparties.agi in doing the memory hunt ring-strategy, basically adding a wait state after each iterations or before each new iteration.