2018-05-17 13:16:51 +00:00
# Calls
2021-04-27 12:43:05 +00:00
[![Code coverage ](https://source.puri.sm/Librem5/calls/badges/master/coverage.svg )](https://source.puri.sm/Librem5/calls/commits/master)
2018-05-17 13:16:51 +00:00
A phone dialer and call handler.
## License
Calls is licensed under the GPLv3+.
## Dependencies
2019-09-02 10:00:41 +00:00
To build Calls you need to first install the build-deps defined by [the debian/control file ](https://source.puri.sm/Librem5/calls/blob/master/debian/control#L6 )
2018-05-17 13:16:51 +00:00
2019-09-02 10:00:41 +00:00
If you are running a Debian based distribution, you can easily install all those the dependencies making use of the following command
sudo apt-get build-dep .
2018-05-17 13:16:51 +00:00
## Building
We use the meson and thereby Ninja. The quickest way to get going is
to do the following:
2021-06-03 11:09:42 +00:00
meson . _build
ninja -C _build
ninja -C _build install
2018-05-17 13:16:51 +00:00
2021-06-03 11:09:42 +00:00
If you don't want to pollute your filesystem please be aware, that you can also
use `--prefix=~/install` .
### Build the documentation
If you want to build the documentation you have to configure the meson project
with `-Ggtk_doc=true`
meson . _build -Dgtk_doc=true
ninja -C _build
ninja -C _build calls-doc
2018-05-17 13:16:51 +00:00
## Running
2018-12-04 10:43:03 +00:00
Calls has a variety of backends. The default backend is "mm", which
utilises ModemManager. To choose a different backend, use the -p
command-line option. For example, to run with the dummy backend and
some useful debugging output:
export G_MESSAGES_DEBUG=all
2021-06-04 13:21:14 +00:00
/usr/local/bin/gnome-calls -p dummy
2018-12-04 10:43:03 +00:00
If using ModemManager, Calls will wait for ModemManager to appear on
D-Bus and then wait for usable modems to appear. The UI will be
inactive and display a status message until a usable modem appears.
2021-06-03 11:09:42 +00:00
### Running from the build directory
You can run calls without having to install it by executing the run script in
2021-06-04 13:21:14 +00:00
the build folder, i.e. `_build/run` . This script will setup the needed environment
and start Calls.
2021-06-03 11:09:42 +00:00
2021-06-04 13:21:14 +00:00
### Call provider backends
Call provider backends are compiled as plugins and can be loaded and unloaded at runtime
using the `-p` command line flag, followed by the plugin name.
Setting the `CALLS_PLUGIN_DIR` environment variable will include the specified
directory in the plugin search path. F.e.
2021-06-03 11:09:42 +00:00
export CALLS_PLUGIN_DIR=_build/plugins/
2021-06-04 13:21:14 +00:00
/usr/local/bin/gnome-calls -p dummy
2021-04-01 12:02:14 +00:00
2018-12-04 10:43:03 +00:00
### oFono
There is also an oFono backend, "ofono". This was the first backend
developed but has been superceded by the ModemManager backend so it
may suffer from a lack of attention.
The ofono backend depends on oFono Modem objects being present on
D-Bus. To run oFono with useful output:
2018-05-17 13:16:51 +00:00
sudo OFONO_AT_DEBUG=1 ofonod -n -d
2018-05-31 13:53:11 +00:00
The test programs within the [oFono source
tree](https://git.kernel.org/pub/scm/network/ofono/ofono.git) are
2018-05-17 13:16:51 +00:00
useful to bring up a modem to a suitable state. For example:
cd $OFONO_SOURCE/test
./list-modems
./enable-modem /sim7100
./online-modem /sim7100
2018-07-26 14:03:47 +00:00
Then run Calls:
2021-06-03 11:09:42 +00:00
/usr/bin/gnome-calls -p ofono
2018-07-26 14:03:47 +00:00
2018-05-17 13:16:51 +00:00
2018-12-04 10:43:03 +00:00
#### Phonesim
One can also make use of the oFono modem simulator, phonesim (in the
2018-05-17 13:16:51 +00:00
ofono-phonesim package in Debian):
ofono-phonesim -p 12345 -gui /usr/local/share/phonesim/default.xml
then, ensuring /etc/ofono/phonesim.conf has appropriate contents like:
[phonesim]
Address=127.0.0.1
Port=12345
run oFono as above, then:
cd $OFONO_SOURCE/test
./enable-modem /phonesim
./online-modem /phonesim
And again run Calls.