[Asterisk-Users] Re: passing variables to h extension

Tony Mountifield tony at softins.clara.co.uk
Tue Sep 13 09:37:29 MST 2005


In article <4326EACA.1020409 at gmail.com>,
Simone Cittadini <mymailforlists at gmail.com> wrote:
> Is there a way to pass variables/arguments to the h extension ?
> 
> for example :
> 
> [default]
> 
> exten => _1098933X.,1,NoOp(CARRIER TWT->TIM, EXTEN: ${EXTEN}}, 
> SIPCALLID: ${SIPCALLID}, SIPDOMAIN: ${SIPDOMAIN})
> exten => _1098933X.,2,SetVar(_PROVA="bla")
> [lot of stuff, agi, goto, tricks and magic that happens]
> exten => _1098933X.,10,Dial(${CHAN_DEST},,L(3600000:3599900)) <- don't 
> mind L, a quick hack for dtmf not working with sip
> exten => _1098933X.,11,Hangup
> exten => _1098933X.,12,Playback(no-credit)
> exten => _1098933X.,13,Hangup
> 
> 
> exten => h,1,NoOp(${PROVA})
> 
> 
> When the calls hangup, no "bla" is printed on screen, I think it's fine, 
> since "the variable is automatically trashed when the channel is 
> hungup.", sigh ...

It works for me (using CVS HEAD, but I'm sure it's worked in the past for
me on Stable too). I think there must be some other reason it's not working
for you.

Just done a little test for it, as follows...

My extensions.conf:

[vartest]
exten => _X.,1,SetVar(FRED=hello)
exten => _X.,2,NoOp(FRED=${FRED})
exten => _X.,3,Playback(demo-congrats)
exten => _X.,4,Hangup

exten => h,1,NoOp(FRED=${FRED})

Console output:

    -- Executing Goto("SIP/2002-238e", "vartest|8200|1") in new stack
    -- Goto (vartest,8200,1)
    -- Executing SetVar("SIP/2002-238e", "FRED=hello") in new stack
    -- Executing NoOp("SIP/2002-238e", "FRED=hello") in new stack
    -- Executing Playback("SIP/2002-238e", "demo-congrats") in new stack
    -- Playing 'demo-congrats' (language 'en')
  == Spawn extension (vartest, 8200, 3) exited non-zero on 'SIP/2002-238e'
    -- Executing NoOp("SIP/2002-238e", "FRED=hello") in new stack

    -- Executing Goto("SIP/2002-9d08", "vartest|8200|1") in new stack
    -- Goto (vartest,8200,1)
    -- Executing SetVar("SIP/2002-9d08", "FRED=hello") in new stack
    -- Executing NoOp("SIP/2002-9d08", "FRED=hello") in new stack
    -- Executing Playback("SIP/2002-9d08", "demo-congrats") in new stack
    -- Playing 'demo-congrats' (language 'en')
    -- Executing Hangup("SIP/2002-9d08", "") in new stack
  == Spawn extension (vartest, 8200, 4) exited non-zero on 'SIP/2002-9d08'
    -- Executing NoOp("SIP/2002-9d08", "FRED=hello") in new stack

On the first call, I hung up during the announcement. On the second,
I let the system hang up on me. The h extension showed the variable
value in both cases.

Cheers
Tony
-- 
Tony Mountifield
Work: tony at softins.co.uk - http://www.softins.co.uk
Play: tony at mountifield.org - http://tony.mountifield.org



More information about the asterisk-users mailing list