Hunt group question

I’m replacing a telco system (centrex) with a freepbx box. The telco currently has a hunt group setup for 2 numbers as follows (numbers replaced for privacy):

line A: 555-1212
line B: 555-1122

Now, if I call line A, it will ring for a while and then if nobody answers it will go to line A’s voicemail. If line A is busy, then line B will ring for a while and then if nobody answers it will go to line A’s voicemail. Likewise, if I call line B, it will ring for a while and then if nobody answers it will go to line B’s voicemail. If line B is busy, then line A will ring for a while and then if nobody answers it will go to line B’s voicemail.

my issue here is that i’m not quite sure how to set this up. I tried to set the busy destination for line A to line B, and vice-versa, but if both lines are busy, the caller gets the message ‘I’m sorry, an error has occured with call forwarding’ and then the call drops.

In the console/logs I see the call get bounced back and forth between the two extensions, then finally dumps out this:

Answer("DAHDI/i8/-1a62", "") in new stack -- Executing [s@macro-user-callerid:18] Wait("DAHDI/i8/-1a62", "1") in new stack -- Executing [s@macro-user-callerid:19] Playback("DAHDI/i8/-1a62", "im-sorry&an-error-has-occured&with&call-forwarding") in new stack -- Playing 'im-sorry.ulaw' (language 'en') -- Playing 'an-error-has-occured.ulaw' (language 'en') -- Playing 'with.ulaw' (language 'en') -- Playing 'call-forwarding.ulaw' (language 'en') -- Executing [s@macro-user-callerid:20] Macro("DAHDI/i8/-1a62", "hangupcall,") in new stack -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/i8/-1a62", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [s@macro-hangupcall:3] ExecIf("DAHDI/i8/-1a62", "0?Set(CDR(recordingfile)=)") in new stack -- Executing [s@macro-hangupcall:4] Hangup("DAHDI/i8/-1a62", "") in new stack == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'DAHDI/i8/-1a62' in macro 'hangupcall' == Spawn extension (macro-user-callerid, s, 20) exited non-zero on 'DAHDI/i8/-1a62' in macro 'user-callerid' == Spawn extension (macro-exten-vm, s, 1) exited non-zero on 'DAHDI/i8/-1a62' in macro 'exten-vm' == Spawn extension (from-did-direct, 1777, 2) exited non-zero on 'DAHDI/i8/-1a62' -- Executing [h@from-did-direct:1] Macro("DAHDI/i8/-1a62", "hangupcall,") in new stack -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/i8/-1a62", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [s@macro-hangupcall:3] ExecIf("DAHDI/i8/-1a62", "0?Set(CDR(recordingfile)=)") in new stack -- Executing [s@macro-hangupcall:4] Hangup("DAHDI/i8/-1a62", "") in new stack == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'DAHDI/i8/-1a62' in macro 'hangupcall' == Spawn extension (from-did-direct, h, 1) exited non-zero on 'DAHDI/i8/-1a62' -- Hungup 'DAHDI/i8/-1a62'

I’d considered using a ring group instead, but it seems like that wouldn’t work well, as I wouldn’t be able to know where in the list I am (i.e. calls to line B would start with line A), and I don’t think setting up a separate ring group for each DID would be very scalable.

For references, these lines are backup lines within the same department.

I’m using pbx distro, version 3.211.63-5.

It looks like you built a reentrant call forwarding, use call forward no answer and busy on A to B and a call forward no answer/busy from B to A’s voicemail.

But then if a call comes into B and B is busy, won’t it go to A’s voicemail instead of to B’s?

My intention is that if all lines are busy and I call A I get A’s voicemail, and if I call B I get B’s voicemail.

You will need to recreate your Centrex provisioning, in Centrex a huntgroup is a pilot line plus the rest of the group. Normally Centrex will id the extensions as the 4 least significant digits so your extensions are 1212 and 1122

your ringgroup for incoming calls on the pilot number 5551212 is 1212 and 1122, with a startegy of firstavailable or firstnotonphone as you care,

5551122 (your “backline”) should be directed just to extension 1122

Calling the last line in a Centrex huntgroup will not normally rotate to the pilot number on busy, if you arrange callforwardbusy to 1212 on that number it will not return to 1122 . If it did it would be reentrant.

Okay, so if I want the full rotation then, the only way to do that would be to create a ring group for each DID and assign the ‘destination if no answer’ on the ring group to go to the correct users voicemail?

So,
DID 1212 -> ring group rg_1212 { 1212, 1122 } dest no ans -> voicemail (1212)
and
DID 1122 -> ring group rg_1122 { 1122, 1212 } dest no ans -> voicemail (1122)

Does that seem feasible? I was trying to avoid the management overhead of doing this, but I’ll do it if that’s what needs done.

You could do that choose your strategy correctly though.