端口复用控制方法、装置、服务器及存储介质与流程

文档序号:20488193发布日期:2020-04-21 21:50阅读:182来源:国知局
端口复用控制方法、装置、服务器及存储介质与流程

本发明实施例涉及通信技术领域,尤其涉及一种端口复用控制方法、装置、服务器及存储介质。



背景技术:

会话发起协议(sessioninitiationprotocol,sip)是一个基于文本的用于多方多媒体通信的应用层信令控制协议。它独立于底层传输协议,用于建立、修改和终止互联网协议(internetprotocol,ip)的双方或多方多媒体会话。

目前,跨级呼叫之间音频码流和视频码流需要通过不同的端口传送,每一级媒体服务器需要为多路码流分别分配端口,因此,会话路数越多,带宽和端口的占用率越大,导致信令阻塞的概率越大。



技术实现要素:

本发明实施例提供一种端口复用控制方法、装置、服务器及存储介质,以实现在有多路跨级呼叫时,跨级之间的各种音视频码流可以共用一个复用端口,提高端口和带宽的利用率。

第一方面,本发明实施例提供了一种端口复用控制方法,包括:

信令服务器接收指向被叫方的第一多媒体呼叫请求;

信令服务器如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求;

信令服务器接收与自身同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求;

其中,复用端口用于指示与自身同级的媒体服务器通过复用端口接收与自身的下一级信令服务器同级的媒体服务器提供的被叫方反馈的多媒体信息。

可选的,信令服务器在接收指向被叫方的第一多媒体呼叫请求之后,还包括:

信令服务器从第一多媒体呼叫请求中提取端口信息;

端口信息中包括用于指示主叫方接收与自身同级的媒体服务器提供的所述被叫方反馈的多媒体信息的非复用端口,或者,包括用于指示与自身的上一级信令服务器同级的媒体服务器接收与自身同级的媒体服务器提供的被叫方反馈的多媒体信息的复用端口。

可选的,在信令服务器接收指向被叫方的第一多媒体呼叫请求之后,还包括:

信令服务器如果确定被叫方隶属于自身,则向与自身同级的媒体服务器发送包括端口非复用标识的第四多媒体呼叫请求;

信令服务器接收与自身同级的媒体服务器针对第四多媒体呼叫请求返回的非复用端口,并向所述被叫方发送包括所述非复用端口的第五多媒体呼叫请求;

其中,非复用端口,用于指示与自身同级的媒体服务器通过非复用端口接收被叫方反馈的多媒体信息。

可选的,在向所述被叫方发送包括所述非复用端口的第五多媒体呼叫请求之后,还包括:

信令服务器如果接收到被叫方针对第五多媒体呼叫请求返回的响应消息,则向与自身同级的媒体服务器发送包括与自身的上一级信令服务器同级的媒体服务器接收多媒体信息的复用端口以及端口非复用标识的第六多媒体呼叫请求。

可选的,在向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求之后,还包括:

信令服务器如果接收到下一级信令服务器返回的响应消息,并且主叫方隶属于自身,则向与自身同级的媒体服务器发送包括主叫方接收多媒体信息的非复用端口以及端口非复用标识的第七多媒体呼叫请求。

可选的,在信令服务器接收指向被叫方的第一多媒体呼叫请求之前,还包括:

信令服务器预先定义与媒体服务器之间的呼叫请求的头域中包括主题字段;主题字段的格式为:sip:端口是否复用的标识@主机名:端口号。

第二方面,本发明实施例还提供了一种端口复用控制方法,包括:

媒体服务器接收与自身同级的信令服务器发送的多媒体呼叫请求;

媒体服务器在多媒体呼叫请求中包括端口复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的复用端口;

媒体服务器在多媒体呼叫请求中包括端口非复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的非复用端口。

第三方面,本发明实施例还提供了一种端口复用控制装置,由信令服务器执行,包括:

第一接收模块,用于接收指向被叫方的第一多媒体呼叫请求;

第二发送模块,用于如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求;

第三发送模块,用于接收与自身同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求;

其中,复用端口用于指示与自身同级的媒体服务器通过复用端口接收与自身的下一级信令服务器同级的媒体服务器提供的被叫方反馈的多媒体信息。

第四方面,本发明实施例还提供了一种端口复用控制装置,由媒体服务器执行,包括:

