[Openh323gk-users] GnuGK with 2 Cirilium gatekeepers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

 

I am currently trying to use GnuGK to proxy calls between 2 Cirilium gatekeeper neighbors.  The setup is as follows:

 

Gateway A  --- > Cirilium GK A --- > GnuGK --- > Cirilium GK B --- > Gateway B

                         aaa.aaa.aa.a     ggg.ggg.gg.g    bbb.bbb.bb.b

 

 

We wish to use GnuGK to proxy between GK A and GK B because we do not want GK A and GK B to know each other’s IP address.

 

So calls originate from GK A and terminate with GK B.  We are seeing the following:

 

  1. GK A sends an LRQ to GnuGK with correct dialed digits and an LRQ reply address of aaa.aaa.aa.a
  2. GnuGK matches the dialed digits to neighbor GK B
  3. GnuGK sends an LRQ to GK B with the correct dialed digits, but an LRQ reply address of aaa.aaa.aa.a
  4. Since GK B does not know about GK A, it sends an LRJ back to GK A and the call fails

 

I was expecting GnuGK to send the LRQ to GK B with an LRQ reply address of ggg.ggg.gg.g.  I can see why the call fails.  I don’t know what I can do to make the call work.

 

Any ideas or experience with this sort of configuration would be greatly appreciated.  I have included my config file below.

 

Best regards,

 

-          Glenn Hess

 

 

[Gatekeeper::Main]

Fourtytwo=42

Name=ProxyGK

#Home=195.71.129.69

#NetworkInterfaces=

#TimeToLive=600

#TotalBandwidth=100000

#StatusPort=7000

#UseBroadcastListener=0

 

##

## You should never need to change any of the following values.

## They are mainly used for testing or very sophisticated applications.

##

#UnicastRasPort=1719

#MulticastPort=1718

#MulticastGroup=224.0.1.41

#EndpointSignalPort=9999

#EndpointSignalPort=1720

#ListenQueueLength=1024

# [ms], default 1000

#SignalReadTimeout=3000

# [ms], default 3000

#StatusReadTimeout=5000

 

 

[RoutedMode]

GKRouted=1

H245Routed=0

CallSignalPort=1719

CallSignalHandlerNumber=1

RemoveH245AddressOnTunneling=0

AcceptNeighborsCalls=1

AcceptUnregisteredCalls=1

SupportNATedEndpoints=1

DropCallsByReleaseComplete=1

#RemoveCallOnDRQ=1

#SendReleaseCompleteOnDRQ=0

#ScreenDisplayIE=

#ScreenCallingPartyNumberIE=

#ForwardOnFacility=1

#ShowForwarderNumber=1

#Q931PortRange=20000-20999

#H245PortRange=30000-30999

 

[Proxy]

Enable=1

#InternalNetwork=10.0.1.0/255.255.255.0,127.0.0.0/8

#T120PortRange=40000-40999

#RTPPortRange=50000-59999

#ProxyForNAT=1

#ProxyForSameNAT=0

 

#[Endpoint]

#Gatekeeper=auto

#Gatekeeper=210.58.112.188

#Type=Gateway

#H323ID=CitronProxy

#E164=18888600000

#Password=

#Prefix=18888600,1888890003

#TimeToLive=900

#RRQRetryInterval=10

#ARQTimeout=2

#UnregisterOnReload=0

#NATRetryInterval=60

#NATKeepaliveInterval=86400

 

#[RasSrv::RRQFeatures]

#AcceptEndpointIdentifier=1

#AcceptGatewayPrefixes=1

 

[RasSrv::ARQFeatures]

ArjReasonRouteCallToSCN=0

ArjReasonRouteCallToGatekeeper=1

CallUnregisteredEndpoints=1

RemoveTrailingChar=#

 

[RasSrv::RRQAuth]

## On a RRQ the h323-alias is queried from this section.

## If there is an entry the endpint is authenticated against the given rules.

 

## If there is no entry the default action is performed. The default action

## is to confirm the RRQ, unless the parameter "default=reject" is given.

##

## Notation:

##   <authrules> :=  empty  |  <authrule> "&" <authrules>

##   <authrule>  := <authtype> ":" <authparams>

##   <authtype>  := "sigaddr" | "sigip"

##   <autparams> := [!&]*

## The notation and meaning of <authparams> depends on <authtype>:

## - sigaddr: extended regular expression that has to match agains the

##     "PrintOn(ostream)" representation of the signal address of the request.

##     Example: "sigaddr:.*ipAddress .* ip = .* c3 47 e2 a5 .*port = 1720.*"

## - sigip: specialized form of "sigaddr". Write the signalling ip adresse

##     using (commonly used) decimal notation: "byteA.byteB.byteC.byteD:port"

##     Example of the above sigaddr: "sigip:195.71.226.165:1720"

##

## This parameters should consider a HUP signal.

 

#rossi-gt1=sigaddr:.*ipAddress .* ip = .* c3 47 e2 a2 .*port = 1720.*

#rossi-gt2=sigaddr:.*ipAddress .* ip = .* c3 47 e2 a5 .*port = 1720.*

#rossi-gt3=sigip:195.71.226.165:1720

 

default=confirm

 

[GkStatus::Auth]

rule=allow

 

##

## The GK would send LRQ to its neighbors if the destination of ARQ is unknown.

## A neighbor is selected if its prefix match the destination or

## it has prefix '*'.

## Currently only one prefix is supported.

##

#

# GKID=ip[:port;prefix;password;dynamic]

#

[RasSrv::Neighbors]

GKA=aaa.aaa.aa.a:1719;900

GKB=bbb.bbb.bb.b:1719;13213084000

#GK1=203.60.151.5:1719;*;gk1

#GK2=203.60.151.9:1719;02

 

 

 

[RasSrv::LRQFeatures]

#NeighborTimeout=2

ForwardHopCount=2

AlwaysForwardLRQ=1

AcceptForwardedLRQ=1

#IncludeDestinationInfoInLCF=1

#CiscoGKCompatible=1

 

[Gatekeeper::Auth]

#SimplePasswordAuth=optional

#LDAPPasswordAuth=optional

#AliasAuth=sufficient;RRQ

#LDAPAliasAuth=sufficient;RRQ

#default=reject

default=allow

 

[Gatekeeper::DestAnalysis]

#OverlapSendDestAnalysis=required;ARQ

#default=reject

default=allow

 

# settings for inbound call distribution with virtual queue

[CTI::Agents]

VirtualQueue=CC

CTI_Timeout=120

 

# EOF

 


[Index of Archives]     [SIP]     [Open H.323]     [Gnu Gatekeeper]     [Asterisk PBX]     [ISDN Cause Codes]     [Yosemite News]

  Powered by Linux