VOIP NAT穿越之SIP信令穿越

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处。

本文是VOIP通信NAT系列专题的第三篇,

本文论述NAT对SIP协议穿越的影响。SIP协议是基于文本的,而他的一些地址是保存在消息头传输。NAT设备在没开启ALG情况下不会改动消息头地址,

多数client填写的地址都是内网地址,这就导致消息路由问题,SIP 信令穿越涉及两部分,一个是注冊。还有一个是INVITE(呼叫),涉及的消息头为contact头和via头,

contact头是告知对方自己直接可达的地址,via头告知对方,此消息是从哪个地址,哪个port送过来,接收端响应时依据via地址做响应,先说register, client注冊时

会把自己的地址port填写到contact头,但这个地址在nat环境下并无论用。注冊的作用是告知server自己的可达地址,后面有呼叫送给他时server直接送到这个地址就可以,

而client填写的私有地址在nat环境下并不可达。server兴许呼叫直接送这个地址是失败的。解决问题须要client支持 sip outbound, 其原理是server发现假设client是在nat环境下,则记录接收到register请求的地址和port。而不是contact地址和port。 这个地址和port一般是NAT设备给client映射的外部port,而NAT设备维护这个映射是 有时间限制的,为确保这个映射一直开启就须要client周期性发keep-alive包。包的类型有多种,有的直接周期发register,有的发options, rfc5626规范要求TCP用回车换行发送。UDP则用stun
的bind request 保持NAT 映射处于活跃状态。 这就攻克了呼叫client问题。 SIP穿越的还有一个问题是响应发送给谁。前面提到,响应者会依据via头做 response,但via头一般是内网地址。NAT环境下是不可达的,RFC 3581攻克了这个问题,通过在via头中添加 rport和received字段支持此扩展,rport在发起请求者的包中是空的,接收到收到后发现有这两个头,接收端会检測实际收到的包的地址和port,把这两个值填写到recived和rport中,告知请求发起者,同一时候在响应请求时把响应向这个地址和port发送,通常这个地址和port是NAT设备映射的地址和port。

至此SIP信令穿越问题完美解决。

下一篇文章讲述VOIP NAT穿越 之媒体穿越。

时间: 2024-10-10 10:15:59

VOIP NAT穿越之SIP信令穿越的相关文章

《FreeSWITCH: VoIP实战》:SIP 模块 - mod_sofia

SIP 模块是 FreeSWITCH 的主要模块,所以,值得拿出专门一章来讲解. 在前几章时里,你肯定见过几次 sofia 这个词,只是或许还不知道是什么意思.是这样的,Sofia-SIP 是由诺基亚公司开发的 SIP 协议栈,它以开源的许可证 LGPL 发布,为了避免重复发明轮子,FreeSWITCH 便直接使用了它. 在 FreeSWITCH 中,实现一些互联协议接口的模块称为 Endpoint.FreeSWITH 支持很多的 Endpoint, 如 SIP.H232等.那么实现 SIP 的

VOIP 通信 NAT穿越系列专题

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. 鉴于经常有人在QQ群(45211986)里问NAT穿越相关话题,本系列文章我将介绍NAT穿越相关内容,题目就叫VOIP  NAT穿透,没具体说SIP或者其他是因为VOIP包含信令 NAT和媒体的NAT,所以我将介绍这两部分,也是多数初学者容易混淆的内容,此系列专题将包括以下内容: 1.  NAT基本原理介绍及与VOIP关系 2  VOIP NAT穿越之SIP信令穿越 3. VOIP NAT穿越之媒体穿越

SIP穿越NAT SIP穿越防火墙-SBC

FireWall&NAT FireWall是一种被动网络安全防卫技术,位于网络的边界,在两个网络之间执行访问控制策略,防止外部网络对内部信息资源的非法访问,也可以阻止特定信息从内部网络被非法输出.一般来说,防火墙将过滤掉所有不请自到的网络通信(除指定开放的地址和端口). NAT技术分为基本的网络地址转换技术(NAT)和网络地址与端口转换技术(NAPT,Network Address and Port Translator),其主要功能是为流出内网的分组分配一个全局的IP地址和端口号作为其源地址和

[转]SIP穿越NAT&FireWall解决方案

原文链接(也是转载)http://blog.csdn.net/yetyongjin/article/details/6881491.我修改了部分错字. SIP从私网到公网会遇到什么样的问题呢? 1. 包的地址转换.2. SIP消息里面的SIP地址转换.3. SIP消息里面的SDP中的RTP地址转换. 网络现存结构复杂,SIP服务提供商并不一定是NETWORK提供商,很难要求客户只能使用某种方式的NAT&FireWall.如何找出一种可以满足各种网络的SIP应用解决方案呢? NAT和Firewal

多点IPsecVPN和NAT-T穿越的实现

实验 实验拓扑图: 实验环境: 在GNS3上面搭建五台路由器和三台PC机,R1,R4,R5作为VPN路由器,R2作为NAT地址转换路由器,ISP路由器作为运营商,使用VPCS模拟PC机客户端 实验要求: 配置多点IPsecVPN,实现C1能访问C2和C3,在NAT地址转换的环境下配置NAT-T,使外网的可以发起VPN隧道连接. 实验步骤: 配置各路由器接口和PC机IP地址: R1: R1(config)#int f0/0 R1(config-if)#ip add 192.168.10.1 255

STUN/TURN/ICE协议在P2P SIP中的应用(一)

1           说明 本文详细描述了基于STUN系列协议实现的P2P SIP电话过程,其中涉及到了SIP信令的交互,P2P的原理,以及STUN.TURN.ICE的协议交互 本文所提到的各个服务单元的交互均使用UDP,不涉及TCP的打洞及其他和TCP相关的操作. 本文假设通信双方均没有防火墙对协议以及端口的限制. 本文不涉及客户端的资源的发布与查找. 本文适用于有一定基础的读者,比如说知道NAT设备的不同类型及其特点.知道STUN/TURN/ICE协议的基本概念.知道SIP协议的相关交互流

FreeSwitch Nat穿透

NAT的种类:Full Cone NAT(全锥型NAT).Restricted Cone NAT(限制锥型NAT).Port Restricted Cone NAT(端口限制锥型).Symmetric NAT(对称型NAT). FreeSWITCH帮助终端穿越NAT的解决方案: 1.SIP穿越 FreeSWITCH默认使用ACL来判断对方是否处于NAT环境中,配置: <param name="apply-nat-acl" value="nat.auto"/&g

VoIP资料

RTPProxy rtp媒体代理使用及Win32移植. KamailioIMS 使用kamailio搭建IMS实例. Qos在Linphone中的实现分析 1.RTP统计:丢包.抖动.时延.使用带宽; 2.RTCP ; 3.TOS /DSCP; 4.RSVP资源预留; 5.Jitter buffer; 6.自适应抖动补偿; 7.自动调整发送比特率; H264格式 H264 Annnex格式及RTP网络传输格式之间关系. H264处理源码 H264常见处理: 1.使用Ffmpeg.X264对H26

DTMF在VOIP中的解决方案

双音多频DTMF(Dual Tone Multi-Frequency)信令,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令.DTMF也应用在交互式控制中,诸如语言菜单.语言邮件.电话银行和ATM终端等.由于DTMF在传统通信领域中的广泛使用,所以在VOIP中,DTMF仍是发挥着重要的作用. 一个DTMF信号由两个频率的音频信号叠加构成.每一对这样的音频信号唯一表示一个数字或符号.产生DTMF信号,就是利用两个不同频率的正弦波叠加以后形成的波形,解码时则采用改进的Goertz