呼叫请求接收模块,用于接收与自身同级的信令服务器发送的多媒体呼叫请求;

第一端口发送模块,用于在多媒体呼叫请求中包括端口复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的复用端口;

第二端口发送模块,用于在多媒体呼叫请求中包括端口非复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的非复用端口。

第五方面,本发明实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如本发明任意实施例提供的端口复用控制方法。

第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的端口复用控制方法。

本发明实施例的技术方案,每一级信令服务器接收指向被叫方的第一多媒体呼叫请求后,如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求,并接收同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括复用端口的第三多媒体呼叫请求,解决了现有技术中跨级呼叫之间音频码流和视频码流需要通过不同的端口传送,带宽和端口的占用率较大的问题,实现了在有多路跨级呼叫时,跨级之间的各种音视频码流可以共用一个复用端口,提高了端口和带宽的利用率。

附图说明

图1a是现有技术中的一种基于sip流程的多路跨级呼叫的流程图;

图1b是本发明实施例一中的一种端口复用控制方法的流程图;

图2是本发明实施例二中的一种端口复用控制方法的流程图;

图3是本发明实施例适应的一种应用场景的实现流程图;

图4是本发明实施例四中的一种端口复用控制装置的结构示意图;

图5是本发明实施例五中的一种端口复用控制装置的结构示意图;

图6是本发明实施例六中的一种服务器的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

为了便于理解,先对现有技术中的基于sip流程的多路跨级呼叫过程进行简述。如图1a所示,客户端a(clienta)跨级呼叫客户端b(clientb)的音视频的信令流程具体步骤为:

1、客户端a发起呼叫请求到信令服务器1(sipserver1);

2、信令服务器1向同级的媒体服务器1(mediaserver1)发起呼叫请求(invite);

3、媒体服务器1向信令服务器1回复200ok;

4、信令服务器1通过路由规则查到信令服务器2(sipserver2)的地址,并向下一级的信令服务器2发起呼叫请求;

5、信令服务器2向同级的媒体服务器2(mediaserver2)发起呼叫请求;

6、媒体服务器2向信令服务器2回复200ok;

7、信令服务器2向客户端b发起呼叫请求;

8、客户端b向信令服务器2回复200ok;

9、信令服务器2第二次向媒体服务器2发起呼叫请求;

10、媒体服务器2回复信令服务器2200ok;

11、信令服务器2回复信令服务器1200ok;

12、信令服务器1第二次向媒体服务器1发起呼叫请求;

13、媒体服务器1回复信令服务器1200ok;

14、信令服务器1回复客户端a200ok;

15、协商成功后,客户端b将音视频码流发给媒体服务器2,媒体服务器2从两个不同的端口将音频码流和视频码流分别转给媒体服务器1,再由媒体服务器1转给客户端a。

发明人在实现本发明方案的过程中发现:跨级呼叫之间各种媒体类型的码流需要通过不同的端口传送,因此当会话路数越多,占用的端口也就越多,导致信令阻塞的可能性越大,带宽占用率越大,如果可以实现端口复用,则可以大大减少带宽占用率以及端口使用率。

而现有技术中,信令上的消息处理只由信令服务器处理,音视频码流则只通过媒体服务器进行转发,并且音视频码流的收发端口也是由媒体服务器管理的,因此,媒体服务器无法知道音视频码流的信令情况,也就无法有效的判断是否需要进行端口复用。

实施例一

图1b是本发明实施例一中的一种端口复用控制方法的流程图,本实施例可适用于基于sip流程的多路跨级呼叫的情况,该方法可以由端口复用控制装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在提供跨级呼叫服务的服务器中,例如信令服务器中。如图1b所示,该方法包括:

步骤110、信令服务器接收指向被叫方的第一多媒体呼叫请求。

在基于sip的多路跨级呼叫过程中,信令服务器可用于帮助主叫方与被叫方进行信令交互,以在双方之间建立通信链接,使得双方可以进行多媒体码流的传输。本实施例中,信令服务器可以是呼叫请求链路涉及到的任何一级信令服务器,例如,可以是与主叫方连接的第一级信令服务器,也可以是与被叫方相连的最后一级信令服务器,或者是中间的其他级的信令服务器。

