57f600dab19687da60c819681099a70bd7174d6a
[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
8                 Dependancies:   openssl-0.9.6b
9                                 openssl-devel-0.9.6b
10                                 expat-1.95
11                                 expat-dev-1.95
12
13 This code runs on Open H.323 v1.12.2 and PWLib v1.5.2. If you use different 
14 versions, you are on your own. See the Makefile for more details.
15
16 chan_h323 has been implemented using Asterisk's RTP stack insted of trying
17 to implement a pseudo sound card driver. I feel this is more effiecent,
18 due to the Asterisk.
19
20 NOTICE: Whatever you do, DO NOT USE distrubution specific installs
21 of Open H.323 and PWLib. In fact you should check to make sure 
22 your distro didn't install them for you without your knowledge.
23 Check everything out of CVS. If you dont know how to deal with cvs, learn. 
24 Also, if you are not using the listed versions of Open H.323 or PWlib 
25 you are on your own, sorry. 
26
27
28 To compile this code:
29 Once PWLib and Open H.323 have been compiled per their specific build instructions, issue 
30 a make in the asterisk/channels/h323 directory, then go back to the Asterisk source 
31 top level directory and issue a make install.
32
33
34 Most common compile error  
35
36 If you receive ANYTHING that says 'undefined symbol' you are experiencing
37 typical version skew.  For example:
38
39 libh323_linux_x86_r.so.1: undefined symbol: GetNumberValueAt__C14PAbstractArrayi
40
41 You need to search and destroy every version of libh323 and libpt then 
42 completely recompile everything
43
44 Example commands to make sure everything gets cleaned and then
45 rebult in proper order:
46
47 cd /path/to/pwlib
48 ./configure
49 make clean opt
50 cd /path/to/openh323
51 ./configure
52 make clean opt 
53 cd /path/to/asterisk/channels/h323
54 make  
55 cd /path/to/asterisk
56 make install 
57
58 (Note: Open H.323 or PWLib never get a 'make install' so don't do it)
59  
60
61 Most common run-time error
62
63 libpt_linux_x86_r.so.1: cannot open shared object file: No such 
64 file or directory
65
66 You have not set the LD_LIBRARY_PATH environment variable.
67
68 Example environment for sh/bash:
69
70 PWLIBDIR=$HOME/pwlib
71 export PWLIBDIR
72 OPENH323DIR=$HOME/openh323
73 export OPENH323DIR
74 LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib
75 export LD_LIBRARY_PATH
76
77 We recomend puting the above directives into your /etc/profile so 
78 you do not have to remember to export those values every time you 
79 want to recompile.
80
81
82 Upgrading Asterisk
83
84 After you cvs update (or make update) Asterisk you have to go into
85 asterisk/channels/h323 and issue a make clean all, before compiling the
86 rest of asterisk. Doing this process every time you upgrade Asterisk
87 will ensure a sane build.
88
89
90 Dialing an H.323 channel
91
92 Note: At the present time chan_H323 does not support dialing with a type=peer.
93
94 Without a  gatekeeper:
95
96 exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}@ip.address.or.hostname/callerid
97
98 Using Gatekeeper:
99
100 exten => _1NXXNXXXXXX,1,Dial,H323/${EXTEN}
101
102 The 'callerid' is optional. If omitted the callerid will be determined by
103 any type=h323 stanzas in h323.conf
104
105
106 Developer Contact
107
108 If you are still having trouble contact 'JerJer' in #Asterisk on 
109 irc.freenode.net or send reasonable debug information to support@nufone.net.
110
111 If you happen to be lucky enough to segfault this code please run a 
112 backtrace and send me the gory details. Segmentation faults are not
113 tolerated, no matter what Distro you run!
114
115 bt example:
116
117 # /usr/sbin/asterisk -vvvgc
118 ...
119 [chan_h323.so]
120 Segmentation Fault (core dumped)
121
122 # ls core.*
123 core.1976
124
125 # gdb /usr/sbin/asterisk core.1976
126 ...lots of useless garbage here..
127 (gdb) bt
128
129 Send whatever shows up right after the 'bt'
130
131 Also, a full debug screen output is almost needed. Make sure you are 
132 in the full console mode (-c) and turn on 'h.323 debug' or worst case
133 senerio 'h.323 trace 4'. 
134
135 If you are motivated to make debug show up on a remote (-r) console, 
136 please submit a patch to the Asterisk bug tracker: http://bugs.digium.com/
137
138 A nice way to capture debug is with script (man script) 
139
140 Jeremy McNamara
141 The NuFone Network