[Home]

Summary:ASTERISK-05234: H323 channel dial-in freezes Asterisk
Reporter:Henrik Østergaard (henrikoster)Labels:
Date Opened:2005-10-04 13:26:13Date Closed:2006-03-06 17:19:05.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Channels/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have a setup with a H323 gateway (sb510) to connect PSTN phones being the local phones and a SIP line to a VoIP PSTN gateway outside.

To get Asterisk to handle all key pressed on the local phones, the H323 gateway passes control to asterisk using a 'hot number' immediately on off-hook and provides a dialtone using the DISA() cmd. This worked fine on version 1.0.7 using oh323. I however lacked control of transfer and ring group control, which got me to go for the CVS head.

Here I am using the ooh323 driver. It contact Asterisk fine and establish a connection, but when it hits the DISA cmd, it hangs there. No CPU is used. It is possible to dial in on the SIP line, but it cannot get into contact with the h323 lines.

Killing asterisk (kill -kill) and dialing in on the SIP line works fine, the H323 rings as expected and I can answer the call without a problem. But if I try to transfer the call (# doesnt work, but that may be something else) with *2, it locks up again in the DISA cmd.

It is running on a Debian Sarge but has been recompiled from CVS HEAD as of 1. October 2005.

I'll be happy to supply more info if needed, but please tell me how to get it.

Best regards

Henrik



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

Asterisk console output:
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 19:56:31 WARNING[3018]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
   -- Executing SetLanguage("H323/sb510-de8f", "dk") in new stack
Oct  4 19:56:35 WARNING[3018]: pbx.c:5411 pbx_builtin_setlanguage: SetLanguage is deprecated, please use Set(LANGUAGE()=language) instead.
   -- Executing SetGroup("H323/sb510-de8f", "locallines@incomming") in new stack
Oct  4 19:56:35 WARNING[3018]: app_groupcount.c:121 group_set_exec: The SetGroup application has been deprecated, please use the
GROUP() function.
   -- Executing HasNewVoicemail("H323/sb510-de8f", "012") in new stack
Oct  4 19:56:35 NOTICE[3018]: app_hasnewvoicemail.c:110 hasvoicemail_exec: Voice mailbox 012 at /var/spool/asterisk/voicemail/default/012/INBOX does not exist
   -- Executing DISA("H323/sb510-de8f", "no-password|from-internal") in new stack
Oct  4 19:56:44 NOTICE[3018]: rtp.c:300 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 192.168.2.5
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 19:58:16 WARNING[3018]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 20:00:01 WARNING[3018]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
   -- parse_srv: SRV mapped to host musimi.dk, port 5060
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 20:01:46 WARNING[3018]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 20:03:31 WARNING[3018]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 20:05:16 WARNING[3018]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
   -- parse_srv: SRV mapped to host musimi.dk, port 5060
   -- Executing SetGroup("SIP/12892-6177", "gratissip@outgoing") in new stack
   -- Executing Goto("SIP/12892-6177", "incoming|s|1") in new stack
   -- Goto (incoming,s,1)
   -- Executing BackGround("SIP/12892-6177", "local/du_har_ringet_til_htam") in new stack
   -- Playing 'local/du_har_ringet_til_htam' (language 'en')
   -- Executing SetGroup("SIP/12892-6177", "locallines@incomming") in new stack
   -- Executing SetLanguage("SIP/12892-6177", "dk") in new stack
   -- Executing Goto("SIP/12892-6177", "dial|1") in new stack
   -- Goto (incoming,dial,1)
   -- Executing Dial("SIP/12892-6177", "H323/0111@192.168.2.5:1720&H323/0121@192.168.2.5:1720|15|t") in new stack
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 20:07:01 WARNING[3018]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register


Another run, calling in from SIP line. Works fine until a trasnfer (*2 attended transfer) is tried..

Asterisk Ready.
*CLI>     -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  4 20:18:04 WARNING[3139]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
   -- parse_srv: SRV mapped to host musimi.dk, port 5060
   -- Executing SetGroup("SIP/12892-0bbd", "gratissip@outgoing") in new stack
Oct  4 20:18:12 WARNING[3139]: app_groupcount.c:121 group_set_exec: The SetGroup application has been deprecated, please use the
GROUP() function.
   -- Executing Goto("SIP/12892-0bbd", "incoming|s|1") in new stack
   -- Goto (incoming,s,1)
   -- Executing BackGround("SIP/12892-0bbd", "local/du_har_ringet_til_htam") in new stack
   -- Playing 'local/du_har_ringet_til_htam' (language 'en')
   -- Executing SetGroup("SIP/12892-0bbd", "locallines@incomming") in new stack
   -- Executing SetLanguage("SIP/12892-0bbd", "dk") in new stack
Oct  4 20:18:16 WARNING[3139]: pbx.c:5411 pbx_builtin_setlanguage: SetLanguage is deprecated, please use Set(LANGUAGE()=language) instead.
   -- Executing Goto("SIP/12892-0bbd", "dial|1") in new stack
   -- Goto (incoming,dial,1)
   -- Executing Dial("SIP/12892-0bbd", "H323/0111@192.168.2.5:1720&H323/0121@192.168.2.5:1720|15|t") in new stack
   -- Called 0111@192.168.2.5:1720
   -- Called 0121@192.168.2.5:1720
   -- H323/192.168.2.5:1720-44e8 is ringing
   -- H323/192.168.2.5:1720-44e8 answered SIP/12892-0bbd
   -- Attempting native bridge of SIP/12892-0bbd and H323/192.168.2.5:1720-44e8
Oct  4 20:18:37 NOTICE[3139]: rtp.c:300 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 192.168.2.5
 == Spawn extension (incoming, dial, 1) exited non-zero on 'SIP/12892-0bbd'
   -- Executing SetLanguage("H323/sb510-4997", "dk") in new stack
   -- Executing SetGroup("H323/sb510-4997", "locallines@incomming") in new stack
   -- Executing HasNewVoicemail("H323/sb510-4997", "011") in new stack
   -- Executing DISA("H323/sb510-4997", "no-password|from-internal") in new stack
Oct  4 20:18:55 WARNING[3139]: channel.c:741 channel_find_locked: Avoided initial deadlock for '0x81a4280', 10 retries!
                                                                                                                       




ps -e output extract:
3018 pts/1    00:00:00 asterisk
3025 pts/1    00:00:01 mpg123
3026 pts/1    00:00:00 mpg123
Note: Music on hold was not supposed to be activated..
Comments:By: Henrik Østergaard (henrikoster) 2005-10-05 14:29:49

I came to think of that it could be the DISA() cmd and took it out - with almost no effect. I can see that it now comes a little further, but as soon as I press a key on the phone (=dial a digit), asterisk freeze the channel. No further action is possible, not even on another H323 channel. Hanging up the phone has no effect, Asterisk keep the channel open.

Henrik

Output from Asterisk:
Asterisk Ready.
*CLI>     -- parse_srv: SRV mapped to host musimi.dk, port 5060
   -- Executing SetLanguage("H323/sb510-8083", "dk") in new stack
Oct  5 21:21:36 WARNING[3210]: pbx.c:5411 pbx_builtin_setlanguage: SetLanguage is deprecated, please use Set(LANGUAGE()=language) instead.
   -- Executing SetGroup("H323/sb510-8083", "locallines@incomming") in new stack
Oct  5 21:21:36 WARNING[3210]: app_groupcount.c:121 group_set_exec: The SetGroup application has been deprecated, please use the
GROUP() function.
   -- Executing HasNewVoicemail("H323/sb510-8083", "011") in new stack
   -- Executing Goto("H323/sb510-8083", "s|1") in new stack
   -- Goto (from-internal,s,1)
   -- Executing Answer("H323/sb510-8083", "") in new stack
   -- Executing SetLanguage("H323/sb510-8083", "dk") in new stack
   -- parse_srv: SRV mapped to host gratissip.dk, port 5060
Oct  5 21:21:38 WARNING[3210]: chan_sip.c:9483 handle_response_register: Got 200 OK on REGISTER that isn't a register
Oct  5 21:21:40 NOTICE[3210]: rtp.c:300 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 192.168.2.5
   -- Timeout on H323/sb510-8083
 == CDR updated on H323/sb510-8083
   -- Executing Congestion("H323/sb510-8083", "") in new stack

By: Serge Vecher (serge-v) 2005-11-12 11:37:20.000-0600

henrikoster: there were updates to DISA app in Asterisk 1.2.RC2. Is this still an issue with RC2?

By: Matt O'Gorman (mogorman) 2006-01-07 16:39:11.000-0600

bump. is this still a problem if not this bug will be closed

By: Objective Systems (objsys) 2006-01-11 12:38:53.000-0600

Not sure about this one.  We fixed some deadlocks in late fall.  That may have fixed this problem.  Can you retest?

By: dea (dea) 2006-01-11 17:18:17.000-0600

I have not had time to chase this, but I found if I use the Local channel to pass calls to a OOH323 channel deadlocks were a guaranteed result.

I suspect the issue is the same, and possiblly related to the lack of
'transfer' support in the channel.  I hoped to look into it this week,
but if someone who understands this area of Asterisk's internals beats
me to it I wouldn't mind.

When I say chan_ooh323 lacks 'Transfer' support I am referring to the
output of cli>show channeltypes

By: Objective Systems (objsys) 2006-01-19 16:02:55.000-0600

Hi DEA,
Do you face this problem with DISA usage or you face the same log as reported here. As it looks like originally reported by henrikoster.

If your problem is not related with DISA, than reported your problem as new bug with h323_log file & with the details of operations you have performed.

NOTE: Before you test please also update to asterisk-addons trunk version. Asterisk-addons v1.2.1 still contains the deadlock problem code.

Regards,
Avin Patel

By: Objective Systems (objsys) 2006-01-19 16:07:54.000-0600

Hi Henrikoster,
Are you still facing this problem with DISA usage?

If you don't, please close this bug.

Regards,
Avin Patel

By: dea (dea) 2006-01-19 16:13:25.000-0600

I thought it might be related, as I saw it when using the Local
channel to proxy outgoing calls.


I'll look at the latest addons, and test the Local channel issue
again.

By: dea (dea) 2006-01-19 17:52:32.000-0600

OK, no deadlocks or warnings about avoiding deadlock when using
the Local channel to proxy calls to chan_ooh323 using the version
in SVN trunk from today.

On the other hand calls through the Local channel to chan_ooh323
never complete.  I'll send the logs to the ooh323_developers list.

By: Henrik Østergaard (henrikoster) 2006-01-20 00:58:52.000-0600

Hi, Sorry for the long delay.

The problem is as previously stated NOT related to DISA, as it persist even when not using DISA at all.

I have got the oh323 driver to work in stead, and as I have only one system and it is in production, I'm a little reluctant to try anything with the ooh323 unless it is really going to help somebody..

As I have not seen a solution (or reason) for the bug, I suppose I should not close the issue?

Regards

Henrik

By: Objective Systems (objsys) 2006-01-20 07:19:50.000-0600

In response to last 2 notes:

1. To DEA: original bug claimed channel freezes which has been fixed.  If you have a new issue, you need to open a new bug.  This is important from our point of view due to support commitments.

2. To henrikost: Reason was deadlocks which has been confirmed as fixed.

By: Matt O'Gorman (mogorman) 2006-01-30 15:25:50.000-0600

is everything solved is this bug ready for closing?