可选的,信令服务器在接收指向被叫方的第一多媒体呼叫请求之后,还可以包括:信令服务器从第一多媒体呼叫请求中提取端口信息;端口信息中包括用于指示主叫方接收与自身同级的媒体服务器提供的所述被叫方反馈的多媒体信息的非复用端口,或者,包括用于指示与自身的上一级信令服务器同级的媒体服务器接收与自身同级的媒体服务器提供的被叫方反馈的多媒体信息的复用端口。本实施例中,多媒体信息可以包括各种音频码流和视频码流,提供被叫方反馈的多媒体信息的端口是与信令服务器同级的媒体服务器上的,第一多媒体呼叫请求中包括用于接收与当前信令服务器同级的媒体服务器发送的多媒体码流的端口号,该端口号可以在与当前信令服务器的上一级信令服务器同级的媒体服务器上,或者在主叫方上,因此,在当前信令服务器从主叫方或者从上一级信令服务器接收到第一多媒体呼叫请求之后,从第一多媒体呼叫请求中提取出端口号,并且无论该端口号对应的端口是复用端口还是非复用端口,后续信令服务器都会将该端口信息通过发送多媒体呼叫请求的方式发送给与其同级的媒体服务器,以便于同级的媒体服务器知道要将接收到的被叫方的多媒体码流发送至哪个端口。

可选的,在信令服务器接收指向被叫方的第一多媒体呼叫请求之前,还可以包括:信令服务器预先定义与媒体服务器之间的呼叫请求的头域中包括主题字段;主题字段的格式为:sip:端口是否复用的标识@主机名:端口号。

本实施例中,信令服务器与媒体服务器之间的呼叫请求的头域中包括的主题字段通常是本端的统一资源标识符(uniformresourceidentifier,uri),格式为sip:user@ip:port,为了能够标识端口复用,使得信令服务器可以在背靠背模型的跨级呼叫过程中,通过呼叫请求来通知与自身同级的媒体服务器是否需要进行端口复用,可以将信令服务器与媒体服务器之间的呼叫请求的头域中包括的主题字段的格式重新定义为sip:portmulti@ip:port,即将主题字段原格式中的用户名改为端口是否复用的标识,从而使得媒体服务器可以根据信令服务器发送的呼叫请求分配对应的复用端口或者非复用端口。

本实施例中,复用端口是指可以同时传输各种音频码流和各种视频码流的端口,并且可以同时对多个多媒体呼叫请求进行数据传输。非复用端口是指只能传输一种音频码流或者一种视频码流的端口,只能对一个多媒体呼叫请求进行数据传输。

本实施例通过对呼叫请求的头域中包括的主题字段的格式进行重新定义,使得媒体服务器可以得知是否需要进行端口复用,进而使媒体服务器不用为音频码流和视频码流分别分配端口,实现了在多级媒体服务器之间,能够灵活、有效的让各种音视频码流共同使用一个端口,降低了端口占用率,提高了网络传输性能。

需要说明的是,由于客户端只能使用非复用端口进行音视频码流的传输,因此,本级呼叫时无法使用复用端口,只在跨级呼叫时才能进行端口复用。

步骤120、信令服务器如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求。

本实施例中,当信令服务器接收到第一多媒体呼叫请求后,需要从第一多媒体呼叫请求的头域中包括的目标字段中获取被叫方的地址,并判断被叫方是否在本级注册,若是,则本次呼叫为单级呼叫,不涉及跨级间的端口复用,无需向同级的媒体服务器发送带有端口复用标识的第二多媒体呼叫请求,若否,则本次呼叫涉及跨级呼叫,需要向同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求,以使与自身同级的媒体服务器分配复用端口用以接收与自身的下一级信令服务器同级的媒体服务器发送的被叫方反馈的多媒体信息。

可选的,在呼叫时,因为每个网元都要向信令服务器注册,因此每级信令服务器能够快速的知道被叫方是否是在本级注册,如果在本级,则在呼叫媒体服务的呼叫请求的头域中包括的主题字段中增加端口非复用标识nouseportmux,如果不在本级,则判断下一级是否是信令服务器,若是信令服务器,则在呼叫媒体服务的呼叫请求的头域中包括的主题字段中增加端口复用标识useportmux,若下一级不是信令服务器,而是网关或者代理服务器等对应不同的信令流程的设备,则无法通过在呼叫请求中添加端口复用标识来使下一级设备得知需要端口复用,此时只能向下一级设备发送正常的呼叫请求。

