Abes You are absolutely correct however when you restart the child, the child has no idea either that it has an endpoint connected to it. The endpoint at the next lightweight RRQ will be told a full registration is required since there is no records in its child's registration table (because you restarted). When the full RRQ is received then the record is entered into the registration table and an additive registration is sent to the parent. I can certainly add a check of the child registration table to ensure any local endpoint registrations received before the registration to the parent is complete are sent to the parent. The logic due to the way additive registrations work would need to be to register only the endpoint first THEN send an additive registration in a lightweight RRQ for any endpoints already registered. I will make the fix when I get the chance. Simon -----Original Message----- From: Abes Dabir [mailto:abes.dabir@xxxxxxxxxxxxx] Sent: 23 February 2013 09:39 To: GNU Gatekeeper Users Subject: Re: Crashing parent GnuGK while attempting additive registration from child Hi Simon, So, in a "good" situation, with the endpoint being 6820, this is what the child's registration looks like on the parent: RCF|10.111.0.4:1720|Phoenix-ChildGK:h323_ID=6820:dialedDigits=h323:6820: RCF|h323_ID|gateway,gatekeeper|1648_endp As you mentioned, the endpoint's alias, 6820, is added to the child. If I restart the child GnuGk with a very short pause between stop and start (3s), it comes back, and the endpoint is registered to it, and it is registered with the parent, but the registration on the parent looks like this: RCF|10.111.0.4:1720|Phoenix-ChildGK:h323_ID|gateway,gatekeeper|1648_endp The endpoint's alias is NOT added to that of the child. Looking at the child's logs when this happens: 1. endpoint registers with the child 2. child sends a gatekeeperRequest and gets the response 3. child registers only itself with the parent Please let me know if you need logs, etc. Abes On 13-02-22 06:13 PM, Simon Horne wrote: > Abes > > I'm not entirely sure what you mean "the parent doesn't know about > the endpoint", the endpoint is added as just another alias of the > child gatekeeper registered (as a gateway) to the parent. There is no > current way of identifying in the parent that there is actually an > endpoint beyond the child only that there is a new alias for the > child. This is something that requires further investigation. > > Version 3.3 is probably a little way off. > > Simon > > -----Original Message----- > From: Abes Dabir [mailto:abes.dabir@xxxxxxxxxxxxx] > Sent: 23 February 2013 07:53 > To: GNU Gatekeeper Users > Subject: Re: Crashing parent GnuGK while attempting > additive registration from child > > Looks like the issue is fixed in 3.3. > > After some testing, I can get into a situation where the endpoint is > registered with the child, and the child is registered with the > parent, but the parent doesn't know about the endpoint. I'll open > another thread for this once I have verified the exact scenario to reproduce. > > Thanks for your help. Btw, any idea when 3.3 might be ready to be released? > Abes > > On 13-02-22 04:01 PM, Jan Willamowius wrote: >> Hi, >> >> it seems Simon has already rewritten exactly that method (SetAliases) >> for GnuGk 3.3. Did you try if the issue still happens with the latest >> CVS ? >> >> Regards, >> Jan >> >> Abes Dabir wrote: >>> Simon, Jan, >>> >>> Here is the backtrace: >>> >>> [Thread debugging using libthread_db enabled] Using host >>> libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". >>> Core was generated by `/opt/magor/gnugk/bin/gnugk --config >>> /opt/magor/conf/gatekeeper.ini --pid /var/r'. >>> Program terminated with signal 11, Segmentation fault. >>> #0 0x000000000087d497 in PASN_Choice::operator= (this=0x0, >>> other=...) at ptclib/asner.cxx:1795 >>> 1795 ptclib/asner.cxx: No such file or directory. >>> (gdb) >>> (gdb) bt >>> #0 0x000000000087d497 in PASN_Choice::operator= (this=0x0, >>> other=...) at ptclib/asner.cxx:1795 >>> #1 0x0000000000472b71 in H225_AliasAddress::operator= (this=0x0) at >>> /home/abes/Downloads/test/h323plus/include/h225.h:500 >>> #2 0x0000000000453b04 in EndpointRec::SetAliases >>> (this=0x7f3cc8003cc0, a=..., additive=true) at RasTbl.cxx:660 >>> #3 0x00000000004e543f in >>> RegistrationRequestPDU::HandleAdditiveRegistration (this=0x17f7960, >>> ep=...) at RasSrv.cxx:2577 >>> #4 0x00000000004e26a7 in RegistrationRequestPDU::Process >>> (this=0x17f7960) at RasSrv.cxx:2055 >>> #5 0x00000000004d9094 in RasMsg::Exec (this=0x17f7960) at >>> RasSrv.cxx:382 >>> #6 0x000000000040c9b9 in Jobs::Run (this=0x17f7990) at job.cxx:409 >>> #7 0x000000000040b9de in Worker::Main (this=0x17f57a0) at >>> job.cxx:182 >>> #8 0x00000000008d979d in PThread::PX_ThreadStart (arg=0x17f57a0) at >>> ptlib/unix/tlibthrd.cxx:491 >>> #9 0x00007f3ced2a2e9a in start_thread () from >>> /lib/x86_64-linux-gnu/libpthread.so.0 >>> #10 0x00007f3cebe59cbd in clone () from >>> /lib/x86_64-linux-gnu/libc.so.6 >>> #11 0x0000000000000000 in ?? () >>> >>> >>> I was using the binaries before. The above is from a fresh >>> compilation as per the chap 14 instructions. Details: >>> >>> Gatekeeper(GNU) Version(3.2.0) >>> Ext(pthreads=1,radius=1,mysql=0,pgsql=0,firebird=0,odbc=0,sqlite=0,l >>> a >>> rge_fdset=0,crypto/ssl=1,h46018=0,h46023=1,ldap=0,ssh=0,ipv6=0,h235m >>> e >>> dia=0,lua=0,h46017=1,snmp=1) >>> H323Plu >>> s(1.25.0) PTLib(2.10.9) Build(Feb 22 2013, 14:10:06) Sys(Linux >>> x86_64 >>> 3.2.0-36-generic) >>> >>> >>> Cheers, >>> Abes >>> >>> On 13-02-22 08:24 AM, Jan Willamowius wrote: >>>> Hi Abes, >>>> >>>> could you please provide a stacktrace of the crash as explained in >>>> chapter 14.3 of the manual ? >>>> http://www.gnugk.org/gnugk-manual-14.html#ss14.3 >>>> >>>> Please make sure you do a "make clean" before the compile. >>>> >>>> Thanks, >>>> Jan >>>> >>>> Abes Dabir wrote: >>>>> Hi, >>>>> >>>>> I've got a small test network setup with a parent GnuGk, and 2 >>>>> child GnuGks. I've upgraded the parent and one of the children to >>>>> 3.2 and I'm trying to get additive registrations to work on the >>>>> two upgraded systems. I'm going to ignore the other child that is >>>>> still running 3.1 for now. Basically, an endpoint behind the >>>>> child, 6820, tries registering with the child, which sends the >>>>> registration to the parent, at which point, the parent GnuGk crashes. >>>>> >>>>> Each of the two GnuGk instances is straddling a NAT. Here is a >>>>> crude representation of the network setup: >>>>> >>>>> endpoint(6820)[172.22.0.100] -------- >>>>> [172.22.0.10]GnuGk-Child[10.111.0.4] -------- >>>>> [10.111.0.1]GnuGk-Parent[192.168.217.119] >>>>> >>>>> >>>>> I'd appreciate any help in getting this setup to work. >>>>> >>>>> >>>>> Last lines of logging (Trace 5) on the parent before it dies: >>>>> ------------------------------------------------------------------ >>>>> - >>>>> ---------- >>>>> >>>>> 2013/02/21 18:08:00.855 4 RasSrv.cxx(241) RAS Receiving >>>>> on 10.111.0.1:1719(U) >>>>> 2013/02/21 18:08:00.856 2 RasSrv.cxx(176) RAS Read >>>>> from 10.111.0.4:1719 >>>>> 2013/02/21 18:08:00.856 3 RasSrv.cxx(250) RAS >>>>> registrationRequest { >>>>> requestSeqNum = 4 >>>>> protocolIdentifier = 0.0.8.2250.0.2 >>>>> nonStandardData = { >>>>> nonStandardIdentifier = h221NonStandard { >>>>> t35CountryCode = 138 >>>>> t35Extension = 2 >>>>> manufacturerCode = 2 >>>>> } >>>>> data = 13 octets { >>>>> 49 50 3d 31 30 2e 31 31 31 2e 30 2e 34 IP=10.111.0.4 >>>>> } >>>>> } >>>>> discoveryComplete = true >>>>> callSignalAddress = 1 entries { >>>>> [0]=ipAddress { >>>>> ip = 4 octets { >>>>> 0a 6f 00 04 .o.. >>>>> } >>>>> port = 1720 >>>>> } >>>>> } >>>>> rasAddress = 1 entries { >>>>> [0]=ipAddress { >>>>> ip = 4 octets { >>>>> 0a 6f 00 04 .o.. >>>>> } >>>>> port = 1719 >>>>> } >>>>> } >>>>> terminalType = { >>>>> mc = false >>>>> undefinedNode = false >>>>> } >>>>> terminalAlias = 2 entries { >>>>> [0]=dialedDigits "6820" >>>>> [1]=h323_ID 9 characters { >>>>> 0068 0033 0032 0033 003a 0036 0038 0032 h323:682 >>>>> 0030 0 >>>>> } >>>>> } >>>>> gatekeeperIdentifier = 11 characters { >>>>> 004d 0061 0067 006f 0072 0048 0033 0032 MagorH32 >>>>> 0033 0047 004b 3GK >>>>> } >>>>> endpointVendor = { >>>>> vendor = { >>>>> t35CountryCode = 0 >>>>> t35Extension = 0 >>>>> manufacturerCode = 0 >>>>> } >>>>> } >>>>> keepAlive = true >>>>> endpointIdentifier = 9 characters { >>>>> 0032 0036 0038 0039 005f 0065 006e 0064 2689_end >>>>> 0070 p >>>>> } >>>>> willSupplyUUIEs = false >>>>> maintainConnection = false >>>>> additiveRegistration = <<null>> >>>>> supportsAltGK = <<null>> >>>>> supportsAssignedGK = false >>>>> } >>>>> 2013/02/21 18:08:00.856 5 job.cxx(338) JOB Worker >>>>> threads: 7 total - 6 busy, 1 idle >>>>> 2013/02/21 18:08:00.856 5 job.cxx(180) JOB Starting >>>>> Job RRQ at Worker thread 140337482516224 >>>>> 2013/02/21 18:08:00.856 1 RasSrv.cxx(381) RAS RRQ >>>>> Received from 10.111.0.4:1719 >>>>> 2013/02/21 18:08:00.856 0 assert.cxx(112) PWLib > Assertion >>>>> fail: Invalid array element, file >>>>> /root/ptlib/include/ptlib/array.h, >>>>> line 1063 >>>>> >>>>> >>>>> >>>>> Log (Trace 3) from the child when it receives the RRQ from the >>>>> endpoint behind it, and sends it to the parent: >>>>> ------------------------------------------------------------------ >>>>> - >>>>> ------------------------------------------------------------------ >>>>> - >>>>> ------------ >>>>> >>>>> 2013/02/21 18:08:00.854 2 RasSrv.cxx(176) RAS Read >>>>> from 172.22.0.100:1719 >>>>> 2013/02/21 18:08:00.854 3 RasSrv.cxx(250) RAS >>>>> registrationRequest { >>>>> requestSeqNum = 42361 >>>>> protocolIdentifier = 0.0.8.2250.0.6 >>>>> discoveryComplete = false >>>>> callSignalAddress = 1 entries { >>>>> [0]=ipAddress { >>>>> ip = 4 octets { >>>>> ac 16 00 64 ...d >>>>> } >>>>> port = 1720 >>>>> } >>>>> } >>>>> rasAddress = 1 entries { >>>>> [0]=ipAddress { >>>>> ip = 4 octets { >>>>> ac 16 00 64 ...d >>>>> } >>>>> 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 "6820" >>>>> [1]=h323_ID 9 characters { >>>>> 0068 0033 0032 0033 003a 0036 0038 0032 h323:682 >>>>> 0030 0 >>>>> } >>>>> } >>>>> gatekeeperIdentifier = 15 characters { >>>>> 0050 0068 006f 0065 006e 0069 0078 002d Phoenix- >>>>> 0043 0068 0069 006c 0064 0047 004b ChildGK >>>>> } >>>>> 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 >>>>> endpointIdentifier = 9 characters { >>>>> 0038 0035 0038 0036 005f 0065 006e 0064 8586_end >>>>> 0070 p >>>>> } >>>>> willSupplyUUIEs = true >>>>> maintainConnection = false >>>>> supportsAltGK = <<null>> >>>>> usageReportingCapability = { >>>>> nonStandardUsageTypes = 0 entries { >>>>> } >>>>> startTime = <<null>> >>>>> endTime = <<null>> >>>>> terminationCause = <<null>> >>>>> } >>>>> callCreditCapability = { >>>>> canEnforceDurationLimit = true >>>>> } >>>>> } >>>>> 2013/02/21 18:08:00.855 1 RasSrv.cxx(381) RAS RRQ >>>>> Received from 172.22.0.100:1719 >>>>> 2013/02/21 18:08:00.855 3 RasSrv.cxx(262) RAS Send to >>>>> 10.111.0.1:1719 >>>>> registrationRequest { >>>>> requestSeqNum = 4 >>>>> protocolIdentifier = 0.0.8.2250.0.2 >>>>> nonStandardData = { >>>>> nonStandardIdentifier = h221NonStandard { >>>>> t35CountryCode = 138 >>>>> t35Extension = 2 >>>>> manufacturerCode = 2 >>>>> } >>>>> data = 13 octets { >>>>> 49 50 3d 31 30 2e 31 31 31 2e 30 2e 34 IP=10.111.0.4 >>>>> } >>>>> } >>>>> discoveryComplete = true >>>>> callSignalAddress = 1 entries { >>>>> [0]=ipAddress { >>>>> ip = 4 octets { >>>>> 0a 6f 00 04 .o.. >>>>> } >>>>> port = 1720 >>>>> } >>>>> } >>>>> rasAddress = 1 entries { >>>>> [0]=ipAddress { >>>>> ip = 4 octets { >>>>> 0a 6f 00 04 .o.. >>>>> } >>>>> port = 1719 >>>>> } >>>>> } >>>>> terminalType = { >>>>> mc = false >>>>> undefinedNode = false >>>>> } >>>>> terminalAlias = 2 entries { >>>>> [0]=dialedDigits "6820" >>>>> [1]=h323_ID 9 characters { >>>>> 0068 0033 0032 0033 003a 0036 0038 0032 h323:682 >>>>> 0030 0 >>>>> } >>>>> } >>>>> gatekeeperIdentifier = 11 characters { >>>>> 004d 0061 0067 006f 0072 0048 0033 0032 MagorH32 >>>>> 0033 0047 004b 3GK >>>>> } >>>>> endpointVendor = { >>>>> vendor = { >>>>> t35CountryCode = 0 >>>>> t35Extension = 0 >>>>> manufacturerCode = 0 >>>>> } >>>>> } >>>>> keepAlive = true >>>>> endpointIdentifier = 9 characters { >>>>> 0032 0036 0038 0039 005f 0065 006e 0064 2689_end >>>>> 0070 p >>>>> } >>>>> willSupplyUUIEs = false >>>>> maintainConnection = false >>>>> additiveRegistration = <<null>> >>>>> supportsAltGK = <<null>> >>>>> supportsAssignedGK = false >>>>> } >>>>> >>>>> >>>>> Configuration on the parent: >>>>> -------------------------------------- >>>>> >>>>> [Gatekeeper::Main] >>>>> Fourtytwo = 42 >>>>> Name = MagorH323GK >>>>> TimeToLive = 100 >>>>> StatusPort = 7000 >>>>> TraceLevel = 5 >>>>> Home = 10.111.0.1,192.168.217.119,127.0.0.1 >>>>> ExternalIP = 192.168.217.119 >>>>> >>>>> [RoutedMode] >>>>> GKRouted = 1 >>>>> H245Routed = 1 >>>>> AcceptUnregisteredCalls = 1 >>>>> AcceptNeighborsCalls = 1 >>>>> CallSignalPort = 1720 >>>>> CallSignalHandlerNumber = 1 >>>>> RemoveH245AddressOnTunneling = 1 >>>>> DropCallsByReleaseComplete = 1 >>>>> SupportNATedEndpoints = 1 >>>>> SupportCallingNATedEndpoints = 1 >>>>> Q931PortRange = 30000-30099 >>>>> H245PortRange = 31000-31099 >>>>> SendReleaseCompleteOnDRQ = 1 >>>>> >>>>> [Proxy] >>>>> Enable = 1 >>>>> InternalNetwork = 10.111.0.1/255.255.0.0 T120PortRange = >>>>> 32000-41999 RTPPortRange = 32000-41999 ProxyForNAT = 1 >>>>> ProxyForSameNAT = 0 ProxyAlways = 1 >>>>> >>>>> [RasSrv::LRQFeatures] >>>>> NeighborTimeout = 6 >>>>> ForwardHopCount = 8 >>>>> AlwaysForwardLRQ = 1 >>>>> IncludeDestinationInfoInLCF = 1 >>>>> CiscoGKCompatible = 1 >>>>> >>>>> [RasSrv::RRQFeatures] >>>>> EnableAdditiveRegistration=1 >>>>> >>>>> [RoutingPolicy] >>>>> default = explicit,internal,enum,srv,dns >>>>> >>>>> [GkStatus::Auth] >>>>> rule = explicit >>>>> DelayReject = 5 >>>>> 127.0.0.1 = allow >>>>> >>>>> [LogFile] >>>>> Rotate = Weekly >>>>> RotateDay = Sun >>>>> RotateTime = 00:59 >>>>> Filename = /var/log/magor/gnugk/gnugk.log >>>>> >>>>> [PortNotifications] >>>>> Q931PortOpen = >>>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk. >>>>> s >>>>> h %p %n %i Q931PortClose = >>>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk. >>>>> sh %p %n %i H245PortOpen = >>>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk. >>>>> s >>>>> h %p %n %i H245PortClose = >>>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk. >>>>> sh %p %n %i RTPPortOpen = >>>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk. >>>>> s >>>>> h %p %n %i RTPPortClose = >>>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk. >>>>> sh %p %n %i >>>>> >>>>> >>>>> >>>>> >>>>> Configuration on the child: >>>>> ----------------------------------- >>>>> >>>>> [Gatekeeper::Main] >>>>> Fourtytwo = 42 >>>>> Name = Phoenix-ChildGK >>>>> TimeToLive = 100 >>>>> StatusPort = 7000 >>>>> TraceLevel = 3 >>>>> Home = 172.22.0.10,10.111.0.4,127.0.0.1 ExternalIP = 10.111.0.4 >>>>> >>>>> [RoutedMode] >>>>> GKRouted = 1 >>>>> H245Routed = 1 >>>>> AcceptUnregisteredCalls = 1 >>>>> AcceptNeighborsCalls = 1 >>>>> CallSignalPort = 1720 >>>>> CallSignalHandlerNumber = 1 >>>>> RemoveH245AddressOnTunneling = 1 >>>>> DropCallsByReleaseComplete = 1 >>>>> SupportNATedEndpoints = 1 >>>>> SupportCallingNATedEndpoints = 1 >>>>> Q931PortRange = 30000-30099 >>>>> H245PortRange = 31000-31099 >>>>> SendReleaseCompleteOnDRQ = 1 >>>>> >>>>> [Proxy] >>>>> Enable = 1 >>>>> InternalNetwork = 172.22.0.10/255.255.255.0 T120PortRange = >>>>> 32000-41999 RTPPortRange = 32000-41999 ProxyForNAT = 1 >>>>> ProxyForSameNAT = 0 ProxyAlways = 1 >>>>> >>>>> [RasSrv::LRQFeatures] >>>>> NeighborTimeout = 6 >>>>> ForwardHopCount = 8 >>>>> AlwaysForwardLRQ = 1 >>>>> IncludeDestinationInfoInLCF = 1 >>>>> CiscoGKCompatible = 1 >>>>> >>>>> [RasSrv::RRQFeatures] >>>>> EnableAdditiveRegistration=1 >>>>> >>>>> [RoutingPolicy] >>>>> default = explicit,internal,parent >>>>> >>>>> [GkStatus::Auth] >>>>> rule = explicit >>>>> DelayReject = 5 >>>>> 127.0.0.1 = allow >>>>> >>>>> [LogFile] >>>>> Rotate = Weekly >>>>> RotateDay = Sun >>>>> RotateTime = 00:59 >>>>> Filename = /var/log/magor/gnugk/gnugk.log >>>>> >>>>> [PortNotifications] >>>>> Q931PortOpen = >>>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk. >>>>> s >>>>> h %p %n %i Q931PortClose = >>>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk. >>>>> sh %p %n %i H245PortOpen = >>>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk. >>>>> s >>>>> h %p %n %i H245PortClose = >>>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk. >>>>> sh %p %n %i RTPPortOpen = >>>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk. >>>>> s >>>>> h %p %n %i RTPPortClose = >>>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk. >>>>> sh %p %n %i >>>>> >>>>> [Endpoint] >>>>> Gatekeeper = 10.111.0.1 >>>>> EnableAdditiveRegistration=1 >>>>> >>>>> >>>>> >>>>> >>>>> Thanks, >>>>> Abes Dabir > > ---------------------------------------------------------------------- > ------ > -- > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics Download AppDynamics Lite > for free today: > http://p.sf.net/sfu/appdyn_d2d_feb > _______________________________________________________ > > Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx > Archive: > http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-use > rs > Unsubscribe: > http://lists.sourceforge.net/lists/listinfo/openh323gk-users > Homepage: http://www.gnugk.org/ > > > ---------------------------------------------------------------------- > -------- Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics Download AppDynamics Lite > for free today: > http://p.sf.net/sfu/appdyn_d2d_feb > _______________________________________________________ > > Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx > Archive: > http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-use > rs > Unsubscribe: > http://lists.sourceforge.net/lists/listinfo/openh323gk-users > Homepage: http://www.gnugk.org/ ---------------------------------------------------------------------------- -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________________ 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/ ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________________ 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/