[Fixed] Unable to Transfer to Voicemail

Here’s an odd, head-scratcher…

I’ve got an OLD site running Asterisk 1.4.17-1 w/ FreePBX 2.4.0, using GXP-2020’s w/ firmware 1.1.6.16 … and they are unable to transfer callers directly to voicemail (i.e. Xfer > * > Extension > Send).

FreePBX 2.4.0) The caller would simply hear, that is an invalid option and be disconnected.

…so I figured I’d update them to 2.5.0 and see if that helped…

FreePBX 2.5.0) Now Asterisk is saying it’s an invalid extension, and to try re-entering the extension number… as if logging into voicemail.

CLI


    -- Started music on hold, class 'default', on SIP/medi_odess-b7d31438

    -- Stopped music on hold on SIP/medi_odess-b7d31438

  == Spawn extension (from-internal-xfer, *119, 0) exited non-zero on 'SIP/medi_odess-b7d31438' in macro 'dial'

  == Spawn extension (from-internal-xfer, *119, 0) exited non-zero on 'SIP/medi_odess-b7d31438'

    -- Executing [*[email protected]:1] Macro("SIP/medi_odess-b7d31438", "user-logon|9|") in new stack

    -- Executing [[email protected]:1] Set("SIP/medi_odess-b7d31438", "DEVICETYPE=") in new stack

    -- Executing [[email protected]:2] Answer("SIP/medi_odess-b7d31438", "") in new stack

    -- Executing [[email protected]:3] Wait("SIP/medi_odess-b7d31438", "1") in new stack

    -- Executing [[email protected]:4] GotoIf("SIP/medi_odess-b7d31438", "0?s-FIXED|1") in new stack

    -- Executing [[email protected]:5] Set("SIP/medi_odess-b7d31438", "AMPUSER=9") in new stack

    -- Executing [[email protected]:6] GotoIf("SIP/medi_odess-b7d31438", "1?gotpass") in new stack

    -- Goto (macro-user-logon,s,9)

    -- Executing [[email protected]:9] GotoIf("SIP/medi_odess-b7d31438", "1?s-NOUSER|1") in new stack

    -- Goto (macro-user-logon,s-NOUSER,1)

    -- Executing [[email protected]:1] NoOp("SIP/medi_odess-b7d31438", "Invalid extension 9 entered") in new stack

    -- Executing [[email protected]:2] Playback("SIP/medi_odess-b7d31438", "pbx-invalid") in new stack

    -- <SIP/medi_odess-b7d31438> Playing 'pbx-invalid' (language 'en')

    -- Executing [[email protected]:3] Goto("SIP/medi_odess-b7d31438", "s|playagain") in new stack

    -- Goto (macro-user-logon,s,7)

    -- Executing [[email protected]:7] Read("SIP/medi_odess-b7d31438", "AMPUSER|please-enter-your-extension-then-press-pound|||4") in new stack

    -- <SIP/medi_odess-b7d31438> Playing 'please-enter-your-extension-then-press-pound' (language 'en')

    -- User disconnected

… this got me thinking, and I wondered if the extension could dial someone’s voicemail directly without having a call to transfer (i.e. Just pressing * > Extension > Send). This resulted in Asterisk saying the extension that was doing the dialing was unavailable…


    -- Executing [*[email protected]:1] Macro("SIP/124-b7d0d640", "user-logon|9|") in new stack

    -- Executing [[email protected]:1] Set("SIP/124-b7d0d640", "DEVICETYPE=fixed") in new stack

    -- Executing [[email protected]:2] Answer("SIP/124-b7d0d640", "") in new stack

    -- Executing [[email protected]:3] Wait("SIP/124-b7d0d640", "1") in new stack

    -- Executing [[email protected]:4] GotoIf("SIP/124-b7d0d640", "1?s-FIXED|1") in new stack

    -- Goto (macro-user-logon,s-FIXED,1)

    -- Executing [[email protected]:1] NoOp("SIP/124-b7d0d640", "Device is FIXED and cannot be logged into") in new stack

    -- Executing [[email protected]:2] Playback("SIP/124-b7d0d640", "ha/phone") in new stack

    -- <SIP/124-b7d0d640> Playing 'ha/phone' (language 'en')

    -- Executing [[email protected]:3] SayDigits("SIP/124-b7d0d640", "124") in new stack

    -- <SIP/124-b7d0d640> Playing 'digits/1' (language 'en')

    -- <SIP/124-b7d0d640> Playing 'digits/2' (language 'en')

    -- <SIP/124-b7d0d640> Playing 'digits/4' (language 'en')

    -- Executing [[email protected]:4] Playback("SIP/124-b7d0d640", "is-curntly-unavail&vm-goodbye") in new stack

    -- <SIP/124-b7d0d640> Playing 'is-curntly-unavail' (language 'en')

    -- <SIP/124-b7d0d640> Playing 'vm-goodbye' (language 'en')

    -- Executing [[email protected]:5] Hangup("SIP/124-b7d0d640", "") in new stack

^^^ In both CLI, you can see x124 is attempting to dial or transfer a caller into *119

Ironically, they just had a sister-site loose an entire RAID array due to power issues and corruption (because of the hurricane, both located in TX)… I’ve got them up next day w/ two new drives, and would like to avoid another set for this site if possible. Hoping someone has an idea?

With the advice from the PiaF forums, disabling the User Logon/Logoff (*11/*12) corrected the problem… I’m not quite sure why it’s manifesting now, but it’s been corrected. :slight_smile:

I had the same problem where my new extensions had broken voicemail boxes.

When a call reaches a voicemail box you hear:
“0100 is currently unavailable. Goodbye.”

And when you watch the debug code you see:
“Device is FIXED and cannot be logged into”

So I used the above solution and it resolved that, but then when a call reaches a voicemail box you would hear:
“I’m sorry but an error has occured.”

And debugging showed:
“exit-FAILED|1”

I looked in voicemail.conf and found that there were empty context brackets after the last working voicemail extension.

Example:

100 => 1234,Name1 Linksys,[email protected],attach=yes|saycid=yes|envelope=yes|delete=no
[]
118 => 1234,Name2,[email protected],attach=yes|saycid=yes|envelope=yes|delete=no
117 => 1234,Name3,[email protected],attach=yes|saycid=yes|envelope=yes|delete=no

I removed the “[]” and restarted Asterisk and the voicemail worked fine again.

I’m on FreePBX 2.5.1.0 and use custom contexts. I had no problems adding extension till after all the upgrades from 2.4.x to 2.5.1.0. Somewhere along the way both these problems manifested.