Tips for Developing VoIP on Mobile Devices (Android,iOS,…)
- On August 1, 2011
One of the main problems in mobile devices is their limited CPU Power. As a result the delay in the audio signal is increased and from time to time portions of the audio signal might get lost. In order to resolve these problems, you need to verify that your VoIP application is optimized to your low-end CPU. For example, it should use fixed-point arithmetic instead of floating-point one, it should minimize the usage of dynamic memory allocations and completely avoid it after the initialization phase, for critical sections it should use native programming language like C/C++. In addition, your VoIP application should have enough flexibility to dynamically change its CPU consumption based on the overall load on the device. This flexibility could be achieved by changing bandwidth, CODEC, audio filtering settings, etc.
This is one of the biggest audio quality issues that was actually “invented” by mobile devices. In most cases you cannot release for production a VoIP application for mobile device without making sure the audio is filtered by a decent noise reduction algorithm.
This feature is mandatory when you want to allow your users the freedom of using a speakerphone. What you should be looking for is an optimized AEC algorithm for mobile devices. Since the delay might increase due to CPU consumption, you need to make sure that your AEC algorithm can optimally handle long delays.
It is important to use a standard signaling protocol (usually SIP), to preserve the option of activating, in the network, today or in the future, plug-and-play third party components to resolve quality issues that could not be resolved on the client side. For example:
- Clients with very limited CPU or very loaded that cannot run the local echo cancellation or noise reduction, should get “help” by audio filtering in the network.
- Improving the audio that is being heard by your customers – the mobile device owners – by reducing far-end noise & far-end echo. Your customers deserve to hear crystal clear in addition to being heard crystal clear.
- Centralized monitoring and alerting on quality problems.