Update references to bugs.digium.com and reviewboard.digium.com to the new URLs.
[asterisk/asterisk.git] / channels / h323 / README
1                 Open H.323 Channel Driver for Asterisk
2                         By Jeremy McNamara  
3                         For The NuFone Network
4
5              First public release on November 10th, 2002
6
7                 Dependancies (based on OpenH323/PWLib ones):
8                                                 openssl-0.9.6b+
9                                                 openssl-devel-0.9.6b+
10                                                 expat-1.95+
11                                                 expat-dev-1.95+
12
13 Tested with Open H.323 version v1.18.0, PWLib v1.10.0 and GCC v3.2.2. Usage of any
14 other (especially prior OpenH323 v1.17.3 and PWLib v1.9.2) versions is not
15 supported.
16
17 NOTICE: Whatever you do, DO NOT USE distrubution specific installs
18 of Open H.323 and PWLib. In fact, you should check to make sure 
19 your distro did not install them for you without your knowledge.
20
21
22 To compile this code
23 --------------------
24 Once PWLib and Open H.323 have been compiled per their specific build
25 instructions, issue a make in the asterisk/channels/h323 directory with
26 argument used to build PWLib and OpenH323 (for example, make opt), then go
27 back to the Asterisk source top level directory and issue a make install.
28
29
30 The most common compile error  
31 ----------------------------
32 If you receive ANYTHING that says 'undefined symbol' you are experiencing
33 typical version skew.  For example:
34
35 libh323_linux_x86_r.so.1: undefined symbol: GetNumberValueAt__C14PAbstractArrayi
36
37 You need to search and destroy every version of libh323 and libpt then 
38 completely recompile everything
39
40 Example commands to make sure everything gets cleaned and then
41 rebult in proper order:
42
43 cd /path/to/pwlib
44 ./configure
45 make clean opt
46 cd /path/to/openh323
47 ./configure
48 make clean opt 
49 cd /path/to/asterisk/channels/h323
50 make opt
51 cd /path/to/asterisk
52 make install 
53
54
55 Most common run-time error
56 -------------------------
57 libpt_linux_x86_r.so.1: cannot open shared object file: No such 
58 file or directory
59
60 You have not set the LD_LIBRARY_PATH environment variable.
61
62 Example environment for sh/bash:
63
64 PWLIBDIR=$HOME/pwlib
65 export PWLIBDIR
66 OPENH323DIR=$HOME/openh323
67 export OPENH323DIR
68 LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib
69 export LD_LIBRARY_PATH
70
71 We recomend puting the above directives into your /etc/profile so 
72 you do not have to remember to export those values every time you 
73 want to recompile. Make sure to logout and log back in, so your
74 envrionment can pick up the new variables.
75
76
77 Upgrading Asterisk
78 -----------------
79 After you svn update (or make update) Asterisk you have to go into
80 asterisk/channels/h323 and issue a make clean all, before compiling the
81 rest of asterisk. Doing this process every time you upgrade Asterisk
82 will ensure a sane build.
83
84
85 Dialing an H.323 channel
86 ------------------------
87 Without a gatekeeper:
88 exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}@peer
89 or
90 exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}@ip.or.hostname
91
92 'peer' is defined in h323.conf as:
93
94 [peer]
95 type=peer
96 host=1.2.3.4
97 disallow=all
98 allow=ulaw
99
100 Using a gatekeeper:
101 exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}
102
103 When using a gatekeeper you cannot utilize the type=peer features,
104 since the H.323 spec states that when a Gatekeeper is part of an H.323 network, 
105 the Gatekeeper shall be used for all communication. 
106
107
108 Developer Contact
109 ----------------
110 If you have trouble contact 'JerJer' in #Asterisk on 
111 irc.freenode.net and/or send reasonable debug information to support@nufone.net.
112
113 If are lucky enough to segfault this code please run a 
114 backtrace and send the gory details. Segmentation faults are not
115 tolerated, no matter what Distro you run (even debian)!
116
117 a simple bt example:
118
119 # /usr/sbin/asterisk -vvvgc
120 ...
121 [chan_h323.so]
122 Segmentation Fault (core dumped)
123
124 # ls core.*
125 core.1976
126
127 # gdb /usr/sbin/asterisk core.1976
128 ...lots of useless garbage here...
129 (gdb) bt
130
131 Send whatever shows up right after the 'bt'
132
133 Also, a full debug screen output is almost needed. Make sure you are 
134 in the full console mode (-c) and turn on 'h.323 debug' or worst case
135 senerio 'h.323 trace 4'. A nice way to capture debug info is with 
136 script (man script). 
137
138 If you are motivated to update/fix this code please submit a 
139 disclaimer along with the patch to the Asterisk bug 
140 tracker: https://issues.asterisk.org/
141
142
143 Jeremy McNamara
144 The NuFone Network