This is the Spanish manual for GNU Gatekeeper 2.2.5.
A more recent (English) manual is in your GnuGk download archive.

Capítulos: Índice · Introducción · Instalacion · Empezando · Configuración Básica · Enrutado · RAS Config · Autenticación · Accounting · Vecinos · Configuración Por-Terminal · Configuración Avanzada · Monitoreando

6. Configuración del Enrutado

Las siguientes secciones del Archivo de Configuración son utilizadas para configurar el enrutamiento de las llamadas.

6.1 Sección [RoutingPolicy]

Esta sección explica el funcionamiento de las diferentes políticas de enrutado del gatekeeper.

Las peticiones de llamada entrantes pueden ser encaminadas usando un número de proovedores de ruta:

  • explicit

    El destinatario se detalla de manera explícita en la petición de enrutado.

  • internal

    La regla clásica; buscar el destinatario en la tabla de registro (RegistrationTable).

  • parent

    Enruta la llamada utilizando información obtenida desde el GK padre en respuesta a un mensaje ARQ enviado por el gatekeeper.

  • neighbor

    Enruta la llamada usando vecinos a través de mensajes LRQ

  • dns

    El destino se obtiene del DNS, dado que es obtenible.

  • vqueue

    Usar el mecanismo de cola virtual y generar un evento RouteRequest para permitir manejar el enrutado a una aplicación externa (sólo puede ser usada con OnARQ o OnLRQ)

  • numberanalysis

    Provee soporte para el envío de dígito enmascarado (overlapped digit) para mensajes ARQ. Además soporta parcialmente mensajes Setup (no al envio de dígitos superpuestos - solamente validación de longitud de número).

  • enum

    ENUM (RFC3761) es un método para utilizar DNS lookup para convertir números reales IDD E164 en información de marcado H323. Los servidores por defecto son e164.voxgratia.net, e164.org y e164.arpa. Para especificar su propio servidor, tiene que detallar la variable de ambiente PWLIB_ENUM_PATH con la dirección de sus servidores ENUM preferidos separados por un punto u coma (;). (Desde la versión 1.8.0 de PWLib soporta la valiabre PWLIB_ENUM_PATH; La versión 1.7.5.2 (Pandora) no soporta ésto.)

    La política "enum" remplaza el destino con la información devuelta por el servidor ENUM, así que usted debe tener las políticas de ruteo apropiadas para dirigir finalmente la llamada después de la política "enum". Generalmente usted debe tener la política "dns" después de la política "enum" puesto que la nueva ubicación es devuelta en la forma 'number@gatekeeper' entonces se necesita la política "dns" para resolver ésto.

    Finalmente no olvide que cada chequeo de ruta con la política "enum" requiere un DNS lookup. Para agilizar su ruteo, asegúrese de resolver internamente antes de aplicar la política "enum".

  • srv

    DNS SRV o H.323 Anexo Q. permite el enrutado de llamadas utilizando el H.323 URI. La direcciones pueden establecerce como usuario (a) dominio. Las direcciones de señalización H.323 son almacenadas en los registros del dominio DNS. Estas direcciones pueden ser direcciones de señalización (signalling address) o direcciones LRQ (LRQ address).

La siguiente es la configuración por defecto para las políticas de enrutado (routing policies):

[RoutingPolicy]
default=explicit,internal,parent,neighbor

Si una política no se cumple, se tratará con la siguiente política.

Estas políticas pueden ser aplicadas a diversos tipos de peticiones de enrutado, y datos de entrada de enrutado. Éstos son los siguientes: ARQ, LRQ, Setup y Facility (con razón callForwarded) Existe también una política general de enrutado, que viene a ser la opción por defecto frente a los otros tipos.

Ejemplo:

[RoutingPolicy]
h323_ID=dns,internal
002=neighbor,internal
Default=internal,neighbor,parent

