VoLTE on IPhone

A sky full of stars Photograph by Tor-Ivar Naess Image

If you are following my blog and have read my previous post about testing VoLTE in Samsung and Pixel handsets, I appreciate that, and this post is a quick update. If not, please review the first part VoLTE in Pixel vs Samsung Phones and then return here.

When we were developing the IMS core, we used a Samsung handset as our engineering phone or test phone and everything seemed good. When we were ready to start testing phones from other brands, we got a report from the marketing and sales department about how different brands are popular in Canada. I think you can guess that iPhone is at the top of the list! and then Samsung and Google Pixel and other brands like LG, Xiaomi, etc. following.

But testing VoLTE on iPhone is not straightforward because it needs Entitlement Service. I will go to the details of the entitlement service in another post but in simple definition, an entitlement server is a set of specifications to allow mobile operators to enable and disable services and features on end-user devices and iPhone queries this service to know that VoLTE is enabled in the network or not and then attach to IMS APN.

So, we started implementing entitlement service as well, and a few weeks ago we could start testing iPhones. Fortunately, iPhone doesn’t do any weird behavior and everything looks normal and standard. It can be registered in our IMS and make voice calls and SMS.

The only point that I noticed is that iPhone sends SMS over IPSec/UDP, while all voice call SIP messages are over TCP.

Also in SIP headers, iPhone sends Session-ID that might be useful in B2BUA cases. I should investigate more about how we can use it! but you can check this RFC 7329.

If I find anything new or interesting about iPhone VoLTE, will keep you posted.

Take care :)

updatedupdated2023-06-042023-06-04