Hi.
I'm trying to do some custom call logging, and I want to call an AGI
script from a hangup handler to log call durations and things. Although
the script executes, it isn't retrieving variables from the AGI
interface. Looking closer, I realised the variables are actually getting
unset before the h extension is reached.
[foo]
s,1,SetVar,foo=bar
s,2,Play(audio/a-long-prompt)
h,1,AGI(log-call-duration.pl)
When I do an $agi->get_variable("foo") from the perl, I get the
string
"noresponse" returned.
This all works fine if I don't call the AGI from the hangup extension,
but from a normal one instead.
Does anyone have any idea how I might fix or work around this? It's
important for us to log call durations (and other things), which
obviously needs to be done when the users hangs up. Storing stuff using
the cdr isn't really an option.
--
Alastair Maw <al.maw@mxtelecom.com>
MX Telecom - Systems Analyst
http://www.mxtelecom.com
Correct me if i'm wrong but doesn't the cdr modules log the call duration? bkw On Wed, 13 Aug 2003, Alastair Maw wrote:> Hi. > > I'm trying to do some custom call logging, and I want to call an AGI > script from a hangup handler to log call durations and things. Although > the script executes, it isn't retrieving variables from the AGI > interface. Looking closer, I realised the variables are actually getting > unset before the h extension is reached. > > [foo] > s,1,SetVar,foo=bar > s,2,Play(audio/a-long-prompt) > h,1,AGI(log-call-duration.pl) > > When I do an $agi->get_variable("foo") from the perl, I get the string > "noresponse" returned. > > This all works fine if I don't call the AGI from the hangup extension, > but from a normal one instead. > > Does anyone have any idea how I might fix or work around this? It's > important for us to log call durations (and other things), which > obviously needs to be done when the users hangs up. Storing stuff using > the cdr isn't really an option. > > -- > Alastair Maw <al.maw@mxtelecom.com> > MX Telecom - Systems Analyst > http://www.mxtelecom.com > > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users >
James Golovich
2003-Aug-13 11:39 UTC
[Asterisk-Users] h extension seems to wipe variables?
Once the call has hungup the AGI functions stop working, so executing an AGI from an h extension will not do what you expect. but you can still do all kinds of perl stuff there, so you could stick the info in mysql or somewhere else James On Wed, 13 Aug 2003, Alastair Maw wrote:> Hi. > > I'm trying to do some custom call logging, and I want to call an AGI > script from a hangup handler to log call durations and things. Although > the script executes, it isn't retrieving variables from the AGI > interface. Looking closer, I realised the variables are actually getting > unset before the h extension is reached. > > [foo] > s,1,SetVar,foo=bar > s,2,Play(audio/a-long-prompt) > h,1,AGI(log-call-duration.pl) > > When I do an $agi->get_variable("foo") from the perl, I get the string > "noresponse" returned. > > This all works fine if I don't call the AGI from the hangup extension, > but from a normal one instead. > > Does anyone have any idea how I might fix or work around this? It's > important for us to log call durations (and other things), which > obviously needs to be done when the users hangs up. Storing stuff using > the cdr isn't really an option. >
Florian Overkamp
2003-Aug-13 23:47 UTC
[Asterisk-Users] h extension seems to wipe variables?
At 11:50 13-8-2003 -0500, you wrote:>Correct me if i'm wrong but doesn't the cdr modules log the call duration?True, but in some cases you would want to do more. I have built IVR's that require some after-call handling. For this I tried to use variables as well, but failed. The solution in my case was to pass the variables from the extensions.conf and passing them as arguments to the AGI script rather then reading them inside the AGI script.> > I'm trying to do some custom call logging, and I want to call an AGI > > script from a hangup handler to log call durations and things. Although > > the script executes, it isn't retrieving variables from the AGI > > interface. Looking closer, I realised the variables are actually getting > > unset before the h extension is reached. > > > > [foo] > > s,1,SetVar,foo=bar > > s,2,Play(audio/a-long-prompt) > > h,1,AGI(log-call-duration.pl) > > > > When I do an $agi->get_variable("foo") from the perl, I get the string > > "noresponse" returned. > > > > This all works fine if I don't call the AGI from the hangup extension, > > but from a normal one instead.Met vriendelijke groet, Florian Overkamp ObSimRef BV (http://www.obsimref.com/)