CN105656869A - 一种用于建立sip会话的方法与设备 - Google Patents
一种用于建立sip会话的方法与设备 Download PDFInfo
- Publication number
- CN105656869A CN105656869A CN201410743023.1A CN201410743023A CN105656869A CN 105656869 A CN105656869 A CN 105656869A CN 201410743023 A CN201410743023 A CN 201410743023A CN 105656869 A CN105656869 A CN 105656869A
- Authority
- CN
- China
- Prior art keywords
- terminal called
- medium type
- terminal
- replied
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明的目的是提供一种建立SIP会话的方法和设备。应用服务器收到来自CSCF的会话建立请求后,向CSCF发送会话建立请求,其中包含了所述未满足的主叫媒体类型集合和已回复的被叫终端集合。当受到来自CSCF的回复消息后,更新所述未满足的主叫媒体类型集合和已回复的被叫终端集合。重复上述过程,直到所述未满足的主叫媒体类型集合为空或者应用服务器接收到来自所述CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复。通过采用本发明,一个SIP终端可以和多个SIP终端建立SIP会话,从而提高了建立SIP会话的成功率,而且可以增加SIP会话的媒体类型,显著提升了用户体验。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种建立SIP会话的技术。
背景技术
SIP(SessionInitialProtocol,会话初始协议)消息是一种用于建立端到端的会话(Session)的信令消息。通常,在SIP消息的消息体部分都封装有SDP(SessionDescriptionProtocol,会话描述协议)信息,这些SDP信息指明了会话的一端所支持的媒体类型,这些媒体类型包括但不限于音频、视频、消息、FTP(FileTransferProtocol,文件传输协议)等。由于SIP消息是端到端的会话消息,因此,目前的SIP会话只能建立在一个终端和另一个终端之间,而不能建立在一个终端和多个终端之间,而且,SDP中指明的媒体类型是针对某一个终端的。
而通信技术的迅猛发展使得越来越多的用户同时拥有多个终端设备,每个终端设备所支持的媒体类型可能是不相同的。如果按照现行的SIP标准,可能会存在一些问题。
比如,主叫用户A的终端A1支持多种媒体类型:音频和FTP,被叫用户B拥有2个终端B1和B2,终端B1支持的媒体类型为音频,终端B2支持的媒体类型为FTP。当主叫终端A1发起SIP呼叫请求时,核心网将根据预设的策略决定被叫用户B的两个终端中的哪个终端被连接,但是只能有一个终端被连接到会话中。现有技术中主要有两种方法来处理和一个会话相关的多个终端:
1)RFC3841中提到的主叫优先(CallerPreferences)方法。在该方法中,主叫用户可以指定其喜好的媒体类型。但是,这种方法的缺点是:当每个被叫终端分别不能满足主叫终端指定的媒体类型时,即使所有被叫终端的媒体类型合在一起能满足主叫终端,但由于主叫终端要求其指定的媒体类型全部满足时,呼叫也不能建立。比如上述的例子中,如果主叫终端A1发起的SIP呼叫请求中的SDP指明的媒体类型为音频和FTP,按照RFC3841的规定,被叫终端B1不能满足要求,被叫终端B2也不能满足要求,因此,呼叫无法建立,而被叫终端B1和被叫终端B2合在一起是可以满足要求。
2)SIP分流(Forking)。根据顺序振铃原则,最先应答的终端将胜出被连接到会话中。比如上述例子中,如果主叫终端A1发起的SIP呼叫请求中的SDP指明的媒体类型为音频和FTP,而被叫终端B1最先应答,则被叫终端B1被连接到会话中,主叫终端A1只能和被叫终端B1建立音频连接,而主叫终端A1要求的FTP无法被满足。
可以看出,现有技术中存在SIP呼叫无法成功建立或只能部分满足用户需求的问题,造成这些问题的主要原因在于:在现有技术的SIP会话中,一个终端只能和另一个终端连接,而无法和多个终端连接。
发明内容
本发明的目的是提供一种建立SIP会话的方法与设备。
根据本发明的第一个方面,提供了一种在应用服务器中用于建立SIP会话的方法,该方法包括以下步骤:A.响应于来自CSCF的会话建立请求,所述会话建立请求包含了主叫终端指定的至少一个媒体类型,确定未满足的主叫媒体类型集合和已回复的被叫终端集合;B.向所述CSCF发送会话建立请求,其中包含了所述未满足的主叫媒体类型集合和已回复的被叫终端集合;C.响应于来自所述CSCF的回复消息,其中包含了一个被叫终端的信息,更新所述未满足的主叫媒体类型集合和已回复的被叫终端集合;重复上述步骤B至步骤C,直到所述未满足的主叫媒体类型集合为空或者接收到来自所述CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复;D.向所述CSCF发送回复消息。
优选地,所述步骤A进一步包括:确定所述未满足的主叫媒体类型集合的初始值为所述主叫终端指定的至少一个媒体类型,所述已回复的被叫终端集合的初始值为空。
优选地,所述步骤C进一步包括:更新所述已回复的被叫终端集合为集合当前值加上所述被叫终端;当所述回复消息包含了所述被叫终端支持的至少一个媒体类型时,更新所述未满足的主叫媒体类型集合为集合当前值减去所述被叫终端支持的至少一个媒体类型。
优选地,所述步骤D进一步包括:当所述未满足的主叫媒体类型集合为空时,向所述CSCF发送会话成功建立的回复消息;当接收到来自CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复时,如果所述未满足的主叫媒体类型集合与其初始值相同,向所述CSCF发送会话建立失败的回复消息,否则,向所述CSCF发送会话建立成功的回复消息。
优选地,在步骤C之后还包括:向所述CSCF发送会话正在建立中的回复消息。
优选地,所述步骤A进一步包括:仅当所述主叫终端支持与多个被叫终端连接时,才确定所述未满足的主叫媒体类型集合和已回复的被叫终端集合。
根据本发明的第二个方面,提供了一种在CSCF中用于建立SIP会话的方法,该方法包括以下步骤:接收来自应用服务器的会话建立请求,其中包含了未满足的主叫媒体类型集合和已回复的被叫终端集合;根据所述已回复的被叫终端集合确定未回复的被叫终端集合;如果所述未回复的被叫终端集合为空,向所述应用服务器发送指示消息,所述指示消息用于指示所有的被叫终端已回复;如果所述未回复的被叫终端集合不为空,在所述未回复的被叫终端集合中确定一个被叫终端,并向所述被叫终端发送会话建立请求其中包含了所述未满足的主叫媒体类型集合。
根据本发明的第三个方面,提供了一种在应用服务器中用于建立SIP会话的装置,该装置包括:第一确定装置,用于响应于来自CSCF的会话建立请求,确定未满足的主叫媒体类型集合和已回复的被叫终端集合,所述会话建立请求包含了主叫终端指定的至少一个媒体类型;第一发送装置,用于向所述CSCF发送会话建立请求,其中包含了所述未满足的主叫媒体类型集合和已回复的被叫终端集合;更新装置,用于响应于来自所述CSCF的回复消息,更新所述未满足的主叫媒体类型集合和已回复的被叫终端集合,所述回复消息包含了一个被叫终端的信息;第一发送装置和更新装置重复执行上述发送步骤和更新步骤,直到所述未满足的主叫媒体类型集合为空或者接收到来自所述CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复;第二发送装置,用于向所述CSCF发送回复消息。
优选地,所述第一确定装置进一步用于:确定所述未满足的主叫媒体类型集合的初始值为所述主叫终端指定的至少一个媒体类型,所述已回复的被叫终端集合的初始值为空。
优选地,所述更新装置进一步用于:更新所述已回复的被叫终端集合为集合当前值加上所述被叫终端;当所述回复消息包含了所述被叫终端支持的至少一个媒体类型时,更新所述未满足的主叫媒体类型集合为集合当前值减去所述被叫终端支持的至少一个媒体类型。
优选地,所述第二发送装置进一步用于:当所述未满足的主叫媒体类型集合为空时,向所述CSCF发送会话成功建立的回复消息;当接收到来自CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复时,如果所述未满足的主叫媒体类型集合与其初始值相同,向所述CSCF发送会话建立失败的回复消息,否则,向所述CSCF发送会话建立成功的回复消息。
优选地,所述装置还包括:第三发送装置,用于在所述更新装置执行更新步骤后向所述CSCF发送会话正在建立中的回复消息。
优选地,所述第一确定装置进一步用于:仅当所述主叫终端支持与多个被叫终端连接时,才确定所述未满足的主叫媒体类型集合和已回复的被叫终端集合。
根据本发明的第四个方面,一种在CSCF中用于建立SIP会话的装置,该装置包括:接收装置,用于接收来自应用服务器的会话建立请求,其中包含了未满足的主叫媒体类型集合和已回复的被叫终端集合;第二确定装置,用于根据所述已回复的被叫终端集合确定未回复的被叫终端集合;第四发送装置,用于当所述未回复的被叫终端集合为时向所述应用服务器发送指示消息,所述指示消息用于指示所有的被叫终端已回复;第五发送装置,用于当所述未回复的被叫终端集合不为空时在所述未回复的被叫终端集合中确定一个被叫终端,并向所述被叫终端发送会话建立请求其中包含了所述未满足的主叫媒体类型集合。
与现有的建立SIP会话的技术相比,本发明提出了一种能在一个SIP终端和另外多个SIP终端之间建立SIP会话的技术。使用本发明的技术,使得同一SIP会话可以建立在一个终端和多个终端之间,可以带来以下有益效果:
1)提高建立SIP呼叫的成功率,特别是当每一个被叫终端的媒体类型单独无法满足主叫终端的要求时。
2)更好地满足主叫用户需求,特别是当主叫终端要求多种媒体类型时,现有技术中主叫终端只能和一个被叫终端建立SIP会话,因此,建立的SIP会话的媒体类型取决于这个被叫终端支持的媒体类型,而在本发明中,主叫终端可以和多个被叫终端建立SIP会话,因此,建立的SIP会话的媒体类型是这多个被叫终端支持的媒体类型的合集,显然,建立的SIP会话的媒体类型增加了,更好地满足了用户需求。
3)为被叫用户提供了更多的灵活性。同一终端的不同接入方式对应不同的IP地址,可以看成不同的终端。而不同的接入方式下同一媒体类型的质量和资费是不同的,被叫用户可以通过接受或拒绝呼叫来选择在哪种接入方式下使用哪种媒体类型。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本发明一个实施例的应用场景图;
图2示出根据本发明一个实施例的用于建立SIP会话的过程示意图;
图3示出根据本发明另一个实施例的用于建立SIP会话的过程示意图;
图4示出根据本发明另一个实施例的用于建立SIP会话的过程示意图;
图5示出根据本发明一个实施例的在应用服务器中用于建立SIP会话的装置示意图;
图6示出根据本发明一个实施例的在CSCF中用于建立SIP会话的装置示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
图1示出根据本发明一个实施例的应用场景图。其中,用户A拥有一个SIP终端:终端A01,用户B拥有3个SIP终端:终端B01、终端B02和终端B03。图中所示的SIP终端类型仅是示例性的,包括但不限于台式机、笔记本电脑、移动手机、平板电脑等。终端A01通过核心网103与终端B01、终端B01、终端B02和终端B03相连。CSCF(CallSessionControlFunction,呼叫会话控制功能)101和应用服务器102位于核心网103中。需要说明的是,图1仅示出了与本发明相关的网元和连接,本领域技术人员应能理解,为实现本发明,图1还包括其他必需的网元和连接。
图2示出根据本发明一个实施例的用于建立SIP会话的过程示意图。在该实施例中,终端A01支持的媒体类型为音频和FTP。终端B01支持的媒体类型为音频,终端B02支持的媒体类型为音频、视频和FTP,终端B03支持的媒体类型为音频和视频。主叫用户A希望和被叫用户B建立音频和FTP的会话。
该过程始于步骤S201。
在步骤S201中,主叫终端A01向CSCF101发送会话建立请求,比如图中所示的INVITE消息,该会话建立请求消息中包含了主叫终端A01所指定的至少一个媒体类型,如图所示,INVITE消息的SDP中指明了媒体类型为音频和FTP,即主叫终端A01希望建立一个音频和FTP的会话。该会话建立请求消息还包含了对话(Dialogue)标识D0。
在步骤S202中,CSCF101收到来自主叫终端A01的会话建立请求后,向应用服务器102发送会话建立请求,比如图中所示的INVITE消息,该会话建立请求消息中包含了主叫终端A01所指定的至少一个媒体类型,即音频和FTP,其中还包含了标识D0。
应用服务器102收到上述会话建立请求消息后,确定未满足的主叫媒体类型集合P1和已回复的被叫终端集合P2。在该实施例中,P1的初始值为主叫终端A01所指定的至少一个媒体类型,即P1={音频,FTP};P2的初始值为空,即P2={}。
在另一个实施例中,应用服务器102在确定P1和P2前会判断主叫终端A01是否支持与多个被叫终端连接。仅当主叫终端A01支持与多个被叫终端连接时,应用服务器102才确定上述未满足的主叫媒体类型集合P1和已回复的被叫终端集合P2。
在步骤S203中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1和已回复的被叫终端集合P2。可以在INVITE消息的SDP信息中指明集合P1,在Reject-Contact消息头中指明集合P2。该会话建立请求消息还包含了对话标识D1。
CSCF101收到上述会话建立请求消息后,根据P2确定未回复的被叫终端集合P3,即P3={终端B01,终端B02,终端B03}。然后,CSCF101会在未回复的被叫终端集合P3中选择一个被叫终端。CSCF101可以根据现有技术中的策略来做选择。在该实施例中,CSCF101选择了被叫终端B01。
在步骤S204中,CSCF101向被叫终端B01发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1,该会话建立请求消息还包含了对话标识D1。
在步骤S205中,被叫终端B01收到来自CSCF101的上述会话建立请求消息后,向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B01所支持的媒体类型即音频,其中还包含了对话标识D1。
在步骤S206中,CSCF101向应用服务器102发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B01所支持的媒体类型即音频,其中还包含了对话标识D1。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1和已回复的被叫终端集合P2。更新未满足的主叫媒体类型集合P1的步骤进一步包括:更新P1为其当前值减去被叫终端B01所支持的媒体类型,即更新P1为集合{音频,FTP}除去“音频”,更新后的P1值为{FTP}。更新已回复的被叫终端集合P2的步骤进一步包括:更新P2为其当前值加上被叫终端B01,即更新P2为集合{}加上“被叫终端B01”,更新后的P2值为{终端B01}。
然后,应用服务器102会向CSCF101发送回复消息。在向CSCF101发送回复消息前,应用服务器102会判断未满足的主叫媒体类型集合P1是否为空。如果P1为空,则说明主叫终端A01指定的所有媒体类型均已满足,那么,应用服务器102不会再向其他被叫终端发起会话建立请求,其会向CSCF101发送会话成功建立的回复消息;如果P1不为空,则说明主叫终端A01指定的所有媒体类型并未被全部满足,应用服务器102会再向其他未回复的被叫终端发起会话建立请求用来判断P1中的媒体类型是否可以被其他被叫终端所满足,其会向CSCF101发送会话正在建立中的回复消息。
在本实施例中,更新后的P1不为会,在步骤S207中,应用服务器102会向CSCF101发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了被叫终端B01支持的媒体类型即音频,其中还包含了对话标识D0。
在步骤S208中,CSCF101向主叫终端A01发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了被叫终端B01支持的媒体类型即音频,其中还包含了对话标识D0。
至此,主叫终端A01和被叫终端B01之间建立了音频的会话。
而此时,主叫终端A01指定的媒体类型并未被全部满足,应用服务器102会向其他被叫终端发起新的会话建立请求,即重复上述的步骤S203至步骤S208。
在步骤S209中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了更新后的P1即{FTP}和更新后的P2即{终端B01}。可以在INVITE消息的SDP信息中指明集合P1,在Reject-Contact消息头中指明集合P2。该会话建立请求消息还包含了对话标识D2。
CSCF101收到上述会话建立请求消息后,根据P2确定未回复的被叫终端集合P3,即P3={终端B02,终端B03}。然后,CSCF101会在未回复的被叫终端集合P3中选择一个被叫终端。CSCF101可以根据现有技术中的策略来做选择。在该实施例中,CSCF101选择了被叫终端B02。
在步骤S210中,CSCF101向被叫终端B02发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1,该会话建立请求消息还包含了对话标识D2。
在步骤S211中,被叫终端B02收到来自CSCF101的上述会话建立请求消息后,向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B02所支持的媒体类型即FTP,其中还包含了对话标识D2。
在步骤S212中,CSCF101向应用服务器102发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B02所支持的媒体类型即FTP,其中还包含了对话标识D2。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1和已回复的被叫终端集合P2。更新未满足的主叫媒体类型集合P1的步骤进一步包括:更新P1为其当前值减去被叫终端B02所支持的媒体类型,即更新P1为集合{FTP}除去“FTP”,更新后的P1值为{}。更新已回复的被叫终端集合P2的步骤进一步包括:更新P2为其当前值加上被叫终端B02,即更新P2为集合{终端B01}加上“被叫终端B02”,更新后的P2值为{终端B01,终端B02}。
然后,应用服务器102会向CSCF101发送回复消息。在本实施例中,更新后的P1为会,在步骤S213中,应用服务器102会向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了目前已满足的媒体类型,即P1的初始值{音频,FTP},其中还包含了对话标识D0。
在步骤S214中,CSCF101向主叫终端A01发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了目前已满足的媒体类型,即P1的初始值{音频,FTP},其中还包含了对话标识D0。
至此,主叫终端A01和被叫终端B01之间建立了FTP的会话。而且,主叫终端A01所指定的所有媒体类型全部被满足,会话建立过程完成。应用服务器不会再向未回复的被叫终端发起会话建立请求。
可以看到,应用服务器102在收到来自主叫终端A01的会话建立请求后,会逐个向每个被叫终端发送会话建立请求,直到主叫终端A01所指定的所有媒体类型被全部满足。
图3示出根据本发明一个实施例的用于建立SIP会话的过程示意图。在该实施例中,终端A01支持的媒体类型为音频和视频。终端B01支持的媒体类型为音频,终端B02支持的媒体类型为FTP,终端B03支持的媒体类型为音频和视频。主叫用户A希望和被叫用户B建立音频和视频的会话。
该过程始于步骤S301。
在步骤S301中,主叫终端A01向CSCF101发送会话建立请求,比如图中所示的INVITE消息,该会话建立请求消息中包含了主叫终端A01所指定的至少一个媒体类型,如图所示,INVITE消息的SDP中指明了媒体类型为音频和视频,即主叫终端A01希望建立一个音频和视频的会话。该会话建立请求消息还包含了对话标识D0’。
在步骤S302中,CSCF101收到来自主叫终端A01的会话建立请求后,向应用服务器102发送会话建立请求,比如图中所示的INVITE消息,该会话建立请求消息中包含了主叫终端A01所指定的至少一个媒体类型,即音频和视频,其中还包含了对话标识D0’。
应用服务器102收到上述会话建立请求消息后,确定未满足的主叫媒体类型集合P1’和已回复的被叫终端集合P2’。在该实施例中,P1’的初始值为主叫终端A01所指定的至少一个媒体类型,即P1’={音频,视频};P2’的初始值为空,即P2’={}。
在另一个实施例中,应用服务器102在确定P1’和P2’前会判断主叫终端A01是否支持与多个被叫终端连接。仅当主叫终端A01支持与多个被叫终端连接时,应用服务器102才确定上述未满足的主叫媒体类型集合P1’和已回复的被叫终端集合P2’。
在步骤S303中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1’和已回复的被叫终端集合P2’。可以在INVITE消息的SDP信息中指明集合P1’,在Reject-Contact消息头中指明集合P2’。该会话建立请求消息还包含了对话标识D1’。
CSCF101收到上述会话建立请求消息后,根据P2’确定未回复的被叫终端集合P3’,即P3’={终端B01,终端B02,终端B03}。然后,CSCF101会在未回复的被叫终端集合P3’中选择一个被叫终端。CSCF101可以根据现有技术中的策略来做选择。在该实施例中,CSCF101选择了被叫终端B01。
在步骤S304中,CSCF101向被叫终端B01发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1’,该会话建立请求消息还包含了对话标识D1’。
在步骤S305中,被叫终端B01收到来自CSCF101的上述会话建立请求消息后,向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B01所支持的媒体类型即音频,其中还包含了对话标识D1’。
在步骤S306中,CSCF101向应用服务器102发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B01所支持的媒体类型即音频,其中还包含了对话标识D1’。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1’和已回复的被叫终端集合P2’。更新未满足的主叫媒体类型集合P1’的步骤进一步包括:更新P1’为其当前值减去被叫终端B01所支持的媒体类型,即更新P1’为集合{音频,视频}除去“音频”,更新后的P1’值为{视频}。更新已回复的被叫终端集合P2’的步骤进一步包括:更新P2’为其当前值加上被叫终端B01,即更新P2’为集合{}加上“被叫终端B01”,更新后的P2’值为{终端B01}。
然后,应用服务器102会向CSCF101发送回复消息。在向CSCF101发送回复消息前,应用服务器102会判断未满足的主叫媒体类型集合P1’是否为空。如果P1’为空,则说明主叫终端A01指定的所有媒体类型均已满足,那么,应用服务器102不会再向其他被叫终端发起会话建立请求,其会向CSCF101发送会话成功建立的回复消息;如果P1’不为空,则说明主叫终端A01指定的所有媒体类型并未被全部满足,应用服务器102会再向其他未回复的被叫终端发起会话建立请求用来判断P1’中的媒体类型是否可以被其他被叫终端所满足,其会向CSCF101发送会话正在建立中的回复消息。
在本实施例中,更新后的P1’不为空,在步骤S307中,应用服务器102会向CSCF101发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了被叫终端B01支持的媒体类型即音频,其中还包含了对话标识D0’。
在步骤S308中,CSCF101向主叫终端A01发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了被叫终端B01支持的媒体类型即音频,其中还包含了对话标识D0’。
至此,主叫终端A01和被叫终端B01之间建立了音频的会话。
而此时,主叫终端A01指定的媒体类型并未被全部满足,应用服务器102会向其他被叫终端发起新的会话建立请求,即重复上述的步骤S303至步骤S308。
在步骤S309中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了更新后的P1’即{视频}和更新后的P2’即{终端B01}。可以在INVITE消息的SDP信息中指明集合P1’,在Reject-Contact消息头中指明集合P2’。该会话建立请求消息还包含了对话标识D2’。
CSCF101收到上述会话建立请求消息后,根据P2’确定未回复的被叫终端集合P3’,即P3’={终端B02,终端B03}。然后,CSCF101会在未回复的被叫终端集合P3’中选择一个被叫终端。CSCF101可以根据现有技术中的策略来做选择。在该实施例中,CSCF101选择了被叫终端B02。
在步骤S310中,CSCF101向被叫终端B02发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1’,该会话建立请求消息还包含了对话标识D2’。
在步骤S311中,被叫终端B02收到来自CSCF101的上述会话建立请求消息后,因为被叫终端B02并不支持视频,其向CSCF101发送会话建立失败的回复消息,比如图中所示的415UnsupportedMediaType消息,其中还包含了对话标识D2’。
在步骤S312中,CSCF101向应用服务器102发送会话建立失败的回复消息,比如图中所示的415UnsupportedMediaType消息,其中还包含了对话标识D2’。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1’和已回复的被叫终端集合P2’。由于CSCF101向应用服务器102发送的是会话建立失败的回复消息,表明被叫终端B02不支持集合P1’中的媒体类型,更新后的P1’值仍为当前值即{视频}。更新已回复的被叫终端集合P2’的步骤进一步包括:更新P2’为其当前值加上被叫终端B02,即更新P2’为集合{终端B01}加上“被叫终端B02”,更新后的P2’值为{终端B01,终端B02}。
然后,应用服务器102会向CSCF101发送回复消息。在本实施例中,更新后的P1’不为会,在步骤S313中,应用服务器102会向CSCF101发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了目前已满足的媒体类型即音频,其中还包含了对话标识D0’。
在步骤S314中,CSCF101向主叫终端A01发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了目前已满足的媒体类型即即音频,其中还包含了对话标识D0’。
需要指出的是,步骤S313和步骤S314是可选的,不是必需的。因为此时未满足的主叫媒体类型集合并没有发生变化,应用服务器102可以不向CSCF发送回复消息。
而此时,主叫终端A01指定的媒体类型并未被全部满足,应用服务器102会向其他被叫终端发起新的会话建立请求,即重复上述的步骤S303至步骤S308。
在步骤S315中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了更新后的P1’即{视频}和更新后的P2’即{终端B01,终端B02}。可以在INVITE消息的SDP信息中指明集合P1’,在Reject-Contact消息头中指明集合P2’。该会话建立请求消息还包含了对话标识D3’。
CSCF101收到上述会话建立请求消息后,根据P2’确定未回复的被叫终端集合P3’,即P3’={终端B03}。然后,CSCF101会在未回复的被叫终端集合P3’中选择一个被叫终端即被叫终端B03。
在步骤S316中,CSCF101向被叫终端B03发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1’,该会话建立请求消息还包含了对话标识D3’。
在步骤S317中,被叫终端B03收到来自CSCF101的上述会话建立请求消息后,向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B03所支持的媒体类型即视频,其中还包含了对话标识D3’。
在步骤S318中,CSCF101向应用服务器102发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B03所支持的媒体类型即视频,其中还包含了对话标识D3’。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1’和已回复的被叫终端集合P2’。更新未满足的主叫媒体类型集合P1’的步骤进一步包括:更新P1’为其当前值减去被叫终端B03所支持的媒体类型,即更新P1’为集合{视频}除去“视频”,更新后的P1’值为{}。更新已回复的被叫终端集合P2’的步骤进一步包括:更新P2’为其当前值加上被叫终端B03,即更新P2’为集合{终端B01,终端B02}加上“被叫终端B03”,更新后的P2’值为{终端B01,终端B02,终端B03}。
然后,应用服务器102会向CSCF101发送回复消息。在本实施例中,更新后的P1’为会,在步骤S319中,应用服务器102会向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了目前已满足的媒体类型,即P1’的初始值{音频,视频},其中还包含了对话标识D0’。
在步骤S320中,CSCF101向主叫终端A01发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了目前已满足的媒体类型,即P1’的初始值{音频,视频},其中还包含了对话标识D0’。
至此,主叫终端A01和被叫终端B03之间建立了视频的会话。而且,主叫终端A01所指定的所有媒体类型全部被满足,会话建立过程完成。
可以看到,应用服务器102在收到来自主叫终端A01的会话建立请求后,会逐个向每个被叫终端发送会话建立请求,直到主叫终端A01所指定的所有媒体类型被全部满足。
图4示出根据本发明一个实施例的用于建立SIP会话的过程示意图。在该实施例中,终端A01支持的媒体类型为音频和视频。终端B01支持的媒体类型为音频,终端B02支持的媒体类型为FTP,终端B03支持的媒体类型为FTP。主叫用户A希望和被叫用户B建立音频和视频的会话。
该过程始于步骤S401。
在步骤S401中,主叫终端A01向CSCF101发送会话建立请求,比如图中所示的INVITE消息,该会话建立请求消息中包含了主叫终端A01所指定的至少一个媒体类型,如图所示,INVITE消息的SDP中指明了媒体类型为音频和视频,即主叫终端A01希望建立一个音频和视频的会话。该会话建立请求消息还包含了对话标识D0”。
在步骤S402中,CSCF101收到来自主叫终端A01的会话建立请求后,向应用服务器102发送会话建立请求,比如图中所示的INVITE消息,该会话建立请求消息中包含了主叫终端A01所指定的至少一个媒体类型,即音频和视频,其中还包含了对话标识D0”。
应用服务器102收到上述会话建立请求消息后,确定未满足的主叫媒体类型集合P1”和已回复的被叫终端集合P2”。在该实施例中,P1”的初始值为主叫终端A01所指定的至少一个媒体类型,即P1”={音频,视频};P2”的初始值为空,即P2”={}。
在另一个实施例中,应用服务器102在确定P1”和P2”前会判断主叫终端A01是否支持与多个被叫终端连接。仅当主叫终端A01支持与多个被叫终端连接时,应用服务器102才确定上述未满足的主叫媒体类型集合P1”和已回复的被叫终端集合P2”。
在步骤S403中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1”和已回复的被叫终端集合P2”。可以在INVITE消息的SDP信息中指明集合P1”,在Reject-Contact消息头中指明集合P2”。该会话建立请求消息还包含了对话标识D1”。
CSCF101收到上述会话建立请求消息后,根据P2”确定未回复的被叫终端集合P3”,即P3”={终端B01,终端B02,终端B03}。然后,CSCF101会在未回复的被叫终端集合P3”中选择一个被叫终端。CSCF101可以根据现有技术中的策略来做选择。在该实施例中,CSCF101选择了被叫终端B01。
在步骤S404中,CSCF101向被叫终端B01发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1’,该会话建立请求消息还包含了对话标识D1”。
在步骤S405中,被叫终端B01收到来自CSCF101的上述会话建立请求消息后,向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B01所支持的媒体类型即音频,其中还包含了对话标识D1”。
在步骤S406中,CSCF101向应用服务器102发送会话建立成功的回复消息,比如图中所示的200OK消息,其中包含了被叫终端B01所支持的媒体类型即音频,其中还包含了对话标识D1”。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1”和已回复的被叫终端集合P2”。更新未满足的主叫媒体类型集合P1”的步骤进一步包括:更新P1”为其当前值减去被叫终端B01所支持的媒体类型,即更新P1’为集合{音频,视频}除去“音频”,更新后的P1”值为{视频}。更新已回复的被叫终端集合P2”的步骤进一步包括:更新P2”为其当前值加上被叫终端B01,即更新P2”为集合{}加上“被叫终端B01”,更新后的P2”值为{终端B01}。
然后,应用服务器102会向CSCF101发送回复消息。在向CSCF101发送回复消息前,应用服务器102会判断未满足的主叫媒体类型集合P1”是否为空。如果P1”为空,则说明主叫终端A01指定的所有媒体类型均已满足,那么,应用服务器102不会再向其他被叫终端发起会话建立请求,其会向CSCF101发送会话成功建立的回复消息;如果P1”不为空,则说明主叫终端A01指定的所有媒体类型并未被全部满足,应用服务器102会再向其他未回复的被叫终端发起会话建立请求用来判断P1”中的媒体类型是否可以被其他被叫终端所满足,其会向CSCF101发送会话正在建立中的回复消息。
在本实施例中,更新后的P1”不为会,在步骤S407中,应用服务器102会向CSCF101发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了被叫终端B01支持的媒体类型即音频,其中还包含了对话标识D0”。
在步骤S408中,CSCF101向主叫终端A01发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了被叫终端B01支持的媒体类型即音频,其中还包含了对话标识D0”。
至此,主叫终端A01和被叫终端B01之间建立了音频的会话。
而此时,主叫终端A01指定的媒体类型并未被全部满足,应用服务器102会向其他被叫终端发起新的会话建立请求,即重复上述的步骤S403至步骤S408。
在步骤S409中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了更新后的P1”即{视频}和更新后的P2”即{终端B01}。可以在INVITE消息的SDP信息中指明集合P1”,在Reject-Contact消息头中指明集合P2”。该会话建立请求消息还包含了对话标识D2”。
CSCF101收到上述会话建立请求消息后,根据P2”确定未回复的被叫终端集合P3”,即P3”={终端B02,终端B03}。然后,CSCF101会在未回复的被叫终端集合P3”中选择一个被叫终端。CSCF101可以根据现有技术中的策略来做选择。在该实施例中,CSCF101选择了被叫终端B02。
在步骤S410中,CSCF101向被叫终端B02发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1”,该会话建立请求消息还包含了对话标识D2”。
在步骤S411中,被叫终端B02收到来自CSCF101的上述会话建立请求消息后,因为被叫终端B02并不支持视频,其向CSCF101发送会话建立失败的回复消息,比如图中所示的415UnsupportedMediaType消息,其中还包含了对话标识D2”。
在步骤S412中,CSCF101向应用服务器102发送会话建立失败的回复消息,比如图中所示的415UnsupportedMediaType消息,其中还包含了对话标识D2”。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1”和已回复的被叫终端集合P2”。由于CSCF101向应用服务器102发送的是会话建立失败的回复消息,表明被叫终端B02不支持集合P1”中的媒体类型,更新后的P1”值仍为当前值即{视频}。更新已回复的被叫终端集合P2”的步骤进一步包括:更新P2”为其当前值加上被叫终端B02,即更新P2”为集合{终端B01}加上“被叫终端B02”,更新后的P2”值为{终端B01,终端B02}。
然后,应用服务器102会向CSCF101发送回复消息。在本实施例中,更新后的P1”不为会,在步骤S413中,应用服务器102会向CSCF101发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了目前已满足的媒体类型即音频,其中还包含了对话标识D0”。
在步骤S414中,CSCF101向主叫终端A01发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了目前已满足的媒体类型即即音频,其中还包含了对话标识D0”。
需要指出的是,步骤S413和步骤S414是可选的,不是必需的。因为此时未满足的主叫媒体类型集合并没有发生变化,应用服务器102可以不向CSCF发送回复消息。
而此时,主叫终端A01指定的媒体类型并未被全部满足,应用服务器102会向其他被叫终端发起新的会话建立请求,即重复上述的步骤S403至步骤S408。
在步骤S415中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了更新后的P1”即{视频}和更新后的P2”即{终端B01,终端B02}。可以在INVITE消息的SDP信息中指明集合P1”,在Reject-Contact消息头中指明集合P2”。该会话建立请求消息还包含了对话标识D3”。
CSCF101收到上述会话建立请求消息后,根据P2”确定未回复的被叫终端集合P3”,即P3”={终端B03}。然后,CSCF101会在未回复的被叫终端集合P3”中选择一个被叫终端即被叫终端B03。
在步骤S416中,CSCF101向被叫终端B03发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了上述的未满足的主叫媒体类型集合P1”,该会话建立请求消息还包含了对话标识D3”。
在步骤S417中,被叫终端B03收到来自CSCF101的上述会话建立请求消息后,因为被叫终端B03并不支持视频,其向CSCF101发送会话建立失败的回复消息,比如图中所示的415UnsupportedMediaType消息,其中还包含了对话标识D3”。
在步骤S418中,CSCF101向应用服务器102发送会话建立失败的回复消息,比如图中所示的415UnsupportedMediaType消息,其中还包含了对话标识D3”。
应用服务器102在收到来自CSCF101的上述回复消息后,会更新未满足的主叫媒体类型集合P1”和已回复的被叫终端集合P2”。由于CSCF101向应用服务器102发送的是会话建立失败的回复消息,表明被叫终端B03不支持集合P1”中的媒体类型,更新后的P1”值仍为当前值即{视频}。更新已回复的被叫终端集合P2”的步骤进一步包括:更新P2”为其当前值加上被叫终端B03,即更新P2”为集合{终端B01,终端B02}加上“被叫终端B03”,更新后的P2”值为{终端B01,终端B02,终端B03}。
然后,应用服务器102会向CSCF101发送回复消息。在本实施例中,更新后的P1”不为会,在步骤S419中,应用服务器102会向CSCF101发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了目前已满足的媒体类型即音频,其中还包含了对话标识D0”。
在步骤S420中,CSCF101向主叫终端A01发送会话正在建立中的回复消息,比如图中所示的183SessionProgress消息,其中包含了目前已满足的媒体类型即即音频,其中还包含了对话标识D0”。
需要指出的是,步骤S419和步骤S420是可选的,不是必需的。因为此时未满足的主叫媒体类型集合并没有发生变化,应用服务器102可以不向CSCF发送回复消息。
而此时,主叫终端A01指定的媒体类型并未被全部满足,应用服务器102会向其他被叫终端发起新的会话建立请求,即重复上述的步骤S403至步骤S408。
在步骤S421中,应用服务器102向CSCF101发送会话建立请求消息,比如图中所示的INVITE消息,其中包含了更新后的P1”即{视频}和更新后的P2”即{终端B01,终端B02,终端B03}。可以在INVITE消息的SDP信息中指明集合P1”,在Reject-Contact消息头中指明集合P2”。
CSCF101收到上述会话建立请求消息后,根据P2”确定未回复的被叫终端集合P3”,即P3”={},这表明所有的被叫终端均已回复。在步骤S422中,CSCF101向应用服务器102发送指示消息,所述指示消息用于指示所有的被叫终端均已回复,比如图中所示的488notacceptable消息。
应用服务器102在收到上述指示消息后,会判断未满足的主叫媒体类型集合P1”是否与其初始值相同,如果相同,则说明所有的媒体类型均未被满足,其会向CSCF101发送会话建立失败的回复消息;否则,说明至少有一个媒体类型被满足,其会向CSCF101发送会话建立成功的回复消息。
在本实施例中,P1”与其初始值并不相同,在步骤S423中,应用服务器102向CSCF101发送会话建立成功的回复消息,比如图中所示的200OK,其中包含了目前已满足的媒体类型即音频,其中还包含了对话标识D0”。
在步骤S424中,CSCF101向主叫终端A01发送会话建立成功的回复消息,比如图中所示的200OK,其中包含了目前已满足的媒体类型即音频,其中还包含了对话标识D0”。
至此,会话建立过程完成。
可以看到,应用服务器102在收到来自主叫终端A01的会话建立请求后,会逐个向每个被叫终端发送会话建立请求,直到接收到来自CSCF101的指示消息,所述指示消息用于指示所有的被叫终端已回复。
图5示出根据本发明一个实施例的在应用服务器102中用于建立SIP会话的装置示意图。该装置500包括第一确定装置501、第一发送装置502、更新装置503和第二发送装置504。
下面结合图2至图4详细描述该装置500的工作过程。
首先,第一确定装置501响应于来自CSCF101的会话建立请求,确定未满足的主叫媒体类型集合和已回复的被叫终端集合,所述会话建立请求包含了主叫终端A01指定的至少一个媒体类型。所述会话建立请求可以是图2的步骤S202中的INVITE消息、图3的步骤S302中的INVITE消息、图4的步骤S402中的INVITE消息。可以在INVITE消息的SDP信息中指明主叫终端A01指定的至少一个媒体类型。在该实施例中,未满足的主叫媒体类型集合的初始值为主叫终端A01所指定的至少一个媒体类型,已回复的被叫终端集合的初始值为空。
在一个实施例中,第一确定装置501进一步用于:仅当所述主叫终端支持与多个被叫终端连接时,才确定所述未满足的主叫媒体类型集合和已回复的被叫终端集合。
然后,第一发送装置502向CSCF101发送会话建立请求,其中包含了所述未满足的主叫媒体类型集合和已回复的被叫终端集合。所述会话建立请求比如图2的步骤S203中的INVITE消息、图3的步骤S303中的INVITE消息、图4的步骤S403中的INVITE消息。可以在INVITE消息的SDP信息中指明未满足的主叫媒体类型集合,在Reject-Contact消息头中指明已回复的被叫终端集合。
接着,更新装置503响应于来自CSCF101的回复消息,更新所述未满足的主叫媒体类型集合和已回复的被叫终端集合,所述回复消息包含了一个被叫终端的信息。
在一个实施例中,所述回复消息为会话建立成功的回复消息,比如图2中步骤206所示的200OK,其中包含了所述被叫终端支持的至少一个媒体类型,更新装置503更新所述未满足的主叫媒体类型集合为其当前值减去所述被叫终端支持的至少一个媒体类型,更新装置503更新所述已回复的被叫终端集合为其当前值加上所述被叫终端。
在一个实施例中,所述回复消息为会话建立失败的回复消息,比如图3中步骤312所示的415UnsupportedMediaType消息,说明所述被叫终端并不支持所述未满足的主叫媒体类型集合中的媒体类型,更新后的所述未满足的主叫媒体类型集合仍为其当前值,更新装置503更新所述已回复的被叫终端集合为其当前值加上所述被叫终端。
优选地,所述装置500还包括第三发送装置505(图中未示出)。当更新后的所述未满足的主叫媒体类型集合的值发生变化时,第三发送装置505向CSCF101发送会话正在建立中的回复消息,比如图2中步骤S207所示的183SessionProgress消息,图3中步骤S307所示的183SessionProgress消息。
然后,第一发送装置502和更新装置503重复执行上述发送和更新步骤,直到所述未满足的主叫媒体类型集合为空或者接收到来自CSCF101的指示消息,所述指示消息用于指示所有的被叫终端已回复。
最后,第二发送装置504向CSCF101发送回复消息。
在一个实施例中,当所述未满足的主叫媒体类型集合为空时,第二发送装置504向CSCF101发送会话成功建立的回复消息,比如图2中的步骤S213所示的200OK消息、图3中的步骤S319所示的200OK消息、图4中的步骤S423所示的200OK消息。
在另一个实施例中,当应用服务器102接收到来自CSCF的指示消息,比如图4中步骤S422所示的488notacceptable,所述指示消息用于指示所有的被叫终端已回复时,如果所述未满足的主叫媒体类型集合与其初始值相同,第二发送装置504向所述CSCF发送会话建立失败的回复消息,否则,第二发送装置504向所述CSCF发送会话建立成功的回复消息,比如图4中的步骤S423所示的200OK消息。
图6示出根据本发明一个实施例的在CSCF101中用于建立SIP会话的装置示意图。该装置600包括接收装置601、第二确定装置602、第四发送装置603和第五发送装置604。
下面结合图2至图4详细描述该装置600的工作过程。
首先,接收装置601接收来自应用服务器102的会话建立请求,其中包含了未满足的主叫媒体类型集合和已回复的被叫终端集合。所述会话建立请求比如图2的步骤S203中的INVITE消息、图3的步骤S303中的INVITE消息、图4的步骤S403中的INVITE消息。可以在INVITE消息的SDP信息中指明未满足的主叫媒体类型集合,在Reject-Contact消息头中指明已回复的被叫终端集合。
接着,第二确定装置602根据所述已回复的被叫终端集合确定未回复的被叫终端集合。CSCF101从知晓的多个被叫终端中去掉已回复的被叫终端集合得到未回复的被叫终端集合。
如果所述未回复的被叫终端集合为空,第四发送装置603向应用服务器102发送指示消息,比如图4中步骤S422所示的488notacceptable,所述指示消息用于指示所有的被叫终端已回复。
如果所述未回复的被叫终端集合不为空,第五发送装置604在所述未回复的被叫终端集合中确定一个被叫终端,并向所述被叫终端发送会话建立请求其中包含了所述未满足的主叫媒体类型集合。第五发送装置604可以根据现有技术中的策略在未回复的被叫终端中确定一个被叫终端。向所述被叫终端发送的会话建立请求比如图2中步骤S210所示的INVITE消息,图3中步骤S310所示的INVITE消息,图4中步骤S410所示的INVITE消息。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (14)
1.一种在应用服务器中用于建立SIP会话的方法,该方法包括以下步骤:
A.响应于来自CSCF的会话建立请求,所述会话建立请求包含了主叫终端指定的至少一个媒体类型,确定未满足的主叫媒体类型集合和已回复的被叫终端集合;
B.向所述CSCF发送会话建立请求,其中包含了所述未满足的主叫媒体类型集合和已回复的被叫终端集合;
C.响应于来自所述CSCF的回复消息,其中包含了一个被叫终端的信息,更新所述未满足的主叫媒体类型集合和已回复的被叫终端集合;
重复上述步骤B至步骤C,直到所述未满足的主叫媒体类型集合为空或者接收到来自所述CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复;
D.向所述CSCF发送回复消息。
2.根据权利要求1所述的方法,其中,所述步骤A进一步包括:
确定所述未满足的主叫媒体类型集合的初始值为所述主叫终端指定的至少一个媒体类型,所述已回复的被叫终端集合的初始值为空。
3.根据权利要求1所述的方法,其中,所述步骤C进一步包括:
更新所述已回复的被叫终端集合为集合当前值加上所述被叫终端;
当所述回复消息包含了所述被叫终端支持的至少一个媒体类型时,更新所述未满足的主叫媒体类型集合为集合当前值减去所述被叫终端支持的至少一个媒体类型。
4.根据权利要求1或2或3所述的方法,其中,所述步骤D进一步包括:
当所述未满足的主叫媒体类型集合为空时,向所述CSCF发送会话成功建立的回复消息;
当接收到来自CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复时,如果所述未满足的主叫媒体类型集合与其初始值相同,向所述CSCF发送会话建立失败的回复消息,否则,向所述CSCF发送会话建立成功的回复消息。
5.根据权利要求1或2或3所述的方法,其中,在步骤C之后还包括:
向所述CSCF发送会话正在建立中的回复消息。
6.根据权利要求1或2或3所述的方法,其中,所述步骤A进一步包括:
仅当所述主叫终端支持与多个被叫终端连接时,才确定所述未满足的主叫媒体类型集合和已回复的被叫终端集合。
7.一种在CSCF中用于建立SIP会话的方法,该方法包括以下步骤:
接收来自应用服务器的会话建立请求,其中包含了未满足的主叫媒体类型集合和已回复的被叫终端集合;
根据所述已回复的被叫终端集合确定未回复的被叫终端集合;
如果所述未回复的被叫终端集合为空,向所述应用服务器发送指示消息,所述指示消息用于指示所有的被叫终端已回复;
如果所述未回复的被叫终端集合不为空,在所述未回复的被叫终端集合中确定一个被叫终端,并向所述被叫终端发送会话建立请求其中包含了所述未满足的主叫媒体类型集合。
8.一种在应用服务器中用于建立SIP会话的装置,该装置包括:
第一确定装置,用于响应于来自CSCF的会话建立请求,确定未满足的主叫媒体类型集合和已回复的被叫终端集合,所述会话建立请求包含了主叫终端指定的至少一个媒体类型;
第一发送装置,用于向所述CSCF发送会话建立请求,其中包含了所述未满足的主叫媒体类型集合和已回复的被叫终端集合;
更新装置,用于响应于来自所述CSCF的回复消息,更新所述未满足的主叫媒体类型集合和已回复的被叫终端集合,所述回复消息包含了一个被叫终端的信息;
第一发送装置和更新装置重复执行上述发送步骤和更新步骤,直到所述未满足的主叫媒体类型集合为空或者接收到来自所述CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复;
第二发送装置,用于向所述CSCF发送回复消息。
9.根据权利要求8所述的装置,其中,所述第一确定装置进一步用于:
确定所述未满足的主叫媒体类型集合的初始值为所述主叫终端指定的至少一个媒体类型,所述已回复的被叫终端集合的初始值为空。
10.根据权利要求8所述的装置,其中,所述更新装置进一步用于:
更新所述已回复的被叫终端集合为集合当前值加上所述被叫终端;
当所述回复消息包含了所述被叫终端支持的至少一个媒体类型时,更新所述未满足的主叫媒体类型集合为集合当前值减去所述被叫终端支持的至少一个媒体类型。
11.根据权利要求8或9或10所述的装置,其中,所述第二发送装置进一步用于:
当所述未满足的主叫媒体类型集合为空时,向所述CSCF发送会话成功建立的回复消息;
当接收到来自CSCF的指示消息,所述指示消息用于指示所有的被叫终端已回复时,如果所述未满足的主叫媒体类型集合与其初始值相同,向所述CSCF发送会话建立失败的回复消息,否则,向所述CSCF发送会话建立成功的回复消息。
12.根据权利要求8或9或10所述的装置,其中,所述装置还包括:
第三发送装置,用于在所述更新装置执行更新步骤后向所述CSCF发送会话正在建立中的回复消息。
13.根据权利要求8或9或10所述的装置,其中,所述第一确定装置进一步用于:
仅当所述主叫终端支持与多个被叫终端连接时,才确定所述未满足的主叫媒体类型集合和已回复的被叫终端集合。
14.一种在CSCF中用于建立SIP会话的装置,该装置包括:
接收装置,用于接收来自应用服务器的会话建立请求,其中包含了未满足的主叫媒体类型集合和已回复的被叫终端集合;
第二确定装置,用于根据所述已回复的被叫终端集合确定未回复的被叫终端集合;
第四发送装置,用于当所述未回复的被叫终端集合为时向所述应用服务器发送指示消息,所述指示消息用于指示所有的被叫终端已回复;
第五发送装置,用于当所述未回复的被叫终端集合不为空时在所述未回复的被叫终端集合中确定一个被叫终端,并向所述被叫终端发送会话建立请求其中包含了所述未满足的主叫媒体类型集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410743023.1A CN105656869A (zh) | 2014-12-08 | 2014-12-08 | 一种用于建立sip会话的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410743023.1A CN105656869A (zh) | 2014-12-08 | 2014-12-08 | 一种用于建立sip会话的方法与设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105656869A true CN105656869A (zh) | 2016-06-08 |
Family
ID=56481374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410743023.1A Pending CN105656869A (zh) | 2014-12-08 | 2014-12-08 | 一种用于建立sip会话的方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105656869A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060055278A (ko) * | 2004-11-18 | 2006-05-23 | 유엔젤주식회사 | 통신시스템에서의 등록정보 표시 서비스 방법 |
CN1893427A (zh) * | 2005-07-07 | 2007-01-10 | 华为技术有限公司 | 一种进行业务支持能力协商的方法 |
CN1972340A (zh) * | 2005-11-25 | 2007-05-30 | 北京三星通信技术研究有限公司 | 在ims域中实现视频彩铃业务的方法 |
US20090238359A1 (en) * | 2008-03-24 | 2009-09-24 | Aspect Software Inc. | Leveraging A Sip Forking Model for Distributed Contact Center Routing |
-
2014
- 2014-12-08 CN CN201410743023.1A patent/CN105656869A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060055278A (ko) * | 2004-11-18 | 2006-05-23 | 유엔젤주식회사 | 통신시스템에서의 등록정보 표시 서비스 방법 |
CN1893427A (zh) * | 2005-07-07 | 2007-01-10 | 华为技术有限公司 | 一种进行业务支持能力协商的方法 |
CN1972340A (zh) * | 2005-11-25 | 2007-05-30 | 北京三星通信技术研究有限公司 | 在ims域中实现视频彩铃业务的方法 |
US20090238359A1 (en) * | 2008-03-24 | 2009-09-24 | Aspect Software Inc. | Leveraging A Sip Forking Model for Distributed Contact Center Routing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103052047B (zh) | 一种基于号码携带业务的在线计费方法、装置及系统 | |
CN110971766B (zh) | 呼叫处理的方法和设备 | |
CN101267597A (zh) | 实现多媒体彩铃和多媒体彩像业务的方法、系统及装置 | |
CN101729980B (zh) | 位置信息获取方法、装置和系统 | |
CN101626436A (zh) | 一种交互式视频语音应答系统及实现方法 | |
CN102148807B (zh) | 一种实现彩铃彩振业务的方法,装置和系统 | |
CN111385419B (zh) | 一种呼叫处理的方法和设备 | |
CN104579707A (zh) | 一种加入会议及会议邀请的方法、相关设备及系统 | |
CN105681158B (zh) | 一种提高ip短消息投递准确性的方法、设备和系统 | |
CN103369159A (zh) | 一种呼叫处理方法和设备 | |
CN105282721A (zh) | 一机多号业务中主叫号码的显示处理方法、系统和设备 | |
CN103703798A (zh) | 广告插入方法、设备及系统 | |
CN103841080A (zh) | 一种被叫号码补齐方法、设备和系统 | |
CN105120117A (zh) | 一种通话交互方法及装置 | |
CN106603466B (zh) | 网络切换时的媒体能力协商方法和设备 | |
CN105656869A (zh) | 一种用于建立sip会话的方法与设备 | |
EP2445167A2 (en) | Communication device and computer program | |
CN108811012A (zh) | 语音通话方法、ims网络及终端 | |
US20160302055A1 (en) | Information processing system | |
CN101394365A (zh) | 一种消息关联方法及用户终端以及服务器 | |
KR20230126943A (ko) | 학습일정 수립이 가능한 온라인 학습 콘텐츠 제공 방법 | |
CN105830412B (zh) | 会话发起处理 | |
CN101924763B (zh) | 数据同步方法、装置及系统 | |
CN115529375B (zh) | 界面显示方法、装置和电子设备 | |
CN115865873B (zh) | 在局域网内显示群组振铃媒体的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160608 |