places and fix a few typos I found in the CODING_GUIDELINES. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@167061 65c4cc65-6c06-0410-ace0-fbb531ad65f3
145 lines
4 KiB
Text
145 lines
4 KiB
Text
Open H.323 Channel Driver for Asterisk
|
|
By Jeremy McNamara
|
|
For The NuFone Network
|
|
|
|
First public release on November 10th, 2002
|
|
|
|
Dependancies (based on OpenH323/PWLib ones):
|
|
openssl-0.9.6b+
|
|
openssl-devel-0.9.6b+
|
|
expat-1.95+
|
|
expat-dev-1.95+
|
|
|
|
Tested with Open H.323 version v1.18.0, PWLib v1.10.0 and GCC v3.2.2. Usage of any
|
|
other (especially prior OpenH323 v1.17.3 and PWLib v1.9.2) versions is not
|
|
supported.
|
|
|
|
NOTICE: Whatever you do, DO NOT USE distrubution specific installs
|
|
of Open H.323 and PWLib. In fact, you should check to make sure
|
|
your distro did not install them for you without your knowledge.
|
|
|
|
|
|
To compile this code
|
|
--------------------
|
|
Once PWLib and Open H.323 have been compiled per their specific build
|
|
instructions, issue a make in the asterisk/channels/h323 directory with
|
|
argument used to build PWLib and OpenH323 (for example, make opt), then go
|
|
back to the Asterisk source top level directory and issue a make install.
|
|
|
|
|
|
The most common compile error
|
|
----------------------------
|
|
If you receive ANYTHING that says 'undefined symbol' you are experiencing
|
|
typical version skew. For example:
|
|
|
|
libh323_linux_x86_r.so.1: undefined symbol: GetNumberValueAt__C14PAbstractArrayi
|
|
|
|
You need to search and destroy every version of libh323 and libpt then
|
|
completely recompile everything
|
|
|
|
Example commands to make sure everything gets cleaned and then
|
|
rebult in proper order:
|
|
|
|
cd /path/to/pwlib
|
|
./configure
|
|
make clean opt
|
|
cd /path/to/openh323
|
|
./configure
|
|
make clean opt
|
|
cd /path/to/asterisk/channels/h323
|
|
make opt
|
|
cd /path/to/asterisk
|
|
make install
|
|
|
|
|
|
Most common run-time error
|
|
-------------------------
|
|
libpt_linux_x86_r.so.1: cannot open shared object file: No such
|
|
file or directory
|
|
|
|
You have not set the LD_LIBRARY_PATH environment variable.
|
|
|
|
Example environment for sh/bash:
|
|
|
|
PWLIBDIR=$HOME/pwlib
|
|
export PWLIBDIR
|
|
OPENH323DIR=$HOME/openh323
|
|
export OPENH323DIR
|
|
LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib
|
|
export LD_LIBRARY_PATH
|
|
|
|
We recomend puting the above directives into your /etc/profile so
|
|
you do not have to remember to export those values every time you
|
|
want to recompile. Make sure to logout and log back in, so your
|
|
envrionment can pick up the new variables.
|
|
|
|
|
|
Upgrading Asterisk
|
|
-----------------
|
|
After you svn update (or make update) Asterisk you have to go into
|
|
asterisk/channels/h323 and issue a make clean all, before compiling the
|
|
rest of asterisk. Doing this process every time you upgrade Asterisk
|
|
will ensure a sane build.
|
|
|
|
|
|
Dialing an H.323 channel
|
|
------------------------
|
|
Without a gatekeeper:
|
|
exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}@peer
|
|
or
|
|
exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}@ip.or.hostname
|
|
|
|
'peer' is defined in h323.conf as:
|
|
|
|
[peer]
|
|
type=peer
|
|
host=1.2.3.4
|
|
disallow=all
|
|
allow=ulaw
|
|
|
|
Using a gatekeeper:
|
|
exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}
|
|
|
|
When using a gatekeeper you cannot utilize the type=peer features,
|
|
since the H.323 spec states that when a Gatekeeper is part of an H.323 network,
|
|
the Gatekeeper shall be used for all communication.
|
|
|
|
|
|
Developer Contact
|
|
----------------
|
|
If you have trouble contact 'JerJer' in #Asterisk on
|
|
irc.freenode.net and/or send reasonable debug information to support@nufone.net.
|
|
|
|
If are lucky enough to segfault this code please run a
|
|
backtrace and send the gory details. Segmentation faults are not
|
|
tolerated, no matter what Distro you run (even debian)!
|
|
|
|
a simple bt example:
|
|
|
|
# /usr/sbin/asterisk -vvvgc
|
|
...
|
|
[chan_h323.so]
|
|
Segmentation Fault (core dumped)
|
|
|
|
# ls core.*
|
|
core.1976
|
|
|
|
# gdb /usr/sbin/asterisk core.1976
|
|
...lots of useless garbage here...
|
|
(gdb) bt
|
|
|
|
Send whatever shows up right after the 'bt'
|
|
|
|
Also, a full debug screen output is almost needed. Make sure you are
|
|
in the full console mode (-c) and turn on 'h.323 debug' or worst case
|
|
senerio 'h.323 trace 4'. A nice way to capture debug info is with
|
|
script (man script).
|
|
|
|
If you are motivated to update/fix this code please submit a
|
|
disclaimer along with the patch to the Asterisk bug
|
|
tracker: http://bugs.digium.com/
|
|
|
|
|
|
Jeremy McNamara
|
|
The NuFone Network
|