步骤130、信令服务器接收与自身同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括复用端口的第三多媒体呼叫请求。

其中,复用端口用于指示与自身同级的媒体服务器通过复用端口接收与自身的下一级信令服务器同级的媒体服务器提供的被叫方反馈的多媒体信息。

本实施例中,信令服务器向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求后,从与自身同级的媒体服务器返回的针对第二多媒体呼叫请求的响应消息中获取复用端口,例如,从响应消息200ok的sdp(sessiondescriptionprotocol,会话描述协议)中获取复用端口的端口号,并将复用端口的端口号添加到第三多媒体呼叫请求的sdp中发送给自身的下一级信令服务器,以通过自身的下一级信令服务器,使得与下一级信令服务器同级的媒体服务器得知通过哪个端口将被叫方的多媒体码流发送至与自身同级的媒体服务器。

其中,由于端口是否复用的标识是用于信令服务器告知与其同级的媒体服务器需要为接收被叫方反馈的多媒体信息分配复用端口还是非复用端口,而第三多媒体呼叫请求由于是由本级信令服务器发送给下一级信令服务器的,因此,第三多媒体呼叫请求中不需要携带端口是否复用的标识。

在上述实施例的基础上,可选的,在信令服务器接收指向被叫方的第一多媒体呼叫请求之后,还可以包括:信令服务器如果确定被叫方隶属于自身,则向与自身同级的媒体服务器发送包括端口非复用标识的第四多媒体呼叫请求;信令服务器接收与自身同级的媒体服务器针对第四多媒体呼叫请求返回的非复用端口,并向被叫方发送包括非复用端口的第五多媒体呼叫请求;其中,非复用端口,用于指示与自身同级的媒体服务器通过非复用端口接收被叫方反馈的多媒体信息。

本实施例中,如果确定被叫方隶属于本级信令服务器,则可以确定本级信令服务器是与被叫方相连的最后一级信令服务器,与被叫方之间不涉及跨级呼叫,因此可以向与自身同级的媒体服务器发送包括端口非复用标识的第四多媒体呼叫请求,在接收同级的媒体服务器返回的非复用端口之后,通过第五多媒体呼叫请求将非复用端口发送至被叫方,以使被叫方知道需要通过哪个端口将主叫方请求的多媒体信息发送至与自身同级的媒体服务器。

可选的,在向所述被叫方发送包括所述非复用端口的第五多媒体呼叫请求之后,还可以包括:信令服务器如果接收到被叫方针对第五多媒体呼叫请求返回的响应消息,则向与自身同级的媒体服务器发送包括与自身的上一级信令服务器同级的媒体服务器接收多媒体信息的复用端口以及端口非复用标识的第六多媒体呼叫请求。

本实施例中,由于是背靠背模型,因此,一次呼叫过程,信令服务器需要两次发送呼叫请求到与自身同级的媒体服务器,第一次发送呼叫请求用于获取与自身同级的媒体服务器接收与自身的下一级信令服务器同级的媒体服务器或者被叫方发送的多媒体信息的端口,第二次发送呼叫请求用于将与自身的上一级信令服务器同级的媒体服务器或者主叫方接收多媒体信息的端口发送至与自身同级的媒体服务器。因此,当信令服务器接收到被叫方针对第五多媒体呼叫请求返回的响应消息之后,会向与自身同级的媒体服务器发送第二次呼叫请求,以将与自身的上一级信令服务器同级的媒体服务器接收多媒体信息的复用端口发送至与自身同级的媒体服务器,使得与自身同级的媒体服务器通过该复用端口向与自身的上一级信令服务器同级的媒体服务器提供被叫方的多媒体信息。

需要说明的是,复用端口存在于第六多媒体呼叫请求的sdp中,端口非复用标识存在于subject头域中,此时,由于呼叫请求中有复用端口,因此subject头域中的端口非复用标识不起作用,媒体服务器会使用该复用端口进行数据传输,不会再分配其他端口。可选的,在向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求之后,还可以包括:信令服务器如果接收到下一级信令服务器返回的响应消息,并且主叫方隶属于自身,则向与自身同级的媒体服务器发送包括主叫方接收多媒体信息的非复用端口以及端口非复用标识的第七多媒体呼叫请求。

