HowTo: H.323 Unterstützung für Asterisk

laureen

Mitglied
Mitglied seit
17 Okt 2004
Beiträge
369
Punkte für Reaktionen
0
Punkte
0
Eines vorweg: dieses HowTo installiert H.323 Unterstützung mittels 2 alternativer Channel-Treiber, d.h. dass Asterisk danach fähig ist H.323 Calls entgegenzunehmen und aufzubauen, eine Gatekeeper Funktion ist damit meines Wissens nach nicht möglich, da braucht Ihr eine eigene Software (z.B. GnuGK)!

Ich habe die Erfahrung gemacht, dass man den chan_oh323.so besser konfigurieren kann (z.B. UDP-Ports festlegen).

Versionen:

Betriebssysteme: Fedora Core 2, RedHat Enterprise Server 3.0
WICHTIG: alle Updates einspielen
Code:
up2date -u
pwlib: 1.5.2
openh323: 1.12.2
asterisk: 1.01 stable (gibts hier oder hier)
asterisk-oh323: 0.6.3b

1. Zuerst mal alles was wir installieren und eventuell schon vorhanden ist, sauber deinstallieren:

Code:
rpm -e gnomemeeting 
rpm -e openh323-devel 
rpm -e openh323 
rpm -e pwlib-devel 
rpm -e pwlib

2. die Dateien "pwlib_1.5.2.tar.gz" und "openh323_1.12.2.tar.gz" ins /usr/src entpacken (sodaß die directories "/usr/src/pwlib" und "/usr/src/openh323" entstehen)

3. pwlib kompilieren (dauert einige Minuten):

Code:
cd /usr/src/pwlib 
./configure --prefix=/usr 
make opt 
make install

4. openh323 kompilieren (dauert einige Minuten):

Code:
unset PWLIBDIR
unset OPENH323DIR
cd /usr/src/openh323 
./configure --prefix=/usr 
make opt 
make install

5. alle Dateien aus /usr/include/openh323 nach /usr/include kopieren:

