OpenH323 FAQ - automatic post 21 December 2006

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



OpenH323 and OPAL Frequently Asked Questions
Automatically posted 21 December 2006

See http://www.voxgratia.org/docs/faq.html for the latest version

Last updated 2 November 2006

Recent changes
   2 November 2006 -   Added new information to 8.2
   3 October 2006 -   Added new email address in 1.4
   25 August 2006 -   Cleaned up reference to GnomeMeeting and some references to old  versions in codec notes
   30 July 2006 -   Changed URL in 3.4 for viewing CVS via browser
   24 July 2006 -   Added 10.7 on various calling services


 1. GENERAL 
 1.1 - Where can I find the FAQ?
 1.2 - My question is not answered by the FAQ, how can I make a
 suggestion?
 1.3 - Who maintains the FAQ?
 1.4 - Who owns and runs the OpenH323 mailing list and OpenH323 web
 site, and how do I contact them if I am having problems?
 1.5 - The FAQ describes something that sounds like my problem, and
 it refers to a document that I don't really understand. I don't have
 time for all of this - can I just email someone or contact them via IM
 and get them to explain it all to me?
 1.6 - I'm using pwlib 1.15.0 and openh323 1.5.2 from the
 openh323.org site, and I have a problem. Will anyone help me?
 1.7 - Not used
 1.8 - What is OPAL?
 1.9 - What are the development plans for OpenH323 and OPAL?
 1.10 - What were the H.323 security vulnerabilities reported by
 the NISCC, and how do they affect OpenH323?
 1.11 - Not used
 1.12 - What is the license used for PWLib, OpenH323 and OPAL, and
 why wasn't the GPL used?
 1.13 - What restrictions are placed on the software can I combine
 with PWLib, OpenH323 and OPAL?
 1.14 - What license restrictions are placed on changes I make to
 PWLib, OpenH323 and OPAL?
 1.15 - Where did PWLib, OpenH323 and OPAL come from, and who is
 responsible for it now?

 2. MAILING LIST
 2.1 - How do I subscribe to the mailing list?
 2.2 - How do I unsubscribe from the mailing list?
 2.3 - How do I make a posting to the mailing list?
 2.4 - What is the mailing list used for?
 2.5 - What is the mailing list *not* used for?
 2.6 - There is too much traffic on the mailing list. Is there a
 digest?
 2.7 - Is there an searchable archive of the list available?
 2.8 - Are there any rules?
 2.9 - Who enforces the rules?
 2.10 - How can I ensure someone will answer my question? 
 2.11 - But I really need an URGENT answer to my question?
 2.12 - Who answers questions on the list?
 2.13 - I want to help by answering questions? How do I do this?
 2.14 - What are the mailing lists on SourceForge used for?
 2.15 - Why aren't there separate lists for users and developers
 like other projects?
 2.16 - Can I ask questions about how to use/debug/understand
 another H.323 stack?

 3. DOWNLOADING CODE
 3.1 - Where can I download source code from?
 3.2 - Where can I download binaries from?
 3.3 - Where can I get the very latest source code from?
 3.4 - How do I access the CVS repository?
 3.5 - Where can I get ZIP versions of the source archives?
 3.6 - How do I know what version to download?
 3.7 - Where can I download a particular version of the code?
 3.8 - Why isn't the latest code and information on openh323.org,
 and why don't you do something about it?
 3.9 - What are Janus, Pandora, Mimas, Atlas and Phobos?
 3.10 - Where can I download the old PWLib GUI code
 3.11 - Why is the configure.in file is missing when I extract
 source code from the CVS?

 4. COMPILING THE CODE
 4.1 - The code does not compile - what is the problem?
 4.2 - Microsoft Visual Studio will not load the DSP and DSW files
 provided with OpenH323
 4.3 - I know the OpenLDAP/OpenSSL/Foobah library on my system is
 broken, but OpenH323 uses it anyway. How do I prevent this?
 4.4 - How do I cross compile OpenH323 for another platform?
 4.5 - Are there detailed instructions for building OpenH323/PWLib
 on Windows?
 4.6 - Can I compile OpenH323/PWLib using VS.NET 2003, VS.net 2005
 and Visual C++ 2005 Express Edition?
 4.7 - How do I fix the Windows build error "Cannot open include
 file: 'ptbuildopts.h': No such file or directory"?
 4.8 - How do I fix the Windows build error "Configuring Build
 Options \ This program cannot run in DOS mode \ Error executing
 c:\windows\system32\cmd.exe" ?
 4.9 - How do I fix the errors in vfakeio.cxx starting at line 411
 like "newline in constant", "too many characters in constant", "syntax
 error: string"?
 4.10 - How do I report a bug in the code?
 4.11 - How do I fix errors about a missing function called
 PIsDescendant or IsDescendant ?
 4.12 - How do I fix errors about missing include files like
 "gsmcodec.h" or "lpc10codec.h" ?
 4.13 - How do I fix errors like "Cannot open source file:
 getdate_tab.c': No such file or directory"?
 4.14 - How do I compile OpenH323 on Solaris?
 4.15 - How do I make the code smaller?
 4.16 - How do I submit patches to the code?
 4.17 - How do I fix the following error on when compiling using
 MSVC  6 "WARNING: the following file requires upgrading: \
 C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\XTREE \ Please
 run 'msvc6chk upgrade' to upgrade this file"?
 4.18 - How do I stop my program from immediately crashing with a
 dialog saying"The application failed to initialise properly. Click on
 OK to terminate the application" when I use the DLL versions of PWLib
 and OpenH323, even though the statically linked versions work OK?
 4.19 - How do I fix the following error on Windows when building
 PTLIB.DLL/OPENH323.DLL  "dllmain.obj  :  fatal  error  LNK1202:
 "d:\pwlib.msvc\lib\ptlib.pdb" is missing debugging information for
 referencing module" ?
 4.20 - How do I fix the following error when compiling OpenH323
 "This program cannot be run in DOS mode. \ Error executing
 c:\windows\system32\cmd.exe.  \  asnparser.exe  -  1 error(s), 0
 warning(s)" ?
 4.21 - I am compiling Pandora or Janus patch 4 - where is the
 ASNParser?
 4.22 - Where is pwrc, openphone and all of GUI classes?
 4.23  -  How  do  I  fix  warnings about PVXMLSession and
 OpalVXMLSession not found compiling the opennivr/vxmltest/woomera
 programs?
 4.24 - The configure program for PWLib or OpenH323 is finding the
 wrong version of a library - how do I stop this?
 4.25 - I used to be able to compile PWLib without any problems,
 but  now  I  get  warnings  like  this  "Please  remove
 pwlib\include\ptlib\msos from the tool include path and from the
 pre-processor options for this project" - how do I fix this?
 4.26 - How do I fix errors compiling
 asn_grammar.y/asn_grammar.cxx?
 4.27  -  When  I  compile  pwlib  I  get  warnings  like
 "../common/getdate.y: conflicts: 8 shift/reduce, 18 reduce/reduce" -
 is this normal?
 4.28 - When I compile pwlib I get a warning like "In static member
 function `static std::ostream& PTrace::End(std::ostream&)': warning:
 unused variable 'rb' - is this normal?
 4.29 - How do I fix link errors about missing functions when
 compiling DLLs on Windows?
 4.30 - How do I link applications statically in Windows?
 4.31 - How do I link applications statically on Unix?
 4.32 - How do I stop configure from finding the wrong header files
 on Windows?
 4.33 - How do fix errors about missing MSVC80.DLL or MSVCR80.DLL
 files when debugging using Visual C++ 2005 Express Edition?
 4.34 - How do I fix gcc errors about "PAtomicInteger" when
 compiling OpenH323 or OPAL?
 4.35 - I cannot find the Console Components library files
 (ptclib.lib and ptclibd.lib) in recent builds of PWLib. Where are
 they?

 5. CODECS
 5.1 - Why is there no G.723.1/G.729 codec in OPAL or OpenH323?
 5.2 - Can I use the ITU reference code for G.723.1 and G.729?
 5.3  -  Where can I get licensed G.723.1 and G.729 codec
 implementations?
 5.4 - Can I use the Microsoft G.723.1 codec in my Windows
 program?
 5.5 - How do I use the H.263 video codec with NetMeeting?
 5.6 - How do I add my own audio or video codec to OPAL or
 OpenH323?
 5.7 - What audio codecs are supported by OpenH323?
 5.8 - What video codecs are supported by OpenH323?
 5.9 - Where can I get more information on plugin codecs?
 5.10 - Why does a call using a compressed audio codec use much
 more bandwidth than expected?
 5.11 - What is the effect of changing the number of frames per
 packet for an audio codec?
 5.12 - Why am I getting bad audio quality even though I am using
 G.711?
 5.13 - Why am I getting bad audio when using the G.729 codec?
 5.14 - How do I get the same codec in each direction when making a
 call?
 5.15 - Why are there so many Speex capabilities?
 5.16 - Does OpenH323 support wide-band codecs?
 5.17 - Can I use the H.263 video codec in my program?

 6. DOCUMENTATION
 6.1 - Where can I get a design document for OpenH323?
 6.2 - Where can I find the help file for OpenPhone?
 6.3 - Where can I find user manuals for the Openh323 programs?
 6.4 - Is there a programming tutorial for OpenH323?
 6.5 - Is there documentation on audio codec plugins?
 6.6 - Where can I get documentation on the API for PWLib and
 OpenH323?
 6.7 - What documentation is available for OpenH323?
 6.8 - Where can I find the specification documents for H.323?
 6.9 - Is there a document on the configure.exe program used for
 configuring OpenH323 and PWLib on Windows?

 7. USING OPAL and OPENH323
 7.1 - When I make a call I get audio in only one direction. What
 is the problem?
 7.2 - I am behind a firewall and cannot receive incoming calls?
 Why not?
 7.3 - I can establish a connection but no audio is transferred.
 What is wrong? 
 7.4 - How do I call NetMeeting with an OpenH323 client?
 7.5 - I hear an echo when I speaking on a H.323 call - what is
 wrong?
 7.6 - How can I test whether my client is working?
 7.7 - I'm sure I have found a problem with OpenH323 - how do I
 report it?
 7.8 - Why am I getting bad audio even though I am using the G.711
 codec?
 7.9 - Why am I getting bad audio when using the G.729 codec
 7.10 - When I start OpenGK/OpenMCU2/OpenIVR as a windows service
 process it won't start due to "error 1053" or similar error. How do I
 fix this problem?
 7.11 - How does OpenH323 support ENUM dialing?
 7.12 - I am getting "Blocked" or other incorrect results when
 using STUN - how do I fix this?
 7.13 - What are the different firewall types reported by STUN,
 and what do they mean?
 7.14  -  Why I am seeing messages like "RTP Packet from
 SSRC=xxxxxxxx ignored, expecting SSRC=yyyyyyyy" with audio only in one
 direction?
 7.15 - How many simultaneous calls can OPAL/OpenH323 handle?

 8. OPAL and OpenH323 applications
 8.1 - What other Open Source projects use OPAL and OpenH323?
 8.2 - What commercial and closed-source software uses OPAL and
 OpenH323?
 8.3 - What is the status of the OpenMCU program?
 8.4 - How do I use OpenH323 with Asterisk?

 9. Programming
 9.1 - How do I create a program that uses OpenH323 for call
 control, but uses an external RTP device?
 9.2 - How do get a list of the codecs supported by OpenH323?
 9.3 - When I enable PMEMORY_CHECK, I see all sorts of memory
 leaks reported. How do I fix these?

 10. OPAL
 10.1 - What is OPAL?
 10.2 - Where can I download OPAL?
 10.3 - How do I compile OPAL?
 10.4 - How do I use SimpleOPAL to make a call?
 10.5 - Is OpenH323 now obsolete or deprecated now that OPAL is
 released?
 10.6 - Where can I find documentation on OPAL?
 10.7 - How do I use OPAL to make a call to a telephone number?

 Change Log 
  _________________________________________________________________

1. GENERAL

 1.1 - Where can I find the FAQ?

 The FAQ is available at http://www.voxgratia.org/docs/faq.html,
 and is posted automatically every two weeks to the OpenH323 mailing
 list. It also available in text form at
 http://www.voxgratia.org/docs/openh323-faq.txt

 1.2 - My question is not answered by the FAQ, how can I make a
 suggestion?

 Send any suggestions by email to craigs@xxxxxxxxxxxxxxxxx

 1.3 - Who maintains the FAQ?

 This FAQ is maintained by Craig Southeren of Post Increment who can be
 reached by email at craigs@xxxxxxxxxxxxxxxxx

 1.4 - Who owns and runs the OpenH323 mailing list and OpenH323 web
 site, and how do I contact them if I am having problems?

 The OpenH323 web site and mailing list are operated by Quicknet
 Technologies. Problems regarding the operation of the list or the web
 site should be sent to Bruce Ferrell at bferrell@xxxxxxxxxxxxx
 Update:  this  address  seems  to  be  not  working  -  try
 bferrell@xxxxxxxxxxxx instead

 It is well known that the openh323.org web site contains out-of-date
 information and a very old version of the code. Feel free to email
 Quicknet regarding this problem but please don't email the mailing
 list, or me, as there is nothing we can do about it.

 1.5 - The FAQ describes something that sounds like my problem, and it
 refers to a document that I don't really understand. I don't have time
 for all of this - can I just email someone or contact them via IM and
 get them to explain it all to me? 

 If you feel the urge to contact the core developers, then understand
 that you are asking them to give up their time and spend it on your
 problem. If you can't be bothered spending the time, then why should
 they?

 So before doing emailing or contacting via IM, make sure you do the
 following:
 1. Make  sure  you  have  read  this FAQ, and any associated
   documentation, thoroughly,
 2. Search the mailing list, or use Google, to find any posts or
   documents regarding your problem
 3. If you don't understand the existing documentation at all, then
   you probably won't understand the answer. Consider spending more
   time trying to understand the problem
 4. Ask specific questions, not general ones
 5. Accept that the person you contact may be busy, or in another time
   zone, and cannot answer your question
 6. Be polite

 1.6 - I'm using pwlib 1.12.0 and openh323 1.5.2 from the openh323.org
 site, and I have a problem. Will anyone help me?

 It is very unlikely that anyone will assist you with problem in that
 version of the code, because it has not been updated since mid-2003.
 There have been several mapor stable releases of the system in that
 time, so you should upgrade to the latest stable build and see if your
 problem persists. If it still happens with more recent code, then ask
 again.

 And yes, it is known that that the openh323.org only provides these
 old versions of the code. See 1.4 for more information

 1.7 - Not used

 1.8 - What is OPAL?

 See 10.1

 1.9 - What are the development plans for OpenH323 and OPAL?

 The  latest  development plans and milestones can be found at
 http://www.voxgratia.org/docs/milestones.html

 1.10 - What were the H.323 security vulnerabilities reported by the
 NISCC, and how do they affect OpenH323?

 The  NISSC  announced  on  13 January 2004 that they had
 discovered vulnerabilities in several implementations of the
 H.323 protocol. This announcement was also released by CERT as
 Advisory CA-2004-01.

 All  releases  of  PWLib  after  v1.6.0 contain fixes for the
 vulnerabilities demonstrated by the NISCC test suite. This includes
 the Janus and Pandora baseline releases and all subsequent stable and
 development code releases.

 For more information, see
 http://www.voxgratia.org/docs/niscc_006489-h323.html

 1.11 - What is the status of the OpenMCU program?

 OpenMCU was originally created in May 2000 by Craig Southeren as a
 experiment to investigate some ideas about how an audio MCU might
 work. A description of the original motivations can be found at
 http://www.southeren.com/blog/archives/000050.html.

 Over the next two years the code was modified by Derek Smithies and
 Roger Hardiman to include video capabilities and to add extra
 functions such as support for multiple rooms. The final result of this
 effort was OpenMCU v1.7.1 which supported both video and audio, but
 was unstable and difficult to understand. Guilhem Tardy has also
 released some notes on how to add H.263 support to OpenMCU at
 http://www.salyens.com/ffcodec/

 OpenMCU version 2 was started in March 2004 with support from Citron
 Networks with intent of fixing the known problems with version 1. The
 code was almost completely rewritten to be more modular, and the
 stability issues were addressed. This work ended around August 2004
 with a version that only supported audio.

 A new project was started in March 2006 with the support of Stonevoice
 to restore video functionality to OpenMCU. This work is proceeding,
 and will result in a full-featured version of OpenMCU that supports
 video and audio.

 1.12 - What is the license used for PWLib, OpenH323 and OPAL, and why
 wasn't the GPL used?

 PWLib, OpenH323 and OPAL are available under v1.0 of the Mozilla
 Public License (MPL). The MPL was chosen specifically because it
 permits commercial software to be combined with OpenH323 and OPAL in
 ways that the GPL does not, but still requires changes to the released
 code to be contributed back to the community. The exact text of the
 license used for OpenH323 can be viewed in the CVS here.

 A more detailed description of the reasons why the MPL was chosen can
 be found in my keynote speech that was presented at the Free
 Software/Open Source Telephony Summit held by the German Unix User
 Group in Geilenkirchen, Germany in January 2005

 1.13 - What restrictions are placed on the software can I combine with
 PWLib, OpenH323 and OPAL?

 The MPL places no restrictions on what software you may combine with
 PWLib, OpenH323 or OPAL. You can use OpenH323 with closed source
 software or with Open Source software released under other licenses,
 provided that the other license allows this.

 1.14 - What license restrictions are placed on changes I make to
 PWLib, OpenH323 and OPAL?

 Paragraph 3.2 of the MPL license states:

  "Any Modification which You create or to which You contribute must
  be made available in Source Code form under the terms of this
  License..."

 For the purposes of the MPL, "Modification" is defined as:

  "...addition to or deletion from the substance or structure of
  either the Original Code or any previous Modifications. When
  Covered Code is released as a series of files, a Modification is:
 A. Any addition to or deletion from the contents of a file containing
   Original Code or previous Modifications.
   B. Any new file that contains any part of the Original Code or
   previous Modifications."

 In plain language, this means that any changes you make to any
 existing OpenH323 source file must be released under the same MPL
 license. This same applies to any new file that contains part of any
 previously released code.

 However, the MPL places no restrictions on any new files you create
 that contain wholly original code. You can choose to release (or not
 release) these files under any license you choose. Please note that
 files not covered by the MPL will not be included in the official
 OpenH323 CVS.

 1.15 - Where did PWLib, OpenH323 and OPAL come from, and who is
 responsible for it now?

 PWLib was started by in 1992 by Robert Jongbloed and Craig Southeren,
 and the copyright for the code was transferred to an Australian
 company called Equivalence Pty Ltd in 1996. Work commenced on OpenH323
 in 1998, and PWLib and OpenH323 was released as Open Source software
 using the MPL license in the same year. The openh323.org domain name
 was acquired at this time, and the code was made available via a
 private server at that web address. OPAL coding started in late 1999
 and was released under the same license.

 In early 2000, Robert and Craig sold Equivalence Pty Ltd and the
 rights to the openh323.org domain name to a US company called Quicknet
 Technologies Inc. They were also employed by Quicknet to support
 OpenH323 and to develop associated software. The OpenH323 CVS and
 mailing list was moved to a new server managed by Quicknet.

 The OpenH323 CVS was moved to SourceForge in May 2003. Robert and
 Craig ceased employment with Quicknet in June 2003.

 Currently, the CVS remains hosted on SourceForge while the mailing
 list is hosted by a mail server run by Quicknet who retain the rights
 to the openh323.org domain name and the ownership of Equivalence Pty
 Ltd. There have been no new contributions to the codebase by Quicknet
 or updates to the openh323.org web site since June 2003.

 The project continues to grow and mature thanks to the work of a
 dedicated group of developers. The following people have accepted the
 responsibility of CVS write access as well as the ability to close
 patch submissions, and can be considered to be the people responsible
 for leading OpenH323, OPAL and PWLib:

          Craig Southeren, Damien Sandras

 The following developers have CVS write access and are active
 contributors to the project

      Derek J Smithies, Simon Horne, Robert Jongbloed,

 The  following developers have CVS write access and contribute
 occasionally:

       Shawn Hsiao, Vyacheslav Frolov, Yuri Kiryanov,
      Kilian Krause, Roger Hardiman, Hannes Friederich

 Bruce Ferrell administers the mailing list and SourceForge web site on
 behalf of Quicknet.

 There are many more people (far too many to list) who have contributed
 time and code to the project. Please accept my thanks, and my
 apologies that you cannot be listed here.
  _________________________________________________________________

2. USING THE OPENH323 LIST

 2.1 - How do I subscribe to the mailing list?

 The only way to subscribe is via the form on the this web page:
 http://www.openh323.org/mailman/listinfo/openh323

 2.2 - How do I unsubscribe from the mailing list?

 The only way to unsubscribe is via the form at the bottom of this web
 page: http://www.openh323.org/mailman/listinfo/openh323

 2.3 - How do I make a posting to the mailing list?

 Send an email to openh323@xxxxxxxxxxxx

 2.4 - What is the mailing list used for?

 This list is used for asking any questions related to the OpenH323
 project or related technologies.

 2.5 - What is the mailing list *not* used for?

 This list is not used for:

  * SPAM
  * Questions unrelated to OpenH323
  * Selling your company's services or products
  * Finding someone to do your homework/final year project/doctorate

 2.6 - There is too much traffic on the mailing list. Is there a
 digest?

 Yes.

 When you subscribe to the list, make sure you select "Yes" on the
 option labelled "Would you like to receive list mail batched in a
 daily digest?". If you are replying to messages contained in a digest,
 please make sure you change the subject line to reflect your question
 rather than retaining the arbitrary digest title.

 2.7 - Is there an searchable archive of the list available?

 Yes. See http://www.openh323.org/pipermail/openh323/

 2.8 - Are there any rules?

 No flaming. No trolls. Be nice. Be warned.

 2.9 - Who enforces the rules?

 There are several enforcers who ensure that the rules are applied
 fairly and consistently. If you are emailed by Craig Southeren or
 Bruce Ferrell for being off-topic, for flaming, or if they indicate
 that an email thread is closed, it is suggested that you listen
 carefully unless you have kneecaps you no longer care about.

 2.10 - How can I ensure someone will answer my question? 

 There is absolutely no guarantee that someone will answer your
 question. If you want to maximise the chances of an answer, do the
 following:
  * be polite
  * provide enough information to allow the problem to be duplicated
   by someone else
  * describe what you have already done to fix the problem
  * don't bother saying you need a reply urgently

 An  excellent  essay  on  how  to  ask questions be found at
 http://www.catb.org/~esr/faqs/smart-questions.html.    Another
 excellent  essay  on  how  to  report  bugs  can be found at
 http://www.chiark.greenend.org.uk/~sgtatham/bugs.html

 2.11 - But I really need an URGENT answer to my question?

 Then offer money. Lots of money. But don't bother posting your request
 multiple times unless you don't mind annoying lots of people as well
 as looking like a complete loser.

 There is one class of posters who appear regularly asking for urgent
 help, and these are students asking for help in completing their final
 year project. Writing a VoIP application seems to be a popular topic
 for final year university students, and I'm sure that most of them
 actually  do  the  work  themselves.  The  excellent  Ekiga
 (http://www.ekiga.org  -  formerly  GnomeMeeting) application
 started in exactly this way.

 As always, though, there are students who seem to think that they can
 leave everything to last minute and then just grab some Open Source
 project and fill in the missing bits. When this does not work, they
 post plaintive cries on the list asking if someone has created what
 they need. Strangely, they seem to think this is a perfectly
 reasonable request so when they don't get an answer, they keep asking.
 Amazing....

 What they should do (apart from starting their project earlier so they
 have plenty of time to finish) is start working on the code
 themselves, using one of the sample programs as basis. When they
 encounter a problem, they should ask specific questions that can be
 answered by someone who has the time to do so. Asking someone else to
 provide the entire project working exactly to their specifications is
 just unreasonable - so please don't waste everyone's time by asking.

 2.12 - Who answers questions on the list?

 Anyone may answer questions, but the most interesting ones will
 normally be answered by one of the principal developers who include
 Robert Jongbloed, Derek Smithies, Roger Hardiman, Damien Sandras or
 Craig Southeren. If you receive a reply from any of these people, then
 listen carefully because they are very likely correct.

 2.13 - I want to help by answering questions? How do I do this?

 If you see a question for which you know the answer, or you see a
 reply that you know to be incorrect, then please join in the
 discussion. And be gracious if you make a mistake - being wrong is not
 a crime but being impolite certainly is.

 2.14 - What are the mailing lists on SourceForge used for?

 They are not used.

 2.15 - Why aren't there separate lists for users and developers like
 other projects?

 It was tried, and it failed.

 2.16 - Can I ask questions about how to use/debug/understand another
 H.323 stack? 

 The OpenH323 mailing list is intended for questions and issues related
 to the OpenH323 stack. If you have questions about a commercial H.323
 stack,  then you should contact the stack vendor for support.
 Commercial stacks are usually covered by non-disclosure agreements, so
 it's unlikely that anyone on the list could help you without breaking
 that agreement.

 If you have questions regarding H.323 that are not related to OpenH323
 or  any  other  specific stack, then the Packetizer site (see
 http://www.packetizer.com has many excellent resources. It also
 has  information  on  several  H.323  mailing  lists  (see
 http://www.packetizer.com/voip/h323/lists.html)
  _________________________________________________________________

3. DOWNLOADING CODE

 3.1 - Where can I download source code from?

 The official source code archives (tarballs and ZIP files) are
 available from the downloads page of the OpenH323 SourceForge project,
 which can be found at
 http://sourceforge.net/project/showfiles.php?group_id=80674.
 These same source archives (and occasionally some other releases) can
 also be found at the Vox Gratia web site at
 http://www.voxgratia.org/downloads.html.  These  releases  are
 identical to those available on the SourceForge site as they are
 updated by the same maintainer from the official CVS repository.

 The Ekiga (http://www.ekiga.org - formerly GnomeMeeting)
 project  also  maintains  source code tarballs (Linux only) at
 http://snapshots.seconix.com and
 http://snapshots.voxgratia.org. These are also created from the
 offical CVS repository but use different scripts.

 Please do not use the sources from the download page on the offical
 OpenH323 web site. These files have not been updated since 2003

 3.2 - Where can I download binaries from?

 The Ekiga (http://www.ekiga.org - formerly GnomeMeeting) team
 maintain up to date binary packages of OpenH323 and PWLib for Linux at
 at http://www.gnomemeeting.org/index.php?rub=5&pos=0

 The XMeeting Project team maintains up to date binary packages for
 MacOS X at http://sourceforge.net/projects/xmeeting/

 Other (very out of date) binaries can be found on the OpenH323 site

 3.3 - Where can I get the very latest source code from?

 The latest source code is always in the CVS (see 3.4 below), but
 the Ekiga team maintains very recent source code tarballs for Linux at
 http://snapshots.seconix.com and
 http://snapshots.voxgratia.org

 If you are downloading from the repository, you have a number of
 versions to chose from:
 Tag Description
 (no tag) CVS Head
 This is always the very latest, up to the minute, source code. This
 may not work or even compile, so use with caution
 CURRENT the most recently compilable development source code used by
 the developers. Will compile and will run, but may contain some
 problems
 PREVIOUS the last version of "CURRENT"
 DEVEL the current released development code
 STABLE the current stable released code

 See 3.7 below on how to find a particular version of the source
 code in the CVS

 3.4 - How do I access the CVS repository?

 The CVS is hosted by SourceForge at
 cvs.sourceforge.net:/cvsroot/openh323. See
 http://www.voxgratia.org/docs/openh323_cvs.html for more detailed
 instructions.  A  web  interface  to the CVS can be found at
 http://openh323.cvs.sourceforge.net/openh323/

 See 3.3 above for information on development tags available in
 the CVS, and 3.7 below on how to find a particular version of the
 source code.

 3.5 - Where can I get ZIP versions of the source archives

 ZIP files are now created for recent released, but may not be
 available for some older version. Windows users can use tar.gz source
 archives without any problems if an archive program that handles end
 of line characters and binaries is used. We recommend WinZIP. See
 section 4.2, [184]4.7 and [185]4.8 for related problems

 3.6 - How do I know what version to download?

 Normally, the recommended stable version is the most recent version
 available from the SourceForge download page. The recommended versions
 are  also  shown  on  the  Vox  Gratia  home  page  at
 http://www.voxgratia.org

 3.7 - Where can I download a particular version of the code?

 If the version you require is not available on any of the download
 sites (see 3.1 above) then you will have to extract it from the
 CVS repository (see 3.4 above).

 Every release of OpenH323 or PWLIB is available as a CVS tag. For
 example, version 1.6.0 or PWLib is assigned the tag v1_6_0. This is
 useful for doing compares between versions.

 3.8 - Why isn't the latest code and information on openh323.org, and
 why don't you do something about it?

 The owners of the openh323.org domain name (Quicknet Technologies,
 Inc) maintain the www.openh323.org web site and the openh323.org
 mailing list. See 1.4 for how to contact Quicknet.

 I'm no longer associated with Quicknet, so I cannot make any changes
 to the openh323.org web site or mailing lists, even though I do have
 write access to the CVS (as do several other non-Quicknet people). I
 maintain a website with the latest information on OpenH323 and OPAL,
 and other projects at http://www.voxgratia.org

 3.9 - What are Janus, Pandora, Mimas, Atlas and Phobos?

 These names are all code names for various releases of OpenH323 or
 OPAL. A full explanation of all of the code names can be found on this
 page  http://www.voxgratia.org/docs/milestones.html,  but  the
 important information is that the current stable releases are Phobos
 (for OPAL) and Atlas (for OpenH323). THe current development builds
 are Deimos (for OPAL) and Titan (for OpenH323)

 For those who are interested, the OpenH323 code names come from the
 moons of Saturn. The OPAL code names come from the two moons of Mars,
 which appropriately translate to Fear (Phobos) and Panic (Deimos).
 Future code names for OPAL will come from star names - the first one
 will be Centauri.

 3.10 - Where can I download the old PWLib GUI code?

 This code is no longer supported and is not available for download as
 a tar.gz file or ZIP file. It can be extracted from the OpenH323 CVS
 using the "pwlib_win32" module

 3.11 - Why is the configure.in file is missing when I extract source
 code from the CVS?

 The  configure.in files in PWLib and OpenH323 were renamed to
 configure.ac after the Pandora release as this is now the preferred
 extension for autoconf files. Unfortunately, the limitation of the CVS
 modules files do not allow for different file sets for different
 versions of the same module, which means that the configure.in files
 have been moved to the CVS "attic".

 This means that extracting older releases of the source from the CVS
 by tag will not get the configure.in file. The file can be retreived
 using an explicit CVS checkout command to retrieve, as follows:

         cvs co -rPandora_release configure.in

 We may be able to fix this problem at some time in the future -
 announcements will be made if this occurs
  _________________________________________________________________

4. COMPILING THE CODE

 4.1 - The code does not compile - what is the problem?

 Yes, the code does compile but something on your system is causing a
 problem. You need to find what that problem is.

 Here are some quick tips:
  * Make sure that the pwlib directory is renamed to "pwlib" and the
   openh323 directory is "openh323", as the original tarball may have
   different names or your CVS client may have used the module name
   instead
  * You need Bison and Flex installed as well as a compiler and
   associated tools. We recommend gcc and Make for Unix platforms,
   and Microsoft VS.net 2003 for Windows although other environments
   are supported. Note that the bison and flex package provided as
   part of the Windows build instructions (see 4.5) must be
   installed in C:\TOOLS unless you seriously know what you are
   doing.
  * Check the ReadMe.txt files for more information

 4.2 - Microsoft Visual Studio will not load the DSP and DSW files
 provided with OpenH323

 You have downloaded the tar.gz source archive, and then used an
 archive program that does not correctly handle tar.gz files under
 Windows which has resulted in project files with incorrect end of file
 characters. MSVC cannot handle project files of this type, although it
 does handle source files in this mode.

 To fix the problem, use a program like WinZIP that will do the correct
 conversion automatically, or use .ZIP version of the archives. You can
 also load the DSP and DSW files into a text editor and fix the end of
 line characters manually.

 If you have this problem, you most likely will have the the problems
 described in 4.7 and [194]4.8 as well.

 4.3 - I know the OpenLDAP/OpenSSL/Foobah library on my system is
 broken, but OpenH323 uses it anyway. How do I prevent this?

 Run "./configure" for PWLib or OpenH323 with the appropriate flag to
 disable the module you want to avoid. Use "./configure --help" for a
 list of these flags.

 4.4 - How do I cross compile OpenH323 for another platform?

 Set the following environment variables before running "./configure":

  export CXX=<toolchain directory>/g++
  export CC=<toolchain directory>/gcc

 It may also be necessary to tweak LDFLAGS and CFLAGS using environment
 variables as well, or to disable certain features (see 4.3 above)

 4.5 - Are there detailed instructions for building OPAL, OpenH323 and
 PWLib on Windows?

 Instructions for compiling OPAL, OpenH323 and PWLib on Windows can be
 found   at   http://www.voxgratia.org/docs/opal_windows.html,
 http://www.voxgratia.org/docs/pwlib_windows.html       and
 http://www.voxgratia.org/docs/openh323_windows.html

 4.6 - Can I compile OpenH323/PWLib using VS.NET 2003, VS.net 2005 and
 Visual C++ 2005 Express Edition?

 Version 1.14 of OpenH323 and version 1.7 of PWLib and all later
 revisions  contain full support for VS.NET 2003. See the build
 instructions (section 4.5 above) for full information in compiling in
 that environment.

 Project files for VS.net 2005 and Visual C++ 2005 Express Edition were
 added on 26 June 2006 and are available in all later versions of the
 code. VC 5 Express Edition is available from:

  http://msdn.microsoft.com/vstudio/express/visualc/download/

 Louis Marascio has created a set of patches to allow compilation of
 earlier version of PWLib/OpenH323 with VS.net 2003. These can be
 downloaded from
 http://www.louismarascio.com/vsnet2003-openh323.zip

 4.7 - How do I fix the Windows build error "Cannot open include file:
 'ptbuildopts.h': No such file or directory"?

 The file ptbuildopts.h is created from ptbuildopts.h.in by the
 pwlib/configure.exe program. If this step does not occur, then
 ptbuildopts.h is not created and the build process will fail. You need
 to determine why this is happening. See section 4.2 above or
 section 4.25 for a possible explanations

 4.8 - How do I fix the Windows build error "Configuring Build Options
 \  This  program  cannot  run  in DOS mode \ Error executing
 c:\windows\system32\cmd.exe" ? 

 This indicates that the file pwlib/configure.exe program cannot be
 executed, probably because it is missing or corrupted. Download a new
 version and make sure it is a working Windows executable. See
 section 4.2 above for a possible explanation

 4.9 - How do I fix the errors in vfakeio.cxx starting at line 411 like
 "newline in constant", "too many characters in constant", "syntax
 error: string"?

 This is a problem in older versions of PWLib, such as version 1.5.3.
 Download and use a later version of PWLib downloaded from SourceForge
 (see 3.1).

 4.10 - How do I report a bug in the code?

 The best way to report a bug is to use the Bug tracker at the OpenH323
 Source Forge site which can be found at
 http://sourceforge.net/tracker/?group_id=80674&atid=560612
 . Sending an email to the OpenH323 mailing list will probably also
 work, but we would much rather you used the bug tracker.

 If you have a patch that adds a new feature, then please use the patch
 tracker as described in 4.16

 4.11  - How do I fix errors about a missing function called
 PIsDescendant or IsDescendant ?

 This error is usually caused by using source code that is incompatible
 with the version of PWLib that is being used. If you are using a
 version  of PWLib prior to 1.7 (i.e. Janus or earlier), then
 IsDescendant function is available:

       obj.IsDescendant(MyParticularClass::Class())

 In PWLib 1.7 and later, the function IsDescendant was replaced with
 PIsDescendant in order to provide support for C++ RTTI (Run Time Type
 Infomation). This function is used as follows:

         PIsDescendant(&obj, MyParticularClass)

 4.12 - How do I fix errors about missing include files like
 "gsmcodec.h" or "lpc10codec.h" ?

 These files were removed when support for audio codec plugins was
 introduced. See the document
 http://www.voxgratia.org/docs/codec_plugins.html#converting  for
 more information

 4.13  -  How do I fix errors like "Cannot open source file:
 getdate_tab.c': No such file or directory"?

 You need to install the GNU bison and flex programs program. See
 http://www.voxgratia.org/docs/pwlib_windows.html#flexbison  for
 information on how to do this.

 4.14 - How do I compile OpenH323 on Solaris?

 Instructions can be found at
 http://www.voxgratia.org/docs/solaris.html

 4.15 - How do I make the code smaller?

 First of all, make sure you are using the Release build ("make opt"
 for Unix) and the "No Trace" build for Windows.

 If you do not need to create trace files, you can half the size of the
 Unix  binaries by ensuring that OpenH323 is compiled with the
 PASN_NOPRINTON  and  PASN_LEANANDMEAN  symbols defined, and that
 everything is compiled without the PTRACING symbol

 Also make sure to turn off features that you do not need, such as
 video.  This  can  be  done  changing  defines  in  the
 include/openh323buildopts.h file.

 It is possible to get a Windows executable that includes video and
 audio with PWLib and OpenH323 linked statically, and dynamic links to
 everything else, in an .EXE that is under 1Mbyte (provided tracing is
 disabled)

 Linux executable are always larger that the comparable Windows
 program, but it possible to get the same code in under 3Mbytes.

 4.16 - How do I submit patches to the code?

 If you have a code patch that adds a new feature or capability, or
 fixes a bug, then please submit it using the SourceForge patch tracker
 at http://sourceforge.net/tracker/?group_id=80674&atid=560614

 If you are reporting a bug without a code patch, then please use the
 bug tracker as described in 4.10

 4.17 - How do I fix the following error on when compiling using MSVC 6
 "WARNING:  the  following file requires upgrading: \ C:\Program
 Files\Microsoft  Visual  Studio\VC98\INCLUDE\XTREE  \  Please run
 'msvc6chk upgrade' to upgrade this file"?

 There are several major defects in the STL header files shipped with
 MSVC 6. These defects are sufficient to crash programs (like PWLib)
 that rely on the correct behaviour of global static variables.
 Fortunately, the original authors of the STL libraries for MSVC
 have published new versions of the files necessary to correct the
 worst of these problems.

 PWLib checks for the correct header file versions when a new compile
 is started, and will prevent the compile from continuing until the
 correct header files are installed. There is a "one-click" solution to
 this problem that will upgrade your files painlessly and quickly - see
 the following URL for more information:
 http://www.voxgratia.org/[213]docs/pwlib_windows.html#msvc_header
 s or download the upgrade program from
 http://www.voxgratia.org/releases/msvc6chk.zip

 4.18 - How do I stop my program from immediately crashing with a
 dialog saying"The application failed to initialise properly. Click on
 OK to terminate the application" when I use the DLL versions of PWLib
 and OpenH323, even though the statically linked versions work OK?

 This is probably because you have not upgraded your MSVC 6 header
 files - see 4.17 above

 4.19 - How do I fix the following error on Windows when building
 PTLIB.DLL/OPENH323.DLL  "dllmain.obj  :  fatal  error  LNK1202:
 "d:\pwlib.msvc\lib\ptlib.pdb" is missing debugging information for
 referencing module" ?

 This error seems to be a result of the linker getting confused about
 the debugging information in the pdb file. The only solution is to
 delete the entire pwlib/lib or openh323/lib directory and recompile
 everything again. You will have to exit MSVC before you can do this,
 as the environment keeps open files in that directory.

 Note that doing a "clean" is not sufficient, and simply removing the
 .pdb file is not enough either - the entire directory must be removed.

 4.20 - How do I fix the following error when compiling OpenH323 "This
 program  cannot  be  run  in  DOS  mode.  \  Error  executing
 c:\windows\system32\cmd.exe.  \  asnparser.exe  -  1 error(s), 0
 warning(s)" ?

 If you are using PWLib 1.6/OpenH323 1.13 or earlier, then you need to
 compile the ASNParser. See
 http://www.voxgratia.org/docs/pwlib_windows.html#asnparser

 4.21 - I am compiling Pandora or Janus patch 4 - where is the
 ASNParser?

 The ASNParser is not included in the Pandora release, because it was
 decided to include the pre-processed ASN files directly into OpenH323.
 This greatly simplifies the build process for both PWLib and OpenH323
 and removes the need for the ASNParser. The ASNParser is still
 available in the OpenH323 CVS, if you want to see it.

 Janus patch 4 includes the ASNParser sources, but it does not need to
 be compiled or used as it this release has also been modified to
 include the pre-processed ASN files.

 4.22 - Where is pwrc, openphone and all of GUI classes?

 The time and effort and required to maintain the GUI code became
 unmanageable, especially when there are excellent multiple-platform
 GUI toolkits like Qt and wxWindows already available. As a result, the
 GUI code is no longer included in the baseline release archives. This
 includes  the  all  of  the  source  trees  pwlib/src/pwlib,
 pwlib/include/ptlib, and the binaries
 pwlib.dll/pwlibd.dll/lib_pw_xxxx_r.so/lib_pw_xxxx_d.so

 As always, the original source code is still available in the CVS but
 may not be actively maintained. See 3.10 for more information

 4.23 - How do I fix warnings about PVXMLSession and OpalVXMLSession
 not found compiling the opennivr/vxmltest/woomera programs? 

 The VXML code requires the header files for the expat XML parser to be
 installed on your system. If you are using Unix, then make sure you
 have the "expat-devel" package installed. If you are using Windows,
 then a recompiled version of expat and the required header files can
 be downloaded from http://www.voxgratia.org/bin/expat_lib.zip.

 For more information on Jim Clark's excellent XML toolkit, see
 http://www.jclark.com/xml/expat.html or
 http://expat.sourceforge.net

 4.24 - The Windows configure process for PWLib or OpenH323 is finding
 the wrong version of a library - how do I stop this?

 The configure program for Windows will search all directories looking
 for  installed versions of libraries such as as expat.lib and
 openldap.lib. If other programs have versions of these libraries
 installed, then it is likely that configure will pick the wrong file.
 This is particularly likely if you have two development environments
 installed, such as VS.net and MSVC.

 To fix this, it is necessary to tell configure not to search in
 certain directories for files. This can be done by changing the
 configure command line in the project file, but there are also several
 predefined environment variables which, if set, will be used by
 configure to determine which directories to ignore. These variables
 are set to a list of directories seperated by semicolons (";") :

 PWLIB_CONFIGURE_EXCLUDE_DIRS ignore these directories always
 MSVC_PWLIB_CONFIGURE_EXCLUDE_DIRS ignore these directories when
 compiling using MSVC 6
 VSNET_PWLIB_CONFIGURE_EXCLUDE_DIRS  ignore  these directories when
 compiling using VS.net 2003

 4.25 - I used to be able to compile PWLib without any problems, but
 now I get warnings like this "Please remove pwlib\include\ptlib\msos
 from the tool include path and from the pre-processor options for this
 project" - how do I fix this? 

 Prior to the Janus release of OpenH323, it was necessary to include
 the "platform specific" include directory into the include paths for
 the environment. This requirement was removed because it was the
 source of many problems for users.
 The changes required to remove this dependency cause problems if the
  "platform specific" directory is retained, so the code has been
  altered to generate the above error if the include paths are not
                changed.

 To remove the error, make sure that there are only three directories
 configured into the VS.net or MSVC 6 include path (as described at
 http://www.voxgratia.org/docs/pwlib_windows.html#dirs).

 If you get this error while compiling a program, and you have verified
 that the environment includes paths are correct, then ensure that the
 Preprocessor options for the project do not contain the "platform
 specific" directory.

 4.26 - How do I fix errors compiling asn_grammar.y/asn_grammar.cxx?

 On some platforms, compiling the ASNParser results in errors like
 this:

  In file included from /pwlib/include/ptlib/contain.h:782,
  from /pwlib/include/ptlib.h:146,
  from asn_grammar.y:77:
  /pwlib/include/ptlib/contain.inl:      In     constructor
  `PAbstractList::PAbstractList()':
  /pwlib/include/ptlib/contain.inl:428: warning: right-hand operand
  of comma has no effect
  asn_grammar: In function `int yyparse()':
  asn_grammar:5045:  error:  expected  primary-expression  before
  "__attribute__"
  asn_grammar:5045: error: expected `;' before "__attribute__"
  asn_grammar:5040: warning: label `yyerrlab1' defined but not used

 These errors are probably due some flag differences in the bison
 pre-processor, but the solution is very simple. Simply upgrade your
 code to at least the last Janus release version (as of 1 Nov 2004,
 this was Janus patch 4) because that version (and all subsequent
 versions) no longer require the ASN parser to be compiled. See
 4.21 for more information

 4.27 - When I compile pwlib I get warnings like "../common/getdate.y:
 conflicts: 8 shift/reduce, 18 reduce/reduce" - is this normal?

 Yes, this is normal and does not indicate that there is a a problem.
 It can be safely ignored.

 4.28 - When I compile pwlib I get a warning like "In static member
 function `static std::ostream& PTrace::End(std::ostream&)': warning:
 unused variable 'rb' - is this normal?

 This warning has been left in to remind us of a potential problem that
 we need to fix some day. For now, it can be safely ignored.

 4.29 - How do I fix link errors about missing functions when compiling
 DLLs on Windows?

 The short answer is that this problem is often a side-effect of the
 method used to maintain compatibility across various versions of the
 DLL libraries. The simplest way to solve this problem is to delete the
 files with the extension ".dtf" and then completely rebuild the DLLs.
 This should solve the problem.

 Why does this work?

 The long answer is that PWLib and OpenH323 attempt to preserve the
 ordinals used for DLL entry points across different versions of the
 libraries. To do this, the MergeSym program compares the function
 signatures in the DLLs to the entry points listed in the .dtf files,
 and makes sure that the final file ends up with compatible ordinals.
 The default .dtf files are created on a system with all optional
 features enabled, which means that if they are used on a system with
 less features, there are unresolved symbols left over.

 4.30 - How do I link OpenH323, PWLib or OPAL applications statically
 in Windows?

 To create a statically linked application in Windows, you simply need
 to link with the static versions of the libraries rather than the
 dynamic ones. A guide to the library names under Windows is show
 below. Note that you must not mix static and dynamic versions of the
 libraries in the same executable - this will cause very strange and
 hard to diagnose errors.

 Library Static Debug Static Release Dynamic Debug Dynamic Release
 pwlib ptlibsd.lib & ptclibd.lib ptlibs.lib & ptclibd.lib ptlibd.lib &
 ptclib.lib
 ptlibd.dll ptlib.lib & ptclib.lib
 ptlib.dll
 openh323 openh323sd.lib openh323d.lib openh323d.lib
 openh323d.dll openh323.lib
 openh323.dll
 opal opensd.lib opals.lib opald.lib
 opald.dll opal.lib
 opal.dll

 4.31 - How do I link OpenH323, PWLib or OPAL applications statically
 on Unix?

 The standard makefiles allow static executables to be created using
 the following commands:

  "make noshared" - creates a statically linked executable with debug
  information

  "make optnoshared" - creates a statically linked executable without
  debug information

 4.32 - How do I stop configure from finding the wrong header files on
 Windows?

 The configure program on Windows will search all local hard drives
 looking for header files and libraries that indicate which compile
 time options can be enabled. Sometimes, configure will find files that
 it should not, usually because it is searching through the wrong
 directories. This can occur if packages such as Cygwin or MSys are
 installed on the host computer.

 To prevent configure from attempting to use these header files, it is
 necessary to indicate which directories should be ignored during the
 scanning process.
 To tell configure to ignore a directory, you must add the path to be
  ignored to the PWLIB_CONFIGURE_EXCLUDE_DIRS environment variable.

 In addition, the following environment specific environment variables
 can be used to customise the directories used for various compile
 environment environment. This is especially useful when multiple
 environments are installed on the same machine, (i.e. having both MSVC
 6 and VS.net 2003 installed)

      MSVC 6   MSVC_PWLIB_CONFIGURE_EXCLUDE_DIRS
      VS.net 2003 VSNET_PWLIB_CONFIGURE_EXCLUDE_DIRS
      VS.net 2005 VSNET2005_PWLIB_CONFIGURE_EXCLUDE_DIRS

 Note that technique can also be used to reduce the time taken to
 perform the configure scan by not scanning large directory trees or
 even entire drives.

 Note that versions of configure prior to version 1.5 (released on 26
 June 2006) do not support ignoring entire drives.

 You can also specify directories to ignore on the configure command
 line using the --exclude-dir command line option, or you can specify
 the names of additional environment variables that contain directories
 using the --exclude-env option. See the custom build information for
 the project specific header file to edit the command line to
 configure.

 4.33 - How do fix errors about missing "MSVC80.DLL" or "MSVCR80.DLL"
 file when debugging OPAL programs using Visual C++ 2005 Express
 Edition?

 This problem is caused by having dependent libraries, such as OpenSLL
 or Expat, that have incorrect references to the run-time library. To
 fix this problem, you will need to find correctly packaged versions of
 these libraries.

 Some references to libraries that are known to work are provided
 below. Please email craigs@xxxxxxxxxxxxxxxxx if you locate any
 other sites that provide working library packages

 OpenSSL Available for Shining Light Productions
 http://www.slproweb.com/products/Win32OpenSSL.html
 Expat Available from the SourceForge Expat project page
 http://sourceforge.net/project/showfiles.php?group_id=10127

 4.34 - How do I fix gcc errors about "PAtomicInteger" when compiling
 OpenH323 or OPAL?

 This error is usually indicates the presence of two incompatible
 versions of the pwlib headers, and that the openh323 build process is
 detecting  the  wrong  set  which  is  probably located in in
 /usr/local/include or /usr/include (check the configure output to be
 sure)
 The easiest way to solve the problem is to set the PWLIBDIR
 environment to point to the correct version of PWLib. Alternatively,
 deinstall the incorrect version so that the auto-detection find the
 correct version.

 4.35 - I cannot find the Console Components library files (ptclib.lib
 and ptclibd.lib) in recent builds of PWLib. Where are they?

 The Console Components library (ptclib.lib/ptclibd.lib) was removed as
 a separate library in late July 2006, and all of the source files were
 added to the base Console library. This simplifies the management of
 libraries under Windows, and brings the code in line with the Unix
 library.
  _________________________________________________________________

