Abes The logic is correct. The parent gk acts as a gateway for the child. Aliases of endpoints registered to the child are added to the alias list on the parent GK for the child so calls from the outside can be routed to the child. Posting debug traces of the child gatekeeper with respect to the registration issue would help diagnose that issue. Simon -----Original Message----- From: Abes Dabir [mailto:abes.dabir@xxxxxxxxxxxxx] Sent: 04 March 2014 06:21 To: GNU Gatekeeper Users Subject: Additive registrations getting mixed up on child GK Hi, I'm having issues with additive registrations and I was hoping you could help me out by either confirming a bug, or correcting any misconceptions on my part. I have a setup with a parent GK, child GK with additive registrations turned on, and 2 endpoints behind the child. The 1st endpoint registers as I would expect. When the 2nd endpoint registers, its registration on the child GK shows up with its alias, as well as that of the 1st endpoint: RCF|192.168.217.23:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h3 RCF|23_ID|terminal|6992_endp RCF|192.168.217.85:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h3 RCF|23_ID=6872:dialedDigits=h323:6872:h323_ID|terminal|6993_endp I would expect the child GK's registration on the parent to be a concatenated list of all the endpoints behind the child, but I would expect each endpoint's registration on the child GK to be listed individually. The behaviour is the same on versions 3.4 and 3.5. From this point on, I seem to be in a bad state and several problems can occur, such as: - An incoming call doesn't get routed correctly (couldn't reproduce this reliably) - If I restart the 1st endpoint, I keep getting registrations rejections: GCF|192.168.217.23|6836|terminal; RRJ|192.168.217.23|6836:dialedDigits=h323:6836:h323_ID|terminal|duplicat RRJ|eAlias; - If I then restart the 2nd endpoint as well, I get: RRJ|10.111.0.12|6872:dialedDigits=h323:6872:h323_ID|unknown|fullRegistra RRJ|tionRequired; RRJ|10.111.0.12|6836:dialedDigits=h323:6836:h323_ID|unknown|fullRegistra RRJ|tionRequired; I've added all further details about my setup and the problem below. If you need any additional info, or would me to try different things, I would be happy to do so. Thanks, Abes Dabir Details: ===== Parent GK (name = MagorH323GK): 10.111.0.1 (internal), (there is a public interface as well, but it isn't relevant to this problem) Child GK (name = innie2-61): 10.111.0.4, 192.168.217.226 (internal) Endpoint 1: 6836@192.168.217.23 Endpoint 2: 6972@192.168.217.85 Registrations on child GK (name = innie2-61): ============================================= After 6836 registers: -------------------------- AllRegistrations RCF|192.168.217.23:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h3 RCF|23_ID|terminal|6992_endp ; Number of Endpoints: 1 After 6872 registers: -------------------------- AllRegistrations RCF|192.168.217.23:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h3 RCF|23_ID|terminal|6992_endp ; RCF|192.168.217.85:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h3 RCF|23_ID=6872:dialedDigits=h323:6872:h323_ID|terminal|6993_endp ; Number of Endpoints: 2 ; Registrations on parent GK (name = MagorH323GK): ============================================= AllRegistrations RCF|10.111.0.12:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h323_ RCF|ID=6872:dialedDigits=h323:6872:h323_ID|gateway,gatekeeper|2330_endp ; Child GK logs for 6872 registering: =================================== The log below on the child GK show the registration request from the endpoint (6872) coming into the child GK, the child forwarding the request to the parent, the parent responding, and the child forwarding the response to the endpoint (containing both 6872 & 6836 !!!). 2014/03/03 14:32:53.853 2 RasSrv.cxx(175) RAS Read from 192.168.217.85:1719 2014/03/03 14:32:53.853 3 RasSrv.cxx(252) RAS registrationRequest { requestSeqNum = 23320 protocolIdentifier = 0.0.8.2250.0.6 discoveryComplete = true callSignalAddress = 1 entries { [0]=ipAddress { ip = 4 octets { c0 a8 d9 55 ...U } port = 1720 } } rasAddress = 1 entries { [0]=ipAddress { ip = 4 octets { c0 a8 d9 55 ...U } port = 1719 } } terminalType = { vendor = { vendor = { t35CountryCode = 9 t35Extension = 0 manufacturerCode = 61 } productId = 21 octets { 46 72 65 65 53 57 49 54 43 48 20 6d 6f 64 5f 68 FreeSWITCH mod_h 33 32 33 00 00 323.. } versionId = 30 octets { 31 2e 30 61 6c 70 68 61 31 20 28 48 33 32 33 70 1.0alpha1 (H323p 6c 75 73 20 76 31 2e 32 34 2e 30 29 00 00 lus v1.24.0).. } } terminal = { } mc = false undefinedNode = false } terminalAlias = 2 entries { [0]=dialedDigits "6872" [1]=h323_ID 9 characters { 0068 0033 0032 0033 003a 0036 0038 0037 h323:687 0032 2 } } gatekeeperIdentifier = 9 characters { 0069 006e 006e 0069 0065 0032 002d 0036 innie2-6 0031 1 } endpointVendor = { vendor = { t35CountryCode = 9 t35Extension = 0 manufacturerCode = 61 } productId = 21 octets { 46 72 65 65 53 57 49 54 43 48 20 6d 6f 64 5f 68 FreeSWITCH mod_h 33 32 33 00 00 323.. } versionId = 30 octets { 31 2e 30 61 6c 70 68 61 31 20 28 48 33 32 33 70 1.0alpha1 (H323p 6c 75 73 20 76 31 2e 32 34 2e 30 29 00 00 lus v1.24.0).. } } timeToLive = 30 keepAlive = false willSupplyUUIEs = true maintainConnection = false supportsAltGK = <<null>> usageReportingCapability = { nonStandardUsageTypes = 0 entries { } startTime = <<null>> endTime = <<null>> terminationCause = <<null>> } callCreditCapability = { canEnforceDurationLimit = true } } 2014/03/03 14:32:53.854 3 RasSrv.cxx(264) RAS Send to 10.111.0.1:1719 registrationRequest { requestSeqNum = 6 protocolIdentifier = 0.0.8.2250.0.2 nonStandardData = { nonStandardIdentifier = h221NonStandard { t35CountryCode = 138 t35Extension = 2 manufacturerCode = 2 } data = 14 octets { 49 50 3d 31 30 2e 31 31 31 2e 30 2e 31 32 IP=10.111.0.12 } } discoveryComplete = true callSignalAddress = 1 entries { [0]=ipAddress { ip = 4 octets { 0a 6f 00 0c .o.. } port = 1720 } } rasAddress = 1 entries { [0]=ipAddress { ip = 4 octets { 0a 6f 00 0c .o.. } port = 1719 } } terminalType = { mc = false undefinedNode = false } terminalAlias = 2 entries { [0]=dialedDigits "6872" [1]=h323_ID 9 characters { 0068 0033 0032 0033 003a 0036 0038 0037 h323:687 0032 2 } } gatekeeperIdentifier = 11 characters { 004d 0061 0067 006f 0072 0048 0033 0032 MagorH32 0033 0047 004b 3GK } endpointVendor = { vendor = { t35CountryCode = 138 t35Extension = 0 manufacturerCode = 2 } } keepAlive = true endpointIdentifier = 9 characters { 0032 0033 0033 0030 005f 0065 006e 0064 2330_end 0070 p } willSupplyUUIEs = false maintainConnection = false additiveRegistration = <<null>> supportsAltGK = <<null>> supportsAssignedGK = false } 2014/03/03 14:32:53.866 3 RasSrv.cxx(252) RAS registrationConfirm { requestSeqNum = 6 protocolIdentifier = 0.0.8.2250.0.2 callSignalAddress = 1 entries { [0]=ipAddress { ip = 4 octets { 0a 6f 00 01 .o.. } port = 1720 } } terminalAlias = 5 entries { [0]=h323_ID 9 characters { 0069 006e 006e 0069 0065 0032 002d 0036 innie2-6 0031 1 } [1]=dialedDigits "6836" [2]=h323_ID 9 characters { 0068 0033 0032 0033 003a 0036 0038 0033 h323:683 0036 6 } [3]=dialedDigits "6872" [4]=h323_ID 9 characters { 0068 0033 0032 0033 003a 0036 0038 0037 h323:687 0032 2 } } gatekeeperIdentifier = 11 characters { 004d 0061 0067 006f 0072 0048 0033 0032 MagorH32 0033 0047 004b 3GK } endpointIdentifier = 9 characters { 0032 0033 0033 0030 005f 0065 006e 0064 2330_end 0070 p } timeToLive = 60 willRespondToIRR = false maintainConnection = false supportsAdditiveRegistration = <<null>> } 2014/03/03 14:32:53.866 2 RasSrv.cxx(1640) RAS Trapped RCF 2014/03/03 14:32:53.867 1 RasTbl.cxx(112) New EP|192.168.217.85:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h32 EP|3_ID=6872:dialedDigits=h323:6872:h323_ID|terminal|6993_endp 2014/03/03 14:32:53.867 2 gkacct.cxx(1034) GKACCT Successfully logged event 256 for endpoint 6993_endp 2014/03/03 14:32:53.867 2 RasSrv.cxx(422) RCF|192.168.217.85:1720|innie2-61:h323_ID=6836:dialedDigits=h323:6836:h3 RCF|23_ID=6872:dialedDigits=h323:6872:h323_ID|terminal|6993_endp ; 2014/03/03 14:32:53.867 3 RasSrv.cxx(264) RAS Send to 192.168.217.85:1719 registrationConfirm { requestSeqNum = 23320 protocolIdentifier = 0.0.8.2250.0.6 nonStandardData = { nonStandardIdentifier = h221NonStandard { t35CountryCode = 138 t35Extension = 2 manufacturerCode = 2 } data = 5 octets { 4e 6f 4e 41 54 NoNAT } } callSignalAddress = 1 entries { [0]=ipAddress { ip = 4 octets { c0 a8 d9 e2 .... } port = 1720 } } terminalAlias = 5 entries { [0]=h323_ID 9 characters { 0069 006e 006e 0069 0065 0032 002d 0036 innie2-6 0031 1 } [1]=dialedDigits "6836" [2]=h323_ID 9 characters { 0068 0033 0032 0033 003a 0036 0038 0033 h323:683 0036 6 } [3]=dialedDigits "6872" [4]=h323_ID 9 characters { 0068 0033 0032 0033 003a 0036 0038 0037 h323:687 0032 2 } } gatekeeperIdentifier = 9 characters { 0069 006e 006e 0069 0065 0032 002d 0036 innie2-6 0031 1 } endpointIdentifier = 9 characters { 0036 0039 0039 0033 005f 0065 006e 0064 6993_end 0070 p } timeToLive = 60 willRespondToIRR = false maintainConnection = false serviceControl = 1 entries { [0]={ sessionId = 0 contents = callCreditServiceControl { callStartingPoint = connect <<null>> } reason = open <<null>> } } supportsAdditiveRegistration = <<null>> } ---------------------------------------------------------------------------- -- Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk _______________________________________________________ Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx Archive: http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-users Unsubscribe: http://lists.sourceforge.net/lists/listinfo/openh323gk-users Homepage: http://www.gnugk.org/ ------------------------------------------------------------------------------ Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk _______________________________________________________ Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx Archive: http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-users Unsubscribe: http://lists.sourceforge.net/lists/listinfo/openh323gk-users Homepage: http://www.gnugk.org/