刚刚把CTEXCEL成功通过wificalling激活了,并没有佬友们说的拉闸的情况。特分享一下我的操作步骤。
先说硬件环境,一台ios18.7.9版本的iphone XS,连接软路由openclash,使用的uk的可以udp的机场节点,使用wloc更改位置至uk后重启。
OpenClash的相关配置:运行模式-fakeip(tun混合),代理模式-规则,运行内核-Mihomo Meta,UDP流量转发-启用,DNS劫持-启用,ipv6所有能关掉都关掉。
个人总结成功拉起wificalling的关键就是在节点支持udp的基础上,可以成功将手机udp流量通过对应的端口(500/4500端口)放行,同时要在fakeip的排除名单里过滤整个3gppnetwork.org,以保证后续所有的其他运营商都能获得真实的ePDG地址。同时Openclash默认生成的nftables规则会导致UDP 500绕过代理,必须在Openclash的防火墙规则生成后自动删除。
在上述openclash的配置基础上,打开覆写设置-DNS设置,开启Fake-Ip-Filter,选择黑名单模式,并在里面填入+.3gppnetwork.org和+.vodafone-ip.de

在Openclash首页的覆写模块中建立一个新的模块,专门用来分流wificalling,模块起名可以叫wificalling.conf,内容如下:
[YAML]
dns:
+fake-ip-filter:
- '+.3gppnetwork.org'
- '+.vodafone-ip.de'
+proxy-groups:
- name: WiFiCalling-DE
type: select
include-all: true
exclude-type: direct|reject
filter: '(?i)(Germany|German|Frankfurt|Berlin|Dusseldorf|Nuremberg|(^|[^A-Z])DE([^A-Z]|$))'
disable-udp: false
- name: WiFiCalling-UK
type: select
include-all: true
exclude-type: direct|reject
filter: '(?i)(United Kingdom|Britain|London|Manchester|Birmingham|(^|[^A-Z])UK([^A-Z]|$)|(^|[^A-Z])GB([^A-Z]|$))'
disable-udp: false
+rules:
# Vodafone Germany
- DOMAIN-SUFFIX,mnc002.mcc262.pub.3gppnetwork.org,WiFiCalling-DE
- DOMAIN-SUFFIX,vodafone-ip.de,WiFiCalling-DE
- IP-CIDR,139.7.117.0/24,WiFiCalling-DE,no-resolve
# CTExcel UK / EE
- DOMAIN-SUFFIX,mnc030.mcc234.pub.3gppnetwork.org,WiFiCalling-UK
- DOMAIN-SUFFIX,mnc033.mcc234.pub.3gppnetwork.org,WiFiCalling-UK
- IP-CIDR,31.94.76.0/24,WiFiCalling-UK,no-resolve
说明:
固定选择一个支持UDP的节点,不使用自动选择、负载均衡或轮询。


- 解决UDP500被防火墙绕过的问题。连接到openclash的ssh,输入如下代码
# BEGIN WIFICALLING UDP500 FIX
# 删除 OpenClash 对 IKEv2 UDP 源端口 500 的绕过规则
for i in 1 2 3 4 5; do
nft list chain inet fw4 openclash_mangle >/dev/null 2>&1 || {
sleep 2
continue
}
nft -a list chain inet fw4 openclash_mangle 2>/dev/null |
awk '$0 ~ /udp sport 500/ && $0 ~ /return/ && $0 ~ /handle/ {print $NF}' |
while read -r handle; do
[ -n "$handle" ] &&
nft delete rule inet fw4 openclash_mangle handle "$handle" 2>/dev/null
done
break
done
# END WIFICALLING UDP500 FIX
给脚本权限:
chmod +x /etc/openclash/custom/openclash_custom_firewall_rules.sh
- 重启openclash,确认覆写模块加载正常。
- 通过wloc更改定位至伦敦,保持飞行模式和CTEXCEL卡片未启用状态重启手机。
- 手机重启后,保持飞行模式,开启wifi,手机接入软路由网络,启用CTEXCEL,启用WIFICalling,即可在飞行模式下成功拉起wificalling,同时拨打888也可正常接通。
注:运营商版本也很关键,这些操作完了之后第一次我并没有成功拉起wificalling,因为ios版本是18.4.1,运营商版本是EE 63.0。后来我就更新了系统至18.7.9,重启后发现运营商版本变成了EE 64.0。然后就丝滑拉起了