如何遥开内外网穿透的问题 --- MCU做简单外网代理

如何遥开内外网穿透的问题 --- MCU做简单外网代理

上头要求研究如何让一个在某一内网里的MCU所召开的会议让外网EP(公网或其他能到达公网的EP)参加进来.

我提出了两个方案:

           1. 把原有使用openh323的程序升级到h323plus,利用其h.460.18 ,19 或其上的Nat功能,配合公网的GnuGK来实现内外网的穿透.

           2. 用另一个MCU直接放到公网上代理内网会议.
          
(部门还有人提出什么修改openh323底层通信部分以用自己的连接发送h323数据,或另写一套能完全代理h323的协议用自己创建的TCP ,UDP来传输之类的方案。我觉得对于人手有限的小团队来说都不现实。看上头怎么决定吧;( )

比较这两方案,前者 h323plus对h460.18,19的支持虽然是有了,但它给的例子在我们实验室里跑起来就出错,我觉得它目前好像不是很完善,估计到他完善起立还需些时间。而第二种方案比较方便,不必要改动过多代码即可在短时间内实现.
       具体做法如下:

                1.内网MCU  (以后称为mcuA ) 召开一个会议,内网的EP参加该 MCU上的会议.
                2. mcuA 通过邀请 外网MCU(以后称为mcuB) 参加该会议.
                          这个时候会发生以下通信过程:
                                       1) 信令通道建立:mcuA呼叫mcuB ,他们间建立了点对点的h.225及h.245通信.
                                       2) 媒体逻辑通道建立: 这里的Rtp通道其实是由UDP来实现的,所以只要mcuA先发起对mcuB的数据传输,网关上的pinhold就开了,那么反方向的数据即可由mcuB到mcuA.

                                       3) T120通道建立:T120是条TCP通道,通常建立时mcuA,B 双方都会同时试图创建到对方的这条通道,只要其中一条建立成功即可,一般情况下只有mcuA的建立过程能通过防火墙或网关.
                3. 这时内外网的音频视频数据都可互相传输了。
                4. 外网的EP只要拨到公网的mcuB即可参加mcuA上召开的会议了。
                5. 至于会议管理,可以在mcuA和B间用扩展h.245来实现,这点就不难了。
            


 估计很多同行也都有为h.323内外网穿透和防火墙的问题伤脑筋,我想这个方案可以给大家一点帮助吧.

你可能感兴趣的:(如何遥开内外网穿透的问题 --- MCU做简单外网代理)