Summary:ASTERISK-04527: Private structure not found in progress.
Reporter:Sebastian Nocetti (snocetti)Labels:
Date Opened:2005-07-05 16:55:02Date Closed:2005-07-27 00:36:07
Versions:Frequency of
Description:Jul  5 19:04:09 ERROR[7637]: chan_h323.c:1227 progress: Private structure not found in progress.

Jul  5 19:04:09 ERROR[7637]: chan_h323.c:1407 chan_ringing: Something is wrong: ringing

When this happens, ASTERISK crash.. thanks, I dont know what is it...
Comments:By: Michael Jerris (mikej) 2005-07-05 18:56:19

As stated in the bug guidelines, we need full debugs, verbose and a backtrace for this please.

By: Sebastian Nocetti (snocetti) 2005-07-06 16:36:31

Hi, well, I found why Crash asterisk on this issue, and I found when this happens, it is when I run an Agi Script, using DeadAgi, and call is hanged up, then I try to do some commands like Monitor, etc (my mistake, bad agi programming) and channel is down,...

Asterisk Crash because this marked line in chan_h323.c

void chan_ringing(unsigned call_reference, const char *token)
       struct ast_channel *c = NULL;
       struct oh323_pvt *pvt;

       if (h323debug)
               ast_log(LOG_DEBUG, "Ringing on %s\n", token);

       pvt = find_call_locked(call_reference, token);
       if (!pvt) {
ERROR HERE ---> ast_log(LOG_ERROR, "Something is wrong: ringing\n");
I ADDED THIS --> return;
       if (!pvt->owner) {
               ast_log(LOG_ERROR, "Channel has no owner\n");
       c = pvt->owner;
       ast_setstate(c, AST_STATE_RINGING);
       ast_queue_control(c, AST_CONTROL_RINGING);

I just put a RETURN after that line, and then Asterisk does not crashes anymore... I dont know if it is a good solution, but it worked for me... thanks!

By: Paul Cadach (pcadach) 2005-07-21 04:57:04

Your solution is pretty well. Patch is included at ASTERISK-4440 (the bug is found independedly from your report).

By: jerjer (jerjer) 2005-07-27 00:35:50

4555 has patch which addresses the issue.

By: jerjer (jerjer) 2005-07-27 00:36:05

not in -stable