V. ! Data Analysis and Discussion 75 !
5.1.4 Exhaust Silencer Performance Comparison 97 !
En este anexo se hace referencia a dos ejemplos de fichero de configuración para el GnuGk. En un primer caso se explica el fichero que inicialmente se tomó para comenzar a trabajar. En el segundo ejemplo se explican las secciones que se agregaron en el trabajo para el logro de otras potencialidades que inicialmente no estaban configuradas.
9 Primer caso.
[Gatekeeper::Main] ; Sección principal del fichero de configuración.
FourtyTwo=42 ; Esta configuración permite probar la existencia
del archivo de configuración (gatekeeper.ini o
cualquiera que sea su nombre) con el que va a trabajar el gatekeeper. Un mensaje de
advertencia se mostrará en caso de que no existiera dicho archivo.
Name=Gatekeeper ; Identificador del gatekeeper (ID). El gatekeeper
responderá solamente a los mensajes GRQs con este ID y utilizará éste en los mensajes enviados a sus endpoints.
EndpointSuffix=_gnugk ; El gatekeeper asignará un único identificador a
cada endpoint registrado. Esta opción puede ser
utilizada para especificar un sufijo que será añadido al identificador del endpoint.
TimeToLive=60 ; Tiempo en segundos que durará el registro del
terminal con el gatekeeper. Al término de este el gatekeeper puede extender el registro si el
StatusTraceLevel=2 ; Especifica el nivel de detalle de mensajes para
nuevas interfaces clientes.
UseBroadcastListener=0 ; Define si se escuchan o no las peticiones broadcast RAS.
StatusPort=7000 ; Indica que el puerto de estado se atiende por el
puerto 7000.
[GkStatus::Auth] ; En esta sección se definen un número de reglas
para determinar quienes están permitidos de conectarse al gatekeeper vía puerto de estado.
rule=explicit ; Restringe el acceso al puerto de estado
mediante el uso de direcciones IP.
127.0.0.1=allow ; Solo permite el acceso al puerto de estado desde
la dirección especificada.
default=forbid ; Si no aparece la dirección IP se utiliza esta
opción por defecto prohibiendo el acceso al puerto de estado.
Shutdown=allow ; Permite apagar el gatekeeper vía puerto de
estado.
[RoutedMode] ; Sección que permite configurar el modo de
enrutamiento para la señalización que empleará el gatekeeper.
GKRouted=1 ; Especifica si se enruta o no el canal de
H245Routed=0 ; Especifica si se enruta o no el canal de control
de llamada H.245 a través del gatekeeper. Solo
se puede activar si GKRouted=1.
CallSignalPort=1721 ; Puerto por defecto que se utilizará para la
señalización de llamada.
AcceptNeighborCalls=1 ; El hilo de señalización de llamada aceptará
llamadas sin un CallRec preexistente dentro del CallTable, de tal manera que un endpoint
correspondiente a una dirección de destino en un mensaje Setup pueda ser encontrado en la tabla
de registro, y el emisor de la llamada es su vecino o su GK padre.
AcceptUnregisteredCalls=0 ; Con esta característica habilitada, el gatekeeper
aceptará llamadas desde cualquier endpoint no
registrado.
RemoveH245AddressOnTunneling=1 ; Si la opción es 1, el gatekeeper removerá las
H.245Address dentro de los mensajes Q.931
cuando el indicador H.245Tunneling esté en 1.4
RemoveCallOnDRQ=0 ; Con esta opción deshabilitada, el gatekeeper no
desconectará una llamada si éste recibe un DRQ (Disengage ReQuest) para la misma. Esto evita
4
Algunos endpoints envían H.245Address dentro de los mensajes Q.931 aún cuando H.245Tunneling está establecida en 1. Esto podría causar problemas de interoperabilidad ya que
que un DRQ alcance un Release Complete. Esto
tiene sentido solamente en gatekeeper en Modo
Enrutado
DropCallsByReleaseComplete=1 ; Con esta opción establecida en 1 el gatekeeper
enviará mensajes Q.931 Release Complete en
lugar de mensajes RAS DRQ hacia ambos
endpoints para forzar a que ellos terminen la
llamada.
SendReleaseCompleteOnDRQ=0 Cuando se cuelga la llamada, el endpoint envía
tanto un Release Complete dentro de
H.225/Q.931 y un DRQ dentro de los mensajes RAS. Podría ocurrir que el DRQ sea procesado primero, ocasionando que el gatekeeper cierre el
canal de señalización de llamadas, previniendo así que el Release Complete sea enviado hacia el
otro endpoint. Con esta opción en 1 cuando el gatekeeper recibe un DRQ primero que un Release Complete, envía un mensaje de este
último tipo hacia ambos terminales.
SupportNATedEndpoints=1 ; Permite a un endpoint detrás de una caja NAT
registrarse con el gatekeeper.
TranslateFacility=1 ; Esta opción se habilita si se tienen problemas de
interoperabilidad entre endpoints compatibles
con H.323v4 y endpoints no compatibles con
[Proxy] ; Sección que define las características del
GnuGk como Proxy H.323. El gatekeeper
enrutará todo el tráfico entre el endpoint emisor y
receptor, de esta manera no existe tráfico directamente entre dos endpoints.
Enable=0 ; Habilita o no la función proxy del gatekeeper.
Para ello se tiene que cumplir que GKRouted=1
ProxyForNAT=1 ; Si se activa, el gatekeeper pasará por el proxy
aquellas llamadas en las cuales uno de los
endpoints participantes esta detrás de una caja
NAT.
ProxyForSameNAT=0 ; Define si se habilita el proxy para llamadas
entre endpoints desde la misma caja NAT.
[RasSrv::RRQFeatures] ; Sección que define las características de los
mensajes RRQ.
AcceptEndpointIdentifier=0 ; Los identificadores de los terminales son
asignados por el gatekeeper. Define si aceptar o
no el identificador de terminal especificado en un RRQ completo.
AcceptGatewayPrefixes=1 ; Un gateway puede registrar sus prefijos con el gatekeeper mediante los mensajes RRQ. Esta
opción define si se aceptan los prefijos específicos de un gateway.
mensajes ARQ.
CallUnregisteredEndpoints=1 Con esta opción habilitada, el gatekeeper
aceptará un ARQ de un endpoint registrado,
permitiéndole hacer llamadas de forma directa a una dirección específica, sin importar si la misma le corresponde a un endpoint registrado o no.
[CallTable]
GenerateNBCDR=0 ; Con esta opción habilitada (1), se muestran a
través del puerto de estado los CDRs de las llamadas del vecindario.
9 Segundo caso
Este es el fichero de configuración que está usando en estos momentos el GnuGk. Muchas de las secciones y parámetros que se muestran a continuación ya fueron abordadas en el caso anterior, por tal motivo estas no se comentan en esta ocasión.
[Gatekeeper::Main] Name=Gatekeeper fourtytwo=42 EndpointIDSuffix=_gnugk TimeToLive=300 StatusTraceLevel=2
UseMulticastListener=1 ; Se habilita esta opción si los terminales
usan direcciones Multicast para el
descubrimiento del gatekeeper.
UseBroadcastListener=0 StatusPort=7000 [GkStatus::Auth] explicit=allow 127.0.0.1=allow 10.12.24.241=allow 10.12.24.242=1 default=forbid Shutdown=allow
password=gkadmin ; Clave de acceso necesaria para entrar al
puerto de estado si se utiliza esta regla.
gkadmin=QC7VyAo5jEw= ; Password encriptado [RoutedMode]
GKRouted=1
H245Routed=0
CallSignalPort=1721
RemoveH245AddressOnTunneling=0 RemoveCallOnDRQ=0 DropCallsByReleaseComplete=1 SendReleaseCompleteOnDRQ=1 SupportNATedEndpoints=1 TranslateFacility=1
CallSignalHandlerNumber=2 ; Indica el número de hilos dedicados al
manejo de los canales de señalización/H.245. Se puede incrementar este número en un gatekeeper fuertemente
cargado AcceptNeighborsCalls=1 [Proxy] Enable=0 ProxyForNAT=0 ProxyForSameNAT=0
[RasSrv::RewriteE164] ; Sección para la reescritura de números
E.164
41...=... ; Todos los números que comiencen con
41XXX los transforma en XXX.
43XXX los transforma en XXX.
[RasSrv::RRQFeatures]
AcceptEndpointIdentifier=0
AcceptGatewayPrefixes=1
IRQPollCount=1 ; Da la posibilidad de que el gatekeeper
envíe un mensaje IRQ para conocer el estado del terminal cuando este no ha enviado un RRQ (keep-alive) en el período
de tiempo TTL. [RasSrv::ARQFeatures] CallUnregisteredEndpoints=1 [CallTable] GenerateNBCDR=1 GenerateUCCDR=1
[FileAcct] ; Esta sección se usa para escribir líneas
CDR en un archivo de texto específico.
DetailFile=/C:/Documents and Settings/yunielgl/desktop/gnugk-2.2.3-
win32-x86/bin/CDR.LOG
; Define la ruta para el fichero de texto plano CDR.
StandardCDRFormat=1 ; Utiliza un formato estándar para los CDR. Rotate=daily ; Define el período de rotación de los CDR. RotateTime=24:00 ; Indica la hora de la rotación.
[RasSrv::Neighbors] ; Sección para la configuración de vecinos. Gatekeeper1=10.12.24.244;42,45 ; Dirección IP del vecino y prefijos para los
cuales le tiene que enviar los LRQs.
[Neighbor::Gatekeeper1] ; Sección para la configuración de un
vecino.
GatekeeperIdentifier=Gatekeeper1 ; Identificador del gatekeeper vecino. Host=10.12.24.244 ; Dirección IP.
SendPrefixes=42,45 ; Prefijos que este vecino espera recibir
para los LRQ.
AccepPrefixes=41,43 ; Prefijos que el vecino aceptará de este gatekeeper.
ForwardLRQ=always ; Determina si el LRQ recibido deberá o no
ser reenviado.
[RasSrv::LRQFeatures] ; Esta sección define algunas características
de los eventos LRQ y LCF.
Neighbortimeout=10 ; Tiempo de espera en segundos para
esperar respuestas desde los vecinos.
ForwardHopCount=2 ; Si el gatekeeper determina que un LRQ
debe ser reenviado decrementa este campo y si el campo está en cero no lo reenvía.
AlwaysForwardLRQ=0 ; Fuerza al gatekeeper a reenviar los LRQ
incluso si el campo ForwardHopCount es
AcceptForwardedLRQ=1 ; Define si aceptar o no un LRQ reenviado
desde los vecinos.
ForwardResponse=0 ; Habilite esta condición si el gatekeeper
necesita recibir los LCF a los LRQs reenviados.
ForwardLRQ=depends ; Este campo determina si el LRQ recibido
debería o no ser reenviado.
[RasSrv::GWPrefixes] ;Indica al gatekeeper qué llamadas deben
ser enrutadas hacia un gateway
gw1=932 ;Indica que todas las llamadas que
comiencen con este prefijo, deben ser enviadas al gateway que se ha registrado