[asterisk-bugs] [Asterisk 0012429]: AGISTATUS is not set to the correct value

noreply at bugs.digium.com noreply at bugs.digium.com
Sat Apr 12 14:25:10 CDT 2008


The following issue has been SUBMITTED. 
====================================================================== 
http://bugs.digium.com/view.php?id=12429 
====================================================================== 
Reported By:                fmueller
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12429
Category:                   Resources/res_agi
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 114091 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             04-12-2008 14:25 CDT
Last Modified:              04-12-2008 14:25 CDT
====================================================================== 
Summary:                    AGISTATUS is not set to the correct value
Description: 
I call this context:

[default]
exten => 69,1,Answer()
exten => 69,2,DeadAGI(deadagi-test.php)
exten => 69,3,NoOp(foo)
exten => 69,4,Hangup()
exten => h,1,NoOp(${AGISTATUS})

The source code for deadagi-test.php is this:

#!/usr/local/bin/php
<?php
sleep(7);
?>

I hangup while the script is sleeping. According to the documentation that
is given by the command 'show application AGI' I expected that the value of
AGISTATUS is  HANGUP but the following line is written to the CLI:

Executing [h at default:1] NoOp("SIP/111-08201fb8", "SUCCESS") in new stack

Doing the same with AGI instead of DeadAGI I get what I expected:
Executing [h at default:1] NoOp("SIP/111-08200328", "HANGUP") in new stack

This is a bug, right?
Back to DeadAGI. I again use the context mentioned at the beginning but
change the source code of deadagi-test.php to this:

#!/usr/local/bin/php
<?php
while (($line = fgets(STDIN)) != "\n") {}
echo("STREAM FILE demo-congrats \"\"\n");
flush(STDOUT);
fgets(STDIN);
?>

When I hangup while the sound file is beeing played back the following is
written to the CLI:

-- AGI Script deadagi-test.php completed, returning -1
-- Executing [h at default:1] NoOp("SIP/111-08191378", "") in new stack

This means that AGISTATUS is not set which is a bug, isn´t it? Also note
the "returning -1". When you change the line
echo("STREAM FILE demo-congrats \"\"\n");
to
echo("GET DATA demo-congrats 5000 1\n");
in the script above and again hangup while the sound file is beeing played
back the following is written to the CLI:

-- AGI Script deadagi-test.php completed, returning 0
-- Executing [h at default:1] NoOp("SIP/111-08191378", "SUCCESS") in new
stack

So this time we have "returning 0" and AGISTATUS set to SUCCESS. I do not
think that the AGISTATUS variable and the number returned (0 or -1) should
depend on what command you use (STREAM FILE or GET DATA). What do you think
about this?
Thank you for your feedback.
====================================================================== 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
04-12-08 14:25  fmueller       Asterisk Version          => SVN             
04-12-08 14:25  fmueller       SVN Branch (only for SVN checkou =>  1.4         
  
04-12-08 14:25  fmueller       SVN Revision (number only!) => 114091          
======================================================================




More information about the asterisk-bugs mailing list