CSCF Call Session Control Function
ICSCF InterrogatingCSCF
Interrogating-CSCF(I-CSCF)是指在运营商的网络中,针对目的地为该网络运营商的用户或当前位于该网络运营商的服务区域内的漫游用户的所有连接的联系点。
注1:如果采用边界控制概念,运营商网络内的接触点可能不同。
注2:当请求被发送到另一个域时,如果需要,它们可以通过本地网络出口点(IBCF)路由,IBCF随后将请求转发到另一个域的入口点。
一个运营商的网络中可能有多个I-cscf。I-CSCF执行的功能包括:
注册:
●向执行SIP注册的用户分配CSCF
●会话相关流和会话无关流
●将从另一个网络接收到的SIP请求路由到S-CSCF。
●在执行HSS位置查询之前,将所有具有SIP URI with user=phone参数格式的请求URI中包含的E.1地址转换为IETF RFC 3966[15]的Tel:URI格式。如果用户不存在,并且如果由操作员策略配置,则I CSCF可以调用传输功能的部分,该部分将Tel:URI格式的请求URI中包含的E.1地址转换为可路由SIP URI。
●从HSS处获得S-CSCF的地址。
●将SIP请求或响应转发到由上述步骤确定的S-CSCF
基于本地配置,I-CSCF可以执行传输路由功能。如果I-CSCF基于HSS查询确定会话的目的地不在IMS内,则它可以转发请求,也可以向发起端点返回故障响应。
收费和资源利用:
●生成CDR。
PCSCF ProxyCSCF
Proxy -CSCF(P- CSCF)是IM-CN子系统中的第一个接触点。它的地址由ue使用“与本地CSCF Discovery相关的过程”中描述的机制来发现。P-CSCF的行为类似于一个代理,即它接受请求并在内部为它们提供服务,或者转发它们。P-CSCF不应修改SIP INVITE消息中的请求URI。P-CSCF可以作为用户代理,即在异常情况下,它可以终止并地生成SIP事务。
P-CSCF的功能如下:
●将从UE接收到的SIP注册请求转发到由UE提供的、使用归属域名确定的入口点。
●将从UE接收到的SIP消息转发到SIP服务器(例如S-CSCF),该服务器的名称是P-CSCF作为注册过程的结果而接收到的。
●确保从UE接收到SIP服务器(例如S-CSCF)的SIP消息包含关于UE当前使用的接入网络类型的正确或最新信息(当信息可从接入网络获得时)。根据运营商策略,P-CSCF可以在任何SIP消息(请求或响应)中插入UE当前使用的接入网络类型(当信息可从接入网络获得时)。
●基于运营商策略以及来自接入网络的用户位置信息或UE时区的可用性,确保相关SIP消息包含关于用户位置信息或UE当前使用的接入网络提供的UE时区的正确或最新信息。
●将SIP请求或响应转发给UE。
●检测并处理紧急会话建立请求。
●生成CDR。
●保持自身和每个UE之间的安全关联,如TS 33.203[19]所定义。
●应执行SIP消息压缩/解压缩。
●承载资源的授权和QoS管理。详情见TS 23.203[54]。
●对发起或终止IMS MPS会话建立请求的检测和处理(另见第5.21条)。
●可支持第E.9条和第Y.9条所述的IMS会话语音的寻呼策略差异。
●可使用TS 23.203[54]和TS 29.214[11]中规定的PCC机制订阅接入网络类型更改通知。
SCSCF ServingCSCF
ServingCSCF(S-CSCF)为UE执行会话控制服务。它维护网络运营商支持服务所需的会话状态。在运营商的网络中,不同的cscf可能具有不同的功能。S-CSCF在会话期间执行的功能包括:
注册:
1.可作为IETF RFC 3261[12]或后续版本中定义的注册者,即接受注册请求并通过位置服务器(如HSS)提供其信息。
2.当注册请求包含联系人注册的实例ID并表示支持GRUU时,S-CSCF应将唯一的P GRUU和新的唯一T GRUU分配给公共用户标识和实例ID的组合。
3.如果注册请求表明支持GRUU,则S-CSCF应返回分配给每个当前注册实例ID的GRUU集。
4.S-CSCF应将注册更改通知订阅者,包括分配给已注册实例的gru集。
5.在注册过程中,S-CSCF应向P-CSCF或UE提供公共用户身份的信息(如有)。
注1:例如,策略信息包括MPS IMS订阅状态和适用于企业网络用户的策略。
主叫流程:
MO#2程序如下:
1.UE#1向通过CSCF发现机制确定的P CSCF发送包含初始SDP的SIP INVITE请求。初始SDP可以表示用于多媒体会话的一个或多个媒体。
2.P-CSCF记住(从注册过程中)这个UE的下一跳CSCF。在这种情况下,它将邀请转发到本地网络中的S-CSCF。
P-CSCF根据注册过程中存储的用户配置文件和/或用户请求的优先级和/或INVITE消息中包含的MPS代码/标识符来确定INVITE消息是否需要优先级处理。如果会话被确定需要优先级处理,则P-CSCF插入/替换优先级指示并将邀请转发到S-CSCF。
3.S-CSCF验证服务配置文件(如果接收到GRUU作为联系人),确保请求中服务用户的公共用户标识和与GRUU关联的公共用户标识属于同一服务配置文件,并调用此用户所需的任何发起服务逻辑。这包括基于用户对多媒体服务的订阅对请求的SDP进行授权。如果请求URI包含E.1地址的SIP表示,则第4.3.5.3条中指定的过程适用。
4.S-CSCF按照S-S程序的规定转发请求。当INVITE消息包括优先级指示时,S-CSCF转发INVITE,包括服务用户的优先级(如果可用)。
5.根据S-S过程,目的地的媒体流能力沿着信令路径返回。
6.S-CSCF将Offer响应信息转发给P-CSCF
7.P-CSCF指示PCRF/PCF授权此会话所需的资源。
8.P-CSCF将Offer响应消息转发给发起端点。
9.UE决定为该会话提供的媒体流集合,确认接收到要约响应并将响应确认发送给P-CSCF。响应确认还可以包含SDP。这可以与在步骤8中接收到的要约响应中的SDP或子集中的SDP相同。如果此SDP定义了新介质,则在步骤14之后将执行新的授权(如步骤7所示)。发起UE可以继续在该操作上或在使用更新方法的后续交换上提供新媒体。每次报价/应答交换将使P CSCF再次重复步骤7。
10.根据为IP CAN会话选择的承载建立模式,资源预留应由UE或IP CAN自身发起。UE为所提供的媒体启动资源预留过程,如图5.15所示。否则,IP可以在步骤7之后开始预定所需的资源。
11.P CSCF将此消息转发给S CSCF
12.S CSCF根据S-S过程将此消息转发到终止端点。
13-14.终止端点用确认响应起始端。如果响应确认中包含可选的SDP,则确认确认也将包含SDP响应。如果SDP已更改,PCSCF将对媒体进行授权。
15.PCSCF将应答的媒体转发给UE。
16-18.当资源预留完成时,UE通过INVITE消息建立的信令路径将成功的资源预留消息发送到终止端点。消息首先发送到P CSCF。
19-21.当资源预留成功时,终止端点响应发起端。如果SDP已更改,P CSCF再次授权允许使用资源。
22-24.目的地UE可以选择性地执行警报。如果是这样,它会通过一个临时响应将此信号发送给发起方,指示振铃。此消息按照S-S程序发送到S CSCF。它沿着信号路径从那里向始发端发送。
25.UE向发起用户指示目的地正在振铃。
26-27.当目的方应答时,根据终止过程和S-S过程的规定,终止端点沿着信令路径将SIP 200-OK最终响应发送到发端S CSCF。
28.P CSCF表示现在应该启用为此会话授权的媒体流。
29.P CSCF将200-OK响应传递回UE
30.UE启动此会话的媒体流。
31-33.UE用ACK消息响应200ok,ACK消息被发送到P CSCF并沿着信令路径传递到终端。
本地被叫流程
SIP协议介绍
SIP是一种顺序协议,其请求/响应在功能和格式上都类似于HTTP。每个SIP请求都以一个起始行开始,该起始行包括请求类型的名称,也被称为方法。下表列出了用于SIP的所有请求方法。
SIP Method | Description | Reference |
INVITE | INVITE indicates that a client is being invited to participate in a call session | RFC 3261 |
ACK | ACK Confirms that the client has received a final response to an INVITE request | RFC 3261 |
BYE | Terminates a call; It can be sent by either the caller or the called party | RFC 3261 |
CANCEL | Cancels any pending request | RFC 3261 |
OPTIONS | It Queries the capabilities of servers | RFC 3261 |
PRACK | Provisional acknowledgement | RFC 3262 |
SUBSCRIBE | Subscribes to event notification | RFC 3265 |
NOTIFY | Notifies the subscriber of a new Event | RFC 3265 |
PUBLISH | Publishes an event to the Server | RFC 3903 |
INFO | Sends mid-session information that does not modify the session state | RFC 6086 |
REFER | Asks recipient to issue a SIP request (call transfer) | RFC 3515 |
MESSAGE | Transports instant messages using SIP | RFC 3428 |
UPDATE | Modifies the state of a session without changing the state of the dialog | RFC 3311 |
SIP消息响应在名为会话启动协议(SIP)参数的Internet分配号码授权(IANA)列表中维护。它们总是以响应代码开头。这些响应代码分为以下几类:
∙1XX Codes (Informational/Provisional): These code are for request received and being processed e.g. 100 Trying, 180 Ringing
∙2xx Codes (Successful Action) : The action was successfully received, understood, and accepted e.g. 200 OK, 202 Accepted
∙3XX Codes (Redirection): Further action needs to be taken (typically by the sender) to complete the request e.g. 301 Moved Permanently, 302 Moved Temporarily
∙4XX Codes (Client Failure): The request contains bad syntax or cannot be fulfilled at the server e.g. 401 Unauthorized, 403 Forbidden
∙5XX (Codes Server Failure): The server failed to fulfill an apparently valid request e.g. 500 Server Internal Error, 504 Server Time-out
∙6XX (Global Failure): The request cannot be fulfilled at any server e.g. 600 Busy Everywhere, 604 Does Not Exist Anywhere
The detailed list of all Response code is given in below tables.
1XX Codes
SIP Message Code | Description | Reference |
100 | Trying | |
180 | Ringing | |
181 | Call Is Being Forwarded | |
182 | Queued | |
183 | Session Progress | |
199 | Early Dialog Terminated | RFC6228 |
SIP Message Code | Description | Reference |
200 | OK | |
202 | Accepted | RFC3265 |
204 | No Notification | RFC5839 |
SIP Message Code | Description | Reference |
300 | Multiple Choices | |
301 | Moved Permanently | |
302 | Moved Temporarily | |
305 | Use Proxy | |
380 | Alternative Service |
SIP Message Code | Description | Reference |
400 | Bad Request | |
401 | Unauthorized | |
402 | Payment Required | |
403 | Forbidden | |
404 | Not Found | |
405 | Method Not Allowed | |
406 | Not Acceptable | |
407 | Proxy Authentication Required | |
408 | Request Timeout | |
410 | Gone | |
412 | Conditional Request Failed | RFC3903 |
413 | Request Entity Too Large | |
414 | Request-URI Too Long | |
415 | Unsupported Media Type | |
416 | Unsupported URI Scheme | |
417 | Unknown Resource-Priority | RFC4412 |
420 | Bad Extension | |
421 | Extension Required | |
422 | Session Interval Too Small | RFC4028 |
423 | Interval Too Brief | |
424 | Bad Location Information | RFC42 |
428 | Use Identity Header | RFC4474 |
429 | Provide Referrer Identity | RFC32 |
430 | Flow Failed | RFC5626 |
433 | Anonymity Disallowed | RFC5079 |
436 | Bad Identity-Info | RFC4474 |
437 | Unsupported Certificate | RFC4474 |
438 | Invalid Identity Header | RFC4474 |
439 | First Hop Lacks Outbound Support | RFC5626 |
440 | Max-Breadth Exceeded | RFC5393 |
469 | Bad Info Package | RFC6086 |
470 | Consent Needed | RFC5360 |
480 | Temporarily Unavailable | |
481 | Call/Transaction Does Not Exist | |
482 | Loop Detected | |
483 | Too Many Hops | |
484 | Address Incomplete | |
485 | Ambiguous | |
486 | Busy Here |
487 | Request Terminated | |
488 | Not Acceptable Here | |
4 | Bad Event | RFC3265 |
491 | Request Pending | |
493 | Undecipherable | |
494 | Security Agreement Required | RFC3329 |
SIP Message Code | Description | Reference |
500 | Server Internal Error | |
501 | Not Implemented | |
502 | Bad Gateway | |
503 | Service Unavailable | |
504 | Server Time-out | |
505 | Version Not Supported |
SIP Message Code | Description | Reference |
600 | Busy Everywhere | |
603 | Decline | |
604 | Does Not Exist Anywhere | |
606 | Not Acceptable |