Dear Stewart: thanks very much for your help, this time i set my gnugk in internet, this is my enviroment: 1. A is gnugk 2.2.0 run in Debian/Linux, it is in internet and its ip is : 61.61.61.61 2. B is in LAN, and B's IP is 192.168.0.138, netmask is:255.255.255.0 3. C is in LAN, and C's IP is 192.168.1.57, netmask is: 255.255.255.0 4. both B and C is Debian/Linux.
and now, i try to start Gnugk first, its gatekeeper.ini can be found above: sudo gnugk -ttt -r
then, i start ohphone in C: ohphone -g 61.61.61.61 -u Who -l i can see: GCF|211.111.111.57|Who:h323_ID|terminal; RCF|211.111.111.57:1720|Who:h323_ID|terminal|2629_endp;
then i start ohphone in B: ohphone -g 61.61.61.61 -u Sandy Who this time, B telles me :
Sandy is calling host Who Command? "Who is not online"
I use ethereal to capture packets on B: 192.168.0.138 61.61.61.61 H.225.0 RAS: gatekeeperRequest 61.61.61.61 192.168.0.138 H.225.0 RAS: gatekeeperConfirm 192.168.0.138 61.61.61.61 H.225.0 RAS: registrationRequest 61.61.61.61 192.168.0.138 H.225.0 RAS: registrationConfirm 192.168.0.138 61.61.61.61 H.225.0 RAS: admissionRequest 61.61.61.61 192.168.0.138 H.225.0 RAS: admissionConfirm 192.168.0.138 61.61.61.61 H.225.0 RAS: infoRequestResponse 192.168.0.138 61.61.61.61 H.225.0 RAS: disengageRequest 61.61.61.61 192.168.0.138 H.225.0 RAS: disengageConfirm
I guess B(192.168.0.138) send infoRequestResponse to Gk and ask gk to test whether have "Who", but GK telles B don't have.
but actually, C is regist with "Who" and wait for incoming calls.
this is the whole info from gk by monitoring port 7000: GCF|211.111.111.57|Who:h323_ID|terminal; //C(192.168.1.57) map the real IP 211.111.111.57 using iptables. RCF|192.168.1.57:1720|Who:h323_ID|terminal|2629_endp; GCF|61.14.11.22|Sandy:h323_ID|terminal; //61.14.11.22 may the real IP of B RCF|192.168.0.138:1720|Sandy:h323_ID|terminal|2630_endp; ACF|192.168.0.138:1720|2630_endp|27397|Who:h323_ID|Sandy:h323_ID|false; DCF|61.14.11.22|2630_endp|27397|normalDrop; UCF|61.14.1.22|2630_endp; URQ|211.111.111.57:32781|2629_endp|maintenance;
Why can not B call C?
thx very much.
Hi,
My systems all call by E.164 number, so I never learned about calling by h323_ID, and may not be able to help you. However, I would still think that if the GK sent an ACF to B, then ACF should have contained a call signal address for B to send a Setup. Since GKRouted is on, the call signal address should be that of the GK (61.61.61.61 port 1721). But, your Ethereal trace shows that Setup was not Sent. I also don't understand why B would send IRR. Look at the ACF packet received by B, and see if has the right call signal address and if it has any strange fields. Also, try setting a high trace level in gnugk -- there may be some useful information there.
For C to get an incoming call, its NAT needs to forward needed ports to 192.168.1.57 (TCP 1720, UDP ports for RTP (unless you depend on ProxyForNAT), and H.245 ports (unless you can use fast start or H.245 tunneling)).
--Stewart
------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________________
List: Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx Archive: http://sourceforge.net/mailarchive/forum.php?forum_id=8549 Homepage: http://www.gnugk.org/