Page suivante
Page précédente
Table des matières
OpenH323 Gatekeeper - The GNU Gatekeeper
est un projet open-source qui implémente un gatekeeper H.323.
Un gatekeeper fournit des services de contrôle d'appel pour les terminaux H.323.
Il s'agit une partie essentielle de la plupart des installations de téléphonie
sur internet qui sont basées sur la norme H.323.
Selon la recommandation H.323, un gatekeeper doit fournir les services suivants:
- Traduction d'Adresse
- Contrôle d'Admissions
- Contrôle de Bande Passante
- Gestion de Zone
- Call Control Signaling
- Autorisation d'Appel
- Gestion de Bande Passante
- Gestion des Appels
Le GNU Gatekeeper implémente la plupart des fonctions basées sur
la pile du procole
OpenH323
La recommandation H.323 est une norme internationale publiée par l'
ITU.
Il s'agit d'une norme de communication pour l'audio, vidéo et données sur Internet.
Voir aussi
l'introduction à la série de normes H.323.
de Paul Jones.
Pour une description de ce que fait un gatekeeper, voir
ici.
Il est couvert par la
GNU General Public License (GNU GPL).
En supplément de celle-ci, nous autorisons explicitement de lier ce code
à la librairie OpenH323 et OpenSSL.
D'une manière générale, la GNU GPL vous autorise à copier,
distribuer, revendre ou modifier les logiciels, mais elle requière que toutes
les créations dérivées soient aussi publiées sous GNU GPL.
Ceci signifie que vous devez publier tout le code source de toutes les extensions
à gatekeeper et de tous les programmes qui incluent gatekeeper.
Voir le fichier COPYING pour les détails.
Si ce n'est pas ce que vous voulez, vous devez vous interfacer au gatekeeper au
travers du port d'état et communiquer par TCP avec lui.
De cette façon vous devez seulement intégrer les fonctions de base dans le
gatekeeper (et en fournir les sources) et conserver les autres parties privées
de votre application.
Le nom exact de ce projet est
OpenH323 Gatekeeper - The GNU Gatekeeper,
en résumé GnuGk.
Merci de ne pas le confondre avec d'autres projets de gatekeeper.
Il y a plusieurs projets gatekeeper open-source basés sur la pile de protocole OpenH323.
Avoir différents gatekeepers avec des noms similaires embrouille vraiment
la plupart des utilisateurs.
Comme notre "OpenH323 Gatekeeper" était le premier sur scène,
ce n'est pas notre faute si d'autres ont choisi des noms similaires.
Mais pour rendre la distinction plus évidente sans embrouiller encore plus
les gens, nous avons décidé de donner un sous-titre au projet
"OpenH323 Gatekeeper - The GNU Gatekeeper" et commencé à
utiliser gnugk
comme nom pour les exécutables.
La version 2.2.2 contient les caractéristiques et corrections suivantes:
- New FileIPAuth module in the contrib/ipauth directory.
- Call accounting updates/call disconnect handling is now more robust
and does not lock the whole call table and (effectively) the gatekeeper
for long time periods.
- Do not support mutiple rewrite targets, as this feature does not work well
if rewrite is performed more than once.
- The gatekeeper could crash if the connection was closed before
the welcome message has been sent to the client.
- Different Username was reported during Setup auth
and acct step, if no sourceAddress has been present for an unregistered call.
- More missing config reload locks added to allow seamless config reload.
- La valeur par défaut de la variable de configuration
ForwardOnFacility
a été changée à 0
.
- Possibilité d'encoder tous les mots de passe dans la configuration. Nouvelle variable de
configuration
EncrypAllPasswords
, utilisation étendue de la variable de configuration KeyFilled
.
- La possibilité de lire les paramètres de configuration depuis une base SQL
a été portée depuis la branche 2.0.
Lire
[SQLConfig] pour de plus amples informations.
- Framed-IP-Address ne pouvait pas être déterminé pour les appels non
enregistrés sans champ, Setup-UUIE.sourceCallSignalAddress, ce qui fait
échouer l'authentification.
- Fournit une gestion adéquate des alias du type partyNumber
(e164Number ou privateNumber).
- Une correction pour RTP/Q931/H245/T120PortRange pour corriger une anomalie avec
le bouclage du domaine des ports si le dernier port est 65535. Ceci amenait le
port suivant à être mis à 0 et les allocation ultérieures de
port échouaient.
- L'allocation dynamique de ports RTP ne marchait pas, utilise un domaine de ports
figé 1024-65535 comme valeur par dé pour la variable de configuration
RTPPortRange
.
- Les modules auth obsolètes MySQLAliasAuth et MySQLPasswordAuth sont supprimés.
- Les modules SQL acceptent un seul serveur de base de données dans le paramètre
Host
.
La version 2.2.1 contient les caractéristiques et corrections suivantes:
- Amélioration de la correspondance des préfixes pour les politiques de routage.
Un point (
.
) correspond à n'importe quel chiffre.
- Amélioration de la correspondance des voisins.
Un point (
.
) correspond à n'importe quel chiffre.
!
au début désactive le préfixe.
- Un verrou manquant pendant le rechargement de la configuration faisait crasher le gatekeeper.
- Sélection plus fiable de numéro de port pour les plages de port de
Q.931, H.245, T.120 et RTP (avant, un rechargement de la configuration pouvait
cause des erreurs pour beaucoup d'appels à, cause de l'impossibilité
d'allouer une nouvelle socket).
- La valeur par défaut de RTPPortRange est maintenant de laisser l'OS
sélectionner un numéro de port.
- Règles de réécriture plus flexibles (global et par passerelle)
avec les nouveaux caractères wildcard '.' et '%'.
- Amélioration de la correspondance des préfixes pour les passerelles.
Un point (
.
) correspond à n'importe quel chiffre.
!
au début désactive le préfixe.
- Insère le Calling-Party-Number-IE/Display-IE manquant si les otpions
correspondantes
Screen...
sont activées.
- Arrête le gatekeeper si il y a des erreurs dans la configurationd es
modules SQL aut/acct
- Le type de numéro Called-Station-Id peut être sélectionné
entre le numéro original (numéro composé) et le numéro
réécrit. Nouvelle option de configurgation
UseDialedNumber
pour les
modules
RadAuth/
RadAliasAuth
/
RadAcct, nouvelle variable %{Dialed-Number} pour les modules
SQLAcct et
FileAcct.
- Possibilité de modifier les formats d'horodate. Nouvelle variable de configuration
TimestampFormat
pour les parties main,
[SqlAcct],
[RadAcct],
[FileAcct]
et
[CallTable].
- Les modules RadAuth/RadAliasAuth peuvent maintenant ajouter/supprimer des
alias de terminaux pendant l'enregistrement de terminaux (en utilisant
h323-ivr-in=terminal-alias: Cisco AV-Pair).
- Nouvelle option
TcpKeepAlive
pour régler le problème avec les
erreurs réseau et les appels bloqués dans la table d'appel. Voir
docs/keepalive.txt pour de plus amples informations.
- Nouvelle commande du port d'état
RouteToGateway
.
La version 2.2.0 contient les caractéristiques et corrections suivantes:
- Nouvelle option de configuration
RoundRobinGateways
.
- Limites de capacité d'appel et routage des priorités pour les passerelles.
Nouvelles sections de configuration
EP::
pour des paramètres de configuration
par terminal (voir
Per-Endpoint Configuration Settings).
- RTP proxy handling moved to a separate RTP proxy threads, so processing
of signaling messages does not block RTP packets. New
RtpHandlerNumber
config option.
- REUSE_ADDRESS option enabled on listening sockets in non-LARGE_FDSET mode
to fix a bug with the gatekeeper being unable to open listening ports after
restart.
- Ability to set call destination in auth modules. RADIUS based call routing.
- Support for SqlBill tariff table import from an OpenOffice.org Calc spreadsheet.
- Fixed sourceInfo LRQ field handling - now it contains an H.323 identifier
of the gatekeeper. Nonstandard data and gatekeeperIdentifier fields are set
only when the neighbor is defined as GnuGk.
- Ability to set shared secrets for each radius server separatelly.
- New, much faster, Radius client implementation.
- Called-Party-Number-IE rewrite occured too late, causing auth/acct modules
to receive the original number instead of the rewritten one.
- Fixed proxying of RTP packets, so RTP sockets are not closed on temporary
errors (like remote socket not yet ready). This bug affected especially
NAT traversal and situation, when audio was sent very early, when reverse
proxy path has not been yet established.
- Fixed handling of RRJ from an alternate GnuGk.
- New direct SQL accounting module (
[SQLAcct]).
- Handling multiple reply messages (RIP/LCF/LRJ) from neighbors fixed.
- Support for CallCreditServiceControl in RCF and ACF messages, which allows
reporting call duration limit and user's account balance to endpoints.
Currently RadAuth and RadAliasAuth modules support this feature.
- Log file rotation, new
LogFile
config section, new setlog
and rotatelog
status interface commands.
- Do not include an invalid access token (with null object identifier)
in LCF to prevent interoperability problems.
- Better handling of multiple calls over a single signalling channel
by setting multipleCalls and maintainConnection H.225.0 fields to FALSE
in all messages passing through the gatekeeper.
- Better User-Name, Calling-Station-Id and Called-Station-Id handling.
- IncludeEndpointIP flag for RadAuth, RadAliasAuth and RadAcct is obsolete,
these modules will always send Framed-IP-Address.
- New Gatekeeper::Auth flag SetupUnreg to toggle Q.931 Setup authentication
for unregistered endpoints only.
- New RADIUS h323-ivr-out=h323-call-id parameter that contains
an H.323 Call Identifier.
- The SQL billing from the contrib section can now authenticate users only
by their IP (ignoring User-Name) and has a new, more flexible tariff/rating
engine.
- RadAliasAuth can authenticate now Setup messages without sourceAddress
field present (it will use Calling-Party-Number instead).
- Better signal handling to prevent accidental gatekeeper crashes
(due to SIGPIPE, for example).
- CDR rotation per number of lines works correctly.
Of course, the major functions in version 2.0 are also included:
- The registration table and call record table are redesigned, thread-safe,
and very efficient. Support ten thousands of registrations and thousands of
concurrent calls.
- A new routed mode architecture that support H.225.0/Q.931 routed and
H.245 routed without forking additional threads. Thus the thread number
limit will not restrict the number of concurrent calls.
- Support H.323 proxy by routing all logical channels, including RTP/RTCP
media channels and T.120 data channels. Logical channels opened by H.245
tunnelling and fast-connect procedure are also supported. In proxy mode,
there is no traffic between the calling and called parties directly. Thus
it is very useful if you have some endpoints using private IP behind an
NAT box and some endpoints using public IP outside the box.
- Support gatekeepers cluster by exchanging LRQ/LCF/LRJ (neighboring function).
If the destination of a received LRQ is unknown, the GnuGk can forward it
to next hop. Therefore the GnuGk can work as a directory gatekeeper.
- Support various authentication methods for selectable RAS requests, including
H.235 password (MD5, SHA-1 and CAT), IP pattern and prefixes matching. MySQL and
LDAP are supported as backend database for authentication.
- Support alternate gatekeepers for redundancy and load balancing. If the
GnuGk is overloaded, the endpoints can be redirected to other gatekeepers.
- Can work as an endpoint (gateway or terminal) by resigtering with a parent
gatekeeper. With this feature, building gatekeeper hierarchies is easily.
- Monitor and control the GnuGk via TCP status port, including registration
and call statistics.
- Output CDR(call detail record) to status port for backend billing system.
The CDR contains call identifier, calling and called IP, start and end time
and call duration.
- Most configurations are changeable at runtime. The GnuGk rereads the
configurations on receiving
reload
command via status port, or on
receiving HUP
signal (Unix platform).
La dernière version stable et une version de développement sont disponibles sur
la page de téléchargement.
La toute dernière version du code source est sous CVS sur
Sourceforge
(
Web-GUI).
Attention - il s'agit de la pointe de la technologie.
Vous pouvez aussi télécharger certains exécutables depuis
la page de téléchargement.
Il y a deux listes de diffusion pour le projet, une pour les développeurs et une pour les utilisateurs.
Les questions d'ordre général doivent être envoyées à la
liste de diffusion des utilisateurs.
Vous pouvez trouver les archives de la liste
ici.
Pour vous joindre à cette liste de diffusion, cliquez
ici.
Pour signaler des problèmes ou des anomalies/patches, envoyer des mails à la
liste de diffusion des développeurs.
Les archives de la liste sont
ici.
Veuillez envoyer les questions utilisateur à la liste de diffusion des utilisateurs et garder cette liste pour le développement! Si vous voulez contribuer au projet, veuillez
rejoindre la liste de diffusion.
Note:
Merci de ne pas envoyer vos questions par des mails privés aux développeurs.
Nous sommes habituellement occupés. Nous ne voulons pas être votre
consultant personnel, à moins que vous souhaitiez nous payer.
Envoyez vos problèmes à la liste de diffusion appropriée de telle
sorte que tout le monde puisse vous aider.
Merci aussi de ne pas envoyer les problèmes spécifiques de GnuGk à
la liste de diffusion OpenH323, ou vice versa.
Il s'agit de projet distincts, bien que très apparentés.
Avant d'envoyer un mail, assurez-vous d'avoir lu les documents associés
méticuleusement. Décrivez votre problème clairement et avec précision.
Montrez nous les messages d'erreur ou les logs si il y en a.
Le coordinateur actuel du projet est
Jan Willamowius
<jan@willamowius.de>
Les principales caractéristiques et fonctions de la version 2.0 ont été
contribuées par
Chih-Wei Huang
<cwhuang@linux.org.tw>
et
Citron Network Inc.,
incluant l'enregistrement et les tables d'appel thread safe,
une nouvelle architecture de mode routé, proxy H.323,
authentification H.235 et MySQL backend.
Michal Zygmuntowicz
<m.zygmuntowicz@onet.pl>
a fait du bon travail sur le support de Radius et d'autres améliorations.
La version initiale de gatekeeper a été développée par
Xiang Ping Chen, Joe Metzger et Rajat Todi.
Page suivante
Page précédente
Table des matières