This is the Portuguese manual for GNU Gatekeeper 2.0.6.
A more recent (English) manual for your version is in your GnuGk download archive.

Capítulos: Índices · 1. Introdução · 2. Instalando · 3. Iniciando o uso · 4. Usando o GnuGk · 5. Monitorando o GnuGk

5. Monitorando o Gatekeeper (Referencia)

5.1 Interface Status

A Interface Status é a interface externa para monitoramento e controle do gatekeeper. O gatekeeper irá enviar mensagens a respeito sobre as chamadas de todos os clientes conectados e irá receber comandos via esta interface.

A interface é uma porta TCP única (default: 7000), você pode conectar com o telnet ou com outro cliente. Um exemplo de um cliente diferente é o Java GUI, aka GkGUI.

Areas de Aplicação

O que você pode fazer com os poderes da Interface de Status é com você. Mas aqui estão algumas idéias possíveis:

  • Monitoramento de Chamadas
  • Monitoramento dos endpoints registrados
  • Graphical User Interface
    Veja GkGUI.
  • Aplicações de Contabilização de Chamada
    Analise as mensagens CDR e as redirecione para uma aplicação de billing.
  • Interface com extensões externas
    Se não quiser publicar o código fonte deste recursos adicionais, apenas publique o núcleo de funcionalidades e a interface que é preciso com a interface de status e mantenha privado esta parte externa do código.

Exemplos

Suponha que você esteja interessado nos CDRs (registros detalhados das chamadas) e você quer processar eles em intervalos regulares.

Aqui temos um script Perl (gnugk_cdr.pl) que inicia o gatekeeper e replica um cliente simplificado para a Interface de Status e escreve todos os CDRs em um arquivo de logs.

#!/usr/bin/perl
# programa de exemplo para demonstrar como escrever CDRs para um arquivo de log
use strict;
use IO::Socket;
use IO::Handle;

my $logfile = "/home/jan/cdr.log";
my $gk_host = "localhost";
my $gk_port = 7000;
my $gk_pid;

if ($gk_pid = fork()) {
        # processo pai irá ouvir o status da gatekeeper
        sleep(1);       # aguarda o gk inicializar
        my $sock = IO::Socket::INET->new(PeerAddr => $gk_host, PeerPort => $gk_port, Proto => 'tcp');
        if (!defined $sock) {
                die "Can't connect to gatekeeper at $gk_host:$gk_port";
        }
        $SIG{HUP} = sub { kill 1, $gk_pid; };   # pass HUP to gatekeeper
        $SIG{INT} = sub { close (CDRFILE); kill 2, $gk_pid; };  # close file when terminated

        open (CDRFILE, ">>$logfile");
        CDRFILE->autoflush(1);  # don't buffer output
        while (!$sock->eof()) {
                my $msg = $sock->getline();
                $msg = (split(/;/, $msg))[0];   # remove junk at end of line
                my $msgtype = (split(/\|/, $msg))[0];
                if ($msgtype eq "CDR") {
                        print CDRFILE "$msg\n";
                }
        }
        close (CDRFILE);
} else {
        # processo filho inicia o gatekeeper
        exec("gnugk");
}

Interface Gráfica (GUI) do Gatekeeper

Existem diversos frontend gráficos (GUI) para o gatekeeper.

  • Java GUI

    Desenvolvido por Jan Willamowius. Você pode monitorar os registros e chamadas que passam pelo gatekeeper. Um clique-direito em um botão apresenta um menu popup para aquele endpoint.

    Esta GUI funciona com Java 1.0 ambiente implementado em muitos browsers web. Por razões de segurança o GUI deve ser executado como uma aplicação standalone ou executado por um servidor web no mesmo número IP que o gatekeeper (você não poderá executar o applet a partir do arquivo local).

    O programa está disponível em H323GUI¡C

  • GkGUI

    Um programa standalone em Java desenvolvido por Citron Network Inc. Ele requer Java 1.4. E os seus recursos incluem:

    • Monitorar múltiplos gatekeepers simultaneamente.
    • Dois modos de visalização: Lista de Botões e Árvore.
    • Registros das Chamadas (CDR) e estatisticas.
    • Log da Interface de Status do GK.
    • Diferentes cores para diferentes tipos de endpoints.
    • Modificar a configuração do gatekeeper.
    • Forçar o desregistro dos endpoints.
    • Armazenar e imprimir os logs do status e os CDR.

    O GkGUI está sob a licença GNU General Public License, disponível em https://www.gnugk.org/h323develop.html#java¡C

