Skip to main content

How do you ring multiple phones?

Posted by mattdarnell on Mon, 05/12/2008

Can anyone help me ring multiple phones and allow calls to go to voicemail? I have discovered that if a user answers a call from a hunt group they can not do a blind transfer to an extension and have it goto voicemail.

Background:
I have created a hunt group that rings extension 101 & 102.
DID from a SIP trunk is routed to the hunt group.

Issue:
Call comes in on a SIP trunk
Rings ext 101 & 102
101 answers and is connected to the caller
101 performs a blind transfer to ext 105
105 rings, caller hears ring back
After time out, caller hears dead air
Caller is hung up is ended

This issue is 100% reproducible. If the DID number is pointed directly to ext 101, there is no problem with blind transferring and having the call goto voicemail.

Does anyone else do it differently?

-Matt


Submitted by eeman on Mon, 05/12/2008 Permalink

this fix is coming soon. In the interim you can make the following change in scripts.include.

change

[macro-tl-userexten]

exten => s,1,Set(__DIALED_NUMBER=${MACRO_EXTEN})

exten => s,n,GotoIf($["${RINGGROUP_TIMEOUT}" != ""]?doingringgroup)

exten => s,n,Macro(tl-userexten-base,${ARG1},${ARG2},${ARG3})

exten => s,n,MacroExit

exten => s,n(doingringgroup),Macro(tl-userexten-rg-base,${ARG1},${RINGGROUP_TIMEOUT})

to this

[macro-tl-userexten]

exten => s,1,Set(__DIALED_NUMBER=${MACRO_EXTEN})

exten => s,n,GotoIf($["${RINGGROUP_TIMEOUT}" != "" & "${BLINDTRANSFER}" = ""]?doingringgroup)

exten => s,n,Macro(tl-userexten-base,${ARG1},${ARG2},${ARG3})

exten => s,n,MacroExit

exten => s,n(doingringgroup),Macro(tl-userexten-rg-base,${ARG1},${RINGGROUP_TIMEOUT})

notice the additional check for ${BLINDTRANSFER}

Submitted by mattdarnell on Tue, 05/13/2008 Permalink

Erik,

Thanks for this. I will try it tomorrow.

Are there any side effects of the fix?

Did you fix it? If you did, kudos!

-Matt

Submitted by eeman on Tue, 05/13/2008 Permalink

the reason you experience this is due to the way a blind transfer happens. unlike an attended transfer that creates a second call then bridges the two ends, a blind transfer redirects the channel to a new dialplan extension. This is how the original callerid is able to be maintained. Since the call hit a ring group, the variable RINGGROUP_TIMEOUT exists. The macro-tl-userexten checks for this channel variable and sends it macro-tl-userexten-rg-base, instead of macro-tl-userexten-base, which bypasses all the user extension settings; like forwards, voicemail etc. Since the originating call was blind transferred, it makes a second pass through macro-tl-userexten but the RINGGROUP_TIMEOUT channel variable still remains from the original run through the dialplan. The modified code merely adds a second condition stating that to go to macro-tl-userexten-rg-base not only must RINGGROUP_TIMEOUT contain a value but BLINDTRANSFER must not be set.

This fix does not work for isymphony transfers if the isymphony user was a ring group member. In order to fix that you must set the redirect context in isymphony to a new context that consists of a simple 2 step process

1. unset the ringgroup_timeout variable

2. go to from-inside-redir