Cuando se recibe uno de los mensajes que requiere una decisión de asignación de ruta todas las llamadas con un alias del tipo h323_ID serán resueltas utilizando DNS. Si el DNS no resuelve el alias, se comprueba con las tablas de registro internas. Si se pide un alias que comience con 002, los vecinos son comprobados antes de las tablas de registro. Si el alias solicitado no es del tipo h323_ID o comienza por 002, se usa la política por defecto consultando las tablas de registro internas, tras ellas, a los vecinos, y, en caso de fallo, al padre.

Para los mensajes ARQ, LRQ, Setup y Facility se deberían usar las secciones [RoutingPolicy::OnARQ],[RoutingPolicy::OnLRQ], [RoutingPolicy::OnSetup] y [RoutingPolicy::OnFacility] utilizando la sintaxis anteriormente explicada.

Ejemplo:

[RoutingPolicy::OnARQ]
default=numberanalysis,internal,neighbor

Una configuración típica de enrutado con ENUM podría quedar como lo que sigue:

Ejemplo:

[RoutingPolicy]
default=explicit,internal,enum,dns,internal,parent,neighbor

6.2 Sección [RasSrv::RewriteE164]

Esta sección define las reglas de reescritura para números dialedDigits (números E.164)

Formato:

[!]original-prefix=target-prefix

Si el número comienza con original-prefix, se reescribe a target-prefix. Si el comodín `!' precede a original-prefix, se invierte el sentido y el prefijo del objetivo se antepone al número marcado. Se permiten los comodines especiales ('.' y '%').

Ejemplo:

08=18888

Si se marca 08345718, se reescribe a 18888345718.

Ejemplo:

!08=18888

Si se marca 09345718, se reescribe a 1888809345718.

Opción:

  • Fastmatch=08
    Default: N/A

    Sólo reescribe dialDigits que comiencen con el prefijo especificado.

6.3 Sección [RasSrv::RewriteAlias]

Esta sección define las reglas de reescritura de alias. Esto puede ser utilizado para mapear los alias asignados por el gatekeeper a los endpoints registrados.

Formato:

[!]original-alias=target-alias

Si el alias es original-alias, éste es reescrito a target-alias.

Ejemplo:

bill=033123456

6.4 Sección [RasSrv::GWRewriteE164]

Esta sección describe la reescritura de números dialedDigits E.164 en función de si llega o se envía la llamada desde el gateway. Esto permite una manipulación más flexible de los dialedDigits para el enrutado. En combinación con el RasSrv::RewriteE164 se puede realizar la reescritura en tres fases:

Llamada desde el "gw1", dialedDigits 0867822
                |
                |
                V
Reglas de entrada para "gw1", dialedDigits ahora es 550867822
                |
                |
                V
Reglas globales, dialedDigits ahora es 440867822
                |
                |
                V
Selección de Gateway, dialedDigits ahora es 440867822, Gateway de cara al exterior "gw2"
                |
                |
                V
Reglas de salida para "gw2", dialedDigits ahora es 0867822
                |
                |
                V
Llamada a "gw2", dialedDigits 0867822

Formato:

gw-alias=in|out=[!]original-prefix=target-prefix[;in|out...]

Si la llamada re corresponde al gateway, la dirección que comienza con original-prefix se reescribe a target-prefix. Si la bandera `!' precede a original-prefix, el sentido se invierte. Se permiten los caracteres especiales ('.' and '%'). Es preciso separar con ';' las diversas reglas para un mismo gateway.

Ejemplo:

gw1=in=123=321

Si se recibe una llamada desde "gw1" a 12377897, se reescribe a 32177897 antes de completar cualquier otra acción.

6.5 Sección [Endpoint::RewriteE164]

Una vez especificado el/los prefijos para el gatekeeper que trabaja como endpoint, el gatekeeper padre enrutará las llamadas con dialedDigits que empiezan con esos prefijos. El gatekeeper hijo puede reescribir el destino de acuerdo a las reglas especificadas en esta sección. En contraste, cuando un endpoint interno llama a un endpojnt registrado en el gatekeeper padre, el origen se escribirá a la inversa.

Formato:

external prefix=internal prefix

