call is not going to Voicemail with “1,n”

Home » Asterisk Users » call is not going to Voicemail with “1,n”
Asterisk Users 6 Comments

I’ve tried to simplified the dial plan and use “n” instead of numbers but I’ve noticed it is not executing my voicemail if I substitute number with “n”

In the example below when the call is not answered, it does not go to voicemail; call just hangup.

exten => 1,1,Playback(transfer)
exten => 1,n,Dial(${sales_support}&IAX2/iaxy-322,20,jrw)
exten => 1,103,Voicemail(11,b)
exten => 1,104,Hangup()
exten => 1,n,Voicemail(11,b) ; Right to voicemail
exten => 1,n,Hangup()

Here is the transcript:

6 thoughts on - call is not going to Voicemail with “1,n”

  • On Wed, 29 Dec 2010 21:55:58 -0700
    Joseph wrote:

    I have a feeling you should put the 103 and 104 at the end, after all
    your “n” lines for that extension. The “n”s are probably coming up as
    105 and 106, because they come after 104 in the file.

    You could check the output of “dialplan show ” on the Asterisk
    console to verify this.

  • The n = prev + 1

    So you dialplan technically looks like this:

    exten => 1,1,Playback(transfer)
    exten => 1,2,Dial(${sales_support}&IAX2/iaxy-322,20,jrw)
    exten => 1,103,Voicemail(11,b)
    exten => 1,104,Hangup()
    exten => 1,105,Voicemail(11,b) ; Right to voicemail
    exten => 1,106,Hangup()

    which in the result, there is no 1,3 which goes auto fallthru.

    Try this instead:

    exten => 1,1,Playback(transfer)
    exten => 1,n,Dial(${sales_support}&IAX2/iaxy-322,20,jrw)
    exten => 1,n,Voicemail(11,b)
    exten => 1,n,Hangup()
    exten => 1,n+101,Voicemail(11,b)
    exten => 1,n,Hangup()

    which will result in a DP looking like this:

    exten => 1,1,Playback(transfer)
    exten => 1,2,Dial(${sales_support}&IAX2/iaxy-322,20,jrw)
    exten => 1,3,Voicemail(11,b)
    exten => 1,4,Hangup()
    exten => 1,105,Voicemail(11,b)
    exten => 1,106,Hangup()

  • Also, a more “fancy” approach

    [macro-dialvm]

    exten => s,1,NoOp(“${ExTEN}|${MACRO_EXTEN}|${ARG1}”)
    exten => s,n,Dial(SIP/${ARG1},25,t)
    exten => s,n,NoOp(${ARG1})
    exten => s,n,NoOp(${DIALSTATUS})
    exten => s,n,GotoIf($[“${DIALSTATUS}” = “BUSY”]?BUSY)
    exten => s,n,GotoIf($[“${DIALSTATUS}” = “NOANSWER”]?NOANSWER)
    exten => s,n,GotoIf($[“${DIALSTATUS}” = “CHANUNAVAIL”]?CHANUNAVAIL)
    exten => s,n,VoiceMail(${ARG1},a)
    exten => s,n,MacroExit()

    exten => s,n(BUSY),Set(CDR(userfield)=DIAL-BUSY)
    exten => s,n,NoO${MACRO_EXTEN})
    exten => s,n,NoOp(${ARG1})
    exten => s,n,ResetCDR(w)
    exten => s,n,VoiceMail(${ARG1},b)
    exten => s,n,MacroExit()

    exten => s,n(NOANSWER),Set(CDR(userfield)=DIAL-NOANSWER)
    exten => s,n,NoOp(${MACRO_EXTEN})
    exten => s,n,NoOp(${ARG1})
    exten => s,n,ResetCDR(w)
    exten => s,n,VoiceMail(${ARG1},u)
    exten => s,n,MacroExit()

    exten => s,n(CHANUNAVAIL),Set(CDR(userfield)=DIAL-UNAVIL)
    exten => s,n,NoOp(${MACRO_EXTEN})
    exten => s,n,NoOp(${ARG1})
    exten => s,n,ResetCDR(w)
    exten => s,n,VoiceMail(${ARG1},uj)
    exten => s,n,MacroExit()

    exten => s,BUSY+101,Set(CDR(userfield)=DIAL-BSY-NOMBX)
    exten => s,n,NoOp(${MACRO_EXTEN})
    exten => s,n,NoOp(${ARG1})
    exten => s,n,ResetCDR(w)
    exten => s,n,NoOp(“Mailbox Not found”)
    exten => s,n,Goto(CHANUNAVAIL+101)

    exten => s,NOANSWER+101,Set(CDR(userfield)=DIAL-NA-NOMBX)
    exten => s,n,NoOp(${MACRO_EXTEN})
    exten => s,n,NoOp(${ARG1})
    exten => s,n,NoOp(“MailBox Not found”)
    exten => s,n,Goto(CHANUNAVAIL+101)

    exten => s,CHANUNAVAIL+101,Playback(/home/asterisk/gen/themailbox)
    exten => s,n,NoOp(${MACRO_EXTEN})
    exten => s,n,NoOp(${ARG1})
    exten => s,n,SayDigits(${MACRO_EXTEN})
    exten => s,n,Playback(/home/asterisk/gen/doesnotexist)
    exten => s,n,MacroExit()

  • Thank you William,

    It looks nice but I like the previous one you suggested, it looks simpler and it easier to follow the logic 🙂

  • I was analyzing it and I think in the above:
    exten => 1,n+101,Voicemail(11,b)
    is not needed at all as it does not take any effect. The (j) in the dial tell is to jump but there is no 103 so it falls through to “3” which is voicemail.
    so actually “j” not needed nor are the:

    exten => 1,n+101,Voicemail(11,b)
    exten => 1,n,Hangup()