本实施例中,信令服务器在接收到下一级信令服务器返回的响应消息之后,需要向与自身同级的媒体服务器发送第二次呼叫请求,以将与自身的上一级信令服务器同级的媒体服务器或者主叫方接收多媒体信息的端口发送至与自身同级的媒体服务器,使得与自身同级的媒体服务器通过该端口向与自身的上一级信令服务器同级的媒体服务器提供被叫方的多媒体信息。在发起第二次呼叫之前,需要先判断主叫方是否隶属于自身,若是,则向与自身同级的媒体服务器发送包括主叫方接收多媒体信息的非复用端口以及端口非复用标识的第七多媒体呼叫请求,否则,向与自身同级的媒体服务器发送包括与自身的上一级信令服务器同级的媒体服务器接收多媒体信息的复用端口以及端口非复用标识的第八多媒体呼叫请求。

需要说明的是,无论第二次呼叫请求的sdp中有的是复用端口还是非复用端口,呼叫请求的subject头域中的表示端口是否复用的标识都不起作用,媒体服务器会使用sdp中的端口进行数据传输,不会再分配其他端口。

本发明实施例的技术方案,每一级信令服务器接收指向被叫方的第一多媒体呼叫请求后,如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求,并接收与自身同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括复用端口的第三多媒体呼叫请求,解决了现有技术中跨级呼叫之间音频码流和视频码流需要通过不同的端口传送,带宽和端口的占用率较大的问题,实现了在有多路跨级呼叫时,跨级之间的各种音视频码流可以共用一个复用端口,提高了端口和带宽的利用率。

实施例二

图2是本发明实施例二中的一种端口复用控制方法的流程图,本实施例可适用于基于sip流程的多路跨级呼叫的情况,该方法可以由端口复用控制装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在提供跨级呼叫服务的服务器中,例如媒体服务器中。如图2所示,该方法包括:

步骤210、媒体服务器接收与自身同级的信令服务器发送的多媒体呼叫请求。

本实施例中,媒体服务器主要用于为各种音视频码流进行端口分配、端口管理以及多媒体信息的转发。例如,媒体服务器可以根据与自身同级的信令服务器发送的多媒体呼叫请求,分配自身用于接收或者发送多媒体信息的端口。

示例性的,媒体服务器可以接收与自身同级的信令服务器在第一次呼叫时发送的包括端口复用标识的第九多媒体呼叫请求,或者,可以接收与自身同级的信令服务器在第一次呼叫时发送的包括端口非复用标识的第十多媒体呼叫请求,或者,可以接收与自身同级的信令服务器在第二次呼叫时发送的包括自身的上一级媒体服务器接收多媒体信息的复用端口以及端口非复用标识的第十一多媒体呼叫请求,或者,可以接收与自身同级的信令服务器在第二次呼叫时发送的包括主叫方接收多媒体信息的非复用端口以及端口非复用标识的第十二多媒体呼叫请求。

步骤220、媒体服务器在多媒体呼叫请求中包括端口复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的复用端口。

本实施例中,多媒体呼叫请求中可能包括端口复用标识useportmux,当媒体服务器接收到多媒体呼叫请求后,先判断呼叫请求的subject头域中是否有端口复用标识,如果有,则分配可以传输各种音视频码流的复用端口,并将该复用端口的端口号添加在与该多媒体呼叫请求对应的响应消息200ok的sdp中返回给与自身同级的信令服务器。

示例性的,当媒体服务器接收到与自身同级的信令服务器在第一次呼叫时发送的包括端口复用标识的第九多媒体呼叫请求时,会根据该呼叫请求分配自身上的复用端口用以接收自身的下一级媒体服务器发送的被叫方反馈的多媒体信息。

需要说明的是,端口复用标识只存在于与自身同级的信令服务器发送的第一次多媒体呼叫请求的subject头域中,第二次多媒体呼叫请求的subject头域中只有端口非复用标识,因此,媒体服务器只在与自身同级的信令服务器第一次发起呼叫时,才会判断呼叫请求中的subject头域中是否有端口复用标识,并在有端口复用标识时分配复用端口。步骤230、媒体服务器在多媒体呼叫请求中包括端口非复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的非复用端口。

