Installing OpenH323 under Windows

From Yate Documentation
Jump to: navigation, search

This is a how to install OpenH323 on Windows platforms.

Contents

Install PWLib library

We will start this section with the PWLib installation which is order to install OpenH323.

For installing PWLib you have to build it. This chapter will guide you on this process step by step.
PWLib can be installed using Microsoft Visual Studio 6.0 (MSVC) or Visual Studio .NET (VS.net)

Prerequisites

The following are needed in order to build Pwlib successfully:

- MSVC 6 or at least VS.net 2003
- The source code for PWLib, which can be downloaded from http://sourceforge.net/project/showfiles.php?group_id=80674 or from CVS
- An archive extractor. Note that it needs to handle end of line characters properly. A proper suggestion might be WinZip

After downloading and unzipping to a directory (let’s call it "\Pwlib\"), there is a little more work to do, by installing GNU Bison and checking Visual C++ header files.

  • Installing GNU Bison
The GNU Bison tool is required for compiling Pwlib. GNU flex is not a necessary requirement, but, if you want to recompile the "asnparser" utility for making changes in the ASN files that come with OpenH323, you will need to install it too.
If you are using MSVC 6, navigate to Tools-Options-Directories and add "C:\Tools" to the executable directory path.
If you use VS.Net, go to Tools-Options-VC++ Directories and add "C:\Tools" to the executable directory path.
  • Check Visual C++ header files
(This section is only for MSVC 6 users. If you are using VS.Net 2003, skip this step.)
When the STL library for MSVC was introduced, some mistakes were made, sufficiently big enough to make Pwlib not to work correctly. These were eventually corrected in the newer, bug-free versions.
These files are included in the Pwlib source directory. Navigate to “\Pwlib\” and run MSVC_UPGRADE.BAT. This is a batch file that searches for the good files and replaces the old ones in the right places.

Configure paths for compilation

The next step is to go to Tools-Options and add the following paths required for compilation:

- pathto\PWLIB\INCLUDE to the Include directory list
- pathto\PWLIB\LIB to the Executable directory list
- pathto\PWLIB\LIB to the Library directory list

Projects that can be built

There are three different projects that can be built as Debug or Release versions, for both MSVC 6 and VS.Net:

  • Console : the basic PWLib library as a static library;
Debug: ptlibsd.lib Release: ptlibs.lib
  • Console Components : contains the basic PWLib library;
Debug: ptclibd.lib Release: ptclib.lib
  • PTLib : contains the basic PWLib library
Debug: ptlibd.lib and ptlibd.dll Release: ptlib.lib and ptlib.dll


For MSVC 6 follow these steps

- open the project file “\PWLIB\PWLIB.DSW”
- make sure the "File view" tab is selected in the Workspace
- select the build type as "Win32 Release" or "Win32 Debug" from the Build toolbar
- right-click on "Console files" and select "Build" from the menu to build ptlibs.lib (or ptlibsd.lib for "Win32 Debug" version)
- there should appear some text lines. If the final lines are:

Generating Code...

Creating library...
ptlibd.lib - 0 error(s), 1 warning(s)
then the building is successful

If not, you may want to look at the following two tips, which may help you to compile Pwlib:

1. if you see the following:

Compiling...
assert.cxx
C:/Program Files/Microsoft SDK/include/winsock2.h(1218) : error C2061: syntax error : identifier 'DWORD_PTR'
C:/Program Files/Microsoft SDK/include/winsock2.h(1262) : error C2146: syntax error : missing ';' before identifier 
'Key'\\ C:/Program Files/Microsoft SDK/include/winsock2.h(1262): error C2501: 
'ULONG_PTR' : missing storage-class or type specifiers
....

then it means that you are using the Microsoft Platform SDK. For this to work, you need to select "Options" from the "Tools" menu and ensure that the include and lib directories for the Platform SDK are before the VC98 include directories.

2. If the compile stops with the following message:

WARNING: the following file requires upgrading:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\XTREE
Please run "msvc6chk upgrade" to upgrade this file
Error executing c:\winnt\system32\cmd.exe.

ptlibs.lib - 1 error(s), 1 warning(s)

please re-read and re-run the section on upgrading the MSVC 6 header files.

-Right-click on "Console Components files" and select "Build" from the menu. This will build ptclib.lib (or ptclibd.lib if you are building the "Win32 Debug" version).
-Right-click on "PTLib files and select "Build" from the menu to build ptlib.dll (or ptlibd.dll if you are building the "Win32 Debug" version). Note that MERGESYM will be automatically built the first time you build either ptlib.dll or ptlibs.dll, which may require also building the "Win32 Release" version of Console and Console Components if that was not done previously. You may also receive some unimportant warnings which you can ignore.

For VS.net follow these steps

- open the project file “PWLIB\PWLIB.SLN”. Ignore any warning about projects (e.g. "GUI.VCPROJ" not found”).
- make sure the "Solution explorer" windows is displayed
- select the build type as "Release" or "Debug" in the Build toolbar
- right-click on "Console" and select "Build" from the menu to build ptlibs.lib (or ptlibsd.lib if you are building the "Debug" version)
- Right-click on "Console Components" and select "Build" from the menu to build ptclib.lib (or ptclibd.lib if you are building the "Debug" version).
- Right-click on "PTLib" and select "Build" from the menu to build ptlib.dll (or ptlibd.dll if you are building the "Debug" version). Again, note that MERGESYM will be automatically built the first time you build either ptlib.dll or ptlibs.dll, which may require also building the "Release" version of Console and Console Components if that was not done previously.

Compiling ASNParser may be required only for PWLib 1.6/OpenH323 1.13 or earlier versions. If you are using the latest version, you may skip this step.

Right click on the "ASNParser" project and Select "Build" and the ASN Parser is installed.

Install OpenH323

Let’s continue now with the OpenH323 installation.

Before proceeding, make sure that the Pwlib is compiled and installed. This was discussed above. Here you will be helped to install OpenH323 on Windows, using both MSVC and VS.Net.

The following are needed in order to be able to compile OpenH323:

- The previous section's requirements including the compiled version of PWLib
- The H323 source code, which can be downloaded from http://sourceforge.net/project/showfiles.php?group_id=80674

Configure paths for compilation

Similar with what we have done for PWLib we have to add the next paths for Open H323 using the Tools-Options dialogue:

- "pathto\OPENH323\INCLUDE" to the Include directory list
- "pathto\OPENH323\LIB" to the Executable directory list
- "pathto\OPENH323\LIB" to the Library directory list

Note that the starting directory must be the same as the one where you installed PWlib.

Projects that can be built

As for PWLib, there are three different projects that can be built as Debug or Release or No trace versions, for both MSVC 6 and VS.Net:

Debug

- full debug symbols and trace logging
- the most information and
- the most output files generated

Release
- no debug symbols, but full trace logging - smaller then the Debug project - large output

No trace

- no debug symbols and no trace logging
- the smallest output files
- doesn’t allow trace logging

Below you will find a enumeration of the plugin codecs, which can be built only as release version.

  • OpenH323Lib : OpenH323 as a static library

Debug: openh323sd.lib Release: openh323s.lib No trace: openh323sn.lib

  • OpenH323dll : OpenH323 as a dynamic library

Debug: openh323d.lib Release: openh323.lib No trace: openh323n.lib

  • G726 : G726 plugin audio codec

Release: g726codec.dll

  • gsm0610 : GSM06.10 plugin audio codec

Release: gsm0610.dll

  • ilbccodec : iLBC plugin audio codec

Release: ilbccodec.dll

  • IMA_ADPCM : IMA_ADPCM plugin audio codec

Release: IMA_ADPCM.dll

  • Speex : Speex plugin audio codec

Release: speexcodec.dll

  • LPC_10 : LPC-10 plugin audio codec

Release: LPC_10.dll

  • VoiceAgeG729 : G.729 plugin audio codec

Release: VoiceAgeG729.dll

For MSVC 6 follow these steps:

  1. open the project file "\OPENH323\OPENH323.DSW"
  2. make sure the "File view" tab is selected in the Workspace
  3. select the build type as "Win32 Release", "Win32 Debug" or "Win32 No Trace" in the Build toolbar
  4. Right-click on "OpenH323Lib files" and select "Build" from the menu to build openh323s.lib (or openh323sd.lib if you are building the "Win32 Debug" version, or openh323sn.lib if you are building the "Win32 No Trace" version).
  5. Right-click on "OpenH323dll files" and select "Build" from the menu to build openh323.lib and openh323.dll (or openh323d.lib and openh323d.dll if you are building the "Win32 Debug" version, or openh323n.lib and openh323n.dll if you are building the "Win32 No Trace" version).

VS.Net users should follow these steps:

  1. open the project file "\OPENH323\OPENH323.SLN"
  2. make sure the "Solution explorer" window is displayed
  3. select the build type as "Release", "Debug" or "No Trace" in the Build toolbar
  4. Right-click on "OpenH323Lib" and select "Build" from the menu to openh323s.lib (or openh323sd.lib if you are building the "Win32 Debug" version, or openh323sn.lib if you are building the "Win32 No Trace" version).
  5. Right-click on "OpenH323dll" and select "Build" from the menu to build openh323.lib and openh323.dll (or openh323d.lib and openh323d.dll if you are building the "Win32 Debug" version, or openh323n.lib and openh323n.dll if you are building the "Win32 No Trace" version).

Plugins and audio codecs

Now let's talk a bit about the plugins and audio codecs. Codecs must be compiled from separate projects. After compilation, each project will make its own DLL. If you compile as a Release, the codec DLLs will be found in "\OPENH323\PLUGINS\RELEASE".
You have to tell manually the OpenH323 applications where those DLLs are located. For this, you can copy the DLLs to the default plugin directory, which is "C:\PWLIB_PLUGINS".
Another way to do this is:

- go to control panel - system - advanced - environment variables - new
- in the variable name, write PWLIBPLUGINDIR
- in the value name write the path to the directory containing the DLLs


See also

Telephony

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers