I've been seeing an issue on a couple iOS devices when they are connected to my home network. My home network has IPv6 enabled.
With IPv6 enabled after a certain period of time, I no longer receive calls. My phone still shows that wifi calling is on. I can make calls during that time. When I disable IPv6 the issue disappears and I am able to receive calls all the time.
When I was troubleshooting the issue, it seem to be related to how VZW does Wifi calling. On IPv4 networks, calls connect over IPSec via NAT-T, where traffic is initiated from the device and return traffic from VZW is allowed. The ESP packets that contain the call are forwarded back to the device that has the port open for the IKEv2 keepalives (4500/udp).
With IPv6, the IKEv2 traffic occurs on port 500/udp, but the call traffic is standard ESP protocol 50 traffic, not 500/udp. This causes most firewalls to drop the traffic due because the traffic isn't started from the LAN side. When I create a firewall rule to allow ESP traffic inbound from wo.vzwwo.com, inbound calls immediately start to work.
I don't know if this is an issue on VZW's side or iOS but it seems to have only started to occur in the last two to three months. I am happy to discuss further with VZW engineering.