Busy message not playing

When I’m on my extension and another call comes through, I get the call waiting beeping, and I see the call on my display. But when I don’t answer it, the person gets my unavailable message instead of my busy message. My extension macro looks like:

exten => s,1,Dial(${ARG1},20,mt)
exten => s,2,Voicemail(u${MACRO_EXTEN})
exten => s,3,Hangup
exten => s,102,Voicemail(b${MACRO_EXTEN})
exten => s,103,Hangup

Also, is there a way to change how many times the phone rings when I’m on the line or at least suppress the call-waiting beep?



From looking at the code it seems that you have it set that if you dont pick up within 20 seconds then it should go to the next context. The problem is that when you are on the phone and the second call comes in it tries you for 20 seconds and then goes to VM. The n + 101 extension is only if the extension is busy (i.e. if its a ZAP channel thats off the hook or it cant send the call to the phone etc.). What you can do is set in your configs to see if your on the phone. If you are go to a diff pri. and if you dont pick up in 20 seconds then to go to busy vm.

Thanks for the reply. How does one detect when one is on the phone? We’re using LinkSys SPA-941 VOIP phones using SIP connections.

as i recall you dont need the n+101. Priority jumping is considered ‘bad’ and is discouraged in v1.2 and later. Thus, Dial() does not jump unless you use the ‘j’ flag. adding the j flag to dial() will make your code work as intended.

I believe if you remove the u, that Voicemail() will automatically read the dialstatus variable and play unavail or busy automatically…