发明内容
本发明提供一种使得受控者用户设备可以和多个远端的被叫用户设备进行媒体协商从而建立联合会话的方法和应用服务器。
本发明实施例提供的建立联合会话的方法,包括:接收控制者用户设备发送的第一会话建立请求消息,根据第一会话建立请求消息与受控者用户设备建立连接;
根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
接收第一被叫用户设备返回的第一会话响应消息,根据第一会话响应消息控制控制者用户设备、受控用户设备分别和第一被叫用户设备完成媒体协商;
接收第二被叫用户设备返回的第二会话响应消息;
在根据第一会话响应消息和第二会话响应消息判断第二会话建立请求消息被分叉时,保存第二会话响应消息;
接收第二被叫用户设备发送的第二摘机消息;
根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商;
在受控者用户设备和第二被叫用户设备进行媒体协商完成后,控制控制者用户设备、受控者用户设备和第二被叫用户设备之间建立联合会话。
本发明实施例还提供一种建立联合会话的方法,该方法包括:
接收控制者用户设备发送的第一会话建立请求消息;
根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
接收第二被叫用户设备发送的第二摘机消息;
维持受控者用户设备和第二被叫用户设备连接的状态,向控制者用户设备发送第二摘机消息;
接收控制者用户设备发送的终止会话消息;
根据终止会话消息向受控者用户设备发送拒绝消息;
向第二被叫用户设备发送终止会话消息。
本发明实施例还提供一种建立联合会话的方法,该方法包括:
接收控制者用户设备发送的第一会话建立请求消息;
根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
接收第二被叫用户设备发送的第二摘机消息;
向控制者用户设备和受控者用户设备发送第二摘机消息;
接收受控者用户设备发送的终止会话消息,根据受控者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态;
接收控制者用户设备发送的终止会话消息;
向第二被叫用户设备发送终止会话消息。
本发明实施例还提供一种建立联合会话的方法,该方法包括:
接收控制者用户设备发送的第一会话建立请求消息;
根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
接收第二被叫用户设备发送的第二摘机消息;
向控制者用户设备和受控者用户设备发送第二摘机消息;
接收控制者用户设备发送的终止会话消息,根据控制者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态;
接收受控者用户设备发送的终止会话消息;
向第二被叫用户设备发送终止会话消息。
本发明实施例还提供一种应用服务器,包括:
第一接收单元,用于接收控制者用户设备发送的第一会话建立请求消息;
连接建立单元,用于根据第一会话建立请求消息与受控者用户设备建立连接;
第一发送单元,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收单元,用于接收第一被叫用户设备返回的第一会话响应消息;
第一协商控制单元,用于根据第一会话响应消息控制控制者用户设备、受控用户设备分别和第一被叫用户设备完成媒体协商;
第三接收单元,用于接收第二被叫用户设备返回的第二会话响应消息;
存储单元,用于在根据第一会话响应消息和第二会话响应消息判断第二会话建立请求消息被分叉时,保存第二会话响应消息;
第四接收单元,用于接收第二被叫用户设备发送的第二摘机消息;
第二协商控制单元,用于根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商;
会话建立控制单元,用于在受控者用户设备和第二被叫用户设备进行媒体协商完成后,控制控制者用户设备、受控者用户设备和第二被叫用户设备之间建立联合会话。
本发明实施例还提供一种应用服务器,包括:第一接收模块,用于接收控制者用户设备发送的第一会话建立请求消息;
第一发送模块,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收模块,用于在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
联合会话建立模块,用于根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
第三接收模块,用于接收第二被叫用户设备发送的第二摘机消息;
第二发送模块,用于向控制者用户设备发送第二摘机消息,维持受控者用户设备和第二被叫用户设备连接的状态;
第四接收模块,用于接收控制者用户设备发送的终止会话消息;
第三发送模块,用于向第二被叫者用户设备发送终止会话消息;
拒绝消息发送模块,用于根据终止会话消息向受控者用户设备发送拒绝消息。
本发明实施例还提供一种应用服务器,包括:
第一接收模块,用于接收控制者用户设备发送的第一会话建立请求消息;
第一发送模块,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收模块,用于在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
联合会话建立模块,用于根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
第三接收模块,用于接收第二被叫用户设备发送的第二摘机消息;
第四发送模块,用于向控制者用户设备和受控者用户设备发送第二摘机消息;
第五接收模块,用于接收受控者用户设备发送的终止会话消息,根据受控者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态;
第四接收模块,用于接收控制者用户设备发送的终止会话消息;
终止消息发送模块,用于向第二被叫用户设备发送终止会话消息。
本发明实施例还提供一种应用服务器,包括:
第一接收模块,用于接收控制者用户设备发送的第一会话建立请求消息;
第一发送模块,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收模块,用于在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
联合会话建立模块,用于根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
第二接收模块,用于接收第二被叫用户设备发送的第二摘机消息;
第四发送模块,用于向控制者用户设备和受控者用户设备发送第二摘机消息;
第四接收模块,用于接收控制者用户设备发送的终止会话消息,根据控制者用户设备发送的终止会话消息,维持受控者用户设备和第二被叫用户设备连接的状态;
第五接收模块,用于接收受控者用户设备发送的终止会话消息;
终止消息发送模块,用于向第二被叫用户设备发送终止会话消息。
在本发明实施例中,应用服务器通过保存接收到的第二会话响应消息,在接收到第二被叫用户设备发送的第二摘机消息后,根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商,从而在协商完之后建立联合会话。因此,本发明实施例可以在第二会话建立请求消息被分叉时,实现受控者用户设备和多个被叫用户设备进行媒体协商,从而建立联合会话,提高用户的业务体验。
具体实施方式
本发明提供了一种建立联合会话的方法和应用服务器。为了更好的理解本发明的技术方案,下面结合附图对本发明提供的实施例进行详细地描述。
参见图1,图1是本发明实施例提供的建立联合会话的方法第一实施例的流程图。在本发明实施例中,应用服务器可以为控制者用户设备提供会话连续性(SC,Session Continuity)业务,媒体协商方法主要包括:
步骤C1、接收控制者用户设备发起的第一会话建立请求消息,根据第一会话建立请求消息与受控者用户设备建立连接。
具体的,应用服务器可以接收控制者用户设备发送的第一会话建立请求消息,第一会话建立请求消息用于请求建立联合会话。应用服务器根据第一会话建立请求消息向受控者用户设备发送第三会话建立请求(invite)消息,从而和受控者用户设备之间建立连接。其中,第三会话建立请求消息中没有携带会话描述协议请求(SDP Offer,Session Description Protocol Offer)消息,受控者用户设备将根据第三会话建立请求消息返回SDP Offer消息。
步骤C2、根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息。
具体的,应用服务器可以根据第三会话建立请求消息获得受控者用户设备的媒体能力信息,然后将受控者用户设备的媒体能力信息和第一会话建立请求消息中携带的控制者用户设备的媒体能力信息进行整合,向被叫用户设备发送第二会话建立请求消息,第二会话建立请求消息中携带控制者用户设备和受控者用户设备的媒体能力信息。
被叫用户设备的S-CSCF可以根据被叫用户设备的公共身份标识(IP Multimedia Public Identity,IMPU)将第二会话建立请求消息进行分叉(forking),从而使得具有相同公共身份标识的多个被叫用户设备均接收到第二会话建立请求消息。
步骤C3、接收第一被叫用户设备返回的第一会话响应消息,根据第一会话响应消息控制控制者用户设备、受控用户设备分别第一被叫用户设备完成媒体协商。
具体的,应用服务器可以接收第一被叫用户设备返回的第一会话响应消息,第一会话响应消息中携带第一被叫用户设备的媒体能力信息,然后通过消息向控制者用户设备和受控者用户设备发送第一被叫用户设备的媒体能力信息,从而使得第一被叫用户设备分别与控制者用户设备、受控用户设备完成媒体协商。
其中,第二会话响应消息可以为会话描述协议应答(SDP answer)消息,会话描述协议应答消息中携带第一被叫用户设备的媒体能力信息,当然还可以使用其它的消息携带第一被叫用户设备的媒体能力信息。
步骤C4、接收第二被叫用户设备返回的第二会话响应消息。
具体的,应用服务器可以接收第二被叫用户设备返回的第二会话响应消息,第二会话响应消息中携带第二被叫用户设备的媒体能力信息。
步骤C5、在根据第一会话响应消息和第二会话响应消息判断第二会话建立请求消息被分叉时,保存第二会话响应消息。
具体的,应用服务器可以根据第一会话响应消息和第二会话响应消息判断第二会话建立请求消息被分叉,例如可以判断第一会话响应消息和第二会话响应消息中的会话标识(dialog ID)的呼叫标识(Call-ID)字段和来源-标识(From-tag)字段是否相同,若相同,则说明第二会话建立请求消息被分叉,否则按照正常的处理会话响应消息的方式进行处理。
应用服务器可以保存第二会话响应消息中的所有媒体能力信息或仅保存需要发送给受控者用户设备的媒体能力信息,该媒体能力信息用于后续控制受控者用户设备与第二被叫用户设备进行媒体协商。
步骤C6、接收第二被叫用户设备发送的第二摘机消息。
具体的,第二被叫用户设备摘机,应用服务器可以接收第二被叫用户设备发送的第二摘机消息。
步骤C7、根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商。
具体的,应用服务器可以根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商。例如,通过Re-invite消息向受控者用户设备发送第二被叫用户设备的媒体能力信息,以便于受控者用户设备和第二被叫用户设备进行媒体协商。
步骤C8、在受控者用户设备和第二被叫用户设备进行媒体协商完成后,控制控制者用户设备、受控者用户设备和第二被叫用户设备之间建立联合会话。
具体的,应用服务器可以在受控者用户设备和第二被叫用户设备进行媒体协商完成后,向控制者用户设备发送第二摘机消息,然后接收控制者用户设备返回的第一会话确认消息,并向第二被叫用户设备发送第一会话确认消息,从而建立控制者用户设备、受控者用户设备和第二被叫用户设备之间的联合会话。
需要说明的是,应用服务器可以在接收到控制者用户设备返回的第一会话确认消息之后,根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商,即应用服务器接收控制者用户设备返回的第一会话确认消息的步骤和应用服务器根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商的步骤可以是时序无关的。
在本发明实施例中,应用服务器通过保存接收到的第二会话响应消息,在接收到第二被叫用户设备发送的第二摘机消息后,根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商,从而在协商完之后建立联合会话。因此,本发明实施例可以在第二会话建立请求消息被分叉时,实现受控者用户设备和多个被叫用户设备进行媒体协商,从而建立联合会话,提高用户的业务体验。
在本发明实施例中,由于第二会话建立请求消息被分叉,则应用服务器在建立控制者用户设备、受控者用户设备和第二被叫用户设备之间的联合会话之后,还可以执行以下步骤:
步骤C9、接收第一被叫用户设备发送的第一摘机消息。
步骤C10、向控制者用户设备发送第一摘机消息。
具体的,由于受控者用户设备已经和第二被叫用户设备建立连接,应用服务器可以不向受控者用户设备发送第一摘机消息,只向控制者用户设备发送第一摘机消息。
由于控制者用户设备、受控者用户设备和第二被叫用户设备已经建立了联合会话,控制者用户设备在接收到第一摘机消息后,向应用服务器返回终止会话消息。
步骤C11、接收控制者用户设备发送的终止会话消息,向第一被叫用户设备发送终止会话消息。
具体的,应用服务器接收控制者用户设备发送的终止会话消息,不向受控者用户设备发送终止会话消息,而向第一被叫用户设备发送终止会话消息。
第一被叫用户设备在接收到终止会话消息后,将断开和控制者用户设备之间的连接。
在本发明实施中,应用服务器在接收到终止会话消息时不向受控者用户设备发送该消息,可以避免受控者用户设备对终止会话消息进行处理,进而减少了受控者用户设备和应用服务器之间的信息交互,加快了处理速度,节省网络资源。
参见图2,图2是本发明实施例提供的根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商的方法流程图。
在本发明实施例中,应用服务器保存第二会话响应消息的步骤可以包括:应用服务器保存第二会话响应消息、第二会话响应消息和会话标识的对应关系,该会话标识用于标识应用服务器和第二被叫用户设备之间的会话。
应用服务器接收到的摘机消息中携带有会话标识,用于标识应用服务器和第二被叫用户设备之间的会话。应用服务器根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商的步骤可以包括:
步骤D1、根据第二摘机消息中携带的会话标识获得对应的第二会话响应消息。
具体的,应用服务器根据第二摘机消息中携带的会话标识查询第二会话响应消息和会话标识的对应关系,获得保存的第二会话响应消息。其中,第二会话响应消息中携带第二被叫用户设备的媒体能力信息。
步骤D2、根据第二会话响应消息控制受控者用户设备和第二被叫用户设备进行媒体协商。
具体的,应用服务器在获得第二会话响应消息后,根据第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商。
本发明实施例通过保存会话响应消息和会话标识的对应关系,可以根据会话标识来区别多个被叫用户设备返回的会话响应消息,可以适应更多的应用场景。
参见图3,图3是本发明实施例提供的建立联合会话的方法第二实施例的流程图。
在本发明实施例中,建立联合会话的过程可以包括:
步骤E1、接收控制者用户设备发送的第一会话建立请求消息。
具体的,应用服务器可以接收控制者用户设备发送的第一会话建立请求消息,第一会话建立请求消息用于请求建立联合会话。
步骤E2、根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息。
应用服务器可以根据第三会话建立请求消息获得受控者用户设备的媒体能力信息,然后将受控者用户设备的媒体能力信息和第一会话建立请求消息中携带的控制者用户设备的媒体能力信息进行整合,向被叫用户设备发送第二会话建立请求消息,第二会话建立请求消息中携带控制者用户设备和受控者用户设备的媒体能力信息。
被叫用户设备的S-CSCF可以根据被叫用户设备的公共身份标识(IMPU)将第二会话建立请求消息进行分叉(forking),从而使得具有相同公共身份标识的多个被叫用户设备均接收到第二会话建立请求消息。
在本发明实施例中,受控者用户设备和控制者用户设备还可以分别和被叫用户设备进行媒体协商。
步骤E3、在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息。
具体的,应用服务器可以在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息,第一摘机消息可以由为被叫用户设备服务的S-CSCF转发给应用服务器。
步骤E4、根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话。
具体的,应用服务器可以根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话,例如将第一媒体建立在第一被叫用户设备和控制者用户设备之间,将第二媒体建立在第一被叫用户设备和控制者用户设备之间。
步骤E5、接收第二被叫用户设备发送的第二摘机消息。
具体的,由于存在多个具有相同的IMPU的被叫用户设备,因此应用服务器会接收第二被叫用户设备发送的第二摘机消息,该第二被叫用户设备和第一被叫用户设备具有相同的IMPU。
步骤E6、维持受控者用户设备和第二被叫用户设备连接的状态,向控制者用户设备发送第二摘机消息。
具体的,应用服务器向控制者用户设备发送第二摘机消息,并且根据第二摘机消息维持受控者用户设备和第二被叫用户设备连接的状态。其中,应用服务器可以不向受控者用户设备发送第二摘机消息,从而维持受控者用户设备和第二被叫用户设备连接的状态,其中该连接是在受控者用户设备和第二被叫用户设备进行媒体协商时建立的。
控制者用户设备在接收到第二摘机消息后,由于之前第一被叫用户设备分别和控制者用户设备、受控者用户设备之间建立了联合会话,控制者用户设备将向应用服务器返回终止会话消息。
步骤E7、接收控制者用户设备发送的终止会话消息。
具体的,应用服务器接收控制者用户设备发送的终止会话消息。应用服务器可以不向受控者用户设备发送终止会话消息,从而维持受控者用户设备和第二被叫用户设备连接的状态。
步骤E8、根据终止会话消息向受控者用户设备发送拒绝消息。
具体的,应用服务器可以根据终止会话消息向受控者用户设备发送拒绝消息,例如488或503拒绝消息,以便于受控者用户设备断开和第二被叫用户设备的连接。
步骤E9、向第二被叫者用户设备发送终止会话消息。
具体的,应用服务器向第二被叫用户设备发送终止会话消息。需要指出的是,应用服务器向第二被叫者用户设备发送终止会话消息的步骤和应用服务器根据终止会话消息向受控者用户设备发送拒绝消息的步骤可以是时序无关的。
在本发明实施例中,应用服务器在接收到第二被叫用户设备发送的第二摘机消息后,不向受控者用户设备发送第二摘机消息,而是通过发送拒绝消息来断开受控者用户设备和第二被叫用户设备在媒体协商过程中建立的连接,使得受控者用户设备不会返回会话终止消息。与现有技术中应用服务器向受控者用户设备发送第二摘机消息相比,本发明实施例可以避免应用服务器接收到受控者用户设备返回的会话终止信息,从而避免对受控者用户设备返回的会话终止信息进行处理,减少了受控者用户设备和应用服务器之间的信息交互,加快了处理速度,节省网络资源。
参见图4,图4是本发明实施例提供的建立联合会话的方法第三实施例的流程图。
在本发明实施例中,建立联合会话的方法可以包括:
步骤F1、接收控制者用户设备发送的第一会话建立请求消息;
步骤F2、根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
步骤F3、在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息。
步骤F4、根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话。
步骤F5、接收第二被叫用户设备发送的第二摘机消息。
其中,上述步骤F1到步骤F5的执行过程和处理摘机消息的方法第一实施例中步骤E1到步骤E5相同,在此不再重复描述。
步骤F6、向控制者用户设备和受控者用户设备发送第二摘机消息。
其中,应用服务器在接收到第二摘机消息后,向控制者用户设备和受控者用户设备发送第二摘机消息。
控制者用户设备和受控者用户设备在接收到第二摘机消息后,将返回终止会话消息。
步骤F7、接收受控者用户设备发送的终止会话消息,根据受控者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态。
具体的,应用服务器接收受控者用户设备发送的终止会话消息,根据受控者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态,即不向控制者用户设备发送终止会话消息,其中该连接是在受控者用户设备和第二被叫用户设备进行媒体协商时建立的。
步骤F8、接收控制者用户设备发送的终止会话消息。
具体的,应用服务器接收控制者用户设备发送的终止会话消息。
步骤F9、向第二被叫用户设备发送终止会话消息。
具体的,应用服务器在接收控制者用户设备发送的终止会话消息后,不向受控者用户设备发送终止会话消息,而是向第二被叫用户设备发送终止会话消息,以便于第二被叫用户设备分别和受控者用户设备、控制者用户设备断开连接。
在本发明实施例中,应用服务器在接收到受控者用户设备发送的终止会话消息后,维持受控者用户设备和第二被叫用户设备连接的状态,在接收到控制者用户设备发送的终止会话消息后,再向第二被叫用户设备发送终止会话消息,从而使得第二被叫用户设备分别和受控者用户设备、控制者用户设备断开连接,与现有技术相比,本发明实施例可以避免控制者用户设备接收到通知消息,避免用户应用服务器收到控制者用户设备根据通知消息返回的拒绝信息,从而减少了控制者用户设备和应用服务器之间的信息交互,加快了摘机消息的处理速度,节省了网络资源。
参见图5,图5是本发明实施例提供的处理摘机消息的方法第四实施例的流程图。
在本发明实施例中,处理摘机消息的方法可以包括:
步骤G1、接收控制者用户设备发送的第一会话建立请求消息;
步骤G1、根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
步骤G3、在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息。
步骤G4、根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话。
步骤G5、接收第二被叫用户设备发送的第二摘机消息。
步骤G6、向控制者用户设备和受控者用户设备发送第二摘机消息。
其中,上述步骤G1到步骤G6的执行过程和处理摘机消息的方法第一实施例中步骤F1到步骤F6相同,在此不再重复描述。
步骤G7、接收控制者用户设备发送的终止会话消息,根据控制者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态。
具体的,应用服务器接收控制者用户设备发送的第二终止会话消息,根据控制者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态,即不向受控者用户设备和第二被叫用户设备发送终止会话消息,其中,该连接是在受控者用户设备和第二被叫用户设备进行媒体协商时建立的。
步骤G8、接收受控者用户设备发送的终止会话消息。
具体的,应用服务器接收控制者用户设备发送的终止会话消息。
步骤G9、向第二被叫用户设备发送终止会话消息。
具体的,应用服务器在接收受控者用户设备发送的终止会话消息后,不向受控者用户设备发送终止会话消息,而是向第二被叫用户设备发送终止会话消息,以便于第二被叫用户设备分别和受控者用户设备、控制者用户设备断开连接。
在本发明实施例中,应用服务器在接收到控制者用户设备发送的终止会话消息后,维持受控者用户设备和第二被叫用户设备连接的状态,在接收到受控者用户设备发送的终止会话消息后,再向第二被叫用户设备发送终止会话消息,从而使得第二被叫用户设备分别和受控者用户设备、控制者用户设备断开连接,与现有技术相比,本发明实施例可以避免受控者用户设备收到第二会话终止消息,进一步避免了应用服务器拒绝受控者用户设备返回的终止会话消息,从而可以减少受控者用户设备和应用服务器之间的信息交互,加快了摘机消息的处理速度,节省了网络资源。
为更详细的理解本发明实施例,下面给出本发明实施例在建立联合会话过程中的具体应用。
参见图6,图6是本发明实施例提供的建立联合会话的方法第五实施例的流程图。
其中,UE-1、UE-2可以属于相同的签约或不同的签约用户。SCC AS-1是为UE-1提供SC业务的应用服务器;SCC AS-2是为UE-2提供SC业务的应用服务器,当UE-1和UE-2为相同的签约用户时,SCC AS-1和SCC AS-2为同一个SCC AS。
建立联合会话的过程可以包括以下步骤:
步骤H1、接收UE1发送的第一会话建立请求消息。
在本发明实施例中,UE1向SCC AS1发送第一会话建立请求(Invite)消息,该第一会话建立请求消息中携带媒体(Media)1建立在UE1中,媒体2建立在UE2中,被叫用户设备的公共身份标识,以及控制信息保留在UE1中的指示信息。第一会话建立请求消息中包含SDP Offer消息,SDP Offer消息中携带有UE1的媒体能力信息。
步骤H2a、根据第一会话建立请求消息向UE2发送第三会话建立请求消息。
其中,第三会话建立请求(Invite)消息中没有携带SDP Offer消息。UE2将根据第三会话建立请求消息返回携带SDP Offer消息的200OK消息。
步骤H3a、接收UE2发送的200OK消息,该200OK消息中包含的SDPOffer消息携带有UE2的媒体能力信息。
在本发明实施例中,SDP Offer消息可以通过200OK消息发送给应用服务器。另外,上述获取UE1和UE2的媒体能力信息可以通过步骤H2a和H3a来实现,还可以通过下面的步骤H2b和H3b来实现。
步骤H2b、根据第一会话建立请求消息向UE2发送第四会话建立请求消息。
其中,第四会话建立请求消息中携带有SDP Offer消息,该SDP Offer消息中携带有UE1的媒体能力信息。
步骤H3b、接收UE2发送的200OK消息,该200OK消息中包含的SDPAnswer消息中携带UE2的媒体能力信息。
其中,SDP Answer消息可以通过200OK消息发送给应用服务器。
步骤H4、根据UE1和UE2的媒体能力信息,向被叫用户设备发送第二会话建立请求消息。
其中,第二会话建立请求消息中携带UE1和UE2的媒体能力信息和被叫用户设备的公共身份标识。
步骤H5-H6、被叫用户设备的S-CSCF根据被叫用户设备的公共身份标识将第二会话建立请求消息分叉。
具体的,被叫用户设备的S-CSCF将第二会话建立请求消息发送到该公共身份标识对应的多个被叫用户设备,在本发明实施例中被叫用户设备包括UE-A和UE-B。
步骤H7、接收UE-A发送的SDP Answer A1消息。
其中,SDP Answer A1消息可以通过183消息发送给应用服务器,SDPAnswer A1消息中携带UE-A的媒体能力信息。
在本发明实施例中,第一会话响应信息为SDP Answer A1消息,当然,第一会话响应信息还可以其它类型的消息。
步骤H8、通过183消息向UE1发送SDP Answer A2消息,该SDP Answer A2消息中携带UE-A的媒体能力信息。
其中,应用服务器可以使用183消息向UE1发送SDP Answer A2消息。
步骤H9a、通过再邀请(Re-invite)消息向UE2发送SDP Answer A3消息,SDP Answer A3消息中携带有UE-A的媒体能力信息。
其中,应用服务器根据步骤H3a中的SDP Offer消息向UE2发送UE-A的媒体能力信息。UE2根据该SDP Answer A3消息和UE-A进行媒体协商,并返回200OK消息。另外,SDP Answer A1、SDP Answer A2、SDP Answer A3中分别携带不同的媒体能力信息。
步骤H10a、接收UE2针对该re-Invite消息返回的200OK消息。
在本发明实施例中,应用服务器可以执行步骤H9a到H10a来实现UE2和UE-A的媒体协商,还可以执行步骤H9b到H10b来实现UE2和UE-A的媒体协商。
步骤H9b、通过再邀请(Re-invite)消息向UE2发送SDP Offer消息,SDP Offer消息中携带有UE-A的媒体能力信息。
其中,应用服务器根据步骤H2b、H3b和上述H7中的SDP Answer A1消息,向UE2发送SDP Offer消息,该SDP Offer消息中携带UE-A的媒体能力信息。UE2根据该SDP Answer A1消息和UE-A进行媒体协商,并返回200OK消息。
步骤H10b、接收UE2针对该re-Invite消息返回的200OK消息,200OK消息中包含SDP Answer A3消息。
其中,UE2返回的200OK消息中携带SDP Answer A3消息,本发明实施例完成UE1、UE2和UE-A的媒体协商过程,即分别获得建立联合会话时双方使用的媒体编码格式、地址等信息。
步骤H11、接收UE-B发送的SDP Answer B1消息。
其中,SDP Answer B1消息可以通过183消息发送给应用服务器,SDPAnswer B1消息中携带UE-B的媒体能力信息。
在本发明实施例中,第二会话响应信息为SDP Answer B1消息,当然,第二会话响应信息还可以其它类型的消息。
步骤H12、向UE1发送SDP Answer B2消息。
其中,SCC AS1根据步骤F1中SDP Offer的内容,通过183消息向UE1发送SDP Answer B2消息,SDP Answer B2消息中携带UE-B的能力信息。
步骤H13、根据SDP Answer A1消息和SDP Answer B1消息判断会话建立请求消息被分叉,保存SDP Answer B1消息。
具体的,应用服务器可以判断第一会话响应消息和第二会话响应消息中的会话标识(dialog ID)的呼叫标识(Call-ID)字段和来源-标识(From-tag)字段是否相同,若相同,则说明第二会话建立请求消息被分叉。
其中,SCC AS1还保存SDP Answer B1与“SCC AS-1与UE-B间的会话标识(dialog ID)”的对应关系,用于后续查找SDP Answer B1。
步骤H14、接收UE-B的摘机消息。
具体的,SCC AS1可以接收UE-B的摘机消息,该摘机消息可以通过200Ok消息来发送。
步骤H15、向UE1发送摘机消息。
其中,可以通过200OK消息向UE1发送摘机消息,UE1将根据摘机消息向SCC AS1发送第一会话确认消息。
步骤H16、接收UE1发送的第一会话确认(ACK,Acknowledge)消息。
步骤H17、通过Re-invite消息向UE2发送UE-B的媒体能力信息。
其中,SCC AS1可以根据SCC AS1和UE-B之间的会话标识查找得到SDPAnswer B1,然后通过再邀请消息向UE-B发送SDP Offer B3消息,从而使得UE2和UE-B之间进行媒体协商,并且UE2在完成媒体协商后,通过200OK消息回复SDP Answer B3消息。
步骤H18、控制UE-B和UE1、UE2之间建立联合会话。
在媒体协商完成之后,SCC AS1控制UE-B和UE1、UE2之间建立联合会话。
参见图7,图7是本发明实施例提供的建立联合会话的方法第六实施例的流程图。
其中,UE-1、UE-2可以属于相同的签约或不同的签约用户。SCC AS-1是为UE-1提供SC业务的应用服务器;SCC AS-2是为UE-2提供SC业务的应用服务器,当UE-1和UE-2为相同的签约用户时,SCC AS-1和SCC AS-2为同一个SCC AS。
建立联合会话的过程可以包括以下步骤:
步骤L1、接收UE1发送的第一会话建立请求消息。
在本发明实施例中,UE1向SCC AS1发送第一会话建立请求消息,该第一会话建立请求消息中携带媒体1建立在UE1中,媒体2建立在UE2中,被叫用户设备的公共身份标识,以及控制信息保留在UE1中的指示信息。第一会话建立请求消息中包含SDP Offer消息,SDP Offer消息中携带有UE1的媒体能力信息。
步骤L2、根据第一会话建立请求消息向UE2发送会话查询消息。
其中,该会话查询(Refer)消息中没有携带SDP Offer消息,会话查询消息中携带UE1的媒体能力信息。UE2在接收到该会话查询消息后,将返回携带SDP Offer消息的Invite消息。
步骤L3、接收UE2发送的第五会话建立请求消息。
其中,该第五会话建立(Invite)请求消息中包括SDP Offer消息,SDP Offer消息中携带有UE2的媒体能力信息。
步骤L4、根据UE1和UE2的媒体能力信息,向被叫用户设备发送第二会话建立请求消息。
其中,第二会话建立请求消息中携带UE1和UE2的媒体能力信息和被叫用户设备的公共身份标识(IMPU)。
步骤L5-L6、被叫用户设备的S-CSCF根据被叫用户设备的公共身份标识将第二会话建立请求消息分叉。
具体的,被叫用户设备的S-CSCF将第二会话建立请求消息发送到该公共身份标识对应的多个被叫用户设备,在本发明实施例中被叫用户设备包括UE-C和UE-D。
步骤L7、接收UE-C发送的SDP Answer C1消息。
其中,SDP Answer C1消息可以通过183消息发送给应用服务器,SDPAnswer C1消息中携带UE-C的媒体能力信息。
在本发明实施例中,第一会话响应信息为SDP Answer C1消息,当然,第一会话响应信息还可以其它类型的消息。
步骤L8、通过183消息向UE1发送SDP Answer C2消息,该SDP Answer C2消息中携带UE-C的媒体能力信息。
其中,应用服务器可以使用183消息向UE1发送SDP Answer C2消息。UE1根据SDP Answer C2消息完成和UE-C的媒体协商。
步骤L9、通过183消息向UE2发送SDP Answer C3消息,SDP Answer C3消息中携带有UE-C的媒体能力信息。
其中,应用服务器根据步骤L3中的SDP Offer消息,通过183消息向UE2发送SDP Answer C3消息。UE2根据SDP Answer C3消息完成和UE-C的媒体协商。
另外,SDP Answer C1、SDP Answer C2、SDP Answer C3中分别携带不同的媒体能力信息。
步骤L10、接收UE-D发送的SDP Answer D1消息。
其中,SDP Answer D1消息可以通过183消息发送给应用服务器,SDPAnswer D1消息中携带UE-D的媒体能力信息。
在本发明实施例中,第二会话响应信息为SDP Answer D1消息,当然,第二会话响应信息还可以其它类型的消息。
步骤L11、向UE1发送SDP Answer D2消息。
其中,应用服务器根据步骤L1中的SDP Offer消息,通过183消息向UE1发送SDP Answer D2消息。
UE1根据SDP Answer D2消息完成和UE-D的媒体协商。
步骤L12、向UE2发送SDP Answer D3消息。
其中,SCC AS1根据步骤L3中的SDP Offer消息,通过183消息向UE2发送SDP Answer D3消息,SDP Answer D3消息中携带UE-D的能力信息。
UE2根据SDP Answer D3消息完成和UE-D的媒体协商。
步骤L13、接收UE-D的摘机消息。
具体的,SCC AS1可以接收UE-D的摘机消息,该摘机消息可以通过200OK消息来发送。
步骤L14、向UE1发送摘机消息。
其中,可以通过200OK消息向UE1发送第一摘机消息,UE1将根据摘机消息向SCC AS1发送第一会话确认消息。
步骤L15、接收UE1发送的第一会话确认消息.
步骤L16、向UE2发送200OK消息,该200OK消息中携带SDPAnswerD3。
步骤L17、向UE-D发送第一会话确认消息,建立联合会话。
其中,SCC AS1向UE-D发送第一会话确认消息,使得第一被叫用户设备分别和控制者用户设备、受控者用户设备之间建立联合会话。
步骤L18、接收UE-C发送的摘机消息,UE-C和UE-D的公共身份标识相同。
其中,SCC AS1接收UE-C发送的摘机消息,UE-C和UE-D的公共身份标识相同。
步骤L19、向UE1发送摘机消息,根据UE1发送的摘机消息维持UE2和UE-C连接的状态。
其中,SCC AS1可以通过200OK消息将摘机消息发送给UE1。SCC AS1可以不向UE2发送摘机消息,从而维持UE2和UE-C连接的状态,该连接是在UE2和UE-C进行媒体协商时建立的。
UE1在接收到摘机消息后,将返回第二会话确认消息。由于之前UE-D分别和UE1、UE2之间建立了联合会话,UE1将向UE-C发送终止会话消息。
步骤L20、接收UE1返回的第二会话确认消息,将第二会话确认消息发送给UE-C。
步骤L21、接收UE1发送的终止会话消息,根据UE1发送的终止会话消息维持UE2和UE-C连接的状态。
其中,SCC AS1可以不向UE2发送终止会话消息,从而维持UE2和UE-C连接的状态。
步骤L22、向UE-C发送终止会话消息。
其中,SCC AS1向UE-C发送终止会话消息,UE-C根据该消息判断已经建立联合会话,断开和UE1的连接。
步骤L23、向UE2发送拒绝消息。
其中,SCC AS1可以向UE2发送488或503拒绝(Reject)消息,从而使得UE2断开和UE-C的连接。
与现有技术相比,本发明实施例提供的建立联合会话的方法在处理摘机消息时,SCC AS1在接收到UE-C发送的摘机消息后,不向UE2发送摘机消息,而是通过发送拒绝消息来断开UE2和UE-C在媒体协商过程中建立的连接,使得UE2不会返回会话终止消息。与现有技术中SCC AS1向UE2发送摘机消息相比,本发明实施例可以避免SCC AS1接收到UE2返回的Bye消息,从而避免对UE2返回的Bye消息进行处理,减少了UE2和SCC AS1之间的信息交互,加快了处理速度,节省网络资源。
本发明实施例还提供相应的应用服务器实施例,参见图8,图8是本发明实施例提供的应用服务器第一实施例的示意图。
在本发明实施例中,应用服务器第一实施例可以包括:
第一接收单元110,用于接收控制者用户设备发送的第一会话建立请求消息;
连接建立单元120,用于根据第一会话建立请求消息与受控者用户设备建立连接;
第一发送单元130,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收单元140,用于接收第一被叫用户设备返回的第一会话响应消息;
第一协商控制单元150,用于根据第一会话响应消息控制控制者用户设备、受控用户设备分别和第一被叫用户设备完成媒体协商;
第三接收单元160,用于接收第二被叫用户设备返回的第二会话响应消息;
存储单元170,用于在根据第一会话响应消息和第二会话响应消息判断第二会话建立请求消息被分叉时,保存第二会话响应消息。
第四接收单元180,用于接收第二被叫用户设备发送的第二摘机消息;
第二协商控制单元190,用于根据保存的第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商;
会话建立控制单元200,用于在受控者用户设备和第二被叫用户设备进行媒体协商完成后,控制控制者用户设备、受控者用户设备和第二被叫用户设备之间建立联合会话。
在本发明实施例中,应用服务器还可以包括:
第五接收单元,用于在会话建立控制单元控制控制者用户设备、受控者用户设备和第二被叫用户设备之间建立联合会话之后,接收第一被叫用户设备发送的第一摘机消息;
第二发送单元,用于向控制者用户设备发送第一摘机消息;
第六接收单元,用于接收控制者用户设备发送的终止会话消息;
第三发送单元,用于向第一被叫者用户设备发送终止会话消息。
本发明实施例提供的应用服务器可以使用在前述对应的媒体协商方法第一实施例中。
参见图9,图9是本发明实施例提供的应用服务器第一实施例中存储单元170的示意图。
在本发明实施例提供的应用服务器中,存储单元170可以包括:
第一存储子单元171,用于保存第二会话响应消息;
第二存储子单元172,用于保存第二会话响应消息和会话标识的对应关系,会话标识用于标识应用服务器和第二被叫用户设备的会话;
参见图10,图10是本发明实施例提供的应用服务器第一实施例中第二协商控制单元190的示意图。
第二协商控制单元190可以包括:
获得子单元191,用于根据第二摘机消息中携带的会话标识获得对应的第二会话响应消息;
协商控制子单元192,用于根据第二会话响应消息,控制受控者用户设备和第二被叫用户设备进行媒体协商。
参见图11,图11是本发明实施例提供的应用服务器第二实施例的示意图。
本发明实施例还提供的一种应用服务器,该应用服务器第二实施例可以包括:
第一接收模块310,用于接收控制者用户设备发送的第一会话建立请求消息;
第一发送模块320,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收模块330,用于在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
联合会话建立模块340,用于根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
第三接收模块350,用于接收第二被叫用户设备发送的第二摘机消息;
第二发送模块360,用于向控制者用户设备发送第二摘机消息,维持受控者用户设备和第二被叫用户设备连接的状态;
第四接收模块370,用于接收控制者用户设备发送的终止会话消息;
第三发送模块380,用于向第二被叫者用户设备发送终止会话消息;
拒绝消息发送模块390,用于根据终止会话消息向受控者用户设备发送拒绝消息。
本发明实施例提供的应用服务器第二实施例可以使用在前述对应的建立联合会话的方法第二实施例中。
参见图12,图12是本发明实施例提供的应用服务器第三实施例的示意图。
在本发明实施例中,应用服务器包括:
第一接收模块410,用于接收控制者用户设备发送的第一会话建立请求消息;
第一发送模块420,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收模块430,用于在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
联合会话建立模块440,用于根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
第三接收模块450,用于接收第二被叫用户设备发送的第二摘机消息;
第四发送模块460,用于向控制者用户设备和受控者用户设备发送第二摘机消息;
第五接收模块470,用于接收受控者用户设备发送的终止会话消息,根据受控者用户设备发送的终止会话消息维持受控者用户设备和第二被叫用户设备连接的状态;
第四接收模块480,用于接收控制者用户设备发送的终止会话消息;
终止消息发送模块490,用于向第二被叫用户设备发送终止会话消息。
本发明实施例提供的应用服务器第三实施例可以使用在前述对应的建立联合会话的方法第三实施例中。
参见图13,图13是本发明实施例提供的应用服务器第四实施例的示意图。
在本发明实施例中,应用服务器包括:
第一接收模块510,用于接收控制者用户设备发送的第一会话建立请求消息;
第一发送模块520,用于根据第一会话建立请求消息向被叫用户设备发送第二会话建立请求消息;
第二接收模块530,用于在第二会话建立请求消息被分叉的情况下,接收第一被叫用户设备发送的第一摘机消息;
联合会话建立模块540,用于根据第一摘机消息控制控制者用户设备、受控者用户设备和第一被叫用户设备之间建立联合会话;
第三接收模块550,用于接收第二被叫用户设备发送的第二摘机消息;
第四发送模块560,用于向控制者用户设备和受控者用户设备发送第二摘机消息;
第四接收模块570,用于接收控制者用户设备发送的终止会话消息,根据控制者用户设备发送的终止会话消息,维持受控者用户设备和第二被叫用户设备连接的状态;
第五接收模块580,用于接收受控者用户设备发送的终止会话消息;
终止消息发送模块590,用于向第二被叫用户设备发送终止会话消息。
本发明实施例提供的应用服务器第四实施例可以使用在前述对应的建立联合会话的方法第四实施例中。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。
以上对本发明建立联合会话的方法和应用服务器进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。