15. VoWiFi & VoWiFi Roaming: ORO, VDF DE


1. VoWiFi info
2. Orange Romania VoWiFi in Roaming
3. Vodafone Germany VoWiFi in Roaming

1. At power on the mobile sends a DNS request in order to find the VoWiFi Server  (ePDG) IP
  • for Digi: epdg.epc.mnc005.mcc226.pub.3gppnetwork.org
  • for Orange: epdg.epc.mnc010.mcc226.pub.3gppnetwork.org
  • for your operator: epdg.epc.mncxxx.mccyyy.pub.3gppnetwork.org , get your mnc,mcc from: http://mcc-mnc.com/ 
2. An IPSEC Tunnel is created between the mobile as a client and the VoWiFi Server. The ports being used: udp port 500, udp port 4500, ip protocol 50 (esp) and ip protocol 51 (ah). On the WiFi router the IPSEC Passthrough should be ON - this is the default config of most routers anyway. There is no need to do any port forwarding or other configurations on the WiFi Router.

3. The mobile registers to the network though SIP messages over the IPSEC VPN.

4. Finally the mobile has 3 IPs:
  • IP1, given by the LTE network for Internet APN, inactive in case of VoWiFi
  • IP2, private, given by the local VoWiFi network
  • IP3, usually IPv6, given through the VPN by the operator network(ePDG, PGW) and used for all the VoLTE communication though the IPSEC Tunnel. This is the same IP given though the ims APN in VoLTE and is kept when the VoWiFi<>VoLTE handovers are done.
You can see the active IPs in your phone with a Terminal aplication using the commands:
  • ip addr show
  • ip -6 addr show

Try to find and ping (some operators block the ping) the ePDG from your laptop or Android phone:


E:\>nslookup epdg.epc.mnc010.mcc226.pub.3gppnetwork.org
Server:  UnKnown
Address:  10.143.0.1

Non-authoritative answer:
Name:    epdg.epc.mnc010.mcc226.pub.3gppnetwork.org
Addresses:  109.166.155.232
          109.166.155.233


E:\>ping 109.166.155.232

Pinging 109.166.155.232 with 32 bytes of data:
Reply from 109.166.155.232: bytes=32 time=88ms TTL=56
Reply from 109.166.155.232: bytes=32 time=85ms TTL=56
Reply from 109.166.155.232: bytes=32 time=87ms TTL=56

Ping statistics for 109.166.155.232:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 85ms, Maximum = 88ms, Average = 86ms






2. If your mobile operator blocks the VoWiFi in roaming (like Orange Romania - ORO), based on the IP range,  you can use  2  solutions:

A. WiFi Hotspot from another phone using a Romanian SIM

 ORO VoWiFi Phone ------ WiFi Hotspot Phone with RO SIM inside ------ <2G/3G/4G Radio> ------ Local (Roaming)Telecom Operator(SGSN/MME) ------ Romanian (Home) Telecom Operator(GGSN/PGW) ------ ORO VoWiFi Servers (ePDG) ------ ORO PGW ------ ORO IMS ------ ORO Gateway to other Operators

The IP will be provided by the Romanian Home Operator,  a Romanian registered IP, so there will be no problems with VoWiFi

alo?



B. VPN on the WiFi router:


VoWiFi Phone ------ Roaming WiFi Router (VPN Client)------------------------Home Router(VPN Server) ------- You Mobile Operator VoWiFi Server (ePDG)


Example:
  • Roaming Router: cheap TP-Link TL-WR841ND   (or TP-Link TL-MR3040 for portable solutions or GL MIFI: https://www.gl-inet.com/products/gl-mifi/ with OpenWRT) with dd-wrt and PPTP VPN Client
SERVER: xxxxx. go.ro
TPLINK PPTP VPN CLIENT OPTIONS: mppe required,no40,no56,stateless
NAT ENABLE
MTU MRU : 1436

  • Home Router: Asus RT-AC87U with PPTP VPN Server




1st , being in home country you can check if the ePDG is pingable, if the operator allows this; if yes, you can do the same when roaming before and after enabling the VPN . Replace the mnc and mcc with your operator values taken from : http://mcc-mnc.com/ ; Below is an Orange Romania (MNC 010, MCC 226) example. This is just to check the proper connectivity.



E:\>ping epdg.epc.mnc010.mcc226.pub.3gppnetwork.org

Pinging epdg.epc.mnc010.mcc226.pub.3gppnetwork.org [109.166.155.232] with 32 bytes of data:
Reply from 109.166.155.232: bytes=32 time=82ms TTL=56
Reply from 109.166.155.232: bytes=32 time=96ms TTL=56
Reply from 109.166.155.232: bytes=32 time=82ms TTL=56
Reply from 109.166.155.232: bytes=32 time=96ms TTL=56

Ping statistics for 109.166.155.232:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 82ms, Maximum = 96ms, Average = 89ms




1. the 1st IPSEC tunnel is created between the routers, the roaming router gets an IP from the home network
2. the mobile looks for the ePDG IP, sends a DNS request for epdg.epc.mnc010.mcc226.pub.3gppnetwork.org
3. the mobile creates the 2nd ipsec tunnel with the epdg, it gets an IP for VoWiFi communication
4. using this IP, the 3rd tunel is established with the Operator SIP Server, P-CSCF
5. VoWiFi SIP and voice packets are sent though this connection

Samsung S6 ORO VoWiFi in Roaming using the setup described above: https://sendvid.com/l3mtvzon  (see it in full screen) 

VoWiFi slides from Cisco


2b.  Screenshots

VoWiFi Orange Romania: DNS, Register in VoWiFi, Outgoing call, Incoming call, screenshot from Wireshark

Record all the VoLTE/VoWiFi SIP packets in .pcap format on Samsung phones. Use Shortcut Master (with root when using with Oreo) and open the IMSLogger: https://www.dropbox.com/s/rslffvws04fx3bi/s.mp4?dl=0 Android green mascot pops up. When the test is finished, press STOP and the pcap file is generated.

TCPdump for Android can be used too.



  Roaming in the air: Emirates flights and SitaOnAir over Indian Ocean and Australia




  •  Digi.Mobil VoWiFi in the air over the plane WiFi


  • 2G/ Edge Orange roaming in the air with SitaOnAir
  • Aeromobile, other roaming in the air provider. They provide 3G too.





Orange Romania vs Digi.Mobil Romania (Optus AU) Roaming fees


\



3. Vodafone Germany VoWiFi in Roaming:

VDF DE blocks the VoWiFi in roaming by controlling somehow the German DNS servers, a feature I have to read about ...
VDF DE doesn't look at the location of your IP.

VoWiFi in Roamning doesn't work through VPN.

For Android rooted devices, the workaround involves adding static DNS entries like below. Afterwards the VoWiFi should work from any roaming WiFi network. Please let me know if it works for you.


Edit the /etc/hosts file with one of the 2 lines below:

139.7.117.161  epdg.epc.mnc002.mcc262.pub.3gppnetwork.org
139.7.117.162  epdg.epc.mnc002.mcc262.pub.3gppnetwork.org   



Restart your phone. Try VoWiFi. This works on Samsung devices.



1 comment:

  1. I am trying to connect jio india network from canada using vowifi without roaming. So I used site to site tunnel between india (my home) router to remote(Canada) router. I was able to get the vpn traffic here, also I am able to reach the dns as well. However the epdg is not creating tunnel for vowifi. any idea to get achieve this ??

    ReplyDelete

Romanian Operators Sites and core vendors

 Orange  Bucharest  Cluj Vodafone Bucharest Cluj Digi Mobil  Bucharest Iasi Timisoara