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
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
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.
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
|