P-CSCF的发现

IMS 的 P-CSCF(Proxy-Call Session Control Function)地址发现主要在建立 ims 专用 APN 的 PDN 连接时,由基带通过 NAS 信令中的 PCO(Protocol Configuration Options) 向核心网(PGW/SMF)请求并获取。

附着或建立 IMS PDN 连接时,网络在 Activate default EPS bearer context request 的 PCO 字段里下发 P-CSCF 地址(Container ID 0x000C 为 IPv6,0x000A 为 IPv4)。

在应用层或调试过程中,可以通过 3GPP 标准 AT 指令、高通 QMI 接口

AT命令

AT+CGDCONT?             
AT+CGCONTRDP             

+CGCONTRDP 按 3GPP TS 27.007 的返回格式,包含 P-CSCF:

+CGCONTRDP: <cid>,<bearer_id>,<apn>,<local_addr and subnet_mask>,<gw_addr>,
<DNS_prim_addr>,<DNS_sec_addr>,<P-CSCF_prim_addr>,<P-CSCF_sec_addr>,
<IM_CN_Signalling_Flag>,...

其中第 8 和第 9 个字段(P_CSCF_prim_addr 和 P_CSCF_sec_addr)即为核心网分配的主、备 P-CSCF 地址。

通过 Qualcomm QMI WDS(Wireless Data Service) 查询

1. 配置 Profile 请求 P-CSCF 标志位
在发起拨号前,需确保对应 Profile 的 P-CSCF Address using PCO Flag(TLV 0x2B)在 QMI_WDS_MODIFY_PROFILE_SETTINGS 中被置为 1,或者在调用 QMI_WDS_START_NETWORK_INTERFACE 时携带请求 P-CSCF 的参数。

2. 调用 QMI_WDS_GET_RUNTIME_SETTINGS (Msg ID: 0x002D)
当 IMS 数据呼叫建立成功后,向对应 IMS 网卡关联的 QMI WDS 客户端发送 QMI_WDS_GET_RUNTIME_SETTINGS 请求,并在 Request Mask(TLV 0x10)中勾选 P-CSCF 地址标志位(Bit 11 / 0x0800 用于请求 P-CSCF 服务器地址列表)。

3. 解析返回的 TLV 字段
验证方式: 检查响应包中的以下 TLV 即可提取地址:
TLV 0x23:IPv4 P-CSCF Server Address List
TLV 0x27:IPv6 P-CSCF Server Address List
TLV 0x24:P-CSCF Server Name List(FQDN 域名形式)

MSM8916 debian

# mmcli -m 0 --create-bearer="apn=ims,ip-type=ipv4v6"
Successfully created new bearer in modem:
	/org/freedesktop/ModemManager1/Bearer/2

# mmcli -b 2 --connect
successfully connected the bearer

#   ------------------------------------
  General            |           path: /org/freedesktop/ModemManager1/Bearer/2
                     |           type: default
  ------------------------------------
  Status             |      connected: yes
                     |      suspended: no
                     |    multiplexed: no
                     |      interface: wwan1
                     |     ip timeout: 20
  ------------------------------------
  Properties         |            apn: ims
                     |        roaming: allowed
                     |        ip type: ipv4v6
  ------------------------------------
  IPv6 configuration |         method: static
                     |        address: 2409:814e:ca88:c4c:71b9:5013:2b8e:d9f2
                     |         prefix: 64
                     |        gateway: 2409:814e:ca88:c4c:2f:61cd:8dc8:464c
                     |            dns: 2409:804c:0:2000::1, 2409:804c:0:200a::1
                     |            mtu: 1500
  ------------------------------------
  Statistics         |     start date: 2026-10-17T14:33:56Z
                     |       duration: 29
                     |       bytes rx: 88
                     |       attempts: 1
                     | total-duration: 29
                     | total-bytes rx: 88

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注