[Asterisk-Users] Newbie Trying to make 'catch all extension' but is catching voicemail exit!

Steve Gladden Asterisk at MichiganBroadband.com
Thu Aug 18 19:34:22 MST 2005


Greetings,

Running CVS HEAD about 3 weeks old,

I have been beating my head trying to get this to work properly..
Or at least figure out what's going on.
Maybe I have done things wrong...

I have created a 'catch all' extension at the end of our last context
where all phones & voicemail extension exist.
This catch all is included in all and works quite nicely except
when voicemail is normally exited after leaving a message.

The catch-all is intended to play an error message when someone dials
a wrong extension.

Which it does just fine and that works perfectly!

What does not work is that when someone goes to leave a voice message and
presses # to end and then 1 to save the message....
as the voicemail exits, it does not find hangup (h,1) or hangup but
goes and finds the catchall message!

The catch all extension I use is _. (match everything).

and also tried _X. (match any numeric) don't match special extensions.

I put this at the very end of the last context in my dialplan
and it does show up at the end as expected when you do a show dialplan

I've tried matching h t and i to no avail...
when voicemail terminates it still always plays my fatfingers
catchall that is intended only for misdialed numbers.

It's like voicemail is trying to go somewhere that is invalid as it
terminates
I just do not know what that somewhere is!
I must be missing some really simple point here :-)

Thanks!

Steve







;normal extension & voicemail

exten => 4102,1,Dial(SIP/4102,44,tT)
exten => 4102,2,Voicemail(u4102)

; of course putting a (exten => 4102,3,hangup)
; fixes the problem...
; but I'm trying to learn where the heck it's trying to go when voicemail
; terminates!
; if there is no 4102,3 in the context why is it not finding
; the h, that is!?






[last]  ;(included at end of all contexts) with an include statement

exten => t,1,hangup
exten => h,1,hangup
exten => #,1,hangup
exten => i,1,hangup; also have tried only the h,1 of course ;-)

exten => _X.,1,answer
exten => _X.,2,wait(1)
exten => _X.,3,playback(vm-extension)
exten => _X.,4,sayalpha(${EXTEN})      ;reads back invalid #
exten => _X.,5,wait(1)
exten => _X.,6,playback(fatfingers)    ;lets them know it was incorrect
exten => _X.,7,Wait,2
exten => _X.,8,playback(fatfingers)
exten => _X.,9,Wait,2
exten => _X.,10,playback(fatfingers)
exten => _X.,11,hangup

;exten => h,1,playback(goodbye)

and a lookie from the prompt:


show dialplan last
[ Context 'last' created by 'pbx_config' ]
  '#' =>            1. hangup()                                  
[pbx_config]
  'h' =>            1. hangup()                                  
[pbx_config]
  'i' =>            1. hangup()                                  
[pbx_config]
  't' =>            1. hangup()                                  
[pbx_config]
  '_X.' =>          1. answer()                                  
[pbx_config]
                    2. wait(1)                                   
[pbx_config]
                    3. playback(vm-extension)                    
[pbx_config]
                    4. sayalpha(${EXTEN})                        
[pbx_config]
                    5. wait(1)                                   
[pbx_config]
                    6. playback(fatfingers)                      
[pbx_config]
                    7. Wait(2)                                   
[pbx_config]
                    8. playback(fatfingers)                      
[pbx_config]
                    9. Wait(2)                                   
[pbx_config]
                    10. playback(fatfingers)                     
[pbx_config]
                    11. hangup()                                 
[pbx_config]































More information about the asterisk-users mailing list