我测试过另外一个h.323客户端,能够直接穿透NAT,不需要另外设置gk服务器和附加设备,估计没用STUN,他好像只是改了一点OpenOpenh323协议栈。
有哪位大虾解决过这问题?是否可以指点一下,不胜感谢。

解决方案 »

  1.   

    常用的H.323穿透NAT/防火墙的办法有三种,即增加代理(Proxy)、升级防火墙和增加具有H.323ALG功能的多媒体业务网关。    1.增加代理(Proxy)    增加代理是指在终端与防火墙之间增加一种特殊类型的网关,使终端的呼叫过程看起来像被分成两个部分,私网终端到代理和代理到公网终端。代理通过这个呼叫过程进行中转解决了NAT问题。    2.升级防火墙    升级防火墙是指将传统防火墙升级为具有H.323ALG功能的防火墙。ALG(ApplicationLevelGateway)是应用层网关,是NAT或防火墙上的附加功能,它能识别应用层中的信令,然后通知NAT或防火墙在适当的时间建立适当的映射,并按照映射后的地址修改消息中的相应参数,ALG还须通知NAT或防火墙在适当的时间取消适当的映射。    3.增加具有H.323ALG功能的多媒体网关    增加具有H.323ALG功能的多媒体网关与升级防火墙的方法类似,只不过其不用升级防火墙,而是在原有的普通防火墙的基础上增加专门的具有H.323ALG功能的多媒体业务网关设备。
      

  2.   

    我上面都说了,不增加设备,不更改服务器(现在用的是GNUGK),上面的解决方法似乎有点违背题意,不过,还是要谢谢你。
      

  3.   

    可能用驱动改了协议底层吧,就象VNN
    http://www.vnn.cn/cn/develope.html
      

  4.   

    用udp穿越NAT其实也是要个中转服务器做一次消息传递。你可以参考这种方法:
    NAT后面的设备之间直接建立连接的方法:
    中文翻译见:http://www.donews.net/zwell/archive/2004/07/21/46653.aspx原文:http://www.andrew.cmu.edu/user/ggw/WBFD.pdf
    http://blog.csdn.net/xfreedom/archive/2004/09/20/110159.aspx
      

  5.   

    H.323不增加代理直接穿透NAT是不可能的。
    我不知道你所测试的是那种客户端,我也不清楚你的网络应用环境。如果它确实直接穿透了NAT,一定是用了某种与代理相关的机制。只是你没有发现而已。改H.323协议栈就更不现实了,除非你不和别人的终端互通。
      

  6.   

    想问问楼主是如何测试能穿NAT的客户端的!!
      

  7.   

    我的测试很简单,在不同局域网能打通或者看看gk的log就知道了,呵呵
      

  8.   

    楼上的
    这几天刚接触h.323,下一步工作可能会要用到gk,都在一步一步了解中,我只是知道有这么个东西,具体还没研究过。