P-CSCF: An introduction.

本文介绍了P-CSCF作为IMS域入口的角色,包括UE如何通过DHCP-DNS流程发现P-CSCF,以及后续的注册过程。此外还讨论了P-CSCF与UE间建立IPSec安全关联的过程。

 

The P-CSCF is the entry point to the IMS domain and serves as the outbound proxy server for the UE. The UE attaches to the P-CSCF prior to performing IMS registrations and initiating SIP sessions. The P-CSCF may be in the home domain of the IMS operator, or it may be in the visiting domain, where the UE is currently roaming. For attachment to a given P-CSCF, the UE performs the P-CSCF discovery procedures. Attachment to the P-CSCF is necessary for the UE for initiating IMS registrations and sessions.

 

In these procedures, the UE first establishes the IP connectivity access network (IP-CAN) bearer. Then, the UE sends a query to the DHCP server for retreiving the IP addresses and FQDN (Fully Qualified Domain Name) of the P-CSCF. After the DHCP query, the UE performs a DNS query on the FQDN received from the DHCP server. In response to the DNS query, the IP address of the P-CSCF is returned. This is known as the DHCP-DNS procedure for P-CSCF discovery. However, in some cases, it may be possible that the FQDN of the P-CSCF is pre-configured in the UE. In these scenarios, the UE can directly query the DNS server and get the IP address of the P-CSCF.

Subsequent to P-CSCF discovery, the UE can send a SIP REGISTER request to register itself in the IMS core network. The P-CSCF sets up IPSec security associations with the UE, which are facilitated with the two-way registration handshake (i.e. REGISTER-401-REGISTER-200 OK). The IPSec security assocaiations (SAs) setup four protected ports between the UE and the P-CSCF and ensure that all subsequent signaling traffic passes through the protected ports. The four protected ports negotiated during IMS registration are: The protected server port at the P-CSCF, the protected server port at the UE, the protected client port at the P-CSCF and the protected client port at the UE. The Protected client ports are used by the UE and P-CSCF to send requests while the server ports are used to receive incoming requests. IMS registration will be discussed seperately in another post.

The P-CSCF also translates the SDP body contained in the SIP INVITE message from the UE into DIAMETER over the Rx interface and sends it to the PCRF. The PCRF is responsible for policy control in the IMS core network. If the SDP offer contains a codec or any other media characteristics that are not allowed as per the policies of the IMS operator, the operator can choose to disallow that session setup.

Subsequent posts will dicuss the P-CSCF and PCRF interaction in more detail.

 

From: http://theimsjungle.wordpress.com/2008/04/30/p-cscf-an-introduction/