本实施例中,多媒体呼叫请求中还可能包括端口非复用标识nouseportmux,当媒体服务器接收到与自身同级的信令服务器在第一次呼叫时发送的多媒体呼叫请求后,如果确定呼叫请求中包括端口非复用标识,则会为各种音视频码流分别分配非复用端口,并将该非复用端口的端口号添加在与该多媒体呼叫请求对应的响应消息200ok的sdp中返回给与自身同级的信令服务器。

本实施例中,当媒体服务器接收到与自身同级的信令服务器在第一次呼叫时发送的多媒体呼叫请求时,会先判断呼叫请求的subject头域中是否有端口非复用标识,如果有,则可以确定本级媒体服务器是与被叫方相连的最后一级媒体服务器,需要分配自身上的非复用端口用以接收被叫方发送的被叫方反馈的多媒体信息。

本实施例中,当媒体服务器接收到与自身同级的信令服务器在第二次呼叫时发送的多媒体呼叫请求时,会直接将呼叫请求的sdp中的端口作为向上一级多媒体服务器或者主叫方发送被叫方反馈的多媒体信息的端口,不会再另外分配其他端口,此时,呼叫请求中的subject头域中的端口非复用标识不起作用。

需要说明的是,虽然端口非复用标识既存在于与自身同级的信令服务器发送的第一次多媒体呼叫请求的subject头域中,也可能存在于第二次多媒体呼叫请求的subject头域中,但是媒体服务器只在与自身同级的信令服务器第一次发起呼叫时,才会判断呼叫请求中的subject头域中是否有端口非复用标识,并在有端口非复用标识时分配非复用端口,当与自身同级的信令服务器第二次发起呼叫时,由于呼叫请求的sdp中包括已经分配好的端口,因此subject头域中的端口非复用标识不起作用,无需再另外分配端口。本发明实施例的技术方案,每一级媒体服务器接收与自身同级的信令服务器发送的多媒体呼叫请求,在多媒体呼叫请求中包括端口复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的复用端口,在多媒体呼叫请求中包括端口非复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的非复用端口,解决了现有技术中跨级呼叫之间音频码流和视频码流需要通过不同的端口传送,带宽和端口的占用率较大的问题,实现了在有多路跨级呼叫时,跨级之间的各种音视频码流可以共用一个复用端口,提高了端口和带宽的利用率。

实施例三

图3是本发明实施例适应的一种应用场景的实现流程图,本实施例可以与上述实施例中各个可选方案结合。具体的,参考图3,以两级呼叫为例,假设两级服务器中包括第一级信令服务器sipserver1和第二级信令服务器sipserver2,以及对应的第一级媒体服务器mediaserver1和第二级媒体服务器mediaserver2,客户端clienta在sipserver1上注册,clientb在sipserver2上注册,并且sipserver2在sipserver1上注册,clienta向clientb请求音频流和视频流,则两级呼叫流程的步骤如下:

f1:clienta向sipserver1发送第一多媒体呼叫请求,被叫方为clientb。

本实施例中,第一多媒体呼叫请求中包括用于指示主叫方接收mediaserver1提供的被叫方反馈的多媒体信息的第一非复用端口。

f2:sipserver1判断被叫方在sipserver2上,且sipserver2也是信令服务器,因此,向本级的mediaserver1发送带有端口复用标识的第二多媒体呼叫请求,即在第二多媒体呼叫请求的主题字段中填上关键字“useportmux”。

本实施例中,第二多媒体呼叫请求用于使mediaserver1分配复用端口,以通过该复用端口接收mediaserver2发送的被叫方反馈的多媒体信息。

f3:mediaserver1回复sipserver1带有复用端口的200ok。

f4:sipserver1向sipserver2发送第三多媒体呼叫请求,并将复用端口写入第三多媒体呼叫请求的sdp中。

本实施例中,第三多媒体呼叫请求用于使sipserver2得知mediaserver2需要通过复用端口将被叫方的音视频码流发送至mediaserver1。

f5:sipserver2判断被叫方在本级信令服务器上,因此,向本级媒体服务器mediaserver2发送包括端口非复用标识的第四多媒体呼叫请求,即在第四多媒体呼叫请求的主题字段中填入关键字“nouseportmux”。

本实施例中,第四多媒体呼叫请求用于使mediaserver2分配第二非复用端口,以通过第二非复用端口接收被叫方发送的多媒体信息。

