[Home]

Summary:ASTERISK-03114: Result returning from exec in AGI
Reporter:Mike Tkachuk (mike_tk)Labels:
Date Opened:2004-12-28 14:21:51.000-0600Date Closed:2011-06-07 14:10:06
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Resources/res_features
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:When I'm, trying to return 1 from any application that I executed over AGI using 'exec' than I will get 0.
(200 result=0)

****** ADDITIONAL INFORMATION ******

I think problem in pbx.c, pbx_exec procedure, lines:

if (newstack && (res = setjmp(c->jmp[++c->stack]))) {
/* Okay, here's where it gets weird.  If newstack is non-zero, then we increase the stack increment, but setjmp is not going to return until longjmp is called -- when the application exec'd is finished running. */
> if (res == 1)
> res = 0;
if (c->stack != stack + 1)
               ast_log(LOG_WARNING, "Stack returned to an unexpected place!\n");

Or I don't understand meaning of lines
'if (res == 1) res = 0;' :)
Comments:By: Mark Spencer (markster) 2004-12-28 15:12:33.000-0600

Only certain return values are permitted from applications and they have special meanings.  If you want to communicate something like that, use a channel variable instead.