
Ofoono Mobile Network Management is a system that allows users to manage their mobile network settings. It provides a simple and intuitive way to configure and troubleshoot network connections.
With Ofoono, users can enable or disable mobile data, configure network protocols, and even set up mobile hotspots. This level of control is especially useful for power users and developers who need fine-grained control over their network settings.
Ofoono also supports multiple network modes, including 2G, 3G, and 4G. This allows users to switch between different network modes depending on their needs and location.
Readers also liked: Mobile Web Server
MMS and SMS
MMS and SMS are two types of messaging services that OFono supports. OFono's architecture allows for the use of MMS and SMS protocols to send and receive multimedia messages and text messages.
MMS stands for Multimedia Messaging Service, which enables users to send multimedia messages that can include images, videos, and audio files. MMS messages can also include text and can be used to send and receive files.
OFono's MMS implementation supports the sending and receiving of MMS messages, including the transmission of multimedia content. This allows users to send multimedia messages to other mobile devices that support MMS.
Incoming MMS
An MMS WAP push notification is received by ofono and propagated to nuntium.
This notification is the first step in the process of receiving an incoming MMS. The notification is received by ofono, which then sends it to nuntium.
nuntium enables the MMS context in ofono, retrieves the content from MMSC, and propagates the new MMS to upper layers.
This process involves several steps, including enabling the MMS context and retrieving the content from the MMSC. The MMSC is a server that handles MMS messages.
A new MMS arrives at telepathy-ofono.
This is the point at which the MMS message is received by the telepathy-ofono service. This service is responsible for handling MMS messages and delivering them to the user's device.
If automatic retrieval is not enabled or not available at the moment, a control message is sent to the app.
In this case, the app needs to request the retrieval of the message from telepathy-ofono. This ensures that the user can still receive the MMS message, even if automatic retrieval is not enabled.
Here's a step-by-step overview of the process:
- An MMS WAP push notification is received by ofono and propagated to nuntium.
- nuntium enables the MMS context in ofono, retrieves the content from MMSC and propagates the new MMS to upper layers.
- A new MMS arrives at telepathy-ofono.
- If automatic retrieval is not enabled or not available at the moment, a control message is sent to the app.
- messaging-app request the retrieval of the message to telepathy-ofono.
- After the message is retrieved from MMSC, it is delivered to the apps via normal text channel in a multi-part message.
Receive Sms
Receiving SMS is a straightforward process that relies on the cellular network infrastructure.
The SMS message is sent from the sender's phone to the nearest cell tower, which then forwards it to the recipient's cell tower.
This process happens in a matter of seconds, making SMS a quick way to send messages.
The recipient's phone receives the SMS message, which is then stored in the phone's memory until it's retrieved by the user.
SMS messages are typically 160 characters or less, but some phones can send longer messages by breaking them up into multiple parts.
Receiving SMS is a key part of the SMS service, allowing users to stay connected with others through short messages.
Broaden your view: Linux Phone Standards Forum
Development and Build
The development of Ofono is an ongoing process, with the main Git repository being regularly updated by developers improving support for modem drivers.
Currently, the primary focus is on implementing DBus command support for various modems in the Ofono language.
This effort is crucial for improving compatibility with Android, as Ofono can manage hardware based on the RIL (Radio Interface Layer) technology used by Android.
To contribute to the development, you can start by cloning the Ofono repository.
The development process involves improving the support for RIL modems, which is essential for achieving better compatibility with Android.
Ofono's architecture is designed to work with RIL-based hardware, making it a great tool for developers working on Android-related projects.
To build Ofono, you'll need to use Buildroot, which is a tool for creating custom Linux distributions.
Worth a look: Android (operating System)
Ofoono Plugin for Connman
The Ofoono Plugin for Connman is a crucial component in our development process. It allows us to manage network connections with ease.
This plugin is built on top of the Connman service, which is responsible for managing network connections on our device. Connman is a system service that provides a centralized interface for managing network connections.
The Ofoono Plugin for Connman is designed to work seamlessly with the Connman service, providing a robust and efficient way to manage network connections.
A unique perspective: Scalable Network Application Package
État du Développement Actuel