f6:mediaserver2回复sipserver2带有第二非复用端口的200ok。

f7:sipserver2向clientb发送第五多媒体呼叫请求,并将第二非复用端口写入第五多媒体呼叫请求的sdp中。

本实施例中,第五多媒体呼叫请求用于使被叫方得知通过第二非复用端口将音视频码流发送至mediaserver2。

f8:clientb回复sipserver2200ok。

f9:sipserver2第二次呼叫mediaserver2,即向mediaserver2发送包括复用端口以及端口非复用标识的第六多媒体呼叫请求,并在第六多媒体呼叫请求的主题字段中填入关键字“nouseportmux”。

本实施例中,第六多媒体呼叫请求用于使mediaserver2得知通过复用端口将音视频码流发送至mediaserver1,此时端口非复用标识不起作用,媒体服务器不会分配端口。f10:mediaserver2回复sipserver2200ok。

f11:sipserver2回复sipserver1200ok。

f12:sipserver1第二次呼叫mediaserver1,即向mediaserver1发送包括端口非复用标识的第七多媒体呼叫请求,并在第七多媒体呼叫请求的主题字段中填入关键字“nouseportmux”。

本实施例中,第七多媒体呼叫请求用于使mediaserver1得知通过第一非复用端口将音视频码流发送至被叫方,此时端口非复用标识不起作用,媒体服务器不会分配端口。

f13:mediaserver1回复sipserver1200ok。

f14:sipserver1回复clienta200ok。

经过上述信令交互,音频流和视频流从mediaserver2转到mediaserver1时可以共用同一个发送端口和同一个接收端口。由此,呼叫时只需要信令服务器判断出是否是跨级呼叫,再通知给同级的媒体服务器是否进行端口复用即可,该方法快速、简单而又可靠,当有多路跨级呼叫时,媒体服务器不用再另外分配端口,可以大大提高端口和带宽的利用率。

实施例四

图4是本发明实施例四中的一种端口复用控制装置的结构示意图。本实施例可适用于基于sip流程的多路跨级呼叫的情况。如图4所示,该端口复用控制装置由信令服务器执行,包括:

第一接收模块410,用于接收指向被叫方的第一多媒体呼叫请求;

第二发送模块420,用于如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求;

第三发送模块430,用于接收与自身同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求;

其中,复用端口用于指示与自身同级的媒体服务器通过复用端口接收与自身的下一级信令服务器同级的媒体服务器提供的被叫方反馈的多媒体信息。

本发明实施例的技术方案,每一级信令服务器接收指向被叫方的第一多媒体呼叫请求后,如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求,并接收与自身同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求,解决了现有技术中跨级呼叫之间音频码流和视频码流需要通过不同的端口传送,带宽和端口的占用率较大的问题,实现了在有多路跨级呼叫时,跨级之间的各种音视频码流可以共用一个复用端口,提高了端口和带宽的利用率。

可选的,第一接收模块410,还用于:在接收指向被叫方的第一多媒体呼叫请求之后,从第一多媒体呼叫请求中提取端口信息;端口信息中包括用于指示主叫方接收与自身同级的媒体服务器提供的所述被叫方反馈的多媒体信息的非复用端口,或者,包括用于指示与自身的上一级信令服务器同级的媒体服务器接收与自身同级的媒体服务器提供的被叫方反馈的多媒体信息的复用端口。

可选的,第一接收模块410,还用于:在信令服务器接收指向被叫方的第一多媒体呼叫请求之后,如果确定被叫方隶属于自身,则向与自身同级的媒体服务器发送包括端口非复用标识的第四多媒体呼叫请求;接收与自身同级的媒体服务器针对第四多媒体呼叫请求返回的非复用端口,并向所述被叫方发送包括所述非复用端口的第五多媒体呼叫请求;

其中,非复用端口,用于指示与自身同级的媒体服务器通过非复用端口接收被叫方反馈的多媒体信息。

可选的,第一接收模块410,还用于:在向所述被叫方发送包括所述非复用端口的第五多媒体呼叫请求之后,如果接收到被叫方针对第五多媒体呼叫请求返回的响应消息,则向与自身同级的媒体服务器发送包括与自身的上一级信令服务器同级的媒体服务器接收多媒体信息的复用端口以及端口非复用标识的第六多媒体呼叫请求。

