.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von laureen, 26 Okt. 2004.

  1. laureen

    laureen Mitglied

    Registriert seit:
    17 Okt. 2004
    Beiträge:
    369
    Zustimmungen:
    0
    Punkte für Erfolge:
    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:

  2. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Vielen Dank für die schöne Anleitung!
     
  3. CryoGenID

    CryoGenID Neuer User

    Registriert seit:
    19 Dez. 2004
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  4. datensurfer

    datensurfer Neuer User

    Registriert seit:
    23 Aug. 2006
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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...
     
  5. targa

    targa Mitglied

    Registriert seit:
    6 März 2005
    Beiträge:
    285
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    AC
    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.
     
  6. datensurfer

    datensurfer Neuer User

    Registriert seit:
    23 Aug. 2006
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  7. targa

    targa Mitglied

    Registriert seit:
    6 März 2005
    Beiträge:
    285
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    AC
    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.
     
  8. datensurfer

    datensurfer Neuer User

    Registriert seit:
    23 Aug. 2006
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  9. nirvana1000

    nirvana1000 Neuer User

    Registriert seit:
    26 Nov. 2004
    Beiträge:
    83
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  10. targa

    targa Mitglied

    Registriert seit:
    6 März 2005
    Beiträge:
    285
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    AC
    genau das, was Du beschreibst.
    am besten SIP clients mit einem ooh323 uplink trunk.
    /T.
     
  11. datensurfer

    datensurfer Neuer User

    Registriert seit:
    23 Aug. 2006
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  12. datensurfer

    datensurfer Neuer User

    Registriert seit:
    23 Aug. 2006
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ist das "asterisk-oh323"-Projekt tot (Last update: 2005/09/20)?

    Wer verwendet noch die "asterisk-oh323" bzw. "openh323 (Last update: June 12, 2006)"?
     
  13. spongebob

    spongebob Aktives Mitglied

    Registriert seit:
    22 Sep. 2004
    Beiträge:
    1,287
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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