This is the manual for GNU Gatekeeper 5.13.
A manual for your version is in your GnuGk download archive.
A PDF version can be found in the download section.
Chapters:
Contents ·
Introduction ·
Installation ·
Getting started ·
Basic Config ·
Routed Mode & Proxy ·
Routing ·
RAS Config ·
Authentication ·
Accounting ·
Neighbors ·
Per Endpoint Config ·
Advanced Config ·
Monitoring ·
Advanced Topics
The GNU Gatekeeper Manual Chapter 13
The status port is the external interface for monitoring and controlling the gatekeeper.
The gatekeeper will send out messages about ongoing calls to all
connected clients and it can receive commands via this interface.
Access to the status port is restricted by the rules in
GkStatus::Auth.
For security reasons, the default is not to allow any access until you have
configured
GkStatus::Auth.
The messages sent by the gatekeeper to the status port are grouped
into three output trace levels:
(These trace levels only apply to what is shown on the status port.
Don't confuse them with the trace level for GnuGk's trace file.)
- Level 0
Reload notifications and direct replies to entered commands.
- Level 1
Reload notifications, direct replies to entered commands, CDRs and Route Requests.
- Level 2
Output everything (reload notifications, direct replies to entered commands,
CDRs, Route Requests, RAS, ...). This is the default output level.
The client connected to the status port can choose the output level it is interested in.
The interface is a simple TCP port (default: 7000) which you can connect to with telnet or another client. One example of a different client is the GnuGk web interface.
Another example is the Automatic Call Distribution application, aka GnuGk ACD.
Application Areas
What you do with the powers of the Status Interface is up to you, but here are a few ideas:
- Call Monitoring
- Monitoring the registered endpoints
- Graphical User Interface for GnuGk
See GkGUI.
- Call Routing
See GnuGk ACD.
- Billing Applications
Analyze the CDR messages and forward them to a billing application.
- Interfacing external extensions
If you don't want to publish the source code to additional features, just publish the core functionality and interface to it through the status interface and keep the external part private.
Examples
Suppose you are just interested in the CDRs (call detail records) and want to process them as a batch at regular intervals.
Here is a simple Perl script (gnugk_cdr.pl ) that starts the gatekeeper and also forks a very simple client for the Status Interface and writes just the CDRs into a logfile. You'll have to modify it a little to fit your needs.
#!/usr/bin/perl
# sample program that demonstrates how to write the CDRs to a log file
use strict;
use IO::Socket;
use IO::Handle;
my $logfile = "/home/jan/cdr.log"; # CHANGE THIS
my $gk_host = "localhost";
my $gk_port = 7000;
my $gk_pid;
if ($gk_pid = fork()) {
# parent will listen to gatekeeper status
sleep(1); # wait for gk to start
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 {
# child starts gatekeeper
exec("gnugk");
}
Keep in mind that this is just an example to show the usage of the status port.
You can use the FileAcct module to log CDRs in a production system.
GUI for the Gatekeeper
There is a web interface that monitors the GNU Gatekeeper through the status port and allows you to change the configuration through a web interface.
See the demo at
GnuGk.org
This section lists all commands that you can issue to the status port (manually or with an external application). Commands are not case-insensitive, but parameters may be.
Entering help or h will display a list of all available commands.
Reload
Reload the configuration.
Reloading the configuration will not terminate existing calls, and any change to settings will only take effect
on new calls.
You can add an optional parameter to reload only a part of your configuration:
- AcctConfig - reload only the accounting config
- AuthConfig - reload only the authentication config
- CapConfig - reload only the CapacityControl rules
- EpConfig - reload only the endpoint config (permanent endpoints, endpoint section, call table settings)
- Example:
-
Reload
Full Config reloaded.
Reload EpConfig
EP Config reloaded.
Shutdown
Terminate the gatekeeper. Can be disabled by Shutdown=forbid in section
[GkStatus::Auth].
Version , v
Show the version and OS information of the gatekeeper.
Statistics , s
Show the statistics information of the gatekeeper.
- Example:
-
Statistics
-- Endpoint Statistics --
Total Endpoints: 307 Terminals: 278 Gateways: 29 NATed: 0
Cached Endpoints: 0 Terminals: 0 Gateways: 0
-- Call Statistics --
Current Calls: 7 Active: 7 From Neighbor: 4 From Parent: 0 Proxied: 3
Total Calls: 1151 Successful: 485 From Neighbor: 836 From Parent: 0 Proxied: 193 Peak: 17 at Tue, 26 Nov 2013 19:32:04 +04:00
Startup: Tue, 26 Nov 2013 18:45:35 +04:00 Running: 0 days 02:34:15
;
ResetCallCounters
Reset the statistics counters for total calls, successful calls, neighbor calls and parent calls to zero.
PrintAllRegistrations , r , ? , par
Show all registered endpoints.
- Format:
-
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 , ?? , parv
Show details of all registered endpoints.
- Format:
-
AllRegistrations
RCF|IP:Port|Aliases|Terminal_Type|EndpointID
Registration_Time C(Active_Call/Connected_Call/Total_Call) <r> (NAT type) bw:Bandwidth/Max_Bandwidth
[Prefixes: ##] (gateway only)
...
Number of Endpoints: n
;
- Example:
-
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> bw:0/10240
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> (H.460.18) bw:7680/10240
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> (H.460.17) bw:0/10240
Number of Endpoints: 3
;
PrintAllCached , rc , pac
Print list of all cached out-of-zone endpoints.
PrintCurrentCalls , c , ! , pcc
Show all current calls using the same ACF syntax as in call establishment. Also shows how media is being routed.
- Format:
-
CurrentCalls
Call No. # | CallID | Call_Duration | Left_Time
Dialed_Number
ACF|Caller_IP:Port|Caller_EPID|CRV|DestinationInfo|SrcInfo|IsAnswered|MediaRoute;
ACF|Callee_IP:Port|Callee_EPID|CRV|DestinationInfo|SrcInfo|IsAnswered|MediaRoute;
...
Number of Calls: Current_Calls Active: Active_Calls From Neighbor: Calls_From_Neighbor \
From Parent: Calls_From_Parent Proxied: Proxied_Calls
;
- Example:
-
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|frank:h323_ID|gunter:h323_ID|false|Proxy;
ACF|10.1.1.1:1720|4037_CGK1|25263|gunter:h323_ID|frank:h323_ID|true|Proxy;
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|sue:h323_ID|peter:h323_ID|false|-;
ACF|10.1.1.1:1720|4037_CGK1|11896|peter:h323_ID|sue:h323_ID|true|-;
Number of Calls: 2 Active: 2 From Neighbor: 0 From Parent: 0 Proxied: 1
;
PrintCurrentCallsVerbose , cv , !! , pccv
Show details of all current calls.
- Format:
-
CurrentCalls
Call No. # | CallID | Call_Duration | Left_Time
Dialed_Number
ACF|Caller_IP:Port|Caller_EPID|CRV|DestinationInfo|SrcInfo|IsAnswered|MediaRoute;
ACF|Callee_IP:Port|Callee_EPID|CRV|DestinationInfo|SrcInfo|IsAnswered|MediaRoute;
# Caller_Aliases|Callee_Aliases|Bandwidth|Connected_Time <r> bw:Bandwidth
...
Number of Calls: Current_Calls Active: Active_Calls From Neighbor: Calls_From_Neighbor \
From Parent: Calls_From_Parent Proxied: Proxied_Calls
;
- Example:
-
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|frank:h323_ID|gunter:h323_ID|false|Proxy;
ACF|10.0.1.7:1720|1325_endp|19618|gunter:h323_ID|frank:h323_ID|true|Proxy;
# Sherry:h323_ID|Accel-GW1:h323_ID|200000|Wed, 26 Jun 2002 17:29:55 +0800 <2> bw:3840
Number of Calls: 1 Active: 1 From Neighbor: 0 From Parent: 0 Proxied: 1
;
PrintCurrentCallsPorts , pccp
Show the dynamically allocated ports for each ongoing call that are used for incoming packets.
- Format:
-
CurrentCallsPorts
Call No. # | CallID | Call_Duration | Dialed_Number
Caller_IP:Port|SrcInfo|Callee_IP:Port|DestinationInfo
PortType IP:port
;
- Example:
-
CurrentCallsPorts
Call No. 1 | CallID b4 ef 4a e3 2a f8 e0 11 9f c6 00 1e c9 7e 69 ec | 62 | Dial peter:h323_ID
10.0.1.200:1720|frank:h323_ID|10.0.1.7:1720|gunter:h323_ID
RTP 0.0.0.0:1024
RTP 0.0.0.0:1025
H.245 0.0.0.0:55674
;
PrintPrefixCapacities , printpc
Print the prefix capacities and current counter values for all endpoints
or the specified alias.
- Format:
-
PrintPrefixCapacities [Alias]
PrefixCapacities
-- Endpoint: Alias (1.2.3.4:1720) --
Total calls = 0
prefix/capacity/curr: 125/5/0
-- Endpoint: Alias2 (1.2.3.5:1720) --
Total calls = 0
prefix/capacity/curr: 125/5/0
;
- Example:
-
PrintPrefixCapacities OpenMCU
PrefixCapacities
-- Endpoint: OpenMCU (192.168.1.100:1720) --
Total calls = 0
prefix/capacity/curr: ^(123|124)/2/0
prefix/capacity/curr: 125/5/0
;
printcc
Print the current counters for all CapacityControl rules.
Find , f
Find a registered endpoint by an alias or a prefix. To find an alias
of the specified type (h323_ID, dialedDigits), prepend the alias type name
(h323, e164, url, email) to the alias, followed by a colon.
- Format:
-
Find Alias
RCF|IP:Port|Aliases|Terminal_Type|EndpointID
;
- Example:
-
f 800
RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
;
f 801
Alias 801 not found!
f h323:Wei
RCF|10.1.1.10:1720|800:dialedDigits=Wei:h323_ID|terminal|1289_endp
;
FindVerbose , fv
Find details of a registered endpoint by an alias or a prefix. To find an alias
of the specified type (h323_ID, dialedDigits), prepend the alias type name
(h323, e164, url, email) to the alias, followed by a colon.
- Format:
-
FindVerbose Alias
RCF|IP:Port|Aliases|Terminal_Type|EndpointID
Registration_Time C(Active_Call/Connected_Call/Total_Call) <r>
[Prefixes: ##] (gateway only)
;
- Example:
-
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 , uip
Forcefully unregister an endpoint by IP and call signaling port.
If you don't specify a call signal port, GnuGk will unregister
the first endpoint it finds on the IP number
- Format:
-
UnregisterIP IP[:Port]
- Example:
-
UnregisterIP 10.0.1.31:1720
URQ|10.0.1.31:1032|1326_endp|maintenance;
Endpoint 10.0.1.31:1720 unregistered!
UnregisterEP
Forcefully unregister an endpoint by it's endpoint ID.
- Format:
-
UnregisterEP endpoint-id
- Example:
-
UnregisterEP 1326_endp
URQ|10.0.1.31:1032|1326_endp|maintenance;
Endpoint 1326_endp unregistered!
UnregisterAlias , ua
Forcefully unregister an endpoint by one of its aliases. To match an alias
of the specified type (h323_ID, dialedDigits), prepend the alias type name
(h323, e164, url, email) to the alias, followed by a colon.
- Format:
-
UnregisterAlias Alias
- Example:
-
UnregisterAlias 601
URQ|10.0.1.31:1032|1326_endp|maintenance;
Endpoint 601 unregistered!
UnregisterAllEndpoints , uae
Forcefully unregister all registered endpoints.
- Format:
-
- 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 , dc
Disconnect a call with given number (internal, gatekeeper assigned call number,
not the caller's, callee's phone number).
- Format:
-
DisconnectCall Number
- Example:
-
DisconnectCall 1533
DisconnectCallId
Disconnect a call with given call ID.
- Format:
-
DisconnectCallId CallId
- Example:
-
DisconnectCallId ee-ab-8f-81-58-57-df-11-95-39-00-1e-c9-7e-69-ec
DisconnectIP , dip
Disconnect all calls of an endpoint by IP and call signaling port.
If you don't specify a call signal port, GnuGk will disconnect the
first endpoint it finds on the IP number
- Format:
-
DisconnectIP IP[:Port]
- Example:
-
DisconnectIP 10.0.1.31:1720
DisconnectAlias , dca
Disconnect all calls of a registered endpoint by one of its aliases. To match an alias
of the specified type (h323_ID, dialedDigits), prepend the alias type name
(h323, e164, url, email) to the alias, followed by a colon.
- Format:
-
DisconnectAlias Alias
- Example:
-
DisconnectAlias 601
DisconnectEndpoint , de
Disconnect all calls of a registered endpoint by one of its endpoint identifier.
- Format:
-
DisconnectEndpoint ID
- Example:
-
DisconnectEndpoint 5624_endp
ClearCalls , cc
Disconnect all calls on the gatekeeper.
GK
Show the information of the parent gatekeeper.
Trace
Set the status interface output trace level. It controls which messages
are sent to this client:
trace 0 or trace min
Only direct responses to commands and reload notifications.
trace 1
CDRs, direct responses to commands and reload notifications.
trace 2 or trace max
Show all (RAS, CDRs, direct responses to commands, reload notifications, etc).
Debug
Only used for debug purpose. Options:
trc [+|-|n]
Show/modify trace level.
cfg
Read and print a list of all sections.
cfg all
Read and print the content of all config sections.
cfg SEC
Read and print a config section.
cfg SEC PAR
Read and print a config parameter in a section.
set SEC PAR VAL
Write a config value parameter in a section. (Beware that you can't set values containing spaces using this command!)
remove SEC PAR
Remove a config value parameter in a section.
remove SEC
Remove a section.
printrm VERBOSE
Print all removed endpoint records.
- Example:
-
debug trc 3
debug set RoutedMode H245Routed 1
SetLog
Send trace output to another file.
- Format:
-
Setlog [filename]
- Example:
-
Setlog /tmp/trace.log
RotateLog , rl
Rotate the log file.
Who
Show all people on the status port. First field is the session id, which can be used to disconnect
a user through the DisconnectSession command.
DisconnectSession , ds
Disconnect a user from the status port.
- Format:
-
DisconnectSession [session id]
- Example:
-
DisconnectSession 2
Yell , y
Send a message to all status clients.
- Format:
-
Yell [message text]
- Example:
-
Yell Config reload in 5 minutes.
RouteReject , rr
Terminate this call on a virtual queue.
This command is used as a response to a RouteRequest event (see below).
CallingEndpointID and CallRef must be passed back as they are in the corresponding RouteRequest.
The CallID parameter is optional; if it is given it has to be the same format as
signaled by RouteRequest.
You can optionally also set the numeric H.225 reject reason. If you do so, the callID parameter must be present.
Depending on the message causing the RouteRequest, the reason is interpreted as ReleaseCompleteReason or ARQRejectReason.
- Format:
-
RouteReject CallingEndpointID CallRef [CallID [reason]]
- Examples:
-
RouteReject endp_4711 1234
RouteReject - - 40-06-dd-98-22-37-52-40-8c-b0-92-0e-18-60-99-07 2
RouteToAlias , rta
Route this call on a virtual queue to the specified alias.
This command is used as a response to a RouteRequest event (see below).
CallingEndpointID and CallRef must be passed back as they are in the corresponding RouteRequest.
The CallID parameter is optional; if it is given it has to be the same format as
signaled by RouteRequest. As additional parameters you can set the CLI and display IE for the calling party.
- Format:
-
RouteToAlias Alias CallingEndpointID CallRef [CallID [CLI [CALLER-DISPLAY-IE [CALLED-DISPLAY-IE]]]]
- Example:
-
RouteToAlias Suzi endp_4711 1234
RouteToGateway , rtg
Route this call on a virtual queue to the specified alias and set the destinationSignalAddress.
This command is used as a response to a RouteRequest event (see below).
You can use this command to route calls to out-of-zone gateways or MCUs not registered with the gatekeeper.
Make sure that the 'vqueue' and 'explicit' policy is in effect for these calls.
CallingEndpointID and CallRef must be passed back as they are in the corresponding RouteRequest.
The CallID parameter is optional; if it is given it must be the same format as
signaled by RouteRequest. As additional parameter you can set the CLI for the calling party.
The alias parameter is required, but if you use a dash ("-") as alias name,
no alias will be set in the destination, just the IP.
- Format:
-
RouteToGateway Alias IP:Port CallingEndpointID CallRef [CallID [CLI [CALLER-DISPLAY-IE [CALLED-DISPLAY-IE]]]]
- Example:
-
RouteToGateway Suzi 192.168.0.50 endp_4711 1234
RouteToInternalGateway , rtig
Same as RouteToGateway, but does not tell caller about about an updated destination alias.
BindAndRouteToGateway , brtg
This command is similar to RouteToGateway, but you can also specify which
IP of a multi-homed server to use for the outgoing call.
- Format:
-
BindAndRouteToGateway IP Alias IP:Port CallingEndpointID CallRef [CallID [CLI [CALLER-DISPLAY-IE [CALLED-DISPLAY-IE]]]]
- Example:
-
BindAndRouteToGateway 192.168.0.2 Suzi 192.168.0.50 endp_4711 1234
BindAndRouteToInternalGateway
Same as BindAndRouteToGateway, but does not tell caller about about an updated destination alias.
SendProceeding
Send a CallProceeding message to the caller.
The only time this makes sense is after a RouteRequest event for an unregistered call.
Otherwise a status port application won't know if a Setup message has been sent but that
the call is not yet established.
- Format:
-
SendProceeding CallID
- Example:
-
SendProceeding 40-06-dd-98-22-37-52-40-8c-b0-92-0e-18-60-99-07
Exit , Quit , q , Ctrl-D
Quit the status port.
TransferCall , tc
Transfer an established call from endpoint A to endpoint B.
The call that shall be transferred is selected by the call ID
and the string "caller" or "called" is used to specify the which
end of the call shall be transferred.
You can choose the transfer method with the optional last parameter.
The call transfer works only with endpoints that properly support
Q.931 Facility callForwarded or routeCallToMC messages (so it doesn't work with Netmeeting).
- Format:
-
TransferCall <call-id> <CALLER | CALLED> <destination> [<FacilityForward | FacilityRouteCallToMC>]
- Example:
-
TransferCall ee-ab-8f-81-58-57-df-11-95-39-00-1e-c9-7e-69-ec caller Peter
RerouteCall , rrc
Gatekeeper based call transfer using TCS0 pause and reroute. H.245 tunneling must be disabled ([RoutedMode] DisableH245Tunneling=1)
as well as media encryption (RemoveH235Call=1).
- Format:
-
RerouteCall <call-id> <CALLER|CALLED> <destination>
- Example:
-
RerouteCall 40-06-dd-98-22-37-52-40-8c-b0-92-0e-18-60-99-07 CALLER 192.168.1.222
MakeCall , mc
Generate a new call from source to destination alias. You can also
specify an IP number as destination. This is done by establishing a call
from a pseudo endpoint in the gatekeeper to the source alias/number and then
transferring the call from the gatekeeper endpoint to the destination.
The method how this call transfer is done can be configured as not all
endpoints support all methods.
See
[CTI::MakeCall] for configuration options.
- Format:
-
MakeCall Source-Alias Destination-Alias [Transfer-Method]
- Example:
-
MakeCall 1234 5678
MakeCall joe 192.168.6.1 H.450.2
The optional transfer method parameter can be used to override the global TransferMethod
switch in
[CTI::MakeCall] for this individual MakeCall.
Valid values for the transfer method are:
- FacilityForward
- FacilityRouteCallToMC
- H.450.2
GetAuthInfo,gai
Gather information from a specific authentication module (if it provides
such information) and displays it on the status port.
- Format:
-
GetAuthInfo ModuleName
- Example:
-
GetAuthInfo RadAliasAuth
GetAcctInfo,gci
Gather information from a specific accounting module (if it provides
such information) and displays it on the status port.
- Format:
-
GetAcctInfo ModuleName
- Example:
-
GetAcctInfo SqlAcct
PrintEndpointQoS , peq
Display QoS values for all endpoints. The values are collected
through H.460.9 and/or proxied RTCP messages, so at least one of these features
must be enabled to have packet loss or jitter values.
If an endpoint has more than one active call, the packet loss and jitter values are from one randomly selected call.
- Format:
-
QoS|<endpoint aliases>|<last contact from endpoint>|<num calls>|<audio Rx packet loss percent>|<audio Rx jitter>|<video Rx packet loss percent>|<video Rx jitter>
- Example:
-
EndpointQoS
QoS|8001:dialedDigits=Peter:h323_ID|2011-02-10 T 09:23:08 Z|1|0.00%|0|0.00%|0
QoS|Mary:h323_ID|2011-02-10 T 09:23:08 Z|1|0.00%|0|0.00%|0
Number of Endpoints: 2
;
PrintEventBacklog
Print the saved status port events in the event backlog. To configure the event backlog see
[Gatekeeper::Main] StatusEventBacklog.
PrintNeighbors , pn
Print a list of all neighbor gatekeepers with IP numbers and state.
- Format:
-
NB|<name>|<IP:port>|<enabled or disabled>|<H.460.18 server or client>
- Example:
-
Neighbors
NB|ClientGnuGk|192.168.1.101:7632|enabled|H.460.18 client
NB|CountryGk|17.32.1.77:1719|enabled|
Number of Neighbors: 2
;
PrintCallInfo, pci
Print lots of detailed information about a single call, eg. codecs used, bandwidth, IPs etc.
- Format:
-
PrintCallInfo CALL-ID
- Example:
-
PrintCallInfo 40-06-dd-98-22-37-52-40-8c-b0-92-0e-18-60-99-07
MaintenanceMode , maintenance
Enable or disable maintenance mode.
Ongoing calls remain active, endpoints that are in a call remain registered.
All other registered endpoints will be unregistered, no new registrations or calls are accepted.
Endpoints in a call will be unregistered as soon as they end the call.
You can optionally set the IP of an alternate gatekeeper where registered endpoints will be directed to.
This alternate gatekeeper will only be used during maintenance mode.
- Format:
-
MaintenanceMode [Alternate-IP]
MaintenanceMode OFF
- Example:
-
MaintenanceMode 1.2.3.4
The section describes the messages output to the status interface.
GCF|IP|Aliases|Endpoint_Type;
The gatekeeper receives a GatekeeperRequest (GRQ) and responds with
a GatekeeperConfirm (GCF).
GRJ|IP|Aliases|Endpoint_Type|RejectReason;
The gatekeeper receives a GatekeeperRequest (GRQ) and responds with
a GatekeeperReject (GRJ).
RCF|IP:Port|Aliases|Endpoint_Type|EndpointID;
The gatekeeper receives a RegistrationRequest (RRQ) and responds with
a RegistrationConfirm (RCF).
RRJ|IP|Aliases|Endpoint_Type|RejectReason;
The gatekeeper receives a RegistrationRequest (RRQ) and responds with
a RegistrationReject (RRJ).
ACF|Caller_IP:Port|Caller_EndpointID|CRV|DestinationInfo|SrcInfo|IsAnswered|CallID|MediaRoute;
The gatekeeper receives an AdmissionRequest (ARQ) and responds with
an AdmissionConfirm (ACF).
ARJ|Caller_IP:Port|DestinationInfo|SrcInfo|IsAnswered|RejectReason|CallID;
The gatekeeper receives an AdmissionRequest (ARQ) and responds with
an AdmissionReject (ARJ).
DCF|IP|EndpointID|CRV|DisengageReason|CallID;
The gatekeeper receives a DisengageRequest (DRQ) and responds with
a DisengageConfirm (DCF).
DRJ|IP|EndpointID|CRV|RejectReason|CallID;
The gatekeeper receives a DisengageRequest (DRQ) and responds with
a DisengageReject (DRJ).
LCF|IP|EndpointID|DestinationInfo|SrcInfo;
The gatekeeper receives a LocationRequest (LRQ) and responds with
a LocationConfirm (LCF).
LRJ|IP|DestinationInfo|SrcInfo|RejectReason;
The gatekeeper receives a LocationRequest (LRQ) and responds with
a LocationReject (LRJ).
BCF|IP|EndpointID|Bandwidth;
The gatekeeper receives a BandwidthRequest (BRQ) and responds with
a BandwidthConfirm (BCF).
BRJ|IP|EndpointID|Bandwidth|RejectReason;
The gatekeeper receives a BandwidthRequest (BRQ) and responds with
a BandwidthReject (BRJ).
UCF|IP|EndpointID;
The gatekeeper receives an UnregistrationRequest (URQ) and responds with
an UnregistrationConfirm (UCF).
URJ|IP|EndpointID|RejectReason;
The gatekeeper receives an UnregistrationRequest (URQ) and responds with
an UnregistrationReject (URJ).
IRQ|IP:Port|EndpointID;
The gatekeeper sends an InfoRequest (IRQ) to an endpoint to query if it
is still alive. The endpoint must immediately respond with an InfoRequestResponse (IRR).
URQ|IP:Port|EndpointID|Reason;
The gatekeeper sends an UnregistrationRequest (URQ) to an endpoint to
cancel its registration. The endpoint shall respond with
an UnregistrationConfirm (UCF).
Setup|IP:Port|CallID;
The gatekeeper has received a Setup message from a registered endpoint.
SetupUnreg|IP:Port|CallID;
The gatekeeper has received a Setup message from an unregistered endpoint.
CDR|CallNo|CallId|Duration|Starttime|Endtime|CallerIP|CallerEndId| \
CalledIP|CalledEndId|DestinationInfo|SrcInfo|GatekeeperID;
After a call disconnected, the call detail record is shown (in one line).
RouteRequest|CallerIP:Port|CallerEndpointId|CallRef|VirtualQueue|CallerAlias|CallID|CalledIP:Port|VendorString|MsgFromIP:Port|MessageType;
Request for an external application to route an incoming call on a virtual queue.
This can be done with a RouteToAlias/RouteToGateway or RouteReject command.
Status port filtering facilitates control of the amount and type of output messages shown to the end user.
Filtering is done using regular expressions which are used to decide whether to include (show) or
exclude (ignore) an output message.
Filtering control is performed using the following set of commands:
addincludefilter REGEX
Adds regular expression to the include list
addexcludefilter REGEX
Adds regular expression to the exclude list
removeincludefilter INDEX
Removes filter at given INDEX from the include list
removeexcludefilter INDEX
Removes filter at given INDEX from the exclude list
filter 1|0
Enable/Disable message filtering
printincludefilters
Print include filter list
printexcludefilters
Print exclude filter list
In order to enable usage of predefined filters, a new section named
[GkStatus::Filtering] has been
introduced. You may specify predefined filters to be loaded when the status port starts.
- Example:
-
[GkStatus::Filtering]
IncludeFilter=.+
ExcludeFilter=.RQ
Enable=1
When filtering is enabled using the the filter 1 command, all messages will be shown other than lines with ARQ, LRQ etc.
You may also type the following into the status port:
addincludefilter .+
addexcludefilter .RQ
filter 1
Note that if you enable filtering when there are no include filters defined this will automatically exclude all message output!
- Example to hide Tandberg's neighbor check and traversal zone keepalive messages:
-
[GkStatus::Filtering]
Enable=1
IncludeFilter=.+
ExcludeFilter=gatekeeper-monitoring-check
ExcludeFilter=SCR
- There is an additional switch to only print RCF events for previously unregistered endpoints and supress the refereh RCFs:
-
[GkStatus::Filtering]
NewRCFOnly=1
The format of status port event messages may be altered to reorder or include options not included in the standard output format.
NOTE: This section has no effect on the format of the response of status port commans, like eg. PrintAllRegistrationsVerbose.
The settings in this section may be updated by reloading the configuration while the gatekeeper is running.
Compact=1
Default: 0
Whether to use standard format or compact format parameters (mainly used with NATType variable)
RCF=%{IP:Port}|%{Aliases}|%{Endpoint_Type}|%{EndpointID}|%{NATType}|%{Vendor}
Default: N/A
The RFC event has the following parameters available:
- IP:Port - IP and port the registration was detected on (external NAT address if behind NAT)
- Aliases - Complete list of aliases for the registration
- Endpoint_Type - Endpoint type (ie terminal,gateway) of the registered endpoint
- EndpointID - endpoint id assigned to the registration
- NATType - NAT Method of registration (ie Native,GnuGk,H.460.17,H.460.18 etc)
- Vendor - Vendor information of the registering device
URQ=%{IP:Port}|%{Aliases}|%{Endpoint_Type}|%{EndpointID}|%{NATType}|%{Vendor}|%{EndpointRASAddr}|%{URQReason}
Default: N/A
The URQ event has the following parameters available:
- IP:Port - IP and port the registration was detected on (external NAT address if behind NAT)
- Aliases - Complete list of aliases for the registration
- Endpoint_Type - Endpoint type (ie terminal,gateway) of the registered endpoint
- EndpointID - endpoint id assigned to the registration
- NATType - NAT Method of registration (ie Native,GnuGk,H.460.17,H.460.18 etc)
- Vendor - Vendor information of the registering device
- EndpointRASAddr - Endpoint RAS address
- URQReason - Unregistration reason
- Example:
-
[GkStatus::Message]
Compact=0
RCF=%{IP:Port}|%{Aliases}|%{Endpoint_Type}|%{EndpointID}|%{NATType}|%{Vendor}
URQ=%{IP:Port}|%{Aliases}|%{Endpoint_Type}|%{EndpointID}|%{NATType}|%{Vendor}|%{EndpointRASAddr}|%{URQReason}
Next
Previous
Contents
Chapters:
Contents ·
Introduction ·
Installation ·
Getting started ·
Basic Config ·
Routed Mode & Proxy ·
Routing ·
RAS Config ·
Authentication ·
Accounting ·
Neighbors ·
Per Endpoint Config ·
Advanced Config ·
Monitoring ·
Advanced Topics
|