Por ejemplo, Si se tiene la siguiente configuración:

                        [Parent GK]
                        ID=CitronGK
                        /         \
                       /           \
                      /             \
                     /               \
                [Child GK]          [EP3]
                ID=ProxyGK          E164=18888200
                Prefix=188886
                /       \
               /         \
              /           \
           [EP1]         [EP2]
           E164=601      E164=602

Con esta regla:

188886=6

Cuando EP1 llame a EP3 por 18888200, el CallingPartyNumber en el mensaje Setup Q.931 se reescribirá a 18888601. A la inversa, EP3 alcanza EP1 y EP2 llamando a 18888601 y 18888602 respectivamente. Por tanto, un endpoint registrado con el GK hijo con prefijo '6' aparecerá como un endpoint con prefijo '188886', para los endpoints registrados con el gatekeeper padre.

La sección no se relaciona con la sección RasSrv::RewriteE164, aunque la última tendrá efecto antes.

6.6 Sección [Routing::NumberAnalysis]

Esta sección define reglas para la política de enrutado numberanalysis. Esta política revisa el mínimo y/o máximo número de dígitos que tiene un número marcado y envía un mensaje ARJ si es necesario (número de dígitos fuera de rango), permitiendo dar soporte al envío de dígitos superpuestos (overlapped digit). Se da un soporte parcial a los mensajes Setup (no al envio de dígitos superpuestos - solamente a la validación de la longitud del número).

Formato:

prefix=MIN_DIGITS[:MAX_DIGITS]

Si el número empareja con prefix, éste se verifica para ver si consiste de al menos MIN_DIGITS dígitos y (si también se agregó MAX_DIGITS) hasta un máximo de MAX_DIGITS dígitos. Tambien se pueden utilizar caracteres especiales como !, '.' y '%'). Si el número es demasiado corto , se devolverá un mensaje ARJ con el campo rejectReason espablecido a incompleteAddress. Si el número es demasiado largo, se devolverá un mensaje ARJ con el campo rejectReason establecido a undefinedReason. Para buscar una correspondencia se busca en la lista de prefijos desde el prefijo más largo hasta el prefijo mas corto. En el caso de mensajes Setup, se devolverá un Release Complete con "badFormatAddress" cuando el número tiene una logitud incorrecta.

Ejemplo:

[RoutingPolicy::OnARQ]
default=numberanalysis,internal

[Routing::NumberAnalysis]
0048=12
48=10
.=6:20

Las llamadas que van hacia destinatarios que empiezan con 0048 deben tener por lo menos 12 dígitos, los que van hacia destinatarios que empiezan con 48 deben tener 10 dígitos y resto por lo menos 6 y como máximo 20 dígitos.

6.7 Sección [RewriteCLI]

Esta sección contiene un conjunto de reglas de reescritura para números ANI/CLI (caller id). El proceso de reescritura es realizado en dos estados - reescritura entrante (inbound rewrite) y reescritura saliente (outbound rewrite). La reescritura entrante (inbound rewrite) se realiza antes que cualquier otro proceso de mensajes Q.931 (como inbound GWRewrite, autenticación, accounting, ...) y éste tendrá efectos visibles dentro de los módulos auth/acct, puesto que éste afecta al Calling-Station-Id. La reescritura saliente (outbound rewrite) toma lugar justo antes de que el mensaje de Setup sea remitido y su efecto es visible solamente para el endpoint que recibe la llamada (callee).

