Summary:ASTERISK-21800: ooh323 channels stuck if no gatekeer or ooh323 reload
Reporter:Dmitry Melekhov (slesru)Labels:
Date Opened:2013-05-21 04:21:08Date Closed:2013-05-31 03:11:03
Versions:11.3.0 Frequency of
Environment:Centos 6 x86Attachments:( 0) ASTERISK-21800.patch
( 1) ASTERISK-21800-1.patch
( 2) h323_log

This happens second time after upgrade to 11.x several weeks ago- if I reboot server with gnugk I get stuck channels:

ast-nsk*CLI> pri show channels
PRI       B    Chan Call       PRI  Channel
Span Chan Chan Idle Level      Call Name
  1    1 Yes  No   Overlap    No   DAHDI/i1/7171-ad
  1    2 Yes  No   Overlap    No   DAHDI/i1/7175-ae
  1    3 Yes  No   Overlap    No   DAHDI/i1/7171-af
  1    4 Yes  No   Overlap    No   DAHDI/i1/7175-b0
  1    5 Yes  No   Connect    Yes  DAHDI/i1/7116-b1
  1    6 Yes  No   Connect    Yes  DAHDI/i1/7024-b6
  1    7 Yes  No   Connect    Yes  DAHDI/i1/7000-b8
  1    8 Yes  No   Connect    Yes  DAHDI/i1/7109-b7
  1    9 Yes  Yes  Idle       No  
  1   10 Yes  No   Connect    Yes  DAHDI/i1/7094-bb
  1   11 Yes  No   Overlap    Yes  DAHDI/i1/7171-bc
  1   12 Yes  Yes  Idle       No  
  1   13 Yes  Yes  Idle       No  
  1   14 Yes  Yes  Idle       No  
  1   15 Yes  Yes  Idle       No  
  1   17 Yes  Yes  Idle       No  
  1   18 Yes  Yes  Idle       No  
  1   19 Yes  Yes  Idle       No  
  1   20 Yes  Yes  Idle       No  
  1   21 Yes  Yes  Idle       No  
  1   22 Yes  Yes  Idle       No  
  1   23 Yes  Yes  Idle       No  
  1   24 Yes  Yes  Idle       No  
  1   25 Yes  Yes  Idle       No  
  1   26 Yes  Yes  Idle       No  
  1   27 Yes  Yes  Idle       No  
  1   28 Yes  Yes  Idle       No  
  1   29 Yes  No   Overlap    No   DAHDI/i1/7175-aa
  1   30 Yes  No   Overlap    No   DAHDI/i1/7175-ab
  1   31 Yes  No   Overlap    No   DAHDI/i1/7171-ac
ast-nsk*CLI> core show cha
channel       channels      channeltypes  channeltype  
ast-nsk*CLI> core show channels
Channel              Location             State   Application(Data)            
DAHDI/i1/7175-b0     6879@dahdi:5         Ring    Dial(OOH323/6879)            
OOH323/4271-184      (None)               Down    (None)                        
DAHDI/i1/7171-ac     4271@dahdi:5         Ring    Dial(OOH323/4271)            
DAHDI/i1/7171-ad     4271@dahdi:5         Ring    Dial(OOH323/4271)            
DAHDI/i1/7171-af     4271@dahdi:5         Ring    Dial(OOH323/4271)            
OOH323/ 7094@h323:2          Up      Dial(DAHDI/g1/7094)          
OOH323/4271-172      (None)               Down    (None)                        
OOH323/4271-170      (None)               Down    (None)                        
OOH323/4271-169      (None)               Down    (None)                        
DAHDI/i1/7171-bc     4271@dahdi:5         Ring    Dial(OOH323/4271)            
OOH323/6879-167      (None)               Down    (None)                        
OOH323/6879-168      (None)               Down    (None)                        
OOH323/6879-171      (None)               Down    (None)                        
OOH323/6879-173      (None)               Down    (None)                        
DAHDI/i1/7000-b8     (None)               Up      AppDial((Outgoing Line))      
DAHDI/i1/7116-b1     (None)               Up      AppDial((Outgoing Line))      
DAHDI/i1/7094-bb     (None)               Up      AppDial((Outgoing Line))      
DAHDI/i1/7024-b6     (None)               Up      AppDial((Outgoing Line))      
OOH323/ 7024@h323:2          Up      Dial(DAHDI/g1/7024)          
OOH323/ 7116@h323:2          Up      Dial(DAHDI/g1/7116)          
OOH323/ 7000@h323:2          Up      Dial(DAHDI/g1/7000)          
OOH323/ 7109@h323:2          Up      Dial(DAHDI/g1/7109)          
DAHDI/i1/7175-ae     6879@dahdi:5         Ring    Dial(OOH323/6879)            
DAHDI/i1/7175-aa     6879@dahdi:5         Ring    Dial(OOH323/6879)            
DAHDI/i1/7175-ab     6879@dahdi:5         Ring    Dial(OOH323/6879)            
DAHDI/i1/7109-b7     (None)               Up      AppDial((Outgoing Line))      
26 active channels
13 active calls
187 calls processed

