Hello Immo,

Have you tried setting the vcs traversal server protocoll to assent, it seems 
to be working on some vcs x-versions.

xConfiguration Zones Zone 2 TraversalServer H323 Protocol: Assent

I have manage to get it to work by doing so, few month back when i was testing 
same scenario.

Rgs
Egil Hasting


On 14. jan. 2013, at 11:34, Immo Wehrenberg <[email protected]> wrote:

> Hi,
> thanks for clarification. 
> I think the packet dump indicates that this is the case. Just to be sure, 
> here is the relevant configuration of GnuGk and the VCS:
> 
> GnuGk:
> | [RoutedMode]
> | GKRouted=1
> | H245Routed=1
> | CallSignalPort=1720
> | CallSignalHandlerNumber=4
> | AcceptNeighborsCalls=0
> | AcceptUnregisteredCalls=0
> | RemoveH245AddressOnTunneling=1
> | RemoveCallOnDRQ=0
> | DropCallsByReleaseComplete=1
> | SendReleaseCompleteOnDRQ=1
> | SupportNATedEndpoints=1
> | ForwardOnFacility=1
> | EnableH46018=1
> | 
> | [RasSrv::Neighbors]
> | VCSServer=GnuGk
> | 
> | [Neighbor::VCSServer]
> | ;;from unknown IP
> | Host=xx.15.xx.112:6123
> | SendPrefixes=*
> | AcceptPrefixes=*
> | H46018Client=1
> | H46018Server=0
> | SendAuthUser=test
> | SendPassword=test
> 
> and configuration of the traversal zone on the VCS:
> 
> | *c xConfiguration Zones Zone 2 Name: "test-gnugk"
> | *c xConfiguration Zones Zone 2 HopCount: 15
> | *c xConfiguration Zones Zone 2 H323 Mode: On
> | *c xConfiguration Zones Zone 2 SIP Mode: Off
> | *c xConfiguration Zones Zone 2 Type: TraversalServer
> | *c xConfiguration Zones Zone 2 TraversalServer Authentication Mode: 
> DoNotCheckCredentials
> | *c xConfiguration Zones Zone 2 TraversalServer Authentication UserName: 
> "test"
> | *c xConfiguration Zones Zone 2 TraversalServer Registrations: Allow
> | *c xConfiguration Zones Zone 2 TraversalServer UDPProbe RetryInterval: 2
> | *c xConfiguration Zones Zone 2 TraversalServer UDPProbe RetryCount: 5
> | *c xConfiguration Zones Zone 2 TraversalServer UDPProbe KeepAliveInterval: 
> 20
> | *c xConfiguration Zones Zone 2 TraversalServer TCPProbe RetryInterval: 2
> | *c xConfiguration Zones Zone 2 TraversalServer TCPProbe RetryCount: 5
> | *c xConfiguration Zones Zone 2 TraversalServer TCPProbe KeepAliveInterval: 
> 20
> | *c xConfiguration Zones Zone 2 TraversalServer H323 Protocol: H46018
> | *c xConfiguration Zones Zone 2 TraversalServer H323 H46019 Demultiplexing 
> Mode: On
> | *c xConfiguration Zones Zone 2 TraversalServer H323 Port: 6123
> | *c xConfiguration Zones Zone 2 TraversalServer SIP Protocol: Assent
> | *c xConfiguration Zones Zone 2 TraversalServer SIP Port: 7003
> | *c xConfiguration Zones Zone 2 TraversalServer SIP Transport: TLS
> | *c xConfiguration Zones Zone 2 TraversalServer SIP TLS Verify Mode: Off
> | *c xConfiguration Zones Zone 2 TraversalServer SIP TLS Verify Subject Name: 
> ""
> | *c xConfiguration Zones Zone 2 TraversalServer SIP Poison Mode: Off
> | *c xConfiguration Zones Zone 2 TraversalServer SIP Media Encryption Mode: 
> Auto
> 
> Does anything in here look incorrect?
> 
> Unfortunately my C++ kung-foo isn't sufficient to figure out how the md5 hash 
> is generated. Since this is beside of the sequence number the only thing that 
> is different to the VCS dump, I suspect this as a potential source of the 
> problem. Just to be sure: can someone point me to the location in the source 
> to change the initial value of the sequence number from '1' to something 
> "random" (would change the constant to some number that appears to be random, 
> just to make sure that this is not the cause of the problem).
> 
> Thanks for all your help,
> 
> Immo
> ________________________________________
> From: Jan Willamowius [[email protected]]
> Sent: Wednesday, January 09, 2013 23:40
> To: [email protected]
> Subject: Re: [Openh323gk-users] Problem registering GnuGk to VCS Expressway 
> as traversal client
> 
> Hi,
> 
> the _endpoint_ registration is different from the traversal zone
> neighbor registration. A VCS should send a similar SCI than GnuGk when
> neighboring.
> 
> To the best of my knowledge, the generation of the MD5 hash is not
> documented in any H.235 standard (even so its the most popular and
> interoperable hash in use). GnuGk does it like the old OpenH323 code
> did it and so far the hash always matched. The code is my only
> reference.
> 
> Regards,
> Jan
> 
> Immo Wehrenberg wrote:
>> Hi Jan,
>> thanks for your fast reply. What exactly do you mean by "different in 
>> structure"? The idea is to replace the second VCS by the GnuGk as neighbor 
>> to the VCS-Expressway in the traversal zone. The dump from the VCS packet 
>> was taken when it connected to the very same traversal zone as the one I 
>> tried to connect the GnuGk to.
>> 
>> I therefore assume that the VCS is configured correctly (as it works with 
>> another VCS instead of the GnuGk). It also matches the configuration 
>> suggested by the manual you quoted. I also assume that the configuration of 
>> the GnuGk is correct, as the SCI looks similar. Still, I'm happy to play 
>> with configuration settings if anyone suggests alternative settings.
>> 
>> I'd agree with you that it sounds unlikely, that the VCS refuses to play 
>> with the GnuGk because it starts with sequence number 1 instead of a random 
>> one. However, the packet trace indicates that this is one of the two 
>> relevant differences between a working and a non-working SCI for 
>> registration.
>> 
>> I would also be happy to verify that the VCS and the GnuGk are generating 
>> the md5-password-hashes properly if someone gives me information on how the 
>> hashes are generated (i.e. what format does the time stamp have in the hash. 
>> how is the password appended to the time stamp, are there any separators in 
>> the format) as this is the other possible issue that I see from the packet 
>> dump.
>> 
>> Best regards,
>> 
>> Immo
>> ________________________________________
>> From: Jan Willamowius [[email protected]]
>> Sent: Tuesday, January 08, 2013 22:10
>> To: [email protected]
>> Subject: Re: [Openh323gk-users] Problem registering GnuGk to VCS Expressway 
>> as traversal client
>> 
>> Hi Immo,
>> 
>> the SCIs must be different in structure, because neighbors establish a
>> traversal zone slighly different from endpoint registrations.
>> Did you configure GnuGk as traversal zone in the VCS ?
>> 
>> The GnuGk manual has a section on configuring the VCS:
>> http://www.gnugk.org/gnugk-manual-10.html#ss10.5
>> 
>> I really don't think the VCS is rejecting the neighbor because we start
>> sequence numbers at 1.
>> 
>> Regards,
>> Jan
>> 
>> --
>> Jan Willamowius, Founder of the GNU Gatekeeper Project
>> EMail  : [email protected]
>> Website: http://www.gnugk.org
>> Support: http://www.willamowius.com/gnugk-support.html
>> 
>> 
>> Immo Wehrenberg wrote:
>>> Dear List,
>>> I'm trying to connect a GnuGk to a Cisco VCS Expressway as traversal
>>> client using a sligthly adopted version of the example configuration
>>> in the manual (http://www.gnugk.org/gnugk-manual-10.html).
>>> 
>>> Unfortunately, the GnuGk is unable to register at the Cisco VCS.
>>> 
>>> I have done a detailed analysis of that behaviour:
>>> 
>>> As expected, the GnuGk sends a H.225 SCI to the VCS Expresway. A
>>> packet decoding with Wireshark looks as follows:
>>> 
>>> Frame 12: 101 bytes on wire (808 bits), 101 bytes captured (808 bits)
>>> Ethernet II, Src: CadmusCo_xx:22:xx (08:22:27:xx:22:xx), Dst: 
>>> Cisco_xx:78:xx (c4:7d:4f:xx:78:xx)
>>> Internet Protocol Version 4, Src: 192.168.77.72 (192.168.77.72), Dst: 
>>> xx.15.130.112 (xx.15.130.112)
>>> User Datagram Protocol, Src Port: h323gatestat (1719), Dst Port: 
>>> backup-express (6123)
>>> H.225.0 RAS
>>>    RasMessage: serviceControlIndication (30)
>>>        serviceControlIndication
>>>            requestSeqNum: 1
>>>            serviceControl: 1 item
>>>                Item 0
>>>                    ServiceControlSession
>>>                        sessionId: 0
>>>                        reason: open (0)
>>>                            open: NULL
>>>            cryptoTokens: 1 item
>>>                Item 0
>>>                    CryptoH323Token: cryptoGKPwdHash (1)
>>>                        cryptoGKPwdHash
>>>                            gatekeeperId: test
>>>                            timeStamp: Jan  7, 2013 21:06:34.000000000 CET
>>>                            token
>>>                                algorithmOID: 1.2.840.113549.2.5 (md5)
>>>                                paramS
>>>                                hash: 3101089b79e22f2609507fbcb2174772 [bit 
>>> length 128]
>>>            featureSet
>>>                .... 0... replacementFeatureSet: False
>>>                supportedFeatures: 1 item
>>>                    Item 0: Signalling Traversal
>>>                        FeatureDescriptor
>>>                            id: standard (0)
>>>                                standard: 18 - Signalling Traversal
>>> 
>>> The VCS Answers (Ethernet/IP/UDP headers ommitted)
>>> 
>>> H.225.0 RAS
>>>    RasMessage: serviceControlResponse (31)
>>>        serviceControlResponse
>>>            requestSeqNum: 1
>>>            result: failed (1)
>>>                failed: NULL
>>> 
>>> To compare that with a working configuration, I registered another Cisco VCS
>>> as traversal client and have again decoded a packet dump of the registration
>>> with wireshark:
>>> 
>>> H.225.0 RAS
>>>    RasMessage: serviceControlIndication (30)
>>>        serviceControlIndication
>>>            requestSeqNum: 57923
>>>            serviceControl: 1 item
>>>                Item 0
>>>                    ServiceControlSession
>>>                        sessionId: 0
>>>                        reason: open (0)
>>>                            open: NULL
>>>            cryptoTokens: 1 item
>>>                Item 0
>>>                    CryptoH323Token: cryptoGKPwdHash (1)
>>>                        cryptoGKPwdHash
>>>                            gatekeeperId: test
>>>                            timeStamp: Jan  8, 2013 12:24:40.000000000 CET
>>>                            token
>>>                                algorithmOID: 1.2.840.113549.2.5 (md5)
>>>                                paramS
>>>                                hash: 54a3c3fe4fa909743b38bd940b882ed4 [bit 
>>> length 128]
>>>            featureSet
>>>                .... 0... replacementFeatureSet: False
>>>                supportedFeatures: 1 item
>>>                    Item 0: Signalling Traversal
>>>                        FeatureDescriptor
>>>                            id: standard (0)
>>>                                standard: 18 - Signalling Traversal
>>> 
>>> 
>>> which leads to a successful registration:
>>> 
>>> H.225.0 RAS
>>>    RasMessage: serviceControlResponse (31)
>>>        serviceControlResponse
>>>            requestSeqNum: 57923
>>>            result: started (0)
>>>                started: NULL
>>>            featureSet
>>>                0... .... replacementFeatureSet: False
>>>                supportedFeatures: 1 item
>>>                    Item 0: Signalling Traversal
>>>                        FeatureDescriptor
>>>                            id: standard (0)
>>>                                standard: 18 - Signalling Traversal
>>>            genericData: 2 items
>>>                Item 0: Signalling Traversal
>>>                    GenericData
>>>                        id: standard (0)
>>>                            standard: 18 - Signalling Traversal
>>>                        parameters: 1 item
>>>                Item 1
>>>                    GenericData
>>>                        id: nonStandard (2)
>>>                            nonStandard: c2f2d2a2-1527-11dd-a123-0fc456d89593
>>>                        parameters: 1 item
>>> 
>>> Time is synchronized by ntp on the VCS and the GnuGk. The time is the
>>> same on the Expressway and the GnuGk-Host
>>> 
>>> In the packet dump, I see only three differences from which I only see
>>> two of them as a
>>> 
>>> 1) requestSeqNum is appearantly random on the VCS and 1 on the GnuGk.
>>> A randomly chosen requestSeqNum makes IP spoofing much more difficult, so
>>> that may be a security measurement of the VCS to reject messages using
>>> 1 as sequence number. It should be fairly easy to exchange the 1 with
>>> some unpredictable random number though (maybe using openssls RAND_*
>>> funktions?). Unfortunately, GnuGk is real C++ code which is not one
>>> of the languages i'm able to write.
>>> 2) The timestamp differs
>>> Which is not surprising as the snapshots where taken at different
>>> time.
>>> That one is obvious and should not be a source of the problem
>>> 3) The hash differs.
>>> That is as well obvious, as the timestamp is part of the hash. However, I
>>> was not able to figure out how that hash is created exactly so i could
>>> not verify wether the hash is created equally on both systems.
>>> (In particular, my C++ is not good enough to identify the correct part
>>> of the code in GnuGk and I have either not found or not understood how
>>> to create that hash correctly in the standard. Any pointer to a
>>> reasonably simple to understand description would be appreciated.)
>>> 
>>> Have I missed something? Any Ideas?
>>> 
>>> Thanks in advance,
>>> 
>>> Immo
> 
> --
> Jan Willamowius, [email protected], http://www.gnugk.org/
> 
> ------------------------------------------------------------------------------
> Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
> and much more. Keep your Java skills current with LearnJavaNow -
> 200+ hours of step-by-step video tutorials by Java experts.
> SALE $49.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122612
> _______________________________________________________
> 
> Posting: mailto:[email protected]
> 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/
> 
> 
> 
> ------------------------------------------------------------------------------
> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
> MVPs and experts. SALE $99.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122412
> _______________________________________________________
> 
> Posting: mailto:[email protected]
> 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/


------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122412
_______________________________________________________

Posting: mailto:[email protected]
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/

Reply via email to