背景技术
媒体能力协商是会话建立时,通讯设备与对端交换彼此的媒体类型和媒体参数的过程,其目的在于确保会话过程中双方的多媒体信号能够正确地被对方接收和解码。
例如,在采用会话初始协议(SIP:Session Initiation Protocol)作为呼叫控制协议的会话建立阶段,SIP主叫方可在INVITE方法的会话描述中指示其能够接受的媒体类型及其参数(还可以指示其愿意发送的媒体类型);SIP被叫方则在成功响应消息的消息体中指明其希望接受的媒体类型及其参数(还可以指示其行将发送的媒体),以此完成媒体能力协商。媒体协商信息可采用会话描述协议(SDP:Session Description Protocol)携带于SIP消息中。
在某些应用场景下还会使用到虚拟媒体能力协商,所谓虚拟是指该媒体能力协商并不具有实际的媒体能力对象。例如,可通过虚拟媒体能力协商使对端沉默来进行呼叫保持,两个场景示例如下:
一、在A用户和B用户的通话过程中,A用户收到第三方用户C的通话请求;A用户选择呼叫保持(Call Hold)B用户,接通C用户;A用户重新发起到B用户的会话建立,采用虚拟媒体能力信息与B用户进行虚拟媒体能力协商,从而实现呼叫保持的功能;等到A用户与C用户通话结束后,A用户再次发起到B用户的会话建立,采用真实媒体能力信息与B用户进行媒体能力协商,恢复通话。
二、在交互式语音应答(IVR:Interactive Voice Response)系统中,网络侧的软交换系统在无法获得业务侧的业务指示时,对于收到的呼叫侧的媒体协商信息,可采用虚拟媒体能力信息与之进行虚拟媒体能力协商,暂时保持呼叫。等获得业务侧的指示后,根据业务操作类型,再采用真实媒体能力信息重新与呼叫侧进行媒体能力协商。
目前通常采用的虚拟媒体能力协商主要有以下三种方式:
①虚拟网络协议(IP:Internet Protocol)地址(全0)的媒体能力模式。即,将媒体能力描述中的媒体传输地址设置为全0,在IP版本4(IPv4)的情况下即为“0.0.0.0”;对端若支持该协商模式,则在识别该特别的传输地址后,不再向远端通讯设备发送数据包。
②虚拟端口(全0)的媒体能力模式。即,将媒体能力描述中的媒体传输端口设置为全0;对端若支持该协商模式,则在识别该特别的传输端口后,不再向远端通讯设备发送数据包。
③更改媒体流属性的模式。即,在媒体能力描述中使用正常的IP地址和端口,而将远端媒体流属性设置为“仅发送(SendOnly)”模式(若之前的媒体属性为“发送/接收(SendRecv)”模式),或将媒体流属性修改为“不活动(Inactive)”模式(若之前的媒体属性为“仅接收(RecvOnly)”模式);对端若支持该协商模式,则在识别媒体流属性的修改后,不再向远端通讯设备发送数据包。
本发明的发明人在对上述现有技术的研究和实践过程中发现,现有虚拟媒体能力协商过程采用特例性的处理方式,若对端不支持某种虚拟媒体能力协商模式就会导致协商失败。在呼叫保持的情况下,会使得发起方通讯设备无法保持所有类型对端的呼叫。
具体实施方式
本发明实施例提供了进行虚拟媒体能力协商的方法,通讯设备采用无对应实际媒体能力的真实地址与端口的组合同对端进行虚拟媒体能力协商。本发明实施例还提供相应的呼叫保持方法和通讯设备。以下分别进行详细说明。
实施例一、一种进行虚拟媒体能力协商的方法,本实施例适用于占用单一网络地址的终端型通讯设备发起虚拟媒体能力协商。流程如图1所示,包括步骤:
A1、选择一个实际端口作为虚拟协商端口,所述虚拟协商端口无对应实际媒体能力。
本文中将无对应实际媒体能力的实际端口称作虚拟协商端口,所称实际端口无对应实际媒体能力,是指通讯设备的该实际端口不进行真实的媒体交互,对于发送到无对应实际媒体能力的实际端口的数据包,通讯设备可采用丢弃等处理方式。无对应实际媒体能力的实际端口可以是终端保留的不使用的实际端口,也可以是通过通讯设备对实际端口进行动态管理,暂时标记为不可用的实际端口,具体可采用如下两种管理方式:
①预置虚拟协商端口集合
通讯设备可保留某些实际端口用作虚拟媒体能力协商,可将由保留的一个或一个以上无对应实际媒体能力的实际端口组成的集合称为虚拟协商端口集合,通讯设备即从虚拟协商端口集合中选择虚拟协商端口。
②动态分配虚拟协商端口
在需要进行虚拟媒体能力协商时,通讯设备可任意选择可用的实际端口作为虚拟协商端口,然后将被选择的实际端口的媒体能力标记为不可用。当然,根据进行虚拟媒体能力协商所需要达到的功能,通讯设备可在该功能使用结束后,解除对所占用实际端口的不可用标记,该实际端口即可恢复正常使用。例如,若使用虚拟媒体能力协商来进行呼叫保持,当通讯设备结束呼叫保持(例如恢复或挂断与对端的通话),则可解除用于呼叫保持的实际端口的不可用标记。
需要说明的是,无论采用哪种虚拟协商端口的管理方式,通讯设备与多个对端通讯设备同时进行的多个虚拟媒体能力协商,都可以使用相同的实际端口,当然也可以使用不同的实际端口。
A2、使用所占用的网络地址和所述虚拟协商端口生成媒体能力协商信息。
通讯设备可按照常规方式根据所使用的会话控制协议规范生成媒体能力协商信息。本实施例中通讯设备为终端型,占用单一的网络地址,因此使用自身占用的网络地址来生成媒体能力协商信息,所生成的媒体能力协商信息与进行正常媒体能力协商时生成的媒体能力协商信息在形式上无差别,只是所使用的实际端口不具有媒体交互能力。
A3、将所述媒体能力协商信息发送给对端通讯设备。
此步骤可按照常规媒体能力协商的方式执行。对端通讯设备收到该媒体能力协商信息后,由于该信息与正常的媒体能力协商信息形式上没有差别,不需要对端通讯设备提供特别的模式支持,因此对端通讯设备可按常规方式进行处理,例如返回携带自身媒体参数的响应信息等。对端通讯设备发送到本端通讯设备所占用的网络地址+虚拟协商端口的组合的数据包将不会被处理。
上述实施例中通讯设备采用自身地址与无对应实际媒体能力的端口的组合同对端进行虚拟媒体能力协商,由于协商所使用的地址与端口是实际的,因此该媒体能力信息的虚拟与否对于对端而言是透明的,即无需依赖对端对特别信息的识别和处理,使得通讯设备能够不依赖于对端的类型进行虚拟媒体能力协商。
实施例二、一种进行虚拟媒体能力协商的方法,本实施例适用于占用多个网络地址的服务型通讯设备发起虚拟媒体能力协商。流程如图2所示,包括步骤:
B1、分配一个实际网络地址与实际端口的组合作为虚拟协商组合,所述虚拟协商组合无对应实际媒体能力。
本文中将无对应实际媒体能力的实际网络地址与实际端口的组合称作虚拟协商组合。本实施例中的通讯设备为管理一个以上实际网络地址的服务型通讯设备,例如IVR系统中的软交换。由于本实施例中的通讯设备具有多个实际网络地址,因此可保留一个或多个无对应实际功能实体的实际网络地址用作虚拟媒体能力协商,具体步骤可包括:
①通讯设备从预置的虚拟协商地址集合中选择一个实际网络地址作为虚拟协商地址,所述虚拟协商地址集合由一个或一个以上无对应实际功能实体的实际网络地址组成;
②通讯设备选择实际端口与所述虚拟协商地址组合为所述虚拟协商组合;由于虚拟协商地址本身无对应的实际功能实体,因此在选择实际端口时可任意选择或者也可在设定的集合中任意选择。对于发送到无对应实际媒体能力的虚拟协商组合的数据包,通讯设备可采用丢弃等处理方式;由于虚拟协商组合中的虚拟协商地址本身无对应实际功能实体,通讯设备可直接对发送到虚拟协商地址的数据包进行丢弃。
需要说明的是,占用多个网络地址的通讯设备也可以不采用配置无对应实际功能实体的虚拟协商地址的方式;而是使用具有实际功能实体的网络地址,通过与无对应实际媒体能力的实际端口进行组合,来实现虚拟媒体能力协商,此时所采用的方法与实施例一相同,不再赘述。这种情况下,通讯设备不能直接对发送到虚拟协商所使用网络地址的数据包进行丢弃,而是对发送到虚拟协商组合的数据包进行丢弃。当然,通讯设备与多个对端通讯设备同时进行的多个虚拟媒体能力协商,都可以使用相同的虚拟协商地址或虚拟协商组合。
B2、使用所述虚拟协商组合生成媒体能力协商信息。
通讯设备可按照常规方式根据所使用的会话控制协议规范生成媒体能力协商信息。所生成的媒体能力协商信息与进行正常媒体能力协商时生成的媒体能力协商信息在形式上无差别,只是所使用的实际网络地址+实际端口的组合不具有媒体交互能力。
B3、将所述媒体能力协商信息发送给对端通讯设备。
此步骤可参照实施例一中的步骤A3执行。
上述实施例中通讯设备采用由实际网络地址与实际端口组成的无媒体能力的虚拟协商组合同对端进行虚拟媒体能力协商,由于协商所使用的地址与端口是实际的,因此该媒体能力信息的虚拟与否对于对端而言是透明的,即无需依赖对端对特别信息的识别和处理,使得通讯设备能够不依赖于对端的类型进行虚拟媒体能力协商。
实施例三、一种呼叫保持方法,流程如图3所示,包括步骤:
C1、获取对需要呼叫保持的对端通讯设备的选择。
此步骤可按照通常呼叫保持的触发方式来执行。例如,终端通讯设备在与某个对端通讯设备的通话过程中接收用户指示(例如用户按下“呼叫保持”键),选择对当前通话的对端通讯设备进行呼叫保持;又如,软交换在IVR业务过程中,由于无法获得业务侧的业务指示,选择对某个呼叫侧终端进行呼叫保持等。
C2、采用由实际网络地址+实际端口组成的无媒体能力的虚拟协商组合与所选择的对端通讯设备进行虚拟媒体能力协商。
对于终端型通讯设备可采用实施例一中提供的方法,对于服务型通讯设备可采用实施例一或实施例二中提供的方法。
C3、丢弃所述虚拟媒体能力协商所使用的网络地址和端口的组合接收到的数据包。
由于通讯设备发起的虚拟媒体能力协商对于对端通讯设备而言其“虚拟”性是透明的,因此可能会收到对端通讯设备发送到虚拟协商组合的数据包。基于呼叫保持功能的特点,通讯设备可丢弃这些数据包而不作处理。
当通讯设备判断呼叫保持功能完成后,例如终端通讯设备恢复与呼叫保持中的对端通讯设备的会话,或者软交换得到了业务侧的指示;此时,可按照常规方式重新使用正常的媒体能力协商信息与对端通讯设备进行真实的媒体能力协商,结束呼叫保持。
上述技术方案中通讯设备采用无对应实际媒体能力的真实地址与端口的组合同对端进行虚拟媒体能力协商,由于协商所使用的地址与端口是实际的,因此该媒体能力信息的虚拟与否对于对端而言是透明的,即无需依赖对端对特别信息的识别和处理,使得通讯设备能够不依赖于对端的类型进行虚拟媒体能力协商,从而使得通讯设备能够无差别的对各种类型的对端进行呼叫保持。
下面对本发明实施例的通讯设备进行详细说明。
实施例四、一种通讯设备,如图4所示,包括:
端口管理单元11,用于选择一个实际端口作为虚拟协商端口,所述虚拟协商端口无对应实际媒体能力。端口管理单元11具体包括:
集合子单元111,用于提供虚拟协商端口集合,所述虚拟协商端口集合由一个或一个以上无对应实际媒体能力的实际端口组成;
选择子单元112,用于从集合子单元111提供的虚拟协商端口集合中选择所述虚拟协商端口。
信息生成单元12,用于使用所占用的网络地址和端口管理单元11提供的虚拟协商端口生成媒体能力协商信息。
发送单元13,用于将信息生成单元12生成的媒体能力协商信息发送给对端通讯设备。
本实施例通讯设备可用于执行实施例一进行虚拟媒体能力协商的方法,并且虚拟协商端口采用“预置虚拟协商端口集合”的管理方式。若改变本实施例中端口管理单元的具体结构,如图5所示,采用端口管理单元14,包括:
分配子单元141,用于选择可用的实际端口作为虚拟协商端口;
状态子单元142,用于将分配子单元141选择的实际端口的媒体能力标记为不可用。
则改变后的通讯设备可用于执行实施例一方法,并且虚拟协商端口采用“动态分配虚拟协商端口”的管理方式。
实施例五、一种通讯设备,如图6所示,包括:
虚拟管理单元21,用于分配一个实际网络地址与实际端口的组合作为虚拟协商组合,所述虚拟协商组合无对应实际媒体能力。虚拟管理单元21具体包括:
地址子单元211,用于从预置的虚拟协商地址集合中选择一个实际网络地址作为虚拟协商地址,所述虚拟协商地址集合由一个或一个以上无对应实际媒体能力的实际网络地址组成;
端口子单元212,用于选择实际端口与地址子单元211提供的虚拟协商地址组成虚拟协商组合。
生成单元22,用于使用虚拟管理单元21提供的虚拟协商组合生成媒体能力协商信息。
发送单元23,用于将生成单元22生成的媒体能力协商信息发送给对端通讯设备。
本实施例通讯设备可用于执行实施例二进行虚拟媒体能力协商的方法。
通过上述实施例可以看出,本发明实施例中通讯设备采用无对应实际媒体能力的真实地址与端口的组合同对端进行虚拟媒体能力协商,由于协商所使用的地址与端口是实际的,因此该媒体能力信息的虚拟与否对于对端而言是透明的,即无需依赖对端对特别信息的识别和处理,使得通讯设备能够不依赖于对端的类型进行虚拟媒体能力协商;当用于呼叫保持时,使得通讯设备能够无差别的对各种类型的对端进行呼叫保持。
以上对本发明实施例所提供的进行虚拟媒体能力协商的方法以及相应的呼叫保持方法和通讯设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。