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
Erik, Thanks for this. I
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
Erik/Alex FYI...I am able to
Erik/Alex
FYI...I am able to reproduce the issue with Ring Groups.
-Matt
the reason you experience
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
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}