Code:
cp /usr/include/openh323/* /usr/include

6. im Asterisk Source Verzeichnis den chan_h323 kompilieren:

Code:
export OPENH323DIR=/usr
export PWLIBDIR=/usr
cd /usr/src/asterisk/channels/h323 
make
make samples
cd /usr/src/asterisk 
make install

7. /etc/asterisk/h323.conf anpassen

8. asterisk neu starten

... und weil mir schon mal so weit sind, machen wir gleich mit dem chan_oh323 weiter

9. asterisk-oh323-0.6.3b.tar.gz ins Verzeichnis /usr/src entpacken

10. Channeltreiber kompilieren:

Code:
export OPENH323DIR=/usr
export PWLIBDIR=/usr
cd /usr/src/asterisk-oh-0.6.3b/wrapper

in der Datei "asteriskaudio.hxx" die Variable "PAsteriskSoundChannel" definieren, dazu folgende Zeile nach Zeile 109 ("unsigned readBufIndex, readBufSize;") einfügen:

Code:
PAsteriskSoundChannel* baseChannel;

Code:
cd /usr/src/asterisk-oh-0.6.3b

in der Datei "Makefile" folgende Variablen richtig setzen:

Code:
PWLIBDIR=/usr/src/pwlib
OPENH323DIR=/usr/src/openh323
ASTERISKINCDIR=/usr/src/asterisk/include
ASTERISKMODDIR=/usr/lib/asterisk/modules
ASTERISKETCDIR=/etc/asterisk
OH323WRAPLIBDIR=/usr/lib
SSLINCDIR=/usr/include/openssl

jetzt wird aber wirklich kompiliert:

Code:
make
make install

11. /etc/asterisk/oh323.conf anpassen

12. es darf aber nur ein H.323 Channeltreiber geladen werden:

13. in der Datei /etc/asterisk/modules.conf folgendes eingeben, um z.B. den chan_h323 nicht zu laden:

Code:
noload => chan_h323.so

14. Dailplan bearbeiten:

typischer Dial-Eintrag, wenn man chan_oh323.so verwendet:
Code:
exten => 1,1,Dial(OH323/<extension>@<peer-ip>)
typischer Dial-Eintrag, wenn man chan_h323.so verwendet:
Code:
exten => 1,1,Dial(H323/<extension>@<peer-ip>)
--- FERTIG ---
 

Anhänge

  • asterisk-oh323-0.6.3b.tar.gz
    80.2 KB · Aufrufe: 43
  • openh323_1.12.2.tar.gz
    2.2 MB · Aufrufe: 36
  • pwlib_1.5.2.tar.gz
    1 MB · Aufrufe: 40
Ja, vielen Dank für die Anleitung, die ist echt super... :) :)

Ich versuche mich seit einiger Zeit damit, das H.323-Phone von Siemens (HiNet LP 5100) an mein * anzuschließen.
Ich habe nun Deine Anleitung durchgemacht, und ich kann jetzt das LP anrufen. Es gibt zwar noch Knackser bei der Verbindung, aber vielleicht muss ich da noch ein bisschen mit den Codecs spielen?!

Aber das wirkliche Problem ist das Wählen: Ich kann von meinem LP niemanden anrufen.
Wenn ich dort wähle, erhalte ich auf der *-console keine Meldung dass er irgendwas empfängt (trotz schon -vvv beim Aufruf von *)...
Woran kann das liegen?
Hat da bitte jemand eine Ahnung von? Ich verzweifle hier langsam :(

Hier ist meine oh323.conf:

Code:
;
; Configuration file of OpenH323 channel driver
;

;-----------------------------------------
; General configuration options
; (ports, jitter, GK, ...)
;-----------------------------------------
[general]
;
; Address to bind to for incoming connections.
; Default is ALL.
;
;listenAddress=0.0.0.0
listenAddress=ALL
;
; Port to listen to.
; Default value is 1720.
;
listenPort=1720
;
; Port to connect to.
; (Used only when we don't have a gatekeeper)
; Default value is 1720.
;
connectPort=1720
;
; Configure TCP port range to be used by H.323
;
tcpStart=10000
tcpEnd=20000
;
; Configure UDP port range to be used by H.323
; Note: The port range used by RTP are configured from
;       "rtp.conf"
;
udpStart=10000
udpEnd=20000
;
; Enable fast start (yes,no).
;
fastStart=no
;
; Enable H.245 tunnelling (yes,no).
;
h245Tunnelling=no
;
; Enable early H.245 messages in call SETUP message.
;
h245inSetup=no
;
; Enable in-band-DTMF detection. 
; (Note: Netmeeting uses in-band DTMFs)
;
inBandDTMF=yes
;
; Enable silence suppression.
;
silenceSuppression=no
;
; Set jitter buffer (in milliseconds, 20...10000).
;
jitterMin=20
jitterMax=100
;
; Set IP Type-of-Service byte for RTP channels.
; Valid values for this option are:
;   lowdelay, throughput, reliability, mincost, none
;
ipTos=none
;
; Set the maximum number of inbound/outbound/simultaneous
; H.323 connections.
;
outboundMax=10
inboundMax=10
simultaneousMax=10
;
; Set the bandwidth limit for H.323 connections.
; The value is in Kbps.
;
;bandwidthLimit=1024
;
; Set tracing options for the wrapper library and for the
; OpenH323 library.
; libTraceFile can be 'stdout' or a full path name to the tracefile.
; Only trace info for OpenH323 is logged in libTraceFile.
;
wrapLibTraceLevel=1
libTraceLevel=0
libTraceFile=stdout
;
; Disable gatekeeper or specify a gatekeeper.
; Valid values for this option are:
;   DISABLE,
;   DISCOVER,
;   <gatekeeper's DNS name>,
;   <gatekeeper's ip>,
;   GKID:<gatekeeper's id>
;
;gatekeeper=192.168.1.2
;gatekeeper=DISCOVER
gatekeeper DISABLE
;
; Set the gatekeeper password
;
;gatekeeperPassword=secret
;
; Set the gatekeeper registration timeout
;
gatekeeperTTL=600
;
; Set the mode for sending user-input
; Valid values for this option are:
;   Q931        -   Q.931 Keypad Information Element
;   STRING      -   H.245 string
;   TONE        -   H.245 tone
;   RFC2833     -   RFC2833
;
userInputMode=TONE
;
; AMA flags (default, omit, billing, documentation)
;
amaFlags=default
;
; Account code
;
accountCode=H323
;
; Set the default context of H.323 calls.
;
context=H323

;-----------------------------------------
; Configure H.323 aliases, prefixes and
; related ASTERISK's contexts
;-----------------------------------------
[register]
;
; Aliases/prefixes associated with the default context
; defined in section [general].
;
;alias=asterisk
;alias=123
;
; Aliases/prefixes routed in "all-aliases" context.
;
;context=all-aliases
;alias=ASTERISK
;alias=666
;
; Aliases/prefixes routed in "more-aliases" context.
;
;context=more-aliases
;alias=665
;
; Aliases/prefixes routed in "all-prefixes" context.
;
;context=all-prefixes
;gwprefix=00
;gwprefix=01
;
; Aliases/prefixes routed in "more-stuff" context.
;
;context=more-stuff
;alias=664
;gwprefix=02

;-----------------------------------------
; Specify and configure CODEC related
; options
;-----------------------------------------
[codecs]
;
; Define the codec list of the channel driver.
; Every "codec" option may have a "frames" option
; associated with it.
; Valid values for the "codec" option are:
;   G711U       -   G.711 u-Law
;   G711A       -   G.711 A-Law
;   G7231       -   G.723.1(6.3k)
;   G72316K3    -   G.723.1(6.3k)
;   G72315K3    -   G.723.1(5.3k)
;   G7231A6K3   -   G.723.1A(6.3k)
;   G7231A6K3   -   G.723.1A(6.3k)
;   G726        -   G.726(32k)
;   G72616K     -   G.726(16k)
;   G72624K     -   G.726(24k)
;   G72632K     -   G.726(32k)
;   G72640K     -   G.726(40k)
;   G728        -   G.728
;   G729        -   G.729
;   G729A       -   G.729A
;   G729B       -   G.729B
;   G729AB      -   G.729AB
;   GSM0610     -   GSM 0610
;   MSGSM       -   Microsoft GSM Audio Capability
;   LPC10       -   LPC-10
; Number of frames in RTP packet (if not specified) is 1.
;   
codec=G711A
frames=20
;codec=G711U
;frames=20
;codec=GSM0610
;frames=4
;codec=G7231
;frames=2
;codec=G729
;frames=2

Die h323.conf wird doch nach Deinem Tutorial ignoriert oder?

Ich hoffe jemand von Euch kann mir helfen :)

Liebe Grüße,

Christian
 
Wo ist der Unterschied zwischen "oh323" und "h323"?
Und wird bei verwendung von "oh323" NUR die "oh323.conf" von Asterisk verwendet oder AUCH die "h323.conf"?


Ansonsten, habe ich es so gemacht aber der Asterisk lauscht nicht auf Port "1720". :( Ideen?

Das lauschen getestet mit:
netstat -anp | grep 1720

Kein Ergebnis...
 
Gibt's hier was neues zu ?
Sehe ich das richtig, dass jetzt die Objective implementation ooh323c teil des asterisk ist... wie konfiguriere ich diese. Nur in der ooh323c.conf ? Gehen auch clients oder nur trunking ?

/T.
 
targa schrieb:
Gibt's hier was neues zu ?
Sehe ich das richtig, dass jetzt die Objective implementation ooh323c teil des asterisk ist... wie konfiguriere ich diese. Nur in der ooh323c.conf ? Gehen auch clients oder nur trunking ?

/T.

joar, also Stand der Dinge bei mir ist dass es dich ooh323.conf nur bei der Trixbox gegeben hat. Diese ist very buggie und aus diesem Grund bin ich zur original Asterisk gewechselt (subversion checkout).
Da habe ich h323 installiert und eine h323.conf welche wunderbar ohne jegliche Probleme funktioniert. :)

Wie man diese konfiguriert dazu gibt es massig tutorials bzw. ist auch teilweise selbst erklärend, anhand der comments in der config.

" Gehen auch clients oder nur trunking ?"

Wie meinen?
 
Ich hab's ans Rennen bekommen. man musste nicht nur in der CLI ein reload geben, sondern das amportal restarten.
Kann diese ooh323c implemenation auch clients bedienen (gatekeeping funktion) oder nur trunking.

Ich hab zwar massig Webpages gefunden, aber nichts wirklich überschaubares.
/T.
 
targa schrieb:
Kann diese ooh323c implemenation auch clients bedienen (gatekeeping funktion) oder nur trunking.

Was verstehst du unter "clients bedienen"? Der Asterisk läuft bei mir als Server, welcher per Gateway h323 mit einer anderen Telefonanlage kommunziziert.
Meine Clients (soft- sowie hardware) kommunzizieren über h323 mit dem Server.
Was willst du genau umsetzen?
 
pwlib compile error mit fedora 5

hallo,

hat jemand ne idee was das sein könnte ?

../../ptclib/asner.cxx: In member function 'PString PASN_Choice::GetTagName() const':
../../ptclib/asner.cxx:2112: error: 'psprintf' was not declared in this scope
make[1]: *** [/usr/src/pwlib/lib/obj_linux_x86_r/asner.o] Error 1
make[1]: Leaving directory `/usr/src/pwlib/src/ptlib/unix'
make: *** [opt] Error 2
 
datensurfer schrieb:
Was verstehst du unter "clients bedienen"? Der Asterisk läuft bei mir als Server, welcher per Gateway h323 mit einer anderen Telefonanlage kommunziziert.
Meine Clients (soft- sowie hardware) kommunzizieren über h323 mit dem Server.
Was willst du genau umsetzen?
genau das, was Du beschreibst.
am besten SIP clients mit einem ooh323 uplink trunk.
/T.
 
Ist das "asterisk-oh323"-Projekt tot (Last update: 2005/09/20)?

Wer verwendet noch die "asterisk-oh323" bzw. "openh323 (Last update: June 12, 2006)"?
 
Mal eine Frage an laureen (verbunden mit dem Dank für die Anleitung): Wie siehst Du die derzeitige und zukünftige Bedeutung von H.323 in Bezug auf SIP?

Grüsse
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.