Summary:ASTERISK-07509: [branch] Make chan_h323 live!
Reporter:Paul Cadach (pcadach)Labels:
Date Opened:2006-08-10 13:48:48Date Closed:2006-09-20 12:58:41
Versions:Frequency of
Description:This ticket indended to handle changes and updates for TRUNK-based branch asterisk/team/pcadach/chan_h323-live


Known issues:
1) Cisco (IOS 12.3) does not handle tunnelled MSD message correctly (it think MSD sent twice) - as workaround, disable H.245 tunneling;

Fixed issues:
1) allow=all not fills codec preference structure, so call dont' have any allowed codecs;
-  fixed (all codecs not specified in preference structure appended to the end of preferenced list);
2) don't registers to GK (but for me - does);
-  configure GK operations properly;
3) bindaddr!= is used for outgoing calls too (separate H.245 stack uses previously opened signalling channel), workaround for OpenH323 < 1.17.3 included;
4) core realtime support finished (thanks sergee), CLI interface still not implemented;
5) basic support for VLDTMF included;
6) sequential load/unload/load/"stop now" produces core due to missed cleanups in OpenH323/PWLib (needs to be studied a little more, better to provide patches for OpenH323/PWLib) - main reason for cores is cross-bindings between chan_h323 and openh323/pwlib, solved by disabling exporting of any symbols from chan_h323 (but optnoshared still have some issues on openh323/pwlib internal cleanups);
7) H.323 connections should be closed gracefully on Asterisk shutdown (including unregistering from gatekeeper);
8) bindaddr= (or missing bind=) makes invalid RTP source addres ( - use local hostname to determine our local address if bindaddr isn't specified or;
9) Describe progress_setup, progress_alert, progress_audio options in sample configuration file - done;
10) h.323 gk cycle disabled - workaround for buggy PWLib is done;
11) reload isn't tested - should be work, GK configuration verified carefully;
12) H.323 logging through Asterisk logger sometimes causes crashes on malloc() calls - fixed, uses OpenH323's PThrace object which provides inter-process locking;
13) OpenH323/PWLib likes to be called from its own threads only (registered within PProcess's internal list of threads), otherwise it causes crashes on I/O operations (UDP transport have workaround, but who also calls PSocket::Select()?) - looks like fixed;
Comments:By: Serge Vecher (serge-v) 2006-08-10 13:59:50

good undertaking, PCAdach! Should this report be public, since your branch is also open to the public?

By: Serge Vecher (serge-v) 2006-08-24 09:28:32

phsultan: I know you've been testing h323 channels before. Do you mind checking this branch out ;)? Thanks...

By: Serge Vecher (serge-v) 2006-08-31 15:47:48

John: an open invitation to you too ;)

By: Paul Cadach (pcadach) 2006-09-20 12:58:40

Commited to the SVN trunk.

edit, for documentation sake:
Initially merged in r43281, with a packetization update in r43331 and miscellaneous updates as late as r43347. In short, check the latest trunk!

Thanks goes out to PCadach for hard work, to sergee, ruffer, and flot for testing.