• v0.3.10 7583ee3606

    imsd 0.3.10
    All checks were successful
    package / package (push) Successful in 1m57s
    Stable

    jorijnvdgraaf released this 2026-10-06 16:04:31 +00:00 | 23 commits to main since this release

    Signed by jorijnvdgraaf
    GPG key ID: 2937E59CDCC1BCFB

    New

    • Call control is behind polkit (net.catcrafts.IMS1.Voice): the active local session and root may place, answer and end calls; an ssh login or a background service may not. Scripts that dial over ssh need sudo or a polkit rule. polkit is now a runtime dependency: without a running polkitd every call request is refused, emergency calls included.
    • apk upgrade restarts imsd and imsd-ofonod. A call in progress ends, an emergency call included; the registration is back within about a minute.
    • Call audio goes to the session logged in at the seat, whatever the account is called. On a UI that logind does not report as the seat's user session there is no call audio: set AUDIO_USER=<account> in /etc/imsd.env.
    • A refused REGISTER or SUBSCRIBE is logged with its status line and reason headers (Retry-After, Warning, Reason, Server).
    • The README is the user documentation again, configuration variables included; building, internals and packaging are in AGENTS.md.
    • imsd builds with crafter-build only: the Makefile and the from-source APKBUILD are gone.

    Fixes

    • Registration recovers by itself. When the network refuses a refresh or the P-CSCF stops answering, imsd registers fresh in place; it used to retry the old registration until someone restarted the service (O2 UK: 70 minutes of refusals, then hours of silence). A refused fresh registration waits 21 minutes, growing to an hour, or as long as the network's Retry-After says, and a restart no longer cuts that wait short.
    • The registration no longer dies after about two days. imsd registered on the kernel's temporary IPv6 address, which the kernel retires; it now uses the address ModemManager assigned to the ims PDN. An upgraded phone moves at its next fresh registration.
    • The dialer works whatever the account is called. The bus policy admitted only user and root, so under any other account name every call was refused without a word.
    • GNOME Calls dials again after imsd-ofonod restarts. Calls 50.0 dials nothing once its oFono origin has gone away and come back, so its daemon is restarted along with imsd-ofonod.
    • A registration the network terminates is replaced by a fresh one, and the reg-event subscription that reports it is kept alive.
    • At boot, an ims profile list without the ims APN is no longer taken as final before the modem is registered.
    • imsd no longer tries to bring the ims bearer up while the modem's radio is off (airplane mode). Such an attempt left the modem in low power when the radio was switched on again: no mobile service until the modem was disabled and enabled again. In 0.3.9 this needed a boot or a restart of imsd in airplane mode.

    Known issue

    • New in 0.3.10: when a start of imsd fails during a network outage, the next start registers fresh instead of resuming. KPN refuses that while the old registration is still alive: 21 minutes without VoLTE, where 0.3.9 resumed.