android ims 通话挂断原因是? 行 4454: 09-30 14:07:06.585231 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleMessage what=1003 行 4455: 09-30 14:07:06.585243 2880 2880 D OplusImsPhoneCallTrackerImpl/0: EVENT_DSDA_CHANGED, DSDA not support 行 5594: 09-30 14:07:55.420799 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleMessage what=1003 行 5595: 09-30 14:07:55.420834 2880 2880 D OplusImsPhoneCallTrackerImpl/0: EVENT_DSDA_CHANGED, DSDA not support 行 18715: 09-30 14:09:48.555557 2880 2880 D ImsPhoneCallTracker: [0] onCallUpdated 行 18716: 09-30 14:09:48.557413 2880 2880 D ImsPhoneCallTracker: [0] onCallUpdated: profile is { serviceType=1, callType=2, restrictCause=0, mediaProfile={ audioQuality=0, audioDirection=3, audioCodecAttribute=null, videoQuality=0, videoDirection=-1, rttMode=0, hasRttAudioSpeech=false }, emergencyServiceCategories=0, emergencyUrns=[], emergencyCallRouting=0, emergencyCallTesting=false, hasKnownUserIntentEmergency=false, mRestrictCause=0, mCallerNumberVerstat= 0, mAcceptedRtpHeaderExtensions= [] } 行 18722: 09-30 14:09:48.558191 2880 2880 D OplusImsPhoneCallTrackerImpl/0: send Crbt or Crs EVENT 行 18723: 09-30 14:09:48.558274 2880 2880 D ImsPhoneCallTracker: [0] processCallStateChange state=ACTIVE cause=0 ignoreState=true 行 18740: 09-30 14:09:48.560660 2880 2880 D OplusImsPhoneCallTrackerImpl/0: changeAddrIfNeed return origin addr. 行 18873: 09-30 14:09:48.579971 2880 2880 D ImsPhoneCallTracker: [0] onCallTerminated reasonCode=354 行 18875: 09-30 14:09:48.580134 2880 2880 D ImsPhoneCallTracker: [0] maybeRemapReasonCode : fromCode = 354 ; message = 行 18876: 09-30 14:09:48.580928 2880 2880 D ImsPhoneCallTracker: [0] cause = 9 conn = [ImsPhoneConnection objId: 261614505 telecomCallID: TC@1_1 address: [****] isAdhocConf: N ImsCall: [ImsCall objId:95393239 onHold:N mute:N mCallProfile:{ serviceType=1, callType=2, restrictCause=0, mediaProfile={ audioQuality=0, audioDirection=3, audioCodecAttribute=null, videoQuality=0, videoDirection=-1, rttMode=0, hasRttAudioSpeech=false }, emergencyServiceCategories=0, emergencyUrns=[], emergencyCallRouting=0, emergencyCallTesting=false, hasKnownUserIntentEmergency=false, mRestrictCause=0, mCallerNumberVerstat= 0, mAcceptedRtpHeaderExtensions= [] } networkType:13 updateRequest:NONE merging:N merge action pending:N merged:N multiParty:N confHost:N buried term:N isVideo: N wasVideo: N isWifi: N session:[ImsCallSession objId:61415766 callId:1] transientSession:null]] 行 18877: 09-30 14:09:48.581159 2880 2880 D ImsPhoneCallTracker: [0] maybeRemapReasonCode : fromCode = 354 ; message = 行 18936: 09-30 14:09:48.600277 2880 2880 D ImsPhoneCallTracker: [0] maybeRemapReasonCode : fromCode = 354 ; message = 行 18938: 09-30 14:09:48.608894 2880 2880 D OplusImsPhoneCallTrackerImpl/0: callrecord cause:9, imscause:354,cause desc:ImsReasonInfo :: {354 : CODE_SIP_SERVER_ERROR, 0, null} 行 18939: 09-30 14:09:48.608945 2880 2880 D OplusImsPhoneCallTrackerImpl/0: callrecord call disconnect with mExtraCode error. 行 18941: 09-30 14:09:48.609033 2880 2880 D OplusImsPhoneCallTrackerImpl/0: callrecord slotId:0, event:9005, cause:9, imscause:354, isImsCall:true, isIncoming:true, desc:ImsReasonInfo :: {354 : CODE_SIP_SERVER_ERROR, 0, null} 行 18955: 09-30 14:09:48.619050 2880 2880 D ImsPhoneCallTracker: [0] processCallStateChange [ImsCall objId:95393239 onHold:N mute:N mCallProfile:{ serviceType=1, callType=2, restrictCause=0, mediaProfile={ audioQuality=0, audioDirection=3, audioCodecAttribute=null, videoQuality=0, videoDirection=-1, rttMode=0, hasRttAudioSpeech=false }, emergencyServiceCategories=0, emergencyUrns=[], emergencyCallRouting=0, emergencyCallTesting=false, hasKnownUserIntentEmergency=false, mRestrictCause=0, mCallerNumberVerstat= 0, mAcceptedRtpHeaderExtensions= [] } networkType:13 updateRequest:NONE merging:N merge action pending:N merged:N multiParty:N confHost:N buried term:N isVideo: N wasVideo: N isWifi: N session:[ImsCallSession objId:61415766 callId:1] transientSession:null] state=DISCONNECTED cause=9 行 18956: 09-30 14:09:48.619096 2880 2880 D ImsPhoneCallTracker: [0] processCallStateChange state=DISCONNECTED cause=9 ignoreState=false 行 18967: 09-30 14:09:48.620742 2880 2880 D OplusImsPhoneCallTrackerImpl/0: changeAddrIfNeed return origin addr. 行 19001: 09-30 14:09:48.636024 2880 2880 D ImsPhoneCallTracker: [0] setHangupByMaster false, when Phone state is IDLE 行 19002: 09-30 14:09:48.636171 2880 2880 D ImsPhoneCallTracker: [0] updatePhoneState pendingMo = null, rng= IDLE(), fg= IDLE(), bg= IDLE() 行 19003: 09-30 14:09:48.636192 2880 2880 D ImsPhoneCallTracker: [0] updatePhoneState oldState=OFFHOOK, newState=IDLE 行 19009: 09-30 14:09:48.651805 2880 2880 D ImsPhoneCallTracker: [0] updatePhoneState clear mHoldSwitchingState:INACTIVE 行 19729: 09-30 14:09:49.068250 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleMessage what=1003 行 19730: 09-30 14:09:49.068279 2880 2880 D OplusImsPhoneCallTrackerImpl/0: EVENT_DSDA_CHANGED, DSDA not support 行 21360: 09-30 14:09:52.660497 2880 2880 D ImsPhoneCallTracker: [0] onCapabilitiesStatusChanged: MmTel Capabilities - [Voice: true Video: true UT: true SMS: true CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] 行 21362: 09-30 14:09:52.660711 2880 2880 D ImsPhoneCallTracker: [0] handleMessage what=26 行 21368: 09-30 14:09:52.664929 2880 2880 D OplusImsPhoneCallTrackerImpl/0: disable vt in PolicyCustomized.none 行 21369: 09-30 14:09:52.665047 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleFeatureCapabilityChanged: isVolteEnabled = true , isVoWifiEnabled = false 行 21370: 09-30 14:09:52.665127 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: MmTel Capabilities - [Voice: true Video: true UT: true SMS: true CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] isVideoEnabledStateChanged=false 行 21371: 09-30 14:09:52.665161 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: isVolteEnabled=true, isVideoCallEnabled=true, isVowifiEnabled=false, isUtEnabled=true 行 23962: 09-30 14:10:20.594445 2880 2880 D ImsPhoneCallTracker: [0] onCapabilitiesStatusChanged: MmTel Capabilities - [Voice: true Video: true UT: true SMS: true CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] 行 24292: 09-30 14:10:20.721467 2880 2880 D ImsPhoneCallTracker: [0] handleMessage what=26 行 24302: 09-30 14:10:20.724043 2880 2880 D OplusImsPhoneCallTrackerImpl/0: disable vt in PolicyCustomized.none 行 24303: 09-30 14:10:20.724109 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleFeatureCapabilityChanged: isVolteEnabled = true , isVoWifiEnabled = false 行 24305: 09-30 14:10:20.724138 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: MmTel Capabilities - [Voice: true Video: true UT: true SMS: true CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] isVideoEnabledStateChanged=false 行 24306: 09-30 14:10:20.724153 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: isVolteEnabled=true, isVideoCallEnabled=true, isVowifiEnabled=false, isUtEnabled=true 行 24634: 09-30 14:10:20.796004 2880 2880 D OplusImsPhoneCallTrackerImpl/0: disable vt in PolicyCustomized.none 行 24635: 09-30 14:10:20.796048 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleFeatureCapabilityChanged: isVolteEnabled = true , isVoWifiEnabled = false 行 24636: 09-30 14:10:20.796084 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: Capabilities: 1111 isVideoEnabledStateChanged=false 行 24637: 09-30 14:10:20.796102 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: isVolteEnabled=true, isVideoCallEnabled=true, isVowifiEnabled=false, isUtEnabled=true 行 26335: 09-30 14:10:28.584933 2880 2880 D ImsPhoneCallTracker: [0] onCapabilitiesStatusChanged: MmTel Capabilities - [Voice: false Video: false UT: false SMS: false CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] 行 26371: 09-30 14:10:28.604853 2880 2880 D ImsPhoneCallTracker: [0] handleMessage what=26 行 26372: 09-30 14:10:28.604983 2880 2880 D OplusImsPhoneCallTrackerImpl/0: onFeatureCapabilityChanged: isUtEnabled Change 行 26388: 09-30 14:10:28.612538 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleFeatureCapabilityChanged: isVolteEnabled = false , isVoWifiEnabled = false 行 26389: 09-30 14:10:28.612576 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged - notifyForVideoCapabilityChanged=false 行 26390: 09-30 14:10:28.612620 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: MmTel Capabilities - [Voice: false Video: false UT: false SMS: false CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] isVideoEnabledStateChanged=true 行 26391: 09-30 14:10:28.612661 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: isVolteEnabled=false, isVideoCallEnabled=false, isVowifiEnabled=false, isUtEnabled=false 行 27116: 09-30 14:10:30.153818 2880 2880 D ImsPhoneCallTracker: [0] onCapabilitiesStatusChanged: MmTel Capabilities - [Voice: true Video: true UT: true SMS: true CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] 行 27204: 09-30 14:10:30.167259 2880 2880 D ImsPhoneCallTracker: [0] handleMessage what=26 行 27205: 09-30 14:10:30.167325 2880 2880 D OplusImsPhoneCallTrackerImpl/0: onFeatureCapabilityChanged: isUtEnabled Change 行 27223: 09-30 14:10:30.179061 2880 2880 D OplusImsPhoneCallTrackerImpl/0: disable vt in PolicyCustomized.none 行 27224: 09-30 14:10:30.179097 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleFeatureCapabilityChanged: isVolteEnabled = true , isVoWifiEnabled = false 行 27225: 09-30 14:10:30.179125 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged - notifyForVideoCapabilityChanged=true 行 27226: 09-30 14:10:30.179169 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: MmTel Capabilities - [Voice: true Video: true UT: true SMS: true CALL_COMPOSER: false BUSINESS_COMPOSER_ONLY: false] isVideoEnabledStateChanged=true 行 27227: 09-30 14:10:30.179186 2880 2880 D ImsPhoneCallTracker: [0] handleFeatureCapabilityChanged: isVolteEnabled=true, isVideoCallEnabled=true, isVowifiEnabled=false, isUtEnabled=true 行 27588: 09-30 14:10:36.090754 2880 2880 D OplusImsPhoneCallTrackerImpl/0: handleMessage what=1003 行 27589: 09-30 14:10:36.090766 2880 2880 D OplusImsPhoneCallTrackerImpl/0: EVENT_DSDA_CHANGED, DSDA not support
最新发布
10-02
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值