RTP媒体流穿越方法、SIP服务器和SIP通信系统技术方案

技术编号:14027698 阅读:101 留言:0更新日期:2016-11-19 12:15
本发明专利技术公开了一种RTP媒体流穿越方法、SIP服务器和SIP通信系统,涉及通信领域,用于解决当互相传输RTP媒体流的SIP用户代理之间存在NAT设备时,RTP媒体流无法穿越NAT设备的问题。RTP媒体流穿越方法包括:所述SIP服务器接收主叫用户代理和被叫用户代理的SIP注册报文或注册保活报文,获取公网IP地址和公网端口号;根据主叫用户代理和被叫用户代理的公网IP地址和公网端口号向所述主叫用户代理和被叫用户代理发送报文以等待进行确认;判定用户代理类型;如果二者均为媒体代理类型,则将RTP媒体信息直接透传给另一方;如果有一方为媒体中继类型,则进行替换并将替换后的SIP报文转发给另一方。本发明专利技术的实施例应用于SIP通信。

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其涉及一种RTP媒体流穿越方法、SIP服务器和SIP通信系统
技术介绍
SIP(英文全称:Session Initiation Protocol,中文全称:会话初始协议)正逐渐成为VOIP(英文全称:Voice Over Internet Protocol,中文全称:IP语音)通信的主流协议。但是SIP通信过程需要结合其他协议来实现,目前经常与SIP共同使用的一种协议是RTP(英文全称:Real-time Transport Protocol,中文全称:实时传输协议),具体的,可以通过RTP协议传输媒体流。在VOIP组网环境中,通常包括SIP服务器以及互相进行VOIP业务的SIP用户代理,并且SIP用户代理与SIP服务器之间通过NAT设备进行隔离,使得SIP服务器位于公网中,SIP用户代理位于私网中。当SIP用户代理之间传输RTP媒体流信息时,在SIP报文中携带的是SIP用户代理的私网IP地址,或者当公网中存在STUN(英文全称:Simple Traversal of UDP over NATs,中文全称:网络地址转换的用户数据报协议简单穿越)服务器时,SIP用户代理可以从STUN服务器获取自己的公网IP地址并且在SIP报文中携带自己的公网IP地址,但是由于SIP报文为应用层数据,NAT设备无法对其进行解释以进行公网IP地址与私网IP地址的转换,因此,根据现有SIP协议,当互相传输RTP媒体流的SIP用户代理之间存在NAT设备时,RTP媒体流无法穿越NAT设备。
技术实现思路
本专利技术的实施例提供一种一种RTP媒体流穿越方法、SIP服务器和SIP通信系统,用于解决当互相传输RTP媒体流的SIP用户代理之间存在NAT设备时,RTP媒体流无法穿越NAT设备的问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供了一种RTP媒体流穿越方法,该方法包括:所述SIP服务器接收所述主叫用户代理的SIP注册报文或注册保活报文,并根据所述主叫用户代理的SIP注册报文或注册保活报文获取所述主叫用户代理的公网IP地址和公网端口号,接收所述被叫用户代理的SIP注册报文或注册保活报文,并根据所述被叫用户代理的SIP注册报文或注册保活报文获取所述被叫用户代理的公网IP地址和公网端口号;所述SIP服务器根据所述主叫用户代理的公网IP地址和公网端口号向所述主叫用户代理发送报文以等待所述主叫用户代理进行确认,并且根据所述被叫用户代理的公网IP地址和公网端口号向所述被叫用户代理发送报文以等待所述被叫用户代理进行确认;所述SIP服务器判定所述主叫用户代理为媒体中继类型或媒体代理类型,并且判定所述被叫用户代理为所述媒体中继类型或所述媒体代理类型;如果所述主叫用户代理以及所述被叫用户代理均为所述媒体代理类型,则所述SIP服务器将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息直接透传给另一方,以便于所述主叫用户代理与所述被叫用户代理根据对方的公网IP地址直接传输RTP媒体流,其中,所述RTP媒体信息包括IP地址和端口号;如果所述主叫用户代理或者所述被叫用户代理中的至少一方为所述媒体中继类型,则将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息中的IP地址替换为所述SIP服务器的IP地址,将所述SIP报文中的RTP媒体信息中的端口号替换为所述SIP服务器的端口,然后将替换后的SIP报文转发给所述主叫用户代理或所述被叫用户代理中的另一方,以便于所述主叫用户代理与所述被叫用户代理通过所述SIP服务器转发RTP媒体流。第二方面,提供了一种SIP服务器,该SIP服务器包括:接收单元,用于接收所述主叫用户代理的SIP注册报文或注册保活报文,接收所述被叫用户代理的SIP注册报文或注册保活报文;获取单元,用于根据所述接收单元接收到的所述主叫用户代理的SIP注册报文或注册保活报文获取所述主叫用户代理的公网IP地址和公网端口号,根据所述接收单元接收到的所述被叫用户代理的SIP注册报文或注册保活报文获取所述被叫用户代理的公网IP地址和公网端口号;发送单元,用于根据所述获取单元获取的所述主叫用户代理的公网IP地址和公网端口号向所述主叫用户代理发送报文以等待所述主叫用户代理进行确认,并且根据所述获取单元1032获取的所述被叫用户代理的公网IP地址和公网端口号向所述被叫用户代理发送报文以等待所述被叫用户代理进行确认;判定单元,用于判定所述主叫用户代理为媒体中继类型或媒体代理类型,并且判定所述被叫用户代理为所述媒体中继类型或所述媒体代理类型;所述发送单元,还用于如果所述判定单元判定所述主叫用户代理以及所述被叫用户代理均为所述媒体代理类型,则将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息直接透传给另一方,以便于所述主叫用户代理与所述被叫用户代理根据对方的公网IP地址直接传输RTP媒体流,其中,所述RTP媒体信息包括IP地址和端口号;替换单元,用于如果所述判定单元判定所述主叫用户代理或者所述被叫用户代理中的至少一方为所述媒体中继类型,则将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息中的IP地址替换为所述SIP服务器的IP地址,将所述SIP报文中的RTP媒体信息中的端口号替换为所述SIP服务器的端口;所述发送单元,还用于将所述替换单元替换后的SIP报文转发给所述主叫用户代理或所述被叫用户代理中的另一方,以便于所述主叫用户代理与所述被叫用户代理通过所述SIP服务器转发RTP媒体流。第三方面,提供了一种SIP通信系统,包括如第二方面所述的SIP服务器。本专利技术的实施例提供的RTP媒体流穿越方法、SIP服务器和SIP通信系统,通过利用报文测试用户代理的公网IP地址是否可达来判断根据公网IP地址能否穿越NAT设备,从而将用户代理分为媒体中继类型或媒体代理类型,对于通信双方的用户代理均为根据公网IP地址能够穿越NAT设备的媒体代理类型时,可以根据对方的公网IP地址直接传输RTP媒体流,对于通信双方的用户代理中有一方为根据公网IP地址不可穿越NAT设备的媒体中继类型时,由用户代理将RTP媒体流发送至SIP服务器,由SIP服务器作为转发中继转发给另一方,解决了当互相传输RTP媒体流的SIP用户代理之间存在NAT设备时,RTP媒体流无法穿越NAT设备的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术的实施例提供的SIP通信系统的结构示意图;图2为本专利技术的实施例提供的一种RTP媒体流穿越方法的流程示意图;图3为本专利技术的实施例提供的另一种RTP媒体流穿越方法的流程示意图;图4为本专利技术的实施例提供的SIP通信系统的IP地址和端口号的示意图;图5为本专利技术的实施例提供的媒体中继类型时的RTP媒体流的示意图;图6为本专利技术的实施例提供的一种SIP服务器的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施本文档来自技高网...
RTP媒体流穿越方法、SIP服务器和SIP通信系统

