asterisk

Asterisk, Goto+Hungup


There is an extension, for which I need a random sound file to be played, and once it's played the call should be hung up. I have the below dialplan which plays, for example, the 2nd playback and then 3rd one is played etc., but it should hangup after playing back one sound file

exten => 123.,7,Goto(${RAND(8,12)}) 
exten => 123.,8,Playback(/var/lib/asterisk/sounds/customer_Menu1)  
exten => 123.,9,Playback(/var/lib/asterisk/sounds/customer_Menu2) 
exten => 123.,10,Playback(/var/lib/asterisk/sounds/customer_Menu3); after playback it supposed rejected.. 
exten => 123.,11,Playback(/var/lib/asterisk/sounds/customer_Menu4) 
exten => 123.,12,Playback(/var/lib/asterisk/sounds/customer_Menu5) 
exten => 123.,13,Hangup() 
exten => 123.,14,Hangup(34)

How can I make this work; calling, playing only one random menu and hanging up?


Solution

  • Just give the hangup command a priority label and add a Goto() pointing to it after playing each item.

    Also:

    Now if we get rid of the priority numbers, what do you use in place of Goto(${RAND(8,12)})? More labels:

    [mycontext]
    exten => _123.,1,NoOp("start of context")
     ; ...
     same => n,Goto(menu${RAND(1,5)}) 
     same => n(menu1),Playback(/var/lib/asterisk/sounds/customer_Menu1)
     same => n,Goto(goodbye)
     same => n(menu2),Playback(/var/lib/asterisk/sounds/customer_Menu2) 
     same => n,Goto(goodbye)
     same => n(menu3),Playback(/var/lib/asterisk/sounds/customer_Menu3)
     same => n,Goto(goodbye)
     same => n(menu4),Playback(/var/lib/asterisk/sounds/customer_Menu4) 
     same => n,Goto(goodbye)
     same => n(menu5),Playback(/var/lib/asterisk/sounds/customer_Menu5) 
     same => n(goodbye),Hangup(34)
    

    Or, more simply, use the RAND() function to choose the name of the file to play:

    [mycontext]
    exten => _123.,1,NoOp("start of context")
     ; ...
     same => n,Playback(/var/lib/asterisk/sounds/customer_Menu${RAND(1,5)})
     same => n,Hangup(34)