http://www.zeropage.de
zeropage is © by the L13-Crew, all part of TUI-NET

H.323

H-series are audiovisual and multimedial systems standards definded by the ITU-T.
H.323: Packet-based multimedia communications systems

frontends

Linux: gnomemeeting
Windows: netmeeting

requirements

Hardware:
- ne Box mit Netzwerkanschluss (LAN, WAN, ...)
- Microphon, falls man sich Gehör verschaffen möchte
- Lautsprecher, falls man ein offenes Ohr hat
- WebCam o.ä., falls man nicht allzu viel Wert auf Privatsphäre legt

Software:
- input-source waehlen! (alsa: amixer sset $SOURCE capture)
- aRts ausmachen fuer gnomemeeting
- bei NAT/Masquerading Kernel-Modul erforderlich (siehe patch-o-matic), sowie anschliessende Config (siehe iptables)

patch-o-matic

Für das H.323-connection-tracking-Modul ist patch-o-matic noetig, da es im offiziellen vanilla-Kernel von kernel.org (noch?) nicht dabei ist (Stand: Kernel 2.6.3). Es müssen zwei weitere Kernelmodule geladen werden - "ip_conntrack_h323" und "ip_nat_h323".

base URL:
http://www.netfilter.org/patch-o-matic
download: http://www.netfilter.org/downloads.html

Das Packet enthält vielerlei Patches, man muss nach Ausführen des "runme" binary für diesen Fall nur die Frage nach "h323-conntrack-nat" mit "y" beantworten. Alle anderen Patches sollen hier keine Rolle spielen.
The extra/h323-conntrack-nat patch:
   Author: Jozsef Kadlecsik 
   Status: Alpha

   This adds CONFIG_IP_NF_H323: H.323/netmeeting support module for netfilter
   connection tracking and NAT. H.323 uses/relies on the following data streams:

   Port         Description
   389          Internet Locator Server (TCP)
   522          User Location Server (TCP)
   1503         T.120 Protocol (TCP)
   1720         H.323 (H.225 call setup, TCP)
   1731         Audio call control (TCP)
   Dynamic      H.245 call control (TCP)
   Dynamic      RTCP/RTP streaming (UDP)

   The H.323 conntrack/NAT modules support the connection tracking/NATing of
   the data streams requested on the dynamic ports. The helpers use the
   search/replace hack from the ip_masq_h323.c module for the 2.2 kernel
   series.

   At the very minimum, H.323/netmeeting (video/audio) is functional by letting
   trough the 1720 port and loading these H.323 module(s).

   The H.323 conntrack/NAT modules do not support

   - H.245 tunnelling
   - H.225 RAS (gatekeepers)
Nachdem man so den eigenen Kernel erweitert hat, führt man die Kernelkonfiguration aus ([$kernelsource]: make menuconfig) und wählt unter: "Networking Options -> IP: Netfilter Configuration -> H.323 (netmeeting) support" modular aus.
Wenn man die Module nun kompiliert hat ([$kernelsource]: make dep modules modules_install) kann man die Module mittels modprobe laden.

iptables

Beispielscript (dabei sollte natürlich beachtet werden, dass die jeweiligen Ports nicht an anderer Stelle geschlossen wurden):
#!/bin/sh

###
# set variables
IPT=/sbin/iptables
EXTIF=ppp0
INTIF=eth0
# destination (H.323-Client-Box)
DEST=192.168.1.111

###
# load modules
insmod ip_conntrack_h323
insmod ip_nat_h323

###
# rules
$IPT -t nat -I PREROUTING 1 -i $EXTIF -p tcp --dport 1720 -j DNAT --to-dest $DEST:1720
$IPT -t nat -I PREROUTING 1 -i $EXTIF -p tcp --dport 30000:30010 -j DNAT --to-dest $DEST:30000-30010
$IPT -t nat -I PREROUTING 1 -i $EXTIF -p udp --dport 5000:5003 -j DNAT --to-dest $DEST:5000-5003

$IPT -I FORWARD 1 -p tcp -i $EXTIF --dport 1720 -d $DEST -j ACCEPT
$IPT -I FORWARD 1 -p tcp -i $EXTIF --dport 30000:30010 -d $DEST -j ACCEPT
$IPT -I FORWARD 1 -p udp -i $EXTIF --dport 5000:5003 -d $DEST -j ACCEPT
$IPT -I FORWARD 1 -i $EXTIF -d $DEST -p udp --sport 5001 -j ACCEPT

$IPT -I FORWARD -s $DEST -p tcp --dport 1503 -j ACCEPT
#$IPT -I FORWARD -s $DEST -p tcp --dport 1556 -j ACCEPT
$IPT -I FORWARD -s $DEST -p tcp --dport 1720 -j ACCEPT
$IPT -I FORWARD -s $DEST -p tcp --dport 30000:30010 -j ACCEPT
$IPT -I FORWARD -s $DEST -p udp --dport 5000:5003 -j ACCEPT

###
# for using a Gatekeeper
# add port forwarding for external Gatekeeper
#$IPT -t nat -I PREROUTING 1 -i $EXTIF -p udp --dport 5010:5013 -j DNAT --to-dest $DEST:5010-5013
#$IPT -I FORWARD 1 -p udp -i $EXTIF --dport 5010:5013 -d $DEST -j ACCEPT
#$IPT -I POSTROUTING 1 -t nat -o $INTIF -d $DEST -p udp --dport 5010:5013 -j ACCEPT

links


special thanx to Martin Wilhelm & Richard Wilhelm of system4.net!


[TO-DO: gatekeeper, VoIP/SIP, RTP, RTCP, openH.323, P2P vs Mehrpunkt, Macromedia Flash Communication Server MX]