【技术保护点】
一种实时传输协议RTP媒体流穿越方法,其特征在于,包括:SIP服务器接收主叫用户代理的SIP注册报文或注册保活报文,并根据所述主叫用户代理的SIP注册报文或注册保活报文获取所述主叫用户代理的公网IP地址和公网端口号,接收被叫用户代理的SIP注册报文或注册保活报文,并根据所述被叫用户代理的SIP注册报文或注册保活报文获取所述被叫用户代理的公网IP地址和公网端口号;所述SIP服务器根据所述主叫用户代理的公网IP地址和公网端口号向所述主叫用户代理发送报文以等待所述主叫用户代理进行确认,并且根据所述被叫用户代理的公网IP地址和公网端口号向所述被叫用户代理发送报文以等待所述被叫用户代理进行确认;所述SIP服务器判定所述主叫用户代理为媒体中继类型或媒体代理类型,并且判定所述被叫用户代理为所述媒体中继类型或所述媒体代理类型;如果所述主叫用户代理以及所述被叫用户代理均为所述媒体代理类型,则所述SIP服务器将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息直接透传给另一方,以便于所述主叫用户代理与所述被叫用户代理根据对方的公网IP地址直接传输RTP媒体流,其中,所述RTP媒体信息包括IP地址和端口号;如果所述主叫用户代理或者所述被叫用户代理中的至少一方为所述媒体中继类型,则将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息中的IP地址替换为所述SIP服务器的IP地址,将所述SIP报文中的RTP媒体信息中的端口号替换为所述SIP服务器的端口,然后将替换后的SIP报文转发给所述主叫用户代理或所述被叫用户代理中的另一方,以便于所述主叫用户代理与所述被叫用户代理通过所述SIP服务器转发RTP媒体流。...

【技术特征摘要】
1.一种实时传输协议RTP媒体流穿越方法,其特征在于,包括:SIP服务器接收主叫用户代理的SIP注册报文或注册保活报文,并根据所述主叫用户代理的SIP注册报文或注册保活报文获取所述主叫用户代理的公网IP地址和公网端口号,接收被叫用户代理的SIP注册报文或注册保活报文,并根据所述被叫用户代理的SIP注册报文或注册保活报文获取所述被叫用户代理的公网IP地址和公网端口号;所述SIP服务器根据所述主叫用户代理的公网IP地址和公网端口号向所述主叫用户代理发送报文以等待所述主叫用户代理进行确认,并且根据所述被叫用户代理的公网IP地址和公网端口号向所述被叫用户代理发送报文以等待所述被叫用户代理进行确认;所述SIP服务器判定所述主叫用户代理为媒体中继类型或媒体代理类型,并且判定所述被叫用户代理为所述媒体中继类型或所述媒体代理类型;如果所述主叫用户代理以及所述被叫用户代理均为所述媒体代理类型,则所述SIP服务器将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息直接透传给另一方,以便于所述主叫用户代理与所述被叫用户代理根据对方的公网IP地址直接传输RTP媒体流,其中,所述RTP媒体信息包括IP地址和端口号;如果所述主叫用户代理或者所述被叫用户代理中的至少一方为所述媒体中继类型,则将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息中的IP地址替换为所述SIP服务器的IP地址,将所述SIP报文中的RTP媒体信息中的端口号替换为所述SIP服务器的端口,然后将替换后的SIP报文转发给所述主叫用户代理或所述被叫用户代理中的另一方,以便于所述主叫用户代理与所述被叫用户代理通过所述SIP服务器转发RTP媒体流。2.根据权利要求1所述的方法,其特征在于,所述SIP服务器根据所述主叫用户代理的公网IP地址和公网端口号向所述主叫用户代理发送报文以等待所述主叫用户代理进行确认,并且根据所述被叫用户代理的公网IP地址和公网端口号向所述被叫用户代理发送报文以等待所述被叫用户代理进行确认,包括:所述SIP服务器接收所述主叫用户代理的第一UDP请求报文;所述SIP服务器根据所述主叫用户代理的公网IP地址和公网端口号向所述主叫用户代理发送第一响应报文以等待所述主叫用户代理对所述第一响应报文进行确认,其中,所述第一响应报文用于对所述主叫用户代理的第一UDP请求报文进行响应;所述SIP服务器接收所述被叫用户代理的第二UDP请求报文;所述SIP服务器根据所述被叫用户代理的公网IP地址和公网端口号向所述被叫用户代理发送第二响应报文以等待所述被叫用户代理对所述第二响应报文进行确认,其中,所述第二响应报文用于对所述被叫用户代理的第二UDP请求报文进行响应。3.根据权利要求1所述的方法,其特征在于,所述SIP服务器判定所述主叫用户代理为媒体中继类型或媒体代理类型,并且判定所述被叫用户代理为所述媒体中继类型或所述媒体代理类型,包括:在所述SIP服务器向所述主叫用户代理发送所述第一响应报文之后,所述SIP服务器启动第一定时器;如果在所述第一定时器超时之后,所述SIP服务器仍未接收到所述主叫用户代理针对所述第一响应报文所发送的第一确认报文,则重新根据所述主叫用户代理的公网IP地址和公网端口号向所述主叫用户代理发送所述第一响应报文并重新启动所述第一定时器,如果在所述第一定时器超时之前,所述SIP服务器接收到所述第一确认报文,则将所述主叫用户代理标记为媒体代理类型;如果在所述第一定时器再次超时之后,所述SIP服务器仍未接收到所述第一确认报文,则将所述主叫用户代理标记为媒体中继类型,如果在所述第一定时器再次超时之前,所述SIP服务器接收到所述第一确认报文,则将所述主叫用户代理标记为媒体代理类型;在所述SIP服务器向所述被叫用户代理发送所述第二响应报文之后,所述SIP服务器启动第二定时器;如果在所述第二定时器超时之后,所述SIP服务器仍未接收到所述被叫用户代理针对所述第二响应报文所发送的第二确认报文,则重新根据所述被叫用户代理的公网IP地址和公网端口号向所述被叫用户代理发送所述第二响应报文并重新启动所述第二定时器,如果在所述第二定时器超时之前,所述SIP服务器接收到所述第二确认报文,则将所述被叫用户代理标记为媒体代理类型;如果在所述第二定时器再次超时之后,所述SIP服务器仍未接收到所述第二确认报文,则将所述被叫用户代理标记为媒体中继类型,如果在所述第二定时器再次超时之前,所述SIP服务器接收到所述第二确认报文,则将所述被叫用户代理标记为媒体代理类型。4.根据权利要求1所述的方法,其特征在于,所述将来自所述主叫用户代理或所述被叫用户代理中一方的SIP报文中的RTP媒体信息中的IP地址替换为所述SIP服务器的IP地址,将所述SIP报文中的RTP媒体信息中的端口号替换为所述SIP服务器的端口,然后将替换后的SIP报文转发给所述主叫用户代理或所述被叫用户代理中的另一方,包括:所述SIP服务器为所述主叫用户代理分配第一RTP媒体端点,为所述被叫用户代理分配第二RTP媒体端点,其中,所述第一RTP媒体端点的RTP媒体信息中的IP地址为所述SIP服务器的IP地址,所述第一RTP媒体端点的RTP媒体信息中的端口号为第一空闲端口号,所述第二RTP媒体端点的RTP媒体信息中的IP地址为所述SIP服务器的IP地址,所述第二RTP媒体端点的RTP媒体信息中的端口号为第二空闲端口号;将来自所述主叫用户代理的INVITE呼叫请求报文中的RTP媒体信息中的IP地址替换为所述SIP服务器的IP地址,将所述INVITE呼叫请求报文中的RTP媒体信息中的端口号替换为所述第一RTP媒体端点的端口号,然后将所述INVITE呼叫请求报文发送给所述被叫用户代理;将来自所述被叫用户代理的200OK呼叫应答成功报文中的RTP媒体信息中的IP地址替换为所述SIP服务器的IP地址,将所述200OK呼叫应答成功报文中的RTP媒体信息中的端口号替换为所述第二RTP媒体端点的端口号,然后将所述200OK呼叫应答成功报文发送给所述主叫用户代理。5.一种SIP服务器...

【专利技术属性】
技术研发人员:卢立铭
申请(专利权)人:迈普通信技术股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1