The Fuchsia Telephony stack currently aims to provide a fast, robust, and reliable data connection over modern cellular protocols.
Source code:
Supported Hardware:
Acronyms:
TODO(bwb): write an example app
See the telephony/tools directory for the source code.
The ril-ctl
package is used for interacting with devices that expose the FRIL interface. The interactive CLI is currently incompatible with the standard run
command, so you need to call the binary from pkgfs
directly.
$ /pkgfs/packages/ril-ctl/0/bin/app -d /dev/class/qmi-transport/000
A large chunk of the logic of interacting with QMI based modems is generated at compile time. Tests for this live in qmi_host_tests
. You can run them on your host system with:
$ fx run-host-tests qmi_host_tests
TODO(bwb): Add name of tests when they land
Modem Manager watches the VFS for the qmi-usb-transport device to bind against any of the usb devices it supports. Modem manager uses an IOCTL call (TODO: transition to FIDL) to acquire a transport channel to the driver. It then starts a service that provides the FRIL, ril-qmi
. ril-qmi
proxies/translates the FIDL messages spoken to the RadioInterfaceLayer interface to vendor specific calls.
ril-ctl
tool is also able to initialize and connect ril-qmi
to a specified device. It will also eventually have the ability to interact with an existing ril-qmi
through a management interface on the Modem Manager.
+----------------------+ | | | Modem Manager +-+---+ | | | | vfs-watcher +-----------------+ +----------+-----------+ | | | | | | | | ril-ctl | | | | | | | | | +--------+--------+ +----------+-----------+ | | | | | | | +-----------------| ril-qmi +-+ | | | | +----------+-----------+ | | | +------------------------------------------+-----------------+--------------------+ Device Manager | | | | +-----------+-----------+ | | | | | qmi-usb-transport +-----+ | | +-----------------------+