Sip终端穿越防火墙的方法

文档序号:7791438阅读:2262来源:国知局
专利名称:Sip终端穿越防火墙的方法
技术领域
本发明涉及一种SIP终端穿越防火墙的方法。
背景技术
下一代网络(NGN)是承载在IP网络之上,提供话音、数据和多媒体等业务的开放式网络架构,代表着未来电信网发展的方向。但是许多私有网络使用了 NAT和防火墙设备,对进出的信令流和媒体流有很多约束和限制,如果不能正确规避这些约束条件,则无法进行正常通信。因此NAT (Network Address Translation,网络地址转换)/防火墙的穿越是多媒体通信中普遍存在的一个问题。以SIP(Session Initial Protocol,会话发起协议)穿越NAT的问题来说,IETF (Internet Engineering Task Force,互联网工程任务组)已经提出了多种解决方案。例如:ALG(Application Layer Gateways,应用层网关)、中间盒控制协议(Middlebox Control Protocol) > STUN (Simple Traversal of UDP through NAT,NAT 的 UDP 简单穿越)、TURN(Traversal Using Relay NAT,中继方式穿越NAT)、RSIP (RealmSpecific IP,域专用 IP)、对称 RTP(Symmetric Real-time Transport Protocol)等。但是以上任何一种方法都不能适合所有需要穿越的情形,单独使用其中任何一种方法都存在不适合或不完全适合当前情形的缺陷。

发明内容
本发明的目的是提出一种SIP终端穿越防火墙的方法,这一方法不需要对STUN,TURN或RSIP进行扩展就可适用于各种NAT,通过综合运用上面某几种协议,使之征最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷。本发明所提出的SIP终端穿越防火墙的方法,包括以下步骤:在第一终端收集本地传输地址;启动NAT的UDP简单穿越;确定传输地址的优先级,所述优先级反映终端在该地址上接收媒体流的优先级别;构建初始化信息,所述初始化消息由一系列媒体流组成,每个媒体流的任意对等设备之间实现最大连通可能性的传输地址是由公网转发服务器提供的地址;在第二终端进行响应处理,包括连通性检查和地址收集过程;如果该第二终端接受,则发送接受消息;以及在该第一终端进行接受信息处理,发送命令并由SIP服务器转发至响应者。在本发明的一实施例中,在所述NAT的UDP简单穿越步骤中,通过信令协议交换用户名和密码。在本发明的一实施例中,在第一终端收集本地传输地址的步骤包括:所述第一终端从服务器上获得主机上一个接口绑定一个端口的本地传输地址。在本发明的一实施例中,所述优先级的取值范围是O到I之间,并按照被传输媒体
流量来确定。在本发明的一实施例中,所述终端为IP电话机。根据本发明的方法,针对SIP呼叫流程实现穿越防火墙的功能。对于SIP终端来说,只需要定义一些SDP(Sessionescription ProtocOl)附加属性即可,对于别的多媒体信令协议也需要制定一些相应的机制来实现。这种方式的优点是可以根据通讯双方所处的网络环境,选取适合穿越NAT/防火墙的方式。