there is script which do ooh323 reload if there is no registration in gatekeeper, not sure what causes this- no connection to gatekeeper or ooh323 reload.

There is no such problem in 10.x ..

Thank you!
Comments:By: Rusty Newton (rnewton) 2013-05-21 14:30:25.271-0500

Assigning to the community maintainer for chan_ooh323.

By: Alexander Anikin (may213) 2013-05-23 03:54:36.610-0500

Dmitry, could you attach 'core show channels' output here at least?
But better case is attach h323_debug file also with tracelevel=6 above ooh323 reload.

I'm not sure but this can be not an ooh323 problem.

By: Alexander Anikin (may213) 2013-05-23 03:55:55.021-0500

Dmitry, please attach logs that you have for this

By: Dmitry Melekhov (slesru) 2013-05-23 04:55:18.985-0500


I need to reproduce this in high load time, so, I have to get approvement :-)
Please, wait, I hope to do this next week.
Thank you!

By: Dmitry Melekhov (slesru) 2013-05-24 01:42:43.117-0500


OK, reproduced it.

How to reproduce:

there is following scheme:

addpac ( fxs ) -- panasonic 500 -- ( pri ) - asterisk

I called from addpac over voip , so my call has no clid.

just after I got this:

   -- Executing [5502@dahdi:4] Set("DAHDI/i1/-2", "CALLERID(name)=") in new stack
   -- Executing [5502@dahdi:5] Dial("DAHDI/i1/-2", "OOH323/5502") in new stack

I executed ooh323 reload

and got:

ast-nsk*CLI> core show channels
Channel              Location             State   Application(Data)            
OOH323/5502-1        (None)               Down    (None)                        
DAHDI/i1/-2          5502@dahdi:5         Ring    Dial(OOH323/5502)            
2 active channels
1 active call

ast-nsk*CLI> pri show channels
PRI       B    Chan Call       PRI  Channel
Span Chan Chan Idle Level      Call Name
  1    1 Yes  Yes  Idle       No  
  1    2 Yes  Yes  Idle       No  
  1    3 Yes  Yes  Idle       No  
  1    4 Yes  Yes  Idle       No  
  1    5 Yes  Yes  Idle       No  
  1    6 Yes  Yes  Idle       No  
  1    7 Yes  Yes  Idle       No  
  1    8 Yes  Yes  Idle       No  
  1    9 Yes  Yes  Idle       No  
  1   10 Yes  Yes  Idle       No  
  1   11 Yes  Yes  Idle       No  
  1   12 Yes  Yes  Idle       No  
  1   13 Yes  Yes  Idle       No  
  1   14 Yes  Yes  Idle       No  
  1   15 Yes  No   Overlap    No   DAHDI/i1/-2

stuck channel.

I'll upload whole h323 log, although there were another calls during this time, sorry for this :-(

By: Dmitry Melekhov (slesru) 2013-05-24 01:44:32.955-0500

call log

By: Alexander Anikin (may213) 2013-05-24 04:35:13.081-0500

Understand where is problem.
gatekeeper do re-registration in two seconds and call don't perform in this time. Will produce patch to delay or reject calls when re-registration process is active, don't know what is better way (delay or reject) for now.