Una regla de reescritura entrante (inbound rewrite) puede enparejarse con una IP del endpoint emisor (caller's IP) y un número marcado (dialed number) o un CLI/ANI original. Una regla de reescritura saliente (outbound rewrite) puede emparejarse con una IP del endpoint emisor (caller's IP), con la IP del receptor (callee's IP) y con un número marcado (dialed number) o con un número de destino (el número marcado después de la reescritura) o un CLI/ANI (después de la reescritura entrante).

Este módulo además provee la característica CLIR (Calling Line Identification Restriction) que puede ser configurada para cada endpoint (regla).

  • ProcessSourceInfo=1
    Default: 1

    Además de reescribir un Calling-Party-Number IE también se podrá reescribir el elemento sourceInfo del mensaje de Setup H.225.0, de esta manera ambos contienen información coherente.

  • RemoveH323Id=1
    Default: 1

    Cuando se reescribe el elemento sourceInfo de un mensaje Setup H.225.0, los alias de tipo H323_ID, email_ID y url_ID pueden permanecer intactas si esta opción permanece deshabilitada.

  • CLIRPolicy=apply
    Default: N/A

    Aquí puede establecerse un indicador de presentación global que procesa la política. Esta política puede ser aplicada a todas las reglas de reescritura CLI que no anulen a ésta. Las posibles selecciones son forward - solamente remite el PI recibido tal como está, apply - examina el PI recibido y oculta el CLI si éste esta establecido en "presentación restringida" y applyforterminals - similar a apply excepto que el número es removido solamente cuando la llamada es enviada hacia un terminal y no hacia un gateway.

Formato para una regla entrante:

in:CALLER_IP=[pi=[allow|restrict][,forward|apply|applyforterminals]] [cli:|dno:]number_prefix(=|*=|~=)NEW_CLI[,NEW_CLI]...

El prefijo in: indica que ésta es una regla entrante y el CALLER_IP será utilizado para emparejar la regla (éste puede ser una simple IP o una subred completa).

El parámetro opcional pi= controla las características de CLIR (Calling Line Identification Restriction). Con los valores de allow o restrict establecemos que el indicador de presentación (presentation indicator) sea "presentación permitida" o "presentación restringida". Los indicadores forward, apply y applyforterminals controlan cómo el indicador de presentación recibido (si lo hay) es procesado por el gatekeeper. forward significa reenviar el indicador hacia el callee tal como está, apply significa ocultar el CLI si el PI está establecido en "presentación restringida", applyforterminals es similar a apply, excepto que el CLI se oculta solamente cuando la llamada es enviada hacia un terminal, y no a un gateway.

El prefijo cli: o dno: (el valor predeterminado) selecciona el número que será utilizado para emparejar el number_prefix - un id de caller (CLI/ANI) o un número marcado (dialed number). El emparejado/reescritura de números puede realizarse de tres maneras:

  • = - Un número cli o dno se emparejará contra el number_prefix, utilizando un prefijo (prefix match), si el prefijo es encontrado, el CLI será reemplazado con el NEW_CLI,
  • ~= - Un número cli o dno se emparejará contra el number_prefix, utilizando una indetidad (identity match), si ambos números son los mismos, el CLI será reemplazado con el NEW_CLI,
  • *= - (VALIDO SOLAMENTE PARA cli) Un número cli se emparejará contra el number_prefix, utilizando un prefijo (prefix match), si el prefijo es encontrado, el prefijo emparejado CLI (number_prefix) será reemplazado con un prefijo NEW_CLI.
Después del signo de igualdad (=/ =/*=), sigue una lista de valores nuevos de CLI a ser usados. Si se especifica mas de un valor, un único valor se escogerá de manera aleatoria. Está permitido especificar grandes rangos de números como 49173600000-49173699999 (para rangos de números CLIs debe fijarse una longitud fija). Hay una cadena especial constante "any", que puede ser utilizada en lugar del CALLER_IP o el number_prefix. Para habilitar la característica CLIR para esta regla, utilice la cadena especial constante "hide" en lugar de la lista de nuevos valores de CLI. Tenga presente que CLIR es más utilizado para reglas salientes (outbound rules).

Ejemplo 1:

[RewriteCLI]
in:192.168.1.1=dno:5551=3003
in:192.168.1.1=cli:1001=2222
in:192.168.1.1=any=1111

Estas reglas indican que para aquellas llamadas que vienen desde la IP 192.168.1.1: (1) si el usuario marca un número que empieza con 5551, el CLI se establece en 3003, (2) si la llamada es de un usuario que empieza con CLI en 1001, el CLI se establece en 2222, (3) para el resto de llamadas que vienen de dicha IP, el CLI se establece en 1111.

Ejemplo 2:

[RewriteCLI]
in:192.168.1.0/24=any=18001111
in:192.168.2.0/24=any=18002222
in:any=any=0

Estas reglas indican que: (1) para las llamadas que vienen desde la red 192.168.1.0/24, el CLI se establece en 18001111, (2) para las llamadas que vienen desde la red 192.168.2.0/24, el CLI se establece en 18002222, (3) para el resto de llamadas, el CLI se establece en 0.

Ejemplo 3:

[RewriteCLI]
%r1% in:192.168.1.0/24=0048*=48
%r2% in:192.168.1.0/24=0*=48
in:any=100.~=48900900900

Estas reglas indican que: (1) para las llamadas que vienen desde la red 192.168.1.0/24, reescriba los números que empiezan con 0048 a 48 (ejemplo - 0048900900900 => 48900900900), (2) para las llamadas que vienen desde la red 192.168.1.0/24, reescriba los números que empiezan con 0 a 48 (ejemplo - 0900900900 => 48900900900), (3) para el resto de llamadas, si CLI es de 4 dígitos y empieza con 100, establezca éste en 48900900900.

Ejemplo 4 (CLIR):

[RewriteCLI]
in:192.168.1.0/24=any=hide

Este ejemplo provoca que el número del emisor (caller) sea removido de los mensajes de Setup originados en la red 192.168.1.0/24. Esto además provoca que sean establecidos de manera apropiada los indicadores de presentación y screening en los mensajes Setup.

Formato para la regla saliente (outbound rule):

out:CALLER_IP=CALLEE_IP [pi=[allow|restrict][,forward|apply|applyforterminals]] [cli:|dno:|cno:]number_prefix(=|~=|*=)NEW_CLI[,NEW_CLI]...

El prefijo out: indica que ésta es una regla saliente (outbound rule), el CALLER_IP y el CALLEE_IP serán utilizados para emparejar la regla y puede ser una dirección IP simple o una dirección completa de red.

El parámetro opcional pi= controla las características de CLIR (Calling Line Identification Restriction). Con los valores de allow o restrict establecemos que el indicador de presentación (presentation indicator) sea "presentación permitida" o "presentación restringida". Los indicadores forward, apply y applyforterminals controlan cómo el indicador de presentación recibido (si lo hay) es procesado por el gatekeeper. forward significa reenviar el indicador hacia el callee tal como está, apply significa ocultar el CLI si el PI está establecido en "presentación restringida", applyforterminals es similar a apply, excepto que el CLI se oculta solamente cuando la llamada es enviada hacia un terminal, y no a un gateway.

El prefijo cli:, dno: (el valor predeterminado) o cno: selecciona el número que será utilizado para emparejar el number_prefix - un id de caller (CLI/ANI), un número marcado (dialed number) o un número destino/called (el número marcado después de la reescritura). El emparejado/reescritura de números puede realizarse de tres maneras:

  • = - Un número cli o dno se emparejará contra el number_prefix, utilizando un prefijo (prefix match), si el prefijo es encontrado, el CLI será reemplazado con el NEW_CLI,
  • ~= - Un número cli o dno se emparejará contra el number_prefix, utilizando una indetidad (identity match), si ambos números son los mismos, el CLI será reemplazado con el NEW_CLI,
  • *= - (VALIDO SOLAMENTE PARA cli) Un número cli se emparejará contra el number_prefix, utilizando un prefijo (prefix match), si el prefijo es encontrado, el prefijo emparejado CLI (number_prefix) será reemplazado con un prefijo NEW_CLI.
Después del signo de igualdad (=/ =/*=), sigue una lista de valores nuevos de CLI a ser usados. Si se especifica mas de un valor, un único valor se escogerá de manera aleatoria. Está permitido especificar grandes rangos de números como 49173600000-49173699999. Hay una cadena especial constante "any", que puede ser utilizada en lugar del CALLER_IP, el CALLEE_IP o el number_prefix. Para habilitar la característica CLIR para esta regla, utilice la cadena especial constante "hide" o "hidefromterminals" en lugar de la lista de nuevos valores de CLI.

Ejemplo 1:

[RewriteCLI]
out:any=192.168.1.1 any=1001
out:any=192.168.1.2 any=1002

Estas reglas establecen un ANI/CLI fijo para cada IP final: (1) presénteme con un ANI 1001, al enviar las llamadas a la IP 192.168.1.1, (2) presénteme con un ANI 1002, al enviar las llamadas a la IP 192.168.1.2.

Ejemplo 2:

[RewriteCLI]
out:any=192.168.1.1 any=1001-1999,3001-3999

Esta regla selecciona de manera aleatoria un ANI/CLI de un rango de 1001-1999, 3001-3999 para llamadas enviadas a 192.168.1.1.

Ejemplo 3 (CLIR):

[RewriteCLI]
out:any=any any=hidefromterminals
out:192.168.1.1=any any=hide

En este ejemplo cada suscriptor ha habilitado la característica CLIR. De esta manera todas las llamadas hacia los terminales tendrán un número de emisor (caller) removido y establecidos los indicadores de presentación/screening. Las llamadas que van hacia los gateways tendrán solamente un indicador de presentación establecido en "presentación restringida" y no será removido el número de emisor (caller) para permitir un ruteo apropiado y removimiento de número al equipo destino.
Una excepción a estas reglas es que las llamadas que vienen desde 192.168.1.1 tendrán siempre removido el número de emisor (caller), sin importar si está llamando a un terminal o a un gateway.

Ejemplo 4 (CLIP):

[RewriteCLI]
out:any=192.168.1.1 any=hide

En este ejemplo la característica CLIP (Calling Line Identification Presentation) está deshabilitada para el usuario 192.168.1.1.

Ejemplo 5 (CLIR):

[RewriteCLI]
out:192.168.1.1=any pi=restrict,apply cli:.*=.
out:any=any pi=allow cli:.*=.

Estas reglas no cambian el CLI (.*=.) y: (1) habilitan el CLIR para el endpoint 192.168.1.1. apply le indica al gatekeeper que no solamente establezca el PI, sino que además oculte el número actual, (2) Forza la presentación CLI para el resto endpoints.

El emparejamiento de reglas tiene un orden estrictamente definido:

  1. Se determina la pareja de la IP del emisor más cercano - closets caller's IP (closest significa con la máscara de red más larga - IPs simples tienen la prioridad más alta, "any" tiene la prioridad más baja),
  2. (reglas salientes) Se determina la pareja de la IP del receptor más cercano - closest callee's IP,
  3. Se busca el prefijo/numero más largo que empareje con el par IP/IP dado, en el siguiente órden:
    1. dno: Se buscan reglas de tipo (número marcado - dialed number),
    2. cno: Se buscan reglas de tipo (número destino/llamado - destination/called number),
    3. cli: Se buscan reglas de tipo (caller id).
Después que ha sido encontrada una pareja para la IP del caller/callee, no se revisa ninguna otra regla, aun cuando ningún prefijo/número se empareja dentro del conjunto de reglas para éstas IPs.

Sobre plataforma Windows, hay un problema con config keys duplicadas, de esta manera hay un workaround para esta restricción. Este ejemplo no podrá trabajar debido a la misma clave (key) (in:192.168.1.1):

[RewriteCLI]
in:192.168.1.1=1001=2001
in:192.168.1.1=any=2000
Como workaround, puede utilizar una cadena con un signo de porcentaje (%) al inicio y al final antes de la clave (key). Este prefijo se separará automáticamente del nombre de la clave (key name) antes de la carga de las reglas:
[RewriteCLI]
%r1% in:192.168.1.1=1001=2001
%r2% in:192.168.1.1=any=2000


Página siguiente Página anterior Índice general

Capítulos: Índice · Introducción · Instalacion · Empezando · Configuración Básica · Enrutado · RAS Config · Autenticación · Accounting · Vecinos · Configuración Por-Terminal · Configuración Avanzada · Monitoreando



Last updated: 20. Aug 2017
Page maintained by Jan Willamowius