为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式
作详细说明,其中:图1示出本发明实施例的示例性实施环境。图2示出本发明一实施例的穿越方法流程图。
具体实施例方式图1示出本发明实施例的示例性实施环境。参照图1所示,环境中包含一个SIP服务器120和多个SIP (会话发起协议)终端101-103。这些SIP终端101-103连接到服务器120。在此,各个SIP终端101-103与SIP服务器120的连接网络之间存在多个NAT网关111-113。因此从各NAT网关111-113外部向各SIP终端101-103的通信都需要通过NAT网关和其中配置的防火墙。每一 NAT网关111-113内可具有多个SIP终端,在此仅示例性的示出其中一个。在一个实施例中,SIP终端可以是IP电话机。图2示出本发明一实施例的穿越方法流程图。参照图2所示,方法包括以下步骤:步骤201,收集本地传输地址。会话者,例如各个SIP终端101-103从SIP服务器120上获得主机上一个物理(或虚拟)接口绑定一个端口的本地传输地址。步骤202,启动NAT的UDP简单穿越(STUN)。STUN为传统流程,在此不再展开。值得一提的是,与传统的STUN流程不同,本实施例的用户名和密码可以通过信令协议进行交换。步骤203,确定传输地址的优先级。优先级反映了终端在该地址上接收媒体流的优先级别。在一实施例中,优先级的取值范围O到I之间,并按照被传输媒体流量来确定。步骤204,构建初始化信息(Initiate Message)。初始化消息由一系列媒体流组成,每个媒体流的任意对等设备之间实现最大连通可能性的传输地址是由公网转发服务器(如TURN)提供的地址。步骤205,响应处理,在此连通性检查和执行本流程中描述的地址收集过程。步骤206,生成接受信息(Accept Message)。若接受则发送接受消息,其构造过程与初始化信息类似。步骤207,接受信息处理。接受过程需要发起者使用Send命令,由SIP服务器转发至响应者。步骤208,作为一个非必须步骤,在初始化或接受消息交换过程结束后,双方可能仍将继续收集传输地址。为了在各个SIP终端实施本发明的方法,可在SIP终端中配置完整(Full)版本或精简(Lite)版本的程序。完整版本的程序的特点包括:对网络拓扑没有特定的要求;作为发起者(Caller),将充当控制(Controlling)的角色;发起连接性检查,并响应对方的连接性检查;支持Triggered连接性检查。精简版本的程序的特点包括:直接连接到互联网;本身不搜集候选者,只有主机(host)类型的候选者;不主动发起连接性检查;响应对方的连接性检查。在软件配置时,可以在一些SIP终端中配置完整版本的程序,而在另一些SIP终端中配置精简版本的程序。当配置有精简版本程序的终端和配置有完整版本程序的终端连接时,后者充当控制角色,前者充当被控制角色。可以理解,在实施SIP呼叫流程之前,需要进行相关类库的初始化,分配相应的内存池,以及会话(Session)结构的初始化。作为呼叫者,其流程如下:A.发出 INVITE:I创建Tranport相关结构;2候选者的生成;3在发出的INVITE中,附加相关的信息在SDP中;B.接收对方2000K后:I解析2000K中SDP里包含的信息;2根据这些信息生成check list ;3对check list进行连接性检查;4撤销Transport相关结构;5根据连接性检查的结果,重新创建RTP/RTCP socket,并关闭原有的socket。另外,作为被呼叫者,其内部流程如下:A.接受到对方的INVITE后I解析INVITE中SDP里包含的信息;B.发出 2000K:I创建Tranport相关结构;2候选者的生成;4生成check list并进行连接性检查;5 响应对方的 Trigger check ;6根据连接性检查的结果重新创建RTP/RTCP socket,并关闭原有的socket。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
权利要求
1.一种SIP终端穿越防火墙的方法,包括以下步骤: 在第一终端收集本地传输地址; 启动NAT的UDP简单穿越; 确定传输地址的优先级,所述优先级反映终端在该地址上接收媒体流的优先级别; 构建初始化信息,所述初始化消息由一系列媒体流组成,每个媒体流的任意对等设备之间实现最大连通可能性的传输地址是由公网转发服务器提供的地址; 在第二终端进行响应处理,包括连通性检查和地址收集过程; 如果该第二终端接受,则发送接受消息; 在该第一终端进行接受信息处理,发送命令并由SIP服务器转发至响应者。
2.如权利要求1所述的方法,其特征在于,在所述NAT的UDP简单穿越步骤中,通过信令协议交换用户名和密码。
3.如权利要求1所述的方法,其特征在于,在第一终端收集本地传输地址的步骤包括:所述第一终端从服务器上获得主机上一个接口绑定一个端口的本地传输地址。
4.如权利要求1所述的方法,其特征在于,所述优先级的取值范围是O到I之间,并按照被传输媒体流量来确定。
5.如权利要求1所述的方法,其特征在于,所述终端为IP电话机。
全文摘要
本发明涉及一种SIP终端穿越防火墙的方法,包括以下步骤在第一终端收集本地传输地址;启动NAT的UDP简单穿越;确定传输地址的优先级,所述优先级反映终端在该地址上接收媒体流的优先级别;构建初始化信息,所述初始化消息由一系列媒体流组成,每个媒体流的任意对等设备之间实现最大连通可能性的传输地址是由公网转发服务器提供的地址;在第二终端进行响应处理,包括连通性检查和地址收集过程;如果该第二终端接受,则发送接受消息;以及在该第一终端进行接受信息处理,发送命令并由SIP服务器转发至响应者。
文档编号H04L29/06GK103179091SQ20111043409
公开日2013年6月26日 申请日期2011年12月21日 优先权日2011年12月21日
发明者朱洪, 杨兵 申请人:上海亿人通信终端有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1