Thank you for your previous response to my question which directed me to the Extra-ordinary Networking documentation. We have thoroughly reviewed this documentation and related articles, but have yet to find a direct solution to the specific problem we are facing.
Our VoIP application is currently being operated in a customer environment utilizing an sXGP-SIM (local LTE-SIM). A specific requirement from our customer is to "always use the data communication network, rather than the voice call-specific VoLTE network, for establishing SIP and RTP traffic."
What we know from our investigations so far:
In the customer's sXGP environment, we have confirmed that the VoIP application (client) can successfully connect to the SIP server (server) and conduct VoIP calls (RTP), regardless of whether the connection routes through what might be conceived as a VoLTE network or a general data communication network.
Following general best practices, we considered an approach where we do not explicitly call bind() when creating sockets, but instead rely on the OS for route selection (i.e., using connect() and then getsockname() to retrieve the local IP address).
However, with this method, we believe it is not possible to control whether the OS-selected route becomes a VoLTE network or a data communication network, nor is it possible for the application to programmatically identify the type of network used. Given that both presumed network paths are viable for reaching the target server in the customer's environment, we cannot rule out the possibility of the OS selecting a VoLTE network path.
We are seeking clarification on the following two points:
1. Identification of VoLTE vs. Data Communication Network
Is there an existing iOS API (including Network Extension Framework, Network.framework, or other lower-level APIs) that allows an application to programmatically determine whether the current network path is a logical path assigned for VoLTE, or a logical path assigned for general data communication?
2. Forcing Traffic Routing to a Specific Network Path
Similarly, is there an API or mechanism that allows a VoIP application to explicitly force its SIP and RTP traffic to route through a path identified as a "data communication network" and not a VoLTE network?
Our team understands that implementing these features via public iOS APIs might be challenging. However, to provide a definitive answer to our customer, an official statement from Apple, especially confirming if "it's currently not feasible with iOS APIs," would be highly valuable as evidence for guiding our future development and customer communication.
If such APIs or recommended design patterns do not exist, a clear confirmation of this would be greatly appreciated. Conversely, if it is indeed possible, could you please provide hints on the specific APIs or approaches?
Thank you for your time and consideration.
Topic:
App & System Services
SubTopic:
General
Tags: