首页> 中国专利> 基于SIP的会话邀请方法和代理设备

基于SIP的会话邀请方法和代理设备

摘要

本发明涉及一种基于SIP的会话邀请方法和代理设备,所述方法包括:通过代理设备接收主叫终端发送的与被叫终端建立会话的会话请求,所述主叫终端和所述被叫终端在第一网络;将所述会话请求通过所述代理设备与SIP服务器的第一连接发送至所述SIP服务器;所述SIP服务器在第二网络中,所述代理设备连接所述第一网络和所述第二网络;接收所述SIP服务器通过所述代理设备与所述SIP服务器的第二连接发送的所述会话请求;将所述会话请求发送至所述被叫终端。这样,通过使用与第一连接不同的第二连接发送会话请求,避免了由于使用第一连接将会话请求发送给主叫终端的而造成会话邀请失败的情况。

著录项

  • 公开/公告号CN106973033A

    专利类型发明专利

  • 公开/公告日2017-07-21

    原文格式PDF

  • 申请/专利权人 深圳市深信服电子科技有限公司;

    申请/专利号CN201610024383.5

  • 发明设计人 岑智华;杨阳;

    申请日2016-01-14

  • 分类号

  • 代理机构广州华进联合专利商标代理有限公司;

  • 代理人李文渊

  • 地址 518000 广东省深圳市南山区学苑大道1001号南山智园A1栋一层

  • 入库时间 2023-06-19 02:53:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-22

    授权

    授权

  • 2019-10-25

    著录事项变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20160114

    著录事项变更

  • 2017-08-15

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20160114

    实质审查的生效

  • 2017-07-21

    公开

    公开

说明书

技术领域

本发明涉及网络通信技术领域,特别是涉及一种基于SIP的会话邀请方法和代理设备。

背景技术

随着网络通信技术的发展,在两个不同网络之间进行通信的需求也逐渐增大。在不同网络之间通信,需要通过代理设备将两个网络连接起来。在基于SIP(Session Initiation Protocol,会话初始协议)的会话过程中,会话主叫终端需要通过代理设备将请求发送给SIP服务器,再由SIP服务器通过代理设备发送给会话被叫终端。在建立会话时,会话主叫终端通过代理设备将会话请求发送给SIP服务器,SIP服务器存在将会话请求通过已经建立的连接发送给会话主叫终端的情况,造成会话主叫终端将会话请求发送给自己的情况,从而导致会话邀请失败。

发明内容

基于此,有必要针对由于会话主叫终端将会话请求发送给自己而导致会话邀请失败的问题,提供一种基于SIP的会话邀请方法和代理设备。

一种基于SIP的会话邀请方法,该方法应用于代理设备,包括:

通过代理设备接收主叫终端发送的与被叫终端建立会话的会话请求,主叫终端和被叫终端在第一网络;

将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器;SIP服务器在第二网络中,代理设备连接第一网络和第二网络;

接收SIP服务器通过代理设备与SIP服务器的第二连接发送的会话请求;

将会话请求发送至被叫终端。

在其中一个实施例中,将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器,包括:

提取会话请求中的主叫终端的网络地址并转换为第一代理地址;

根据第一代理地址与SIP服务器建立第一连接;

通过第一连接将会话请求发送至SIP服务器。

在其中一个实施例中,通过代理设备接收主叫终端发送的与被叫终端建立会话的会话请求之前,还包括:

接收被叫终端发送的注册请求;

将注册请求中被叫终端的网络地址转换为第二代理地址;

将携带有第二代理地址的注册请求发送至SIP服务器,使SIP服务器从注册请求中提取被叫终端对应的第二代理地址并存储。

在其中一个实施例中,接收SIP服务器通过代理设备与SIP服务器的第二连接发送的会话请求,包括:

接收SIP服务器通过SIP服务器与代理设备的第二连接发送的会话请求,第二连接由SIP服务器根据被叫终端对应的第二代理地址建立。

在其中一个实施例中,接收SIP服务器通过SIP服务器与代理设备的第二连接发送的会话请求之前,还包括:

SIP服务器检测是否已经存在根据第二代理地址建立的第二连接;若存在,则通过第二连接发送会话请求;若不存在,则根据第二代理地址建立第二连接。

上述基于SIP的会话邀请方法,主叫终端和被叫终端在第一网络中,SIP服务器处在第二网络中,代理设备将第一网络和第二网络连接。通过代理设备接收到主叫终端发送的与被叫终端建立会话的会话请求,将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器,用以通过SIP服务器发送给被叫终端。在SIP服务器接收到会话请求,使用代理设备与SIP服务器的第二连接将会话请求发送给代理设备,以将会话请求发送给被叫终端。这样,使用与第一连接不同的第二连接发送会话请求,避免了由于使用第一连接将会话请求发送给主叫终端的而造成会话邀请失败的情况。

一种基于SIP的会话邀请代理设备,代理设备包括:

第一请求接收模块,通过代理设备接收主叫终端发送的与被叫终端建立会话的会话请求,主叫终端和被叫终端在第一网络;

第一请求发送模块,用于将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器;SIP服务器在第二网络中,代理设备连接第一网络和第二网络;

第二请求接收模块,用于接收SIP服务器通过代理设备与SIP服务器的第二连接发送的会话请求;

第二请求发送模块,用于将会话请求发送至被叫终端。

在其中一个实施例中,第一请求发送模块包括:

地址转换模块,用于提取会话请求中的主叫终端的网络地址并转换为第一代理地址;

连接建立模块,用于根据第一代理地址与SIP服务器建立第一连接;

会话请求发送模块,用于通过第一连接将会话请求发送至SIP服务器。

在其中一个实施例中,代理设备还包括:

注册请求发送模块,用于接收被叫终端发送的注册请求;

网络地址转换模块,用于将注册请求中被叫终端的网络地址转换为第二代理地址;

代理地址提取模块,用于将携带有第二代理地址的注册请求发送至SIP服务器,使SIP服务器从注册请求中提取被叫终端对应的第二代理地址并存储。

在其中一个实施例中,第二请求接收模块还用于接收SIP服务器通过SIP服务器与代理设备的第二连接发送的会话请求,第二连接由SIP服务器根据被叫终端对应的第二代理地址建立。

在其中一个实施例中,SIP服务器用于检测是否已经存在根据第二代理地址建立的第二连接;若存在,则通过第二连接发送会话请求;若不存在,则根据第二代理地址建立第二连接。

上述基于SIP的会话邀请代理设备,主叫终端和被叫终端在第一网络中,SIP服务器处在第二网络中,代理设备将第一网络和第二网络连接。通过代理设备接收到主叫终端发送的与被叫终端建立会话的会话请求,将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器,用以通过SIP服务器发送给被叫终端。在SIP服务器接收到会话请求,使用代理设备与SIP服务器的第二连接将会话请求发送给代理设备,以将会话请求发送给被叫终端。这样,使用与第一连接不同的第二连接发送会话请求,避免了由于使用第一连接将会话请求发送给主叫终端的而造成会话邀请失败的情况。

附图说明

图1为一个实施例中基于SIP的会话邀请系统的应用环境图;

图2为一个实施例中基于SIP的会话邀请方法的流程示意图;

图3为一个实施例中网络地址注册的步骤的流程示意图;

图4为一个实施例中基于SIP的会话邀请方法的时序图;

图5为一个实施例中基于SIP的会话邀请代理设备的结构框图;

图6为一个实施例中第一请求发送模块的结构框图;

图7为另一个实施例中基于SIP的会话邀请代理设备的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中基于SIP的会话邀请系统的应用环境图。基于SIP的会话邀请系统包括主叫终端102、被叫终端104、代理设备106和SIP服务器108。其中主叫终端102和被叫终端104在第一网络中,SIP服务器108在第二网络中,代理设备106连接第一网络和第二网络,代理设备106即有第一网络中的网络地址,又有第二网络中的网络地址。第一网络中的主叫终端102和被叫终端104通过代理设备106访问第二网络中的SIP服务器。SIP服务器具体可以是SIP服务器集群,SIP服务器集群中的SIP服务器共用数据库。SIP(Session InitiationProtocol,会话初始协议)是用来生成、修改和终结一个或多个参与终端之间的会话协议。

如图2所示,在一个实施例中,提供一种基于SIP的会话邀请方法,本实施例以该方法用于用图1基于SIP的会话邀请系统中的代理设备106来举例说明。该代理设备106上运行有基于SIP的会话邀请方法的程序,通过基于SIP的会话邀请方法的程序来实施基于SIP的会话邀请方法。该方法具体包括以下步骤:

步骤202,通过代理设备接收主叫终端发送的与被叫终端建立会话的会话请求,主叫终端和被叫终端在第一网络。

具体地,主叫终端102在与被叫终端104建立基于SIP协议的会话时,需要通过代理设备106将会话请求发送至第二网络中的SIP服务器108。会话请求时用于与被叫终端建立会的请求,会话请求包括被叫终端标识,还可以包括协议版本号。会话请求中的源地址是主叫终端102的网络地址,目的地址是代理设备106在第一网络中的网络地址。源地址是指请求发送终端的网络地址,目的地址是指请求接收终端的网络地址。网络地址可以是IP地址,还可以是IP地址及端口号。当网络地址中包括端口号时,两个网络地址中即使IP地址相同,端口号不同,两个网络地址为不同的网络地址。

步骤204,将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器;SIP服务器在第二网络中,代理设备连接第一网络和第二网络。

具体地,代理设备106接收到的主叫终端的会话请求后,对会话请求中的源地址和目的地址分别进行转换,具体可将源地址转换为代理设备106的第一代理地址,将目的地址转换为SIP服务器的网络地址,根据代理设备106的第一代理地址和SIP服务器的网络地址建立第一连接,并通过第一连接将地址转换后的会话请求发送至SIP服务器。第一代理地址是代理设备在第二网络中的设备。第二网络与第一网络为不同的网路,第一网络与第二网络的网段号不同。

步骤206,接收SIP服务器通过代理设备与SIP服务器的第二连接发送的会话请求。

具体地,SIP服务器108在接收到代理设备106发送的会话请求之后,提取会话请求中被叫终端104的标识,根据被叫终端104的标识在数据库中查找被叫终端104所注册的第二代理地址,以被叫终端104所注册的第二代理地址为目的地址建立第二连接,并将会话请求通过第二连接发送至代理设备106。第一代理地址和第二代理地址都是代理设备106不同的网络地址,第一代理地址和第二代理地址可以是其中的IP地址不同,也可以是端口号不同。被叫终端104的标识可以是被叫终端104的用户名,其中用户名可以是字符串、数字和关键字中至少一种。

步骤208,将会话请求发送至被叫终端。

具体地,代理设备106在接收到被叫终端104发送的注册请求时,提取注册请求中被叫终端104的网络地址并记录。代理设备106接收到SIP服务器108发送给被叫终端104的会话请求时,提取会话请求中被叫终端104的标识,查找与被叫终端104的标识对应的被叫终端的网络地址,以查找到的被叫终端104的网络地址作为目的地址将会话请求发送给被叫终端。

在一个实施例中,被叫终端104接收到代理设备的会话请求后,根据会话请求返回用于与被叫终端102建立会话的会话建立信息。被叫终端104将会话建立信息发送给代理设备106。代理设备106对会话建立信息进行网络地址转换后,根据转换后的网络地址将会话建立信息发送给SIP服务器108。SIP服务器108在数据库中查找主叫终端102通过注册请求所注册的的第二代理地址,根据第二代理地址将会话建立信息发送给代理设备106。代理设备106查找主叫终端102的网络地址,根据主叫终端102的网络地址将会话建立信息发送给主叫终端102,主叫终端102接收到会话建立信息后,主叫终端102与被叫终端104的会话建立成功。会话建立信息中包括被叫终端104的标识,被叫终端104的标识可以是用户名,用户名具体可以是字符串、数字和关键字中至少一种或其组合。

本实施例中,主叫终端和被叫终端在第一网络中,SIP服务器处在第二网络中,代理设备将第一网络和第二网络连接。通过代理设备接收到主叫终端发送的与被叫终端建立会话的会话请求,将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器,用以通过SIP服务器发送给被叫终端。在SIP服务器接收到会话请求,使用代理设备与SIP服务器的第二连接将会话请求发送给代理设备,以将会话请求发送给被叫终端。这样,使用与第一连接不同的第二连接发送会话请求,避免了由于使用第一连接将会话请求发送给主叫终端的而造成会话邀请失败的情况。

如图3所示,在一个实施例中,该方法还包括网络地址注册的步骤,具体包括以下步骤:

步骤302,接收被叫终端发送的注册请求。

具体地,被叫终端104需要先将注册请求发送给代理设备106,通过代理设备106将注册请求发送给SIP服务器108。注册请求用于将被叫终端104的网络地址发送给SIP服务器108,使SIP服务器108记录被叫终端104的网络地址。当SIP服务器108接收到发送给被叫终端104的数据时,查找所记录的被叫终端104的网络地址,并根据查找到的网络地址将数据发送给被叫终端104。注册请求中包括被叫终端104的标识和被叫终端104的网络地址。被叫终端104的标识可以是被叫终端104的用户名,还可以是被叫终端104的物理地址。

步骤304,将注册请求中被叫终端的网络地址转换为第二代理地址。

具体地,代理设备106在接收到被叫终端104发送的注册请求后,提取注册请求中被叫终端104的网络地址,将被叫终端104的网络地址转换为代理设备106的第二代理地址,并将被叫终端104的网络地址记录下来。使得被叫终端104在SIP服务器108上注册的是代理设备106的第二代理地址,在SIP服务器108收到发送至被叫终端104的数据时,将数据先发送到代理设备106,再由代理设备106将数据发送给被叫终端104。

步骤306,将携带有第二代理地址的注册请求发送至SIP服务器,使SIP服务器从注册请求中提取被叫终端对应的第二代理地址并存储。

具体地,代理设备106将携带有第二代理地址的注册请求发送至SIP服务器,SIP服务器提取注册请求中被叫终端104的标识和第二代理地址,并将被叫终端104的标识与第二代理地址对应存储。

本实施例中,被叫终端104和SIP服务器108分别处在第一网络和第二网络,如果在SIP服务器108中注册的被叫终端104的网络地址,会出现SIP服务器108在第二网络中查找不到被叫终端104,不能将数据准确发送至被叫终端104。通过将注册请求中的被叫终端104的网络地址转换成第二代理地址,SIP服务器108在接收到发送至被叫终端104的数据时,可以根据第二代理地址将数据发送至代理设备106,再由代理设备106将数据发送至第一网络中的主叫终端,保证了数据传输的准确性。

在一个实施例中,SIP服务器检测是否已经存在根据第二代理地址建立的第二连接;若存在,则通过第二连接发送会话请求;若不存在,则根据第二代理地址建立第二连接。

具体地,SIP服务器108接收到主叫终端102用于与被叫终端104建立会话的会话请求时,提取会话请求中被叫终端104的标识,查找与被叫终端104的标识对应的第二代理地址,查找到第二代理地址后,检测是否接收到源地址是第二代理地址的数据,如果有,则表示存在根据第二代理地址建立的第二连接,则通过第二连接将会话请求发送给代理设备104,使代理设备104将会话请求发送给被叫终端104;如果没有接收到源地址是第二代理地址的数据,则表示不存在根据第二代理地址建立的第二连接,需要根据第二代理地址建立第二连接。

本实施例中,通过SIP服务器108检测是否已经存在根据第二代理地址建立的第二连接,如果存在,则直接通过第二连接将会话请求发送,无需再重新建立第二连接,提高了会话请求的传输速度。

如图4所示,主叫终端102和被叫终端104在第一网络中,SIP服务器108和SIP服务器112在第二网络中,SIP服务器108和SIP服务器112共用数据库110。代理设备106连接第一网络和第二网络,图中使用IP地址和端口的组合形式表示网络地址,IP地址和端口有一个不相同,则表示的网络地址也不同。例如(a1,1),其中a1为IP地址,1为端口号。被叫终端104将注册请求发送给代理设备,注册请求中源地址是被叫终端的网络地址(a1,1),目的地址是代理设备在第一网络中的网络地址(b,1),其中注册地址为被叫终端104的网络地址(a1,1)。

代理设备106接收到被叫终端104发送的注册请求后,提取注册请求中的注册地址,将注册地址转换为代理设备106的代理地址(c,1),将源地址转换为代理设备106的代理地址(c,2),将目的地址转换为SIP服务器108的地址(d,1),将转换之后的注册请求发送给SIP服务器108,SIP服务器108提取被叫终端104的网络地址(c,1),并存储到数据库110中。代理设备106将主叫终端102发送的注册请求中的注册地址转换为代理设备的代理地址(c,1),将源地址转换为代理设备106的代理地址(c,2),将目的地址转换为SIP服务器112的目的地址(e,1),并将转化后的注册请求发送给SIP服务器112,SIP服务器112将主叫终端102的网络地址(c,1)保存到数据库110中。主叫终端102将与被叫终端104建立会话的会话请求发送到代理设备106,会话请求的源地址为主叫终端的网络地址(a2,1),目的地址为代理设备106在第一网络中的网络地址(b,1)。代理设备106对会话请求的源地址和目的地址进行转换,将源地址转化为代理设备的代理地址(c,2),将目的地址转换为SIP服务器112的网络地址(e,1),并根据源地址(c,2)选择发送端口,将会话请求发送给SIP服务器112。

SIP服务器112提取会话请求中被叫终端104的标识,根据被叫终端104的标识在数据库110中查找被叫终端104的网络地址,查找到保存的被叫终端104的网络地址是(c,1),检测到会话请求的源地址与(c,1)不同,根据(c,1)重新建立连接,将会话请求发送给代理设备106。代理设备106查找被叫终端104的网络地址,并在将会话请求进行地址转换后,根据转换的源地址和目的地址发送给被叫终端。

如图5所示,提供一种基于SIP的会话邀请代理设备500,该代理设备包括:第一请求接收模块502、第一请求发送模块504、第二请求接收模块506和第二请求发送模块508。

第一请求接收模块502,通过代理设备接收主叫终端发送的与被叫终端建立会话的会话请求,主叫终端和被叫终端在第一网络。

第一请求发送模块504,用于将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器;SIP服务器在第二网络中,代理设备连接第一网络和第二网络。

第二请求接收模块506,用于接收SIP服务器通过代理设备与SIP服务器的第二连接发送的会话请求。

第二请求发送模块508,用于将会话请求发送至被叫终端。

本实施例中,主叫终端和被叫终端在第一网络中,SIP服务器处在第二网络中,代理设备将第一网络和第二网络连接。通过代理设备接收到主叫终端发送的与被叫终端建立会话的会话请求,将会话请求通过代理设备与SIP服务器的第一连接发送至SIP服务器,用以通过SIP服务器发送给被叫终端。在SIP服务器接收到会话请求,使用代理设备与SIP服务器的第二连接将会话请求发送给代理设备,以将会话请求发送给被叫终端。这样,使用与第一连接不同的第二连接发送会话请求,避免了由于使用第一连接将会话请求发送给主叫终端的而造成会话邀请失败的情况。

如图6所示,在一个实施例中,第一请求发送模块504包括:

地址转换模块504a,用于提取会话请求中的主叫终端的网络地址并转换为第一代理地址。

连接建立模块504b,用于根据第一代理地址与SIP服务器建立第一连接。

会话请求发送模块504c,用于通过第一连接将会话请求发送至SIP服务器。

本实施例中,将主叫终端的网络地址转换为第一代理地址,并利用第一代理地址与SIP服务器建立第一连接,保证第一连接在第二网络内,避免SIP服务器在传输数据的时在第二网络中查找不到主叫终端的网络地址。

如图7所示,在一个实施例中,基于SIP的会话邀请代理设备500还包括:

注册请求发送模块510,用于接收被叫终端发送的注册请求。

网络地址转换模块512,用于将注册请求中被叫终端的网络地址转换为第二代理地址。

代理地址提取模块514,用于将携带有第二代理地址的注册请求发送至SIP服务器,使SIP服务器从注册请求中提取被叫终端对应的第二代理地址并存储。

本实施例中,被叫终端104和SIP服务器108分别处在第一网络和第二网络,如果在SIP服务器108中注册的被叫终端104的网络地址,会出现SIP服务器108在第二网络中查找不到被叫终端104,不能将数据准确发送至被叫终端104。通过将注册请求中的被叫终端104的网络地址转换成第二代理地址,SIP服务器108在接收到发送至被叫终端104的数据时,可以根据第二代理地址将数据发送至代理设备106,再由代理设备106将数据发送至第一网络中的主叫终端102,保证了数据传输的准确性。

在一个实施例中,第二请求接收模块506还用于接收SIP服务器通过SIP服务器与代理设备的第二连接发送的会话请求,第二连接由SIP服务器根据被叫终端对应的第二代理地址建立。

本实施中,通过第二连接发送会话请求,未使用第一连接发送会话请求,避免了由于使用同一条连接将会话请求返回给主叫终端102的情形,以免导致会话建立失败的情况。

在一个实施例中,SIP服务器用于检测是否已经存在根据第二代理地址建立的第二连接;若存在,则通过第二连接发送会话请求;若不存在,则根据第二代理地址建立第二连接。

本实施例中,本实施例中,通过SIP服务器108检测是否已经存在根据第二代理地址建立的第二连接,如果存在,则直接通过第二连接将会话请求发送,无需再重新建立第二连接,提高了会话请求的传输速度。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号