The current state of Ofono's development is quite steady, with regular updates to its Git repository. The main Ofono repository is being actively improved by developers who are focusing on enhancing support for drivers.
These improvements involve implementing DBus command support for different modems in the Ofono language. This is an important aspect of Ofono's development.
A specific emphasis is being placed on the RIL modem, which stands for Radio Interface Layer, a generalized material-software interface used by Android. This focus on RIL modem support will improve compatibility with Android for an OS that uses Ofono.
To contribute to Ofono's development, you'll first need to clone its repository.
Yocto
Yocto is a great platform for development and build, and it's actually quite simple to get started with. Ofono is already embedded in the Poky distribution, so you can just create the core-image-base image to get started.
To update the recipe, you'll need to edit the ofono_git.bb file to retrieve and compile the latest version of Ofono.
Here are the steps to follow:
- Compile the core-image-base image using bitbake
- Run the qemu x86 emulator to test the image
It's worth noting that Ofono is not embedded in the core-image-base image by default, so you'll need to add it manually.
Buildroot
Buildroot is a great tool for compiling custom Linux images. To get started, you need to download or clone the latest version of Buildroot.
You can configure the target via menuconfig, and Ofono is already integrated into Buildroot, so you just need to activate it.
Buildroot requires satisfying certain dependencies for Ofono to compile. The toolchain is one of them.
Compiling the image with Buildroot takes some time, but you can grab a cup of coffee while waiting. Once the compilation is done, you can launch the generated image with qemu.
Cross Compilation and Configuration
Cross compilation is a manual process, where you configure and compile Ofono sources for a specific target. You can do this with a cross-compiler, but we won't cover that here.
To compile Ofono for a target like the Raspberry Pi, you need to run the autotools script to create the "configure" script. Ofono provides a script called "bootstrap" to help with this. You'll need to add the cross-compiler path to your system's PATH variable to ensure Ofono is compiled for the correct architecture.
Running the "configure" script with the target specified is the next step. Be prepared to troubleshoot any errors that may occur due to missing libraries. You can find these libraries in the sysroot of the cross-compiler and add their paths to the PKG_CONFIG_PATH variable. Once compiled, transfer the executable to the target device, ideally installing it in the /usr/sbin directory.
Compilation Croisée
Cross compilation is a process that allows you to compile software for a specific target, without actually running it on that target. This is useful when you need to compile software for a system that you don't have access to.
To configure and compile Ofono for a particular target, you'll need to manually do what Buildroot and Yocto scripts do automatically. We won't go into the details of installing a cross-compiler here.
First, you'll need to run the "bootstrap" script provided by Ofono, which will create a "configure" script for you. To ensure Ofono is compiled for ARM, you'll need to add the path to your cross-compiler to your system's PATH variable.
For another approach, see: Website to Download Programs for Free
You'll then need to execute the "configure" script, specifying the target system. Be prepared for the script to potentially fail due to missing libraries required by Ofono. If this happens, you'll need to find these libraries in the sysroot of your cross-compiler and add their paths to the PKG_CONFIG_PATH environment variable.
Once your executable is generated, you'll need to transfer it to your target system. Each developer has their preferred method, but common choices include scp and tftp. Remember to install Ofono in the /usr/sbin directory on your target system.
Configuration
Ofono doesn't require much configuration, as modem detection is automatic.
The one configuration need is for systemd, which allows you to launch Ofono automatically and specify dependencies that need to be running for it to work properly.
You can specify these dependencies with a file like ofono.service, which is used to launch Ofono and its dependencies.
To see all interfaces for a modem, you can use the following method.
Receiving an SMS involves spying on the system bus of Dbus to retrieve the 'incoming message' message from the MessageManager interface.
User Usage
OFono's user usage cases are designed to be straightforward and easy to understand. They're based on basic phone functions, which is fitting given that Ofono's interface is standard.
To test these cases, you'll need to ensure your modem is properly set up. Specifically, it should be turned on and connected to a network. This is a crucial step before you can start exploring Ofono's features.
Here are some examples of the interfaces that make up Ofono's user usage cases:
- sms.txt: for sending and receiving SMS messages
- voicecall.txt: for making and receiving voice calls
- network.txt: for initiating data connections
Linux Phone Battery
Ofono, a Linux phone stack, has a tiny memory footprint, taking up only 1.5Mo for dependencies and 1.7 Mo for the binary ofonod.
This is a testament to its minimalist design, which makes it an ideal choice for embedded systems.
Ofono uses very few external libraries, relying mainly on glib and dbus, which eases integration and reduces the risk of conflicts with other software.
This is especially important for systems where resources are limited, and every byte counts.
User Usage Case
User usage cases are essential to understand how Ofono works. They're essentially a series of commands that trigger specific methods within the interface.
To test these cases, you'll need to ensure your modem is properly set up. This means it should be turned on and connected to a network.
The cases of use are based on basic phone features, such as sending and receiving SMS, making and receiving voice calls, and establishing data connections. These features are implemented through specific interfaces within Ofono.
Here are some examples of Ofono's interfaces:
- sms.txt - for sending and receiving SMS
- voicecall.txt - for making and receiving voice calls
- network.txt - for establishing data connections
These interfaces are documented in separate files, and Ofono comes with 50 different interfaces in total.
Featured Images: pexels.com