5.2 Comandos (Referencia)

O comando help ou h irá mostrar uma lista de todos os comandos disponíveis.

  • Reload

    Recarrega a configuração.

  • Version, v

    Mostra a versão e a informação sobre o S.O. do gatekeeper.

  • Statistics, s

    Mostra informações estatísticas do gatekeeper.

    Exemplo:

    Statistics
    -- Endpoint Statistics --
    Total Endpoints: 21  Terminals: 17  Gateways: 4  NATed: 2
    Cached Endpoints: 1  Terminals: 1  Gateways: 0
    -- Call Statistics --
    Current Calls: 1 Active: 1 From Neighbor: 0 From Parent: 0
    Total Calls: 1539  Successful: 1076  From Neighbor: 60  From Parent: 5
    Startup: Fri, 21 Jun 2002 10:50:22 +0800   Running: 11 days 04:22:59
    ;
    

  • PrintAllRegistrations, r, ?

    Mostra todos os endpoints registrados.

    Formato:

    AllRegistrations
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    ...
    Number of Endpoints: n
    ;
    

    Example:

    AllRegistrations
    RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
    RCF|10.0.1.43:1720|613:dialedDigits=Jacky Tsai:h323_ID|terminal|1328_endp
    RCF|10.0.1.55:1720|705:dialedDigits=Sherry Liu:h323_ID|terminal|1333_endp
    Number of Endpoints: 3
    ;
    

  • PrintAllRegistrationsVerbose, rv, ??

    Mostra detalhes de todos os endpoints registrados.

    Formato:

    AllRegistrations
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    Registration_Time C(Active_Call/Connected_Call/Total_Call) <r>
    [Prefixes: ##] (gateway only)
    ...
    Number of Endpoints: n
    ;
    

    Exemplo:

    AllRegistrations
    RCF|10.0.1.8:1720|Accel-GW2:h323_ID|gateway|1322_endp
    Wed, 26 Jun 2002 16:40:03 +0800 C(1/5/33) <1>
    Prefixes: 09,002
    RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
    Wed, 26 Jun 2002 16:40:55 +0800 C(0/32/39) <1>
    RCF|10.0.1.66:1720|716:dialedDigits=Vicky:h323_ID|terminal|1425_endp
    Wed, 26 Jun 2002 16:40:58 +0800 C(1/47/53) <1>
    Number of Endpoints: 2
    ;
    

  • PrintCurrentCalls, c, !

    Mostra todas as chamadas correntes.

    Formato:

    CurrentCalls
    Call No. # | CallID | Call_Duration | Left_Time
    Dialed_Number
    ACF|Caller_IP:Port|Caller_EPID|CRV
    ACF|Callee_IP:Port|Callee_EPID|CRV
    ...
    Number of Calls: Current_Call Active: Active_Call From Neighbor: Call_From_Neighbor \
    From Parent: Call_From_Parent
    ;
    

    Exemplo:

    CurrentCalls
    Call No. 29 | CallID bd c6 17 ff aa ea 18 10 85 95 44 45 53 54 77 77 | 109 | 491
    Dial 0953378875:dialedDigits
    ACF|10.0.1.49:1720|4048_CGK1|25263
    ACF|10.1.1.1:1720|4037_CGK1|25263
    Call No. 30 | CallID 70 0e dd c0 9a cf 11 5e 00 01 00 05 5d f9 28 4d | 37 | 563
    Dial 0938736860:dialedDigits
    ACF|10.0.1.48:1032|4041_CGK1|11896
    ACF|10.1.1.1:1720|4037_CGK1|11896
    Number of Calls: 2 Active: 2 From Neighbor: 0 From Parent: 0
    ;
    

  • PrintCurrentCallsVerbose, cv, !!

    Mostra detalhes de todas as chamadas correntes.

    Formato:

    CurrentCalls
    Call No. # | CallID | Call_Duration | Left_Time
    Dialed_Number
    ACF|Caller_IP:Port|Caller_EPID|CRV
    ACF|Callee_IP:Port|Callee_EPID|CRV
    # Caller_Aliases|Callee_Aliases|Bandwidth|Connected_Time <r>
    ...
    Number of Calls: Current_Call Active: Active_Call From NB: Call_From_Neighbor
    ;
    

    Exemplo:

    CurrentCalls
    Call No. 48 | CallID 7d 5a f1 0a ad ea 18 10 89 16 00 50 fc 3f 0c f5 | 30 | 570
    Dial 0225067272:dialedDigits
    ACF|10.0.1.200:1720|1448_endp|19618
    ACF|10.0.1.7:1720|1325_endp|19618
    # Sherry:h323_ID|Accel-GW1:h323_ID|200000|Wed, 26 Jun 2002 17:29:55 +0800 <2>
    Number of Calls: 1 Active: 1 From NB: 0
    ;
    

  • Find, f

    Encontrar um endpoint registro a partir de um alias ou prefixo.

    Formato:

    Find Alias
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    ;
    

    Exemplo:

    f 800
    RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
    ;
    f 801
    SoftPBX: alias 801 not found!
    

  • FindVerbose, fv

    Encontra detalhes de um endpoint registrado com um alias ou um prefixo.

    Formato:

    FindVerbose Alias
    RCF|IP:Port|Aliases|Terminal_Type|EndpointID
    Registration_Time C(Active_Call/Connected_Call/Total_Call) <r>
    [Prefixes: ##] (gateway only)
    ;
    

    Exemplo:

    fv 02
    RCF|10.0.1.100:1720|TFN:h323_ID|gateway|4037_CGK1
    Wed, 26 Jun 2002 17:47:29 +0800 C(0/84/120) <1>
    Prefixes: 02,09
    ;
    

  • UnregisterIP

    Força o desregistro de um endpoint pelo endereço IP e porta de sinalização.

    Formato:

    UnregisterIP IP[:Port]
    

    Example:

    UnregisterIP 10.0.1.31:1720
    URQ|10.0.1.31:1032|1326_endp|maintenance;
    SoftPBX: Endpoint 10.0.1.31:1720 unregistered!
    

  • UnregisterAlias

    Força o desregistro de um endpoint por um ou mais dos seus aliases.

    Formato:

    UnregisterAlias Alias
    

    Exemplo:

    UnregisterAlias 601
    URQ|10.0.1.31:1032|1326_endp|maintenance;
    SoftPBX: Endpoint 601 unregistered!
    

  • UnregisterAllEndpoints

    Força o desregistro de todos os endpoints registrados.

    Formato:

    
    

    Example:

    UnregisterAllEndpoints
    URQ|10.0.1.7:1024|1325_endp|maintenance;
    URQ|10.0.1.8:1024|1322_endp|maintenance;
    URQ|10.0.1.32:1032|1324_endp|maintenance;
    URQ|10.0.1.36:1032|1323_endp|maintenance;
    URQ|10.0.1.42:1032|1318_endp|maintenance;
    Done
    ;
    

  • DisconnectCall

    Desconecta uma chamada dado um certo número.

    Formato:

    DisconnectCall Number
    

    Exemplo:

    DisconnectCall 1533
    

  • DisconnectIP

    Desconecta todas as chamada de um endpoint por IP e porta de sinalização.

    Formato:

    DisconnectIP IP[:Port]
    

    Exemplo:

    DisconnectIP 10.0.1.31:1720
    

  • DisconnectAlias

    Desconecta todas as chamada de um endpoint por um ou mais dos seus aliases.

    Formato:

    DisconnectAlias Alias
    

    Exemplo:

    DisconnectAlias 601
    

  • ClearCalls

    Desconecta todas as chamadas do gatekeeper.

  • GK

    Mostra informações sobre o gatekeeper pai.

  • Debug

    Somente usado para propósitos de debug. Opções:

    • trc [+|-|n]

      Mostra/Modifica o nível de debug.

    • cfg SEC PAR

      Lê ou imprime um parâmetro de configuração em uma seção.

    • set SEC PAR VAL

      Escreve um valor de um parâmetro de configuração em uma seção.

    • remove SEC PAR

      Remove o valor de um parâmetro de configuração de uma seção.

    • remove SEC

      Remove uma seção.

    • printrm VERBOSE

      Imprime todos os registros removidos de endpoints.

    Exemplo:

    debug trc 3
    debug set RoutedMode H245Routed 1
    

  • Who

    Mostra todas as pessoas na porta de status.

  • RouteReject

    Termina esta chamada que está em uma fila virtual.

    Formato:

    RouteReject CallingEndpointID CallRef
    

    Exemplo:

    RouteReject endp_4711 1234
    

  • RouteToAlias, rta

    Roteia esta chamada em uma fila virtual para o alias especificado.

    Formato:

    RouteToAlias Alias CallingEndpointID CallRef
    

    Exemplo:

    RouteToAlias Suzi endp_4711 1234
    

  • Exit, q

    Desconecta da porta de status.

5.3 Mensagens (Referencia)

Esta seção descreve as saídas das mensagens da interface de status.

  • GCF|IP|Aliases|Endpoint_Type;

    O gatekeeper recebe um GatekeeperRequest (GRQ) e responde com um GatekeeperConfirm (GCF).

  • GRJ|IP|Aliases|Endpoint_Type|RejectReason;

    O gatekeeper recebe um GatekeeperRequest (GRQ) e responde com um GatekeeperReject (GRJ).

  • RCF|IP:Port|Aliases|Endpoint_Type|EndpointID;

    O gatekeeper recebe um RegistrationRequest (RRQ) e responde com um RegistrationConfirm (RCF).

  • RRJ|IP|Aliases|Endpoint_Type|RejectReason;

    O gatekeeper recebe um RegistrationRequest (RRQ) e responde com um RegistrationReject (RRJ).

  • ACF|Caller_IP:Port|Caller_EndpointID|CRV|DestinationInfo|SrcInfo|IsAnswered;

    O gatekeeper recebe um AdmissionRequest (ARQ) e responde com um AdmissionConfirm (ACF).

  • ARJ|Caller_IP:Port|DestinationInfo|SrcInfo|IsAnswered|RejectReason;

    O gatekeeper recebe um AdmissionRequest (ARQ) e responde com um AdmissionReject (ARJ).

  • DCF|IP|EndpointID|CRV|DisengageReason;

    O gatekeeper recebe um DisengageRequest (DRQ) e responde com um DisengageConfirm (DCF).

  • DRJ|IP|EndpointID|CRV|RejectReason;

    O gatekeeper recebe um DisengageRequest (DRQ) e responde com um DisengageReject (DRJ).

  • LCF|IP|EndpointID|DestinationInfo|SrcInfo;

    O gatekeeper recebe um LocationRequest (LRQ) e responde com um LocationConfirm (LCF).

  • LRJ|IP|DestinationInfo|SrcInfo|RejectReason;

    O gatekeeper recebe um LocationRequest (LRQ) e responde com um LocationReject (LRJ).

  • BCF|IP|EndpointID|Bandwidth;

    O gatekeeper recebe um BandwidthRequest (BRQ) e responde com um BandwidthConfirm (BCF).

  • BRJ|IP|EndpointID|Bandwidth|RejectReason;

    O gatekeeper recebe um BandwidthRequest (BRQ) e responde com um BandwidthReject (BRJ).

  • UCF|IP|EndpointID;

    O gatekeeper recebe um UnregistrationRequest (URQ) e responde com um UnregistrationConfirm (UCF).

  • URJ|IP|EndpointID|RejectReason;

    O gatekeeper recebe um UnregistrationRequest (URQ) e responde com um UnregistrationReject (URJ).

  • IRQ|IP:Port|EndpointID;

    O gatekeeper envia um InfoRequest (IRQ) para o endpoint para verificar se ele ainda está ativo. O endpoint deverá responder com um InfoRequestResponse (IRR) imediatamente.

  • URQ|IP:Port|EndpointID|Reason;

    O gatekeeper envia um UnregistrationRequest (URQ) para um endpoint para cancelar o seu registro. O endpoint deverá responder com um UnregistrationConfirm (UCF).

  • CDR|CallNo|CallId|Duration|Starttime|Endtime|CallerIP|CallerEndId| \
    CalledIP|CalledEndId|DestinationInfo|SrcInfo|GatekeeperID;

    Após a ligação ter sido desconectada, o registro dos detalhes da chamada é mostrado (em uma linha).

  • RouteRequest|CallerIP:Port|CallerEndpointId|CallRef|VirtualQueue|CallerAlias;

    Requer que uma aplicação externa roteie uma chamada vindo de uma fila virtual.


Página seguinte Página anterior Índice

Capítulos: Índices · 1. Introdução · 2. Instalando · 3. Iniciando o uso · 4. Usando o GnuGk · 5. Monitorando o GnuGk



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