Userspace VoLTE/IMS daemon for mainline Linux phones (developed on the Fairphone 6): a GLib-free core (SIP, SDP, USIM AKA, IPsec SA setup, RTP media, call engine) behind a GDBus control daemon, a standalone AMR-WB media leg, and a Plasma Dialer backend. C++26 modules built with Crafter Build; the tree is clean under the project's house-style linter (crafter-build lint) across all three build products. Assisted-by: Claude:claude-fable-5 Signed-off-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
34 lines
1.3 KiB
Desktop File
34 lines
1.3 KiB
Desktop File
# SPDX-License-Identifier: GPL-3.0-only
|
|
# SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
|
[Unit]
|
|
Description=Userspace IMS/VoLTE daemon (SIP register + calls over the ims PDN)
|
|
# needs the ims PDN (multiplexed netdev + global v6) — ims-pdn-up.sh
|
|
# creates/connects the bearer through ModemManager and configures the netdev
|
|
After=ModemManager.service network.target
|
|
Wants=ModemManager.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
# bring up the ims PDN first; waits for modem + LTE attach, idempotent.
|
|
# worst case ~4 min (modem wait + connect retries), hence TimeoutStartSec
|
|
ExecStartPre=/usr/libexec/ims-pdn-up.sh
|
|
TimeoutStartSec=600
|
|
# /run/imsd.env: written by ims-pdn-up.sh (DEV= the connected ims netdev).
|
|
# /etc/imsd.env: admin configuration — PCSCF= is REQUIRED (the carrier's
|
|
# P-CSCF address; see the README's Configuration section) and wins over the
|
|
# runtime-derived values.
|
|
EnvironmentFile=-/run/imsd.env
|
|
EnvironmentFile=-/etc/imsd.env
|
|
# registration state (imsreg.state) + media stats live here
|
|
StateDirectory=imsd
|
|
ExecStart=/usr/bin/imsd
|
|
# registration: resume an existing SA when possible (avoids fresh-SA
|
|
# throttles); a failed bring-up exits nonzero and systemd retries
|
|
Restart=on-failure
|
|
RestartSec=120
|
|
# SIGTERM: engine keeps the SA + registration state for the next resume
|
|
KillMode=mixed
|
|
TimeoutStopSec=10
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|