Ring Groups and Call Forwarding

Hello everybody,

Just discovered a problem with Ring Groups and Call Forwarding on my FreePBX 2.3 (core version 2.3.0.2) today:
If I call a ring group which includes an extension that has call forwarding (unconditional) enabled, that extension’s cf target is called.
Hm… You might say that this is normal, but some time ago (unfortunately, I don’t remember what version I had back then…), it only dialled cf targets when I added an “#” to the ext in the ring group. Also, that’s the behaviour is as described in bug #2113 ( http://www.freepbx.org/trac/ticket/2113 ).
My fault or is something wrong with dialparties.agi?

Any help would be appreciated, thanks in advance!
Philipp

1 Like

If I recall correctly, you are correct that it will only ring the extension although I would have to refresh myself (it’s late right now). However, if the device itself is doing the CF (SIP Redirect for example) then it’s going to get forwarded since control is lost at that point.

Philippe Lindheimer - FreePBX Project Lead
http//freepbx.org - IRC #freepbx

Hi Philippe, (et.al.)
Thanks a lot for your support, really appreciate it!
Call Forward is done by the server, not the SIP phones.
I spent half the night analyzing the dialparties.agi code (from “cvs”; rev. 4904) and to me, it looks like the behaviour is not as described/expected: At line 226, the original number is replaced with the extension set as the cf target and a hash sign is added if CF is enabled. This line is presumably not reached if the original extension had a has sign in the ring group list (because checking for cf for the extension including # returns that no cf is set).
So, after the foreach doing the cf / # stuff with all extensions, we end up with the following

  • for extensions with no cf and no # in the list (e.g. 2000) -> 2000 -> dials 2000
  • for extensions with a # in the list (e.g. 2000#) -> 2000# -> dials Local/[email protected]
  • for extensions with cf (e.g. 2000 with cf to 2001) -> 2001# -> dials Local/[email protected]
    I don’t think this behaviour is as expected or is it?
    Anyone else having problems with this behaviour?

Regards,
Philipp

You are right not that I am thinking more clearly. I will look at the tooltip. The behavior is appropriate. The key is that the ringgroup will not ring a followme or other number that may overlap. It will specifically do what the extension itself is configured to do so if the extension is configure to forward it will. It would be possible (feature request) to provide a setting on each ringgroup that indicated whether it should do this or not. I fear however that this would be a less desirable situation because it would create non-deterministic behavior on some systems. This is because a device that does CF would bypass this and some systems have a mixture or may even use both forms on the same system. So that would mean this would grow from a simple fix (marking the ringgoup to no CF) to a potentially much more complicated fix of trying to block CF attempts that originate from Endpoints initiating SIP redirects or similar. It could probably be done but would probably be quite involved.

Philippe Lindheimer - FreePBX Project Lead
http//freepbx.org - IRC #freepbx

What I don’t understand is:
1st: why the guy that submitted Ticket #2113 wrote that ring groups doesn’t do call forwarding.
2nd - and more important: Philippe, you wrote that “the ringgroup will not ring a followme or other number that may overlap”. As I understand it, this would mean that a forwarded number is not called twice or more. But that’s exactly the problem I have here: I’ve forwarded an extension to a ring group in which it is included (e.g. ext 2000, ring group 200 includes ext 2000; cf for ext 2000 to 220). When I call my extension (with the cf; e.g. 2000), it starts calling the ring group again and again, creating countless calls in just seconds. I guess that’s because the call to 2000 is forwarded to 200 via chan_local by adding the “#” (resulting in 200# and dialstring “Local/[email protected]”).

when you start to add ring groups inside of ringgroups/followme lists then your results are going to be as well behaved as you have structured the groups and if there is overlap in the groups you will end up with such issues. FreePBX will look at a specific list for duplicates to the extent it can. It does not recursively examine ‘children’ ringgroups in a configuration like you describe. It will try to do exactly what you direct it to do in that case.

Philippe Lindheimer - FreePBX Project Lead
http//freepbx.org - IRC #freepbx

With version 2.4.1 a ring group will break out to an unconditional forward of extension in the ring group.
This is highly undesirable as it makes ring goups nearly useless. In our company a certain incoming number should ring a group of employees available to deal with the customers. But soon there is fwd the ring groups breaks. I don’t mind that when calling an individual extension it does all the follow-me/fwd…as this is desired. For that purpose most people would have a DDI. BUT the ring group should really just ring the numbers programmed.
Some body suggest to use queues: but guess what? They break as soon there is a fwd as well…(v 2.4.0.8)

issue on 2.4.1 core,
ring groups 2.4.0.2

running on an Elastix V1.1 with the latest FreePBX updates.

jpieren,
try FreePBX 2.5, there is now an option for ringgroups to ignore all CF of phones, including device side CF.

1 Like

Was looking through this and wondered if this was related to my post on ring groups and followme?
http://www.freepbx.org/forum/freepbx/users/follow-me-with-ring-group

tk