5. CODECS

 5.1 - Why is there no G.723.1/G.729 codec in OPAL or OpenH323?

 These codecs are covered by patents, and are not available as Open
 Source implementations.

 5.2 - Can I use the ITU reference code for G.723.1 and G.729?

 Use of these codecs and the reference implementations still requires
 licenses from the patent holders. See the relevant ITU specifications
 for more information.

 The ITU reference code for G.723.1, G.729 and several other codecs can
 be obtained from the ITU web site at
   http://www.itu.int/publications/itu-t/list-t-soft.html

 5.3  -  Where  can  I  get  licensed G.723.1 and G.729 codec
 implementations?

 There are several companies that sell implementations of these codecs
 for various platforms. Be prepared to pay more than $10k for each
 codec implementation, plus $10 per copy sold/used.

 Some companies that are known to have licensed codec implementations
 available are:
  * VoiceAge (http://www.voiceage.com) - G.729 and G.723.1 for
   Windows and Linux
  * Intel (http://www.intel.com/software/products/ipp/) - A wide
   range of codecs

 5.4 - Can I use the Microsoft ACM G.723.1 codec in my Windows
 program?

 It is not clear whether this is legal or not, but there is reason to
 believe that usage of the MS G.723.1 codec by programs other than
 those authorised by Microsoft is in violation of the DMCA. We choose
 not to use this codec for that reason - you make your own choice.

 5.5 - How do I use the H.263 video codec with NetMeeting?

 As of 22 April 2004, the CVS head revision of OpenH323 contains the
 AliceStreet code that implements RFC 2190 compliant H.263 as required
 for compatibility with NetMeeting. As such, it is only available for
 users prepared to download and compile code from the CVS. This code
 will appear in future snapshots starting with PWLib 1.7.1 and OpenH323
 1.14.1.  See http://www.voxgratia.org/docs/h263_codec.html for
 more information.

 The  Janus  release of OpenH323 and all versions up to PWLib
 1.6.6.1/OpenH323 1.13.5.1 contain a non-compliant implementation of
 H.263 that is not compatible with NetMeeting.

 For developers who need to use H.263 with earlier versions of
 OpenH323,  patches  are  available  from  Guilhem  Tardy  at
 http://www.salyens.com/?page=ffcodec

 5.6 - How do I add my own audio or video codec to Opal or OpenH323?

 If you are using a current version of OPAL or OpenH323, then you have
 access to plugin codecs. See
 http://www.voxgratia.org/docs/codec_plugins.html   for   more
 information.

 If you are using a version of OpenH323 prior to v1.14 or a version of
 OPAL prior to August 2006, then you will need to implement your codec
 as a embedded codec. Look at how other codecs such as GSM or H.261 are
 implemented for how to do this.

 5.7 - What audio codecs are supported by OpenH323?

  G.711 uLaw and ALaw
  GSM 06.10
  Microsoft-GSM
  LPC-10
  Speex
  iLBC
  G.726
  G.723.1 (Windows and Linux: requires Quicknet card)
  G.729 (Windows only: requires VoiceAge library

 5.8 - What video codecs are supported by OpenH323?

  H.261
  H.263
  CU-30

 5.9 - Where can I get more information on plugin codecs?

 See http://www.voxgratia.org/docs/codec_plugins.html

 5.10 - Why does a call using a compressed audio codec use much more
 bandwidth than expected?

 The "headline" bitrate of a audio codec does not include the overhead
 added by RTP and UDP encapsulation. This overhead means that a
 compressed code like GSM (with an advertised bit rate of 13200
 bits/second)  actually  consumes  29200  bits/second,  while  an
 uncompressed codec like G.711 (with an advertised bit rate of 64kbps)
 actually consumes 75kbps.

 For a detailed explanation of how to calculate the actual bit rate for
 an audio codec, see http://www.voxgratia.org/docs/codecbw.html

 5.11 - What is the effect of changing the number of frames per packet
 for an audio codec?

 Increasing the number of frames per packet will increase latency but
 decrease bandwidth. Decreasing the number of frames per packet will
 decrease latency but will increase bandwidth.

 See  http://www.voxgratia.org/docs/codecbw.html  for  a  more
 detailed explanation of why this occurs.

 5.12 - Why am I getting bad audio quality even though I am using
 G.711?

 See 7.8

 5.13 - Why am I getting bad audio when using the G.729 codec?

 See 7.9

 5.14 - How do I get the same codec in each direction when making a
 call?

 This is an old problem, and one that is not easy to solve.

 Firstly, it is perfectly legal to have asymmetric codecs in H.323. So
 what we are trying to do is outside the specification
 Having said this, OpenH323 tries hard to get symmetric codecs but it
 is not always possible, especially if using slow start and the other
 end has a very different codec priority list.
 The only guaranteed way is to have only one codec in the list. If this
 is not possible, then having the same codec priority, and using
 fastStart, also helps.

 5.15 - Why are there so many Speex capabilities?

 These Speex capabilities can be divided three different groups:
 1. Narrow and wide band codecs, using original OpenH323 identifier
 2. Narrow and wide band codecs, using identifier specified in Speex
   draft RFC
 3. Windows compatible narrow codec

 There are two sets of Speex capabilities because the draft Speex RFC
 specified a format for the H.323 non-standard capability string that
 was  incompatible  with  the  format used by existing OpenH323
 implementations. Thus, the only way to preserve backwards compatibilty
 with old applications while still conforming to the new standard was
 to include both sets.

 The original OpenH323 capability identifiers were removed from OPAL in
 August 2006.

 For  more  information  on  the  Speex  Draft  RFC,  see
 http://www.speex.org/drafts/draft-herlein-speex-rtp-profile-02.tx
 t

 5.16 - Does OpenH323 support wide-band codecs?

 Yes, via the plugin codec interface (see
 http://www.voxgratia.org/docs/codec_plugins.html).     Speex
 wide-band has already been implemented via this interface in the
 current development code

 5.17 - Can I use the H.263 video codec in my program?

 The answer to this question is either no, yes, or maybe depending on
 who you are.

 Firstly, I am not a lawyer. Any opinions expressed here are mine alone
 and should not be construed as an offer of legal advice. Your mileage
 may vary. Void where prohibited. Some settling of contents may occur
 during shipping.

 Now that is out of the way, it is important to understand that there
 are actually two issues to be resolved: copyright and patents.
 There is no copyright issue as far as the FFMPEG codec library is
 concerned (the one that OpenH323 uses). The FFMpeg library is LGPL,
 and so can be used with the non-(L)GPL OpenH323, provided we load it
 at run-time (we do), and provided we make any changes available as per
 the terms of the LGPL (we do that too).
 As expected, the patent issue is not as clear.

 According to the site at http://www.mpegla.com it is legal to
 sell up to 50,000 MPEG4 decoder or encoder licenses in one year
 without royalties. See http://www.mpegla.com/m4v/m4vweb.ppt for
 more information. MPEG4 is essentially H.263+, so you would expect
 that the H.263 code would just be a subset of the MPEG4 code.
 Apparently this is not the case, so this licensing arrangement
 probably does not apply. Or at least, that's what some people say -
 others say different. The situation for you could well depend on the
 patent law in your part of the world.

 In the end, there is no definitive answer saying that ffmpeg is safe
 to use, or not. You'll have to make up your own mind and get your own
 advice.

 Feel free to contact the author if you have any additional information
 on this subject
  _________________________________________________________________

6. DOCUMENTATION

 6.1 - Where can I get a design document for OpenH323?

 What  design  documents  that  do  exist  can  be  found  at
 http://www.voxgratia.org/docs/openh323_design.html

 6.2 - Where can I find the help file for OpenPhone?

 There is no help file (yes - we know there is a link for one). If you
 write one, feel free to post it to the list

 6.3 - Where can I find user manuals for the Openh323 programs?

 In most cases, there are no manuals. Help on options can be found by
 running the program with the "--help" option.

 6.4 - Is there a programming tutorial on OpenH323?

 Vladimir Toncar has written a tutorial that can be viewed at
 http://toncar.cz/openh323/tut/.  It is available in English,
 Brazlilian Portuguese and Spanish

 6.5 - Is there documentation on audio codec plugins?

 Yes - see http://www.voxgratia.org/docs/codec_plugins.html

 6.6 - Where can I get documentation on the API for PWLib and OpenH323?

 The header files for OpenH323 and PWLib contain API documentation in
 the Doc++ format. The recommended tool for converting the header files
 into  documents  (as  of  17  May  2004)  is  Doxygen  (see
 http://www.doxygen.org) which is much faster and more accurate
 than the original original Doc++ (see
 http://docpp.sourceforge.net).

 To create the documentation for any particular version of PWLib or
 OpenH323, run the command "make docs" in the "pwlib" or "openh323"
 directories. A directory called "html" will be created that contains
 the documentation in HTML format. Doxygen can also be used to create
 documents in RTF and LaTex format, as well as the compressed HTML
 format (.CHM) for Windows.

 Up to date versions of the the API documentation can be found online
 at       http://www.voxgratia.org/docs/pwlib      and
 http://www.voxgratia.org/docs/openh323. Compressed archives of
 the documentation for various releases can be found on the Vox Gratia
 download page at http://www.voxgratia.org/downloads.html

 6.7 - What documentation is available for OpenH323?

 A list of all documentation available for OpenH323 can be found at
 http://www.voxgratia.org/documents.html

 A map (i.e. a list sorted by topic) of all documentation available for
 OpenH323 can be found at
 http://www.voxgratia.org/docs/document_map.html

 6.8 - Where can I find the specification documents for H.323?

 Copies of the specifications for H.323, H.225, H.245 and most related
 protocols can be found at
 http://www.packetizer.com/iptel/h323/standards.html

 6.9 - Is there a document on the configure.exe program used for
 configuring OpenH323 and PWLib on Windows?

 Yes, see http://www.voxgratia.org/docs/windows_configure.html
  _________________________________________________________________

7. USING OPENH323

 7.1 - When I make a call I get audio in only one direction. What is
 the problem?

 You are probably behind a firewall and are trying to make a call to
 someone on the other side.. See your software documentation for how to
 solve this problem

 7.2 - I am behind a firewall and cannot receive incoming calls? Why
 not?

 Incoming calls require incoming connections on port 1720. Make sure
 that your firewall is passing incoming connections on that port to
 your client, and that your machine supports operation behind a
 firewall.

 7.3 - I can establish a connection but no audio is transferred. What
 is wrong? 

 Make sure the two endpoints share a common codec.

 7.4 - How do I call NetMeeting with an OpenH323 client?

 NetMeeting can inter-operate with an Open Source OpenH323 client using
 only a few audio and video codecs. These codecs are G.711 for audio
 and H.261 or H.263 for video.

 The G.711 audio codec is available as an Open Source implementation
 and should be available on all OpenH323 endpoints that have audio
 enabled. It requires a 64 kbps connection and is only available in
 NetMeeting if it is configured for LAN bandwidth.

 The H.261 video codec is available as an Open Source implementation
 should be available on all OpenH323 endpoints that have video enabled.
 The H.263 video codec, which used less bandwidth and provides better
 quality, may be available if the optional support has been enabled and
 the required external library is available.

 Several people have added new Open Source audio codecs to NetMeeting
 that use much lower bandwidth:
  * GSM - it is possible to enable GSM codec under Netmeeting, but the
   previous instructions on how to do this are no longer available.
   If  you  have  a  reference  for  this,  please  email
   craigs@xxxxxxxxxxxxxxxxx
  * SpeexW - As of the Janus release, OpenH323 supports the SpeexW
   codec that can be added to NetMeeting. See
   http://www.republika.pl/roed/speexw/ for more information

 NetMeeting contains proprietary codecs such as G.723.1 that may be
 available  on some OpenH323 clients. For example, MyPhone (see
 http://myphone.sourceforge.net) contains code that allows use of
 the MS-ACM G.723.1 codec on a Windows client. See 5.4 for more
 information

 7.5 - I hear an echo when I speaking on a H.323 call - what is wrong? 

 The echo is most likely caused by audio coming out the speaker being
 picked up by the microphone. Either move the speaker and microphone
 further apart, reduce the speaker volume, or (best of all) use a
 headset or handset.

 7.6 - How can I test whether my client is working? 

 A  recorded  message  can  be  heard  by  making  a  call to
 h323.voxgratia.org. This service supports the Speex, iLBC, GSM, LPC-10
 and G.711 codecs. A gatekeeper also available at gk.voxgratia.org on
 port 1719. See
 http://www.voxgratia.org/docs/test_systems.html#endpoint for more
 information

 7.7 - I'm sure I have found a problem with OpenH323 - how do I report
 it?

 See 4.10

 7.8 - Why am I getting bad audio even though I am using the G.711
 codec?

 G.711 should sound as good as a normal phone call, because it is the
 same codec as used for ISDN and in telco switches. If you are not
 getting good audio, then you probably have one of the following
 problems:
  * your network is heavily congested. Try increasing the jitter
   buffer size.
  * your machine is too busy, or has a congested network interface.
   Close down other network-based, or sound-based applications on the
   same machine.
  * G.711 may need as much as 75kps on a packet switched network, not
   64kbps as commonly thought. (See
   http://www.voxgratia.org/docs/codecbw.html  for  a  more
   detailed explanation of why this is so). Make sure that you are
   not using a low-speed link (such as dialup modem) that has
   sufficient bandwidth
  * your sound card uses small buffers. If you are using ohphone, try
   using the "--sound-buffers" option to increase the number of
   buffers (the default value is 3)

 7.9 - Why am I getting bad audio when using the G.729 codec?

 G.729 uses a small packet size (10ms) which can cause problems with
 certain sound cards that use small sound buffers. If you are
 experiencing broken audio when using the G.729 codec, increase the
 number of sound buffers from the default value of 3. How this is done
 will depend on your client, but with ohphone it is done using the
 "--sound-buffers" option.

 7.10 - When I start OpenGK/OpenMCU2/OpenIVR as a windows service
 process it won't start due to "error 1053" or similar. How do I fix
 this problem?

 This error is caused by the service process being unable to start for
 some reason, usually because a required DLL cannot be found. To fix
 this problem, it is important to understand that all service processes
 are  started  with C:\WINDOWS\SYSTEM32 as the current directory
 regardless of the actual location of the executable, which means that
 all DLLs must be either in this directory or in some directory
 specified by the PATH environment variable.

 The relocation of the current directory also affects the loading of
 PWLib plugins such as codecs, because the current directory is always
 included in the list of directories that are searched for plugins. By
 default, a program searches for plugins in the tree of subdirectories
 starting at the current directory when the program is started. This
 search involves looking at each DLL in turn, and checking to see if it
 is PWLib plugin.

 Unfortunately, there was an error in older versions of PWLib that
 supported plugins which had the undesirable side effect of actually
 loading every DLL that was found, rather than loading only DLLs that
 are  PWLib  plugins.  This  bug  meant  that  every  DLL  in
 C:\WINDOWS\SYSTEM32 (and there a lot of them) was loaded when a
 program was run as a Windows service. This usually resulted in a
 program crash with strange warnings about weird DLLs not being found,
 or at the very least causing the program to take an unusually long
 time to start up.

 This problem was fixed in revision 1.16 of
 pwlib/include/ptlib/pluginmgr.h which is included in all Pandora
 releases after Pandora RC2. At this time, this patch is not included
 in any Janus releases.

       7.11 - How does OpenH323 support ENUM dialing?

 OpenH323  automatically  implements ENUM dialing (RFC 2916) for
 endpoints under the following conditions:
  * the destination number contains only digits
  * the destination address does not specify a gateway or gatekeeper
  * the endpoint is not configured to use a gatekeeper for address
   resolution

 By default, the following domains will be used (in order) to resolve a
 DN using ENUM:

       e164.voxgratia.net  e164.org  e164.arpa

 This default path can be overridden by setting the PWLIB_ENUM_PATH
 environment variable to a list of domains separated by semi-colons
 (";") on Windows, or colons (":") on Unix

 7.12 - I am getting "Blocked" or other incorrect results when using
 STUN - how do I fix this?

 OpenH323 and OPAL contain support for the STUN (Simple Traversal of
 UDP Through NAT) protocol to simplify making calls from behind a NAT
 firewall. This protocol uses a remote STUN server to assist a client
 in detecting what kind of NAT is being used.

 Prior to 26 October 2004, the STUN client code in PWLib used a timeout
 of 500ms when waiting for results from the STUN server. This timeout
 was acceptable for most networks, but could result in incorrect
 results when used on busy or low speed connections, or on hosts that
 do not enjoy good connectivity to the Vox Gratia STUN server
 (stun.voxgratia.org).

 The STUN client code now uses a timeout of 5000ms which gives reliable
 results, with the possible side effect of increasing setup time for
 hosts with busy or low speed connections.

 To see determine what timeout is used by your code, find the file
 pwlib/src/ptclib/pstun.cxx and look for the following code near line
 449:

           socket.SetReadTimeout(xxxx);

 If xxxx is set to 500, then it is old code and the number must be
 changed to 5000. If this change is made, then recompile PWLib as
 required, and re-link any programs using OpenH323.

 7.13 - What are the different firewall types reported by STUN, and
 what do they mean?

 OpenH323 and PWLib support the STUN protocol (see RFC 3489) for
 detecting and interoperating with NATs and firewalls. The STUN
 protocol can detect several different NAT and firewall configurations,
 but only some of these configurations support VoIP functions. The
 detected NAT types are as follows:

 NAT Type
 NAT Port Restrictions Address
 Type Supports VoIP Description

 BlockedNat
 Unknown Unknown Unknown No Host has no connectivity that can be
 determined.

 PartialBlockedNat or UnknownNat
 Uknown Unknown Unknown Unknown Unknown NAT type

 OpenNat
 No No Public Yes Host has a public IP address and has unrestricted
 access to the Internet with no firewall or NAT restrictions

 SymmetricFirewall
 No Yes Public Yes
 (see note 1) Same as OpenNAT, but some network entity (probably a
 firewall) is enforcing symmetric UDP connections. This means that a
 remote host can only send to an address/port on the source host if,
 and only if, it has previously received a connection from the source
 address/port.

 ConeNat
 Yes No Private Yes Each source address/port pair is mapped to a unique
 external address/port pair. Any external host can send to the internal
 host via the external address/port.

 RestrictedNat
 Yes Yes Private Yes
 (see note 1) Same as Cone, except an external host can only send to
 the internal host if, and only if, the internal host has previously
 sent a packet to the external host address.

 PortRestrictedNat
 Yes Yes Private Yes
 (see note 1) Same as RestrictedNat, except an external host can only
 send to the internal host if and only if, the internal host has
 previously sent to the external host address and port

 SymmetricNat
 Yes Yes Private No Each source address/port & destination address/port
 four-tuple is mapped to a unique external address/port pair. Only the
 destination address/port can send to the internal address/port.
 Note 1: this NAT type requires the endpoint behind the NAT to send
 audio/video before it will receive any audio/video. This may not be
 possible in call cases.

 The STUN requires the use of an external STUN server. Reitek S.p.a has
 generously provided a STUN server for use by Vox Gratia users which
 can be found at stun.voxgratia.org.

 7.14 - Why I am seeing messages like "RTP Packet from SSRC=xxxxxxxx
 ignored, expecting SSRC=yyyyyyyy" with audio only in one direction?

 The one-way audio and the warning message are caused by the endpoint
 changing the RTP SSRC identifier in the middle of a call.
 While strictly speaking this is not illegal, it is a strange thing for
 the endpoint to do as this makes the endpoint look like a hostile
 endpoint is attempting to insert audio into the session.

 Unfortunately, some endpoints do change the SSRC identifier mid-call
 and by default OpenH323 will detect the condition and ignore the new
 data. The warning message above will be displayed when this condition
 occurs.

 If you need to interoperate with endpoints that change SSRC mid-call,
 you can disable the checking of SSRC identifiers by editing the file
 openh323/src/rtp.c.  Look  for a line of code in the function
 RTP_Session::RTP_Session as follows:

            ignoreOtherSources = TRUE;

 Change this to:

           ignoreOtherSources = FALSE;

 7.15 - How many simultaneous calls can OPAL/OpenH323 handle?

 The short answer is that it depends on your application, and the
 amount of CPU you have.

 A more precise answer is that without any modification, a standard
 OPAL/OpenH323 application on Linux that handles both signaling and
 media will hit the per-process file handle limit at about 80
 simultaneous calls. By increasing the per-process file handle limit to
 16384 (using "ulimit") the maximum call density is around 1300 calls.
 If the calls always use H.245 tunneling, this will increase to 110 and
 1800. If the calls are signaling only, the limits are 330 and 5400.

 The limits on Windows are around 1000 calls regardless of the call
 type.

 An OpenH323 application can increase these limits further by enabling
 signaling aggregation. This feature is not yet available on OPAL.

 A detailed description of the problem and the aggregation solution is
 available in the whitepaper "Increasing the maximum call density of
 OpenH323 and OPAL" (see
 http://www.voxgratia.org/docs/call%20thread%20handling%20model%20
 1.0.pdf )
  _________________________________________________________________

8. OPAL and OpenH323 applications

 8.1 - What other projects use OpenH323?

 The following Open Source projects are known to use OPAL or OpenH323:

  Ekiga (formerly known as GnomeMeeting) - http://www.ekiga.org
  Client program for Windows, Linux, and other Unix platforms based
  on OPAL

  CPhone - http://www.cphone.org
  Client program for Linux and Windows platforms based on OpenH323

  GnuGK - http://www.gnugk.org
  A gatekeeper for Unix and Windows based on OpenH323

  MyPhone - http://myphone.sourceforge.net
  Another client program based on OpenH323

  Xmeeting - http://xmeeting.sourceforge.net/
  Client program for MacOSX based on OpenH323

  OCX for OpenH323 - http://www.geocities.com/rddamian/
  An OCX control for OpenH323 that can be used in Visual Basic and
  MSIE. The page above seems to be out of date, but the latest
  sources can be found in the OpenH323 CVS in the contrib/DCOM
  directory.

  YATE - http://yate.null.ro/pmwiki/
  Yate is Yet Another Telephone Engine and uses OpenH323 for H.323
  functionality

  Bayonne - http://www.gnu.org/software/bayonne/
  Bayonne is a telephony communications server that uses OpenH323 for
  H.323 functionality

 If  you  know  of  any  other  projects,  please  email
 craigs@xxxxxxxxxxxxxxxxx

 8.2 What commercial and closed-source software uses Opal and OpenH323?

 The following commercial software is known to use OPAL or OpenH323:

  PacPhone - http://www.pacphone.com
  A  softphone based on OpenH323 that supports encryption and
  authentication

  Gridborg HMP - http://www.uniqall.com
  A software based media controller based on OPAL that supports voice
  and fax

  Internet switchboard - http://www.quicknet.net
  ISB is a softphone based on OpenH323 that supports Quicknet's range
  of audio compression cards

  Marratech Manager - http://www.maratech.com
  A cross-platform video conferencing solution from Marratech AB in
  Sweden using OpenH323.

 If  you  know  of  any  other  products,  please  email
 craigs@xxxxxxxxxxxxxxxxx

 8.3 - What is the status of the OpenMCU program?

 OpenMCU was originally created in May 2000 by Craig Southeren as a
 experiment to investigate some ideas about how an audio MCU might
 work. A description of the original motivations can be found at
 http://www.southeren.com/blog/archives/000050.html.

 Over the next two years the code was modified by Derek Smithies and
 Roger Hardiman to include video capabilities and to add extra
 functions such as support for multiple rooms. The final result of this
 effort was OpenMCU v1.7.1 which supported both video and audio, but
 was unstable and difficult to understand. Guilhem Tardy has also
 released some notes on how to add H.263 support to OpenMCU at
 http://www.salyens.com/ffcodec/

 OpenMCU version 2 was started in March 2004 with support from Citron
 Networks with intent of fixing the known problems with version 1. The
 code was almost completely rewritten to be more modular, and the
 stability issues were addressed. This work ended around August 2004
 with a version that only supported audio.

 A new project was started in March 2006 with the support of Stonevoice
 to restore video functionality to OpenMCU. In June 2006, OpenMCU 2.2.0
 was released with full support for both audio and video including the
 H.261 and H.263 codecs.

 8.4 - How do I use OpenH323 with Asterisk?

 There  are three different modules that interface Asterisk and
 OpenH323:
  * asterisk-oh323 by Michael Manousos -
   http://www.inaccessnetworks.com/projects/asterisk-oh323
   This channel driver module is compiled with OpenH323 and PWLib,
   and uses the low level audio interface of OpenH323. This driver
   uses the RTP stack and codecs within OpenH323.
  * channel_h323 by Jeremy McNamara - included as part of the standard
   Asterisk source package
   This channel driver module is compiled with OpenH323 and PWLib,
   and uses the external RTP interface of OpenH323. This driver uses
   the RTP stack and codecs from Asterisk
  * chan_woomera  with  Woomera  by  Anthony  Minessale  -
   www.pbxfreeware.org/chan_woomera
   This  module  uses a simple Asterisk channel driver called
   chan_woomera that does not contain any H.323 code. This driver
   commuicates with a seperate process called Woomera that contains
   OpenH323.
  _________________________________________________________________

9. Programming

 9.1 How do I create a program that uses OpenH323 for call control, but
 uses an external RTP device?

 This is quite easy to do, and is explained in more detail at
     http://www.voxgratia.org/docs/external_rtp.html

 9.2 - How do get a list of the codecs supported by OpenH323?

  The static function H323PluginCodecManager::GetMediaFormats will
 return a list of all of the codecs that are supported by the current
  set of plugins and statically linked code without requiring any
 additional hardware. By default, this will include all of the audio
 codecs that can be converted to/from PCM-16. It will also include any
 video media formats that are supported by the stack. This will always
  include H.261 (if video is compiled into the stack) and H.263 (if
   support has been compiled and all necessary run-time loadable
            libraries are available).

 The virtual function OpalLineInterfaceDevice::GetMediaFormats can be
  called on any instance of OpalLineInterfaceDevice or descendant to
  obtain the media formats supported by a specific hardware device.

  See http://www.voxgratia.org/docs/codec_plugins.html for more
 information on the plugin codec system in OpenH323, including general
             information on codecs

  9.3 - When I enable PMEMORY_CHECK, I see all sorts of memory leaks
           reported. How do I fix these?

 There is a define called PMEMORY_CHECK that enabled all sorts of code
  in PWLib to check memory blocks allocated by the code. But this is
 turned off by default (even in debug mode) because the code it uses is
  pretty stupid. Not only does it slow down the entire stack by a
 significant amount, but it reports all sorts things as memory leaks
  when they really aren't. We got tired of people going into a panic
 when they saw the words "memory leak" and then having to explain why
      this was not a problem, so we just disabled it.

  First of all, lets be clear what a memory leak is. The jargon file
 (see http://www.catb.org/~esr/jargon) defines a memory leak as:

  An error in a program's dynamic-store allocation logic that causes
  it to fail to reclaim discarded memory, leading to eventual
  collapse due to memory exhaustion.

 By this definition (which I agree with), a memory leak it is not just
  a memory block that is never freed, but it a problem with memory
  allocation that leads to memory exhaustion. This is an important
 distinction, because there are lots of places in PWLib, OpenH323 and
 OPAL where memory is allocated, but never freed, and these do not (and
 never will) lead to memory exhaustion because they are only allocated
 once and the reused for the lifetime of the program. The PFactory code
            is a good example of this.

 It is these memory blocks that cause PMEMORY_CHECK to be a pain. It
 reports every one of these memory allocations as a memory leak even
 though they are not causing any problems. So why don't we just ensure
  that these memory blocks are cleaned up? Two reasons - firstly we
  don't have time to spend on issues that are not real problems; and
 secondly, it can be difficult to determine exactly when some of these
  memory blocks should actually be freed in order to avoid causing
  problems during shutdown. So we just choose to avoid the issue.
  _________________________________________________________________

                10. OPAL

             10.1 - What is OPAL?

 OPAL is the "next generation" of OpenH323 that has a new architecture.
 Not only does it support H.323 and SIP, but new VoIP protocols or
 devices can be added very easily. It is being actively developed and
 is used by several projects such as Ekiga (http://www.ekiga.org)

 BTW: OPAL is an acronym for Open Phone Abstraction Library, but that
 is not really important :)

          10.2 - Where can I download OPAL?

 OPAL sources in both tar.gz and ZIP formats can be downloaded from the
 Vox Gratia web site at http://www.voxgratia.org/downloads.html

 OPAL can also be extracted from the OpenH323 CVS using "opal" module
                 name

           10.3 - How do I compile OPAL?

   Compiling OPAL is very similar to compiling OpenH323. Detailed
   instructions on compiling OPAL under Windows can be found at
     http://www.voxgratia.org/docs/opal_windows.html

       10.4 - How do I use SimpleOPAL to make a call?

 Most of the command line options for SimpleOPAL are fairly obvious,
         but some examples are always useful:

 The following command makes a H.323 call to h323.voxratia.org without
             using a gatekeeper.

         simpleopal -n h323:h323.voxgratia.org

 The following command makes a SIP call to a remote endpoint without
              using a registrar.

          simpleopal -n sip:192.168.1.247

 To listen for incoming calls, use the "-l" option instead of the
 destination address.

 For information on making calls to telephone numbers with SimpleOPAL,
 see 10.7 below

   10.5 - Is OpenH323 now obsolete or deprecated now that OPAL is
                released?

 For the foreseeable future, both OpenH323 and OPAL will continue to be
 maintained and updated. When we consider that OPAL has the same level
 of maturity and H.323 functionality as OpenH323, we will move OpenH323
 into a maintenance-only mode. We're not sure when that will happen.

       10.6 - Where can I find documentation on OPAL?

 A reference document for the OPAL API can be extracted from the OPAL
 header files using the command "make docs". This command requires the
   Doxygen program. A copy of this documentation can be found at
        http://www.voxgratia.org/docs/opal .

 There is also a nice description of the OPAL architecture in a thesis
   written by Hadeel H. Taha titled "Architecture for a SIP-Based
     Conferencing Server". This document can be found at
 http://swt198.swt.fh-mannheim.de/gossip/download/Thesis_Taha.pdf
           and there is also a copy at
    http://www.voxgratia.org/docs/opal/Thesis_Taha.pdf

   10.7 How do I use OPAL to make a call to a telephone number?

 To make calls to a telephone number, you will need to use a service
  that provides a gateway between SIP or H.323 calls and the public
 switched telephone network. There are several such networks - some of
  these are free and some charge for calls. Instructions on using
     several such networks can be found below. Please email
  craigs@xxxxxxxxxxxxxxxxx if you have information on any other
    calling services that are compatible with OPAL or OpenH323

       Free World Dialup - http://fwd.pulver.com

 This free service allows calls to a wide variety of SIP networks as
 well as US 1800 and 1866 numbers. The following command line can be
      used to make a test call to any FWD destination

  simpleopal -H -u userid -p password --register-sip fwd.pulver.com
            sip:number@xxxxxxxxxxxxxx

       Broadvoice - http://www.broadvoice.com

 This subscription service offers both incoming and outgoing calls via
   SIP. The following command can be used to make outgoing calls:

     simpleopal -H --register-sip proxy.broadvoice.com \
          --sip-proxy proxy.broadvoice.com \
          --sip-domain sip.broadvoice.com \
             -D *LBC* -D *Speex* \
            -u userid -p password \
           sip:number@xxxxxxxxxxxxxxxxxx

 Note that is necessary to disable the Speex and iLBC codecs when using
 Broadvoice as the service will timeout or refuse calls containing
 these codecs.

 Gizmoproject - http://www.gizmoproject.com

 This service offers free outgoing calls to many countries and incoming
 calls from landlines for a fee. The following command line can be used
 to listen any destination

    simplopal -H -u userid --password password --register-sip
    proxy01.sipphone.com sip:number@xxxxxxxxxxxxxxxxxxxx

 International (non-US) destination can be called by prefixing the
 number with the "+" character, such as
 "sip:+61243654666@xxxxxxxxxxxxxxxxxxxx"
  _________________________________________________________________


Copyright (C) 2004-2005 by Post Increment, All Right Reserved
http://www.postincrement.com

All trademarks and copyrights on this page are owned by their respective owners

------------------------------------------------------------------------
Check the FAQ before asking! - http://www.openh323.org/~openh323/fom.cgi
The OpenH323 Project mailing list, using Mailman. To unsubscribe or
change your subscription options, goto
http://www.openh323.org/mailman/listinfo/openh323
Maintained by Quicknet Technologies, Inc - http://www.quicknet.net
------------------------------------------------------------------------

[Index of Archives]     [IETF SIP]     [Gnu Gatekeeper]     [Asterisk PBX]     [Asterisk SS7]     [Fedora Linux]     [Gimp]     [Yosemite News]     [Yosemite Campsites]     [ISDN Cause Codes]

  Powered by Linux