By: Alexander Anikin (may213) 2013-05-24 04:38:02.772-0500

Even more, the call still on asterisk core and does nothing.

By: Dmitry Melekhov (slesru) 2013-05-24 04:42:53.665-0500

Thank you!

IMHO, reject is better- 1. user can always recall,  but 2. number of channels is limited :-)

By: Alexander Anikin (may213) 2013-05-24 04:55:58.766-0500

Confirm, will reject call. Delay call can cause more problems, there need to control timeouts, retry h323 stack calls and another things. So reject is more simple ;)

By: Alexander Anikin (may213) 2013-05-29 12:15:02.203-0500

Patch to reject call when gk client isn't registered

By: Alexander Anikin (may213) 2013-05-29 12:16:55.242-0500

Dmitry, patch for asterisk 11 is attached, please test it.
Calls that use ooh323 when gatekeeper client isn't registered must reject now.

By: Dmitry Melekhov (slesru) 2013-05-29 23:33:15.118-0500


Thank you, I'll test it today.
Right now I see small mistyping in patch.
I guess "Gatekeeper client is configured but registered" should have "no" in it :-)

Thank you!

By: Dmitry Melekhov (slesru) 2013-05-30 06:57:20.701-0500


thank you!

patch works:

   -- Executing [6052@dahdi:5] Dial("DAHDI/i1/-39c", "OOH323/6052") in new stack
[May 30 15:56:15] ERROR[2110][C-0000039d]: chan_ooh323.c:697 ooh323_request: Gatekeeper client is configured but registered
[May 30 15:56:15] WARNING[2110][C-0000039d]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'OOH323' (cause 0 - Unknown)

By: Alexander Anikin (may213) 2013-05-30 07:04:30.992-0500

Dmitry, thank for testing
I will produce few corrected path with right message and correct cause for channel creation, i think cause 0 is wrong.

By: Dmitry Melekhov (slesru) 2013-05-30 07:09:34.258-0500

I guess ( tried ask our tdm guy, but he said he is extremily busy) this should be

Cause No. 44 - requested circuit/channel not available.
This cause is returned when the circuit or channel indicated by the requesting entity cannot be provided by the other side of the interface.


Thank you!

By: Alexander Anikin (may213) 2013-05-30 07:15:37.604-0500

Formally it must be 21 (Call rejected) or 38 (network out of order), i think 38 is more correct but will take example from another channel drivers.

By: Alexander Anikin (may213) 2013-05-30 10:18:02.382-0500

Better code is 41 for this situation.
New patch is attached

By: Alexander Anikin (may213) 2013-05-30 10:18:50.458-0500

Dmitry, please check new patch.
If it work ok we can close this issue.

By: Dmitry Melekhov (slesru) 2013-05-31 01:32:54.037-0500

Everything is ok:

   -- Executing [6502@dahdi:5] Dial("DAHDI/i1/-1b4", "OOH323/6502") in new stack
[May 31 10:32:00] ERROR[21537][C-000001b5]: chan_ooh323.c:698 ooh323_request: Gatekeeper client is configured but not registered
[May 31 10:32:00] WARNING[21537][C-000001b5]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'OOH323' (cause 41 - Temporary failure)
 == Everyone is busy/congested at this time (1:0/0/1)

Thank you!

By: sam (sam.gh) 2013-10-31 05:31:18.104-0500

hello Alexander

please forgive me if here is not correct place for my question but i don't know where i should ask. i have a problem with ooh323 module and i think you can help me. i have an active ooh323 call via a gatekeeper. i want to add another ooh323 call (add more configuration and apply them) while i have an active call. i can reload config file by "ooh323 reload" command and reload extensions.conf file by "dialplan reload" command. these commands are good but can't force h323 client (my system) to resend registration request for gk. therefor i can not call with my new configuration.
if i unload and load chan_ooh323.so, everything is ok and client send registration request for gk and registers with new configuration but unload and load module, causes to my current call  being disconnected.

my question is: how can i do it? is there any way or patch to reregister my client while i have active h323 calls?

thanks in advance