分析已经指出多媒体会话关系模型应能够描述多媒体会话的“信令连接”和“媒体连接”两类拓扑结构。但是从Parlay呼叫模型的定义中可以看出,它主要体现了信令连接的拓扑关系,尽管在多媒体呼叫中增加了一个lpMultiMediaChannel接口对象,并与CallLeg相关联,但其只能表达某一个呼叫方所具有的媒体通道连接,而对于多媒体会话中不同参与方之间的“媒体连接"的拓扑结构的表达能力非常有限。因此为了充分提供多媒体会话的控制功能,UniNet对Parlay的多媒体呼叫控制服务加以扩展,形成了一个新的会话关系模型,现有的Parlay呼叫模型可以看成是它的子集。
一、多媒体会话的对象建模
UniNet软交换对多媒体会话关系的建模同样也是采用面向对象的方法。需要注意的是,UniNet软交换设计的多媒体会话关系模型采用的是集中控制模式。换句话说,一个多媒体业务的所有媒体连接都是在同一个VoIP软交换控制下完成的。在UniNet多媒体会话关系模型中,定义了4种主要对象:会话(Session入呼叫方(Party入连接点(ConnectionPoint)以及媒体支路(Leg),它们构成的对象模型如图所示。
从会话的视点看,Party对象代表了会话中涉及的一个可寻址的用户终端,它可以是一个真实的用户终端或者是一个网络实体(如媒体服务器);Leg对象继承自智能网连接视图模型的概念,代表通向一个可寻址的用户终端的媒体通路,根据状态的不同可以或不可以传送媒体信息(如语音、视频、数据等);ConnectionPoint对象继承自智能网连接视图模型的概念,代表了各Leg的相互连接关系,并允许媒体信息在Leg之间流动。Connec-tionPoint只允许转发从一个Leg到另一个Leg的媒体信息,一个ConnectionPoint代表两个Leg之间的基本连接功能,或者代表3个或多个Leg之间的会议桥接功能。在VoIP软交换网络中,ConnectionPoint可能代表虚拟的网络资源,比如在两个用户终端之间直接建立端到端的RTP流时,ConnectionPoint代表一个逻辑意义上的虚拟连接点;也可能代表一个真实的网络资源,比如当两个或多个用户终端都连接到一个媒体网关、媒体服务器或多点处理器上时,ConnectionPoint代表MGCP/Megaco协议中的Context(上下文)概念。
Session对象用来代表整个多媒体会话,它包括与一个多媒体会话相连的所有Party以及与之相连的所有ConnectionPoint。Session对象维护与多媒体会话相关的全局信息,如会话上下文、呼叫方数据、连接点数据等,并转发多个呼叫方之间的控制信令(包括呼叫控制信令和媒体控制信)。
显然,上图所示的对象模型可以很清晰地表示出一个多媒体会话中包含的各种成员和资源,以及彼此之间的关系。它既可以反映媒体连接信息(如Leg和Connection¬Point之间的相互关系以及Leg和Party之间的关系),又能够反映信令连接信息(如Par¬ty和Session之间的关系),这些信息都可以由业务逻辑实例使用并实现对会话的控制。
因此,通过上述多媒体会话关系模型,可以向业务逻辑提供深入的呼叫控制和媒体控制能力,比如提供以下4类控制命令。
1、对多媒体会话的整体控制:主要表现为建立或拆除一个多媒体会话,建立一个多媒体会话是指在多个参与方之间建立会话关系(即信令连接),而拆除一个多媒体会话则同时删除其包含的信令连接及所有的媒体连接。
2、对单条媒体支路的控制:主要表现为创建到某个参与方(该参与方已加人多媒体会话)的新的媒体支路、删除到某个参与方的已存在的媒体支路或修改媒体支路的属性等。
3、对媒体连接点的控制:例如对于媒体连接点的合并、删除、拆分等操作,对一个媒体连接点的控制将影响所有与该连接点关联的媒体支路。
4、对单个呼叫方的控制:此命令将同时作用千与该呼叫方关联的所有媒体连接和信令连接。例如增加、删除呼叫方等操作。
二、会话关系模型的对象定义
下图显示了在定义的多媒体会话关系模型中各个对象之间的关系。图中各对象之间的关系名称读法,或者是从上往下,或者是从左往右。例如,呼叫方只能拥有唯一的一个会话;呼叫方能加入到一个会话中;连接点可连接多条分支;一个会话中可包含多条媒体连接等。这里所谓的Party拥有Session,是指会话是由该Party对象发起的,并且该Party对象拥有对此会话的控制权,比如多媒体会议的主席,一旦该Party对象被删除,将导致整个多媒体会话的删除。
上图给出的会话关系模型代表了一个多媒体会话的集中视图,可以被用千存储一个会话实例的完整结构,记录会话涉及的呼叫方、所使用的网络资源以及它们之间的关联关系。会话控制功能可以利用它向外部业务功能提供一个了解其内部多媒体会话处理状态和事件信息的窗口,每一个业务逻辑实例通过唯一的会话关系模观实例实现对VoIP软交换网络中特定多媒体会话的控制,比如指示VoIP软交换设备控制会话拓扑结构或者改变已有的会话拓扑配置关系。业务逻辑能够直接在会话关系模型的基础上进行增加或者删除呼叫方和媒体连接的操作,也可以请求会话关系模型上报呼叫状态和事件信息。
1、对象定义
UniNet多媒体会话关系模型中各对象的含义及其包含的信息说明如下。
Session:Session代表一个多媒体会话涉及到的所有呼叫方以及媒体连接之间的关联关系的总和。
Party:在一个会话中可以有若干个Party,Party可以是终端用户,也可以是网络实体(如网关、媒体服务器、应用服务器等)。如果是网络实体充当连接方时,则称之为虚拟呼叫方。在会话中,创建该会话的一方被称为会话的拥有者,因此,一个会话至少应有一个呼叫方加入。ConnectionPoint:ConnectionPoint代表Party之间的媒体连接方式,它是一个虚拟的或者物理的媒体信息转发点/汇聚点。
Leg:一条媒体连接可由若干条Leg组成,Leg表示媒体连接点到某一呼叫方的通信链路。一条媒体支路可通过媒体连接点与其他媒体支路相连。媒体支路和媒体连接点的关系决定了媒体连接的拓扑结构。如果一条媒体连接仅含两条媒体支路,那么它就是点到点的连接;如果是点到多点的连接,则该媒体连接点应关联两条以上的媒体支路。
2、对象属性定义
上图所示的会话关系模型中,各对象都拥有自己的状态属性。这些对象状态属性可以在一个更高的层次上描述该对象所代表的网络实体的状态变化,它们所包含的信息是对呼叫控制状态模型或者媒体控制状态模观信息的进一步提炼。
(1)、Party对象状态属性
Party对象的状态属性以及状态属性之间的关系如图所示,各状态的含义如下。
• Pending(悬置):表示该呼叫方与会话之间的呼叫连接关系正在建立过程中;
• Joined(加入):表示该呼叫方与会话的呼叫连接关系已建立;
• Active(激活):表示至少已经建立一条到该呼叫方的媒体连接,使其可以与其他呼叫方通信;
• Surrogate(代理):表示该呼叫方指向一个网络实体(如SCP或AS)而不是指向外部的一个终端用户。
(2)、ConnectionPoint对象状态属性
ConnectionPoint对象的状态属性以及状态属性之间的关系如图所示,各状态的含义如下。
• Establishing(正在建立):表示以该连接点为中心的媒体连接正在建立过程中。在该状态下,至少有一个与该连接点关联的Leg还没有建立起来;
• Established(已建立):表示以该连接点为中心的媒体连接已建立完毕,可以传输媒体信息。在该状态下,所有与该媒体连接相关联的Leg都已建立;
• Releasing(正在释放):表示以该连接点为中心的媒体连接正在释放过程中,在该状态下,至少有一条与该媒体连接点相关联的媒体支路正在释放或已释放;
• Released(已释放):表示该媒体连接已释放完毕,在该状态下,所有与该媒体连接相关联的媒体支路都已释放。
三、 与Parlay多媒体呼叫模型的比较
Parlay多媒体呼叫控制模型与UniNet多媒体会话关系模型的主要区别在于前者不支持独立的媒体连接拓扑结构。在前文中已经指出,Parlay规范中定义的多媒体呼叫模型存在不足之处,尤其是没有明确定义代表一个完整媒体连接的对象,只能通过Leg对象间接地控制相应的媒体连接,因此其对媒体连接的表达能力非常有限,对媒体连接的控制操作也比较有限。
UniNet软交换采用的多媒体会话关系模型则明确定义了代表媒体连接的对象以及代表媒体连接到某一呼叫方的媒体支路的对象,可以弥补Parlay多媒体呼叫控制API在这方面的不足之处。实际上,Parlay多方呼叫模型可以看成是UniNet多媒体会话关系模型的一个子集。图8.g所示会话关系模型中各对象与Parlay多媒体呼叫控制对象模型中各对象之间的映射关系如表所示。
UniNet多媒体会话关系模型对象与Parlay对象对应关系UniNet多媒体会话关系模型对象
四、 UniNet会话关系模型控制下的多媒体会话建立过程
下面以一个多媒体会话为例,说明如何使用UniNet多媒体会话关系模型来控制多媒体会话。为简化起见,只描述了这个多媒体会话在最初两个参与方之间的呼叫建立过程以及其中的一条媒体连接的建立过程,如图8.13所示。
(1)用户A发起一个多媒体呼叫,VoIP软交换会话控制功能创建一个Session对象和Party_A对象实例。Party_A拥有Session,并加入到该Session中。然后,VoIP软交换控制功能执行相应的呼叫建立操作。在这一过程中,Party_A对象处于Pending状态。
(2)VoIP软交换会话控制功能创建Party_B对象实例,并将其加入到Session中,然后发起到Party_B的呼叫建立指示。在这一过程中,Party_A和Party_B都处千Pending状态,表示正处在建立呼叫的阶段。
(3) )被叫应答,VoIP软交换会话控制功能完成Party_A与Party_B之间的呼叫建立,Par¬ty_A和Party_B都进入Joined状态。
(4) Party_A发起创建一条媒体连接(比如语音通道,假设这是一个双向媒体通道)的请求,VoIP软交换会话控制功能在Session对象之下创建ConnectionPoint_1对象,并将Party_A通过媒体支路Leg_Al链接到ConnectionPoint_1上,Party_A拥有并控制该媒体连接。然后,VoIP软交换会话控制功能创建到Party_B的媒体支路Leg_Bl。在此状态下,Leg_Al处千正在打开状态,Leg_Bl处千正在打开状态,ConnectionPoint_1本身也处于正在建立状态。
(5) Party_B通过媒体支路Leg_Bl链接到ConnectionPoint_1上,两条媒体支路Leg_Al和Leg_Bl的状态都转为己打开状态,ConnectionPoint_l也已建立起来,呈现Es¬tablished状态。此时,Party_A和Party_B都进入激活状态,开始进行媒体信息的交互。
UniNet多媒体会话关系模型的控制方式