"); //-->
前面提到NAT后的终端拨打公网: 公网终端正常,NAT后的终端无法看到
和听到公网终端图像与声音。
解决方法之一是使用STUN技术:
http://bgp.potaroo.net/ietf/rfc-pdf/rfc3489.pdf
简单来说,STUN解决的过程如下:
1、 将STUN Client放在NAT后的终端中。
2、 该终端在发送OLC之前调用STUN Client,去连接位于公网的任一台STUN Server.
3、 STUN Server与STUN Client进行STUN Messgae交互(STUN Server将对应的RTP/RTCP经NAT转换后的地址告之STUN Client)。
4、 该终端在打开本地逻辑通道时,使用STUN Client已经发送过的地址作为RTP/RTCP地址。并且在填写OLC时将STUN Client得到的NAT转换后的地址填写到OLC报文中。比如:STUN Client使用192.168.1.4:40000与192.168.1.4:40001 与STUN Server通讯;得到的经NAT转换后的地址为:221.12.27.14:2000与221.12.27.14:2039;那么终端在打开本地的RTP/RTCP就指定为40000与40001,同时OLC中地址替换为221.12.27.14:2000与221.12.27.14:2039。
5、 这样公网的终端将会把数据发到221.12.27.14:2000与221.12.27.14:2039上,NAT会送到192.168.1.4:40000与192.168.1.4:40001上。
在《这篇文档》中,提及了4种NAT类型,上面使用STUN的结果会有不同:
● 如果STUN Server和被叫不是同一主机,那么只有Full Cone类型的NAT才能成功。
● 如果STUN Server和被叫是同一主机(也就是被叫终端安装STUN Server),但STUN Server使用的端口与本地OLC的端口不同,那么Restricted Cone NAT类型的也能成功。
● 如果STUN Server和被叫是同一主机,而且STUN Server使用的端口与本地OLC的端口相同,那么都能成功。
OpenH323 在其class H323EndPoint/class H323_RTP_UDP/class RTP_UDP中已经加入了STUN Client支持,你只需要调用H323EndPoint ::SetSTUNServer(…),就可以完成Client的功能。其STUN Client的代码在PWLIB中:http://cvs.sourceforge.net/viewcvs.py/openh323/pwlib/src/ptclib/pstun.cxx
虽然OpenH323没有提供STUN Server的支持,但是找到一个成熟的STUN Server/Client并添加到OpenH323中并不是一件难事:http://sourceforge.net/projects/stun/ 是不错的选择。
将http://sourceforge.net/projects/stun/的代码放入PWLIB中编译,并相应的修改OpenH323,以支持STUN Server。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
纳芯微出席车百会2026年度论坛:解码智能动力系统演进,芯片成为关键“底层能力”
谁有ucgui里的lcdslin.c文件?
超温监测自动控制电路(CD4011)
英飞凌与为光能源携手推进 SST 商业化
ON低待机能耗、低成本开关电源控制器NCP1215应用实例
《嵌入式系统设计》21-Linux嵌入式系统设计(Linux驱动设计到)及MP3播放器设计(开发工具选择)
冰箱电子温控器
NEXXIM Ansoft 用于射频、模拟和混合信号电路设计的新一代仿真器白皮书
NE5565电子镇流器控制器
韩国抢攻玻璃基板标准对抗英特尔,Absolics、三星加速商业化
晶圆代工与存储芯片厂商资本支出(CapEx)大幅上调
请问怎样才能进入4510的中断?
Bourns 推出 SRP2008DP 系列,助力小型化高密度电源设计
资腾亮相SEMICON China展示CMP超洁净刷轮,助力先进制程良率提升
贸泽电子蝉联“2025年度华强电子网优质供应商奖”
由NE555、LM567组成的温频转换式温控器
《嵌入式系统设计》22-MP3播放器设计(设计方法到块设备读取)
Microchip扩展dsPIC33A DSC产品系列,专为高密度AI数据中心电源、复杂电机控制及智能传感应用而设计
请问哪位前辈知道vxworks中可以获得目标机硬件信息的函数?
告别片面认知:厘清半导体代工市场的误区
村田中华圈读书节呈现“人、文、技”交集
vxworks基础-c编程
新手请教一个usrAppInit的初级问题,谢谢!
自动调功式温控器(SF3914、CD4066、CD4017)
展示现代安全技术的气囊系统模型车
MSP430Flash (Bootstrap编程)
《嵌入式系统设计》23-MP3播放器设计(Uboot上增加新设备Ramdisk到结束)及网络存储设计(开始到结束)及一部分补充说明
超温监测警示电路(LM35、LM741)
NCP1200简化的开关电源设计
EasyARM1138嵌入式专题讲座