可选的,第三发送模块430,还用于:在向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求之后,如果接收到下一级信令服务器返回的响应消息,并且主叫方隶属于自身,则向与自身同级的媒体服务器发送包括主叫方接收多媒体信息的非复用端口以及端口非复用标识的第七多媒体呼叫请求。

可选的,第一接收模块410,还用于:在信令服务器接收指向被叫方的第一多媒体呼叫请求之前,预先定义与媒体服务器之间的呼叫请求的头域中包括主题字段;主题字段的格式为:sip:端口是否复用的标识@主机名:端口号。

本发明实施例所提供的端口复用控制装置可执行本发明任意实施例所提供的应用于信令服务器的端口复用控制方法,具备执行方法相应的功能模块和有益效果。

实施例五

图5是本发明实施例五中的一种端口复用控制装置的结构示意图。本实施例可适用于基于sip流程的多路跨级呼叫的情况。如图5所示,该端口复用控制装置由媒体服务器执行,包括:

呼叫请求接收模块510,用于接收与自身同级的信令服务器发送的多媒体呼叫请求;

第一端口发送模块520,用于在多媒体呼叫请求中包括端口复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的复用端口;

第二端口发送模块530,用于在多媒体呼叫请求中包括端口非复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的非复用端口。

本发明实施例的技术方案,每一级媒体服务器接收与自身同级的信令服务器发送的多媒体呼叫请求,在多媒体呼叫请求中包括端口复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的复用端口,在多媒体呼叫请求中包括端口非复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的非复用端口,解决了现有技术中跨级呼叫之间音频码流和视频码流需要通过不同的端口传送,带宽和端口的占用率较大的问题,实现了在有多路跨级呼叫时,跨级之间的各种音视频码流可以共用一个复用端口,提高了端口和带宽的利用率。

本发明实施例所提供的端口复用控制装置可执行本发明任意实施例所提供的应用于媒体服务器的端口复用控制方法,具备执行方法相应的功能模块和有益效果。

实施例六

参照图6,图6是本发明实施例六中的一种服务器的结构示意图,如图6所示,该服务器可以是信令服务器或者媒体服务器,包括处理器610、存储器620、输入装置630和输出装置640;服务器中处理器610的数量可以是一个或多个,图6中以一个处理器610为例;服务器中的处理器610、存储器620、输入装置630和输出装置640可以通过总线或其他方式连接,图6中以通过总线连接为例。

存储器620作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的端口复用控制方法对应的程序指令/模块(例如,端口复用控制装置中的第一接收模块410、第二发送模块420和第三发送模块430,或者另一种端口复用控制装置中的呼叫请求接收模块510、第一端口发送模块520以及第二端口发送模块530)。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的端口复用控制方法。

存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置630可用于接收多媒体呼叫请求或对应的响应消息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示服务器。

实施例七

本发明实施例七提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述实施例提供的任一种端口复用控制方法,其中,一种端口复用控制方法,包括:

信令服务器接收指向被叫方的第一多媒体呼叫请求;

信令服务器如果确定被叫方隶属于其他信令服务器,则向与自身同级的媒体服务器发送包括端口复用标识的第二多媒体呼叫请求;

信令服务器接收同级的媒体服务器针对第二多媒体呼叫请求返回的复用端口,并向自身的下一级信令服务器发送包括所述复用端口的第三多媒体呼叫请求;

其中,复用端口用于指示与自身同级的媒体服务器通过复用端口接收与自身的下一级信令服务器同级的媒体服务器提供的被叫方反馈的多媒体信息。

或者,另一种端口复用控制方法,包括:

媒体服务器接收与自身同级的信令服务器发送的多媒体呼叫请求;

媒体服务器在多媒体呼叫请求中包括端口复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的复用端口;

媒体服务器在多媒体呼叫请求中包括端口非复用标识时,向与自身同级的信令服务器发送与多媒体呼叫请求对应的非复用端口。

当然,本发明实施例所提供的一种计算机可读存储介质,其计算机指令可执行不限于如上的方法操作,还可以执行本发明任意实施例所提供的端口复用控制方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台服务器(可以是信令服务器,或者媒体服务器)执行本发明各个实施例的方法。

值得注意的是,上述端口复用控制装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1