2026-07-22 22:53:28 +02:00
|
|
|
# SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
|
# SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
|
|
|
|
# Maintainer: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
|
|
|
|
|
pkgname=imsd
|
Emergency calling, stage 1: urn:service:sos with a digits fallback
Classify 112/911 (plus EMERGENCY_NUMBERS) at Dial. A classified call
INVITEs urn:service:sos over the existing registration and, on any
non-2xx final not caused by the user hanging up (including the
setup-timeout CANCEL paths), retries once as a plain INVITE of the
dialled digits — the pre-0.3.0 behavior, so classification can never
place a call worse than the status quo. The reverse edge: a 380
Alternative Service whose body carries the emergency indication
upgrades an unclassified call to the sos URN; a bare 380 stays an
error, since promoting an arbitrary redirect would put a
non-emergency call through to a PSAP. An emergency dial preempts an
in-progress call, and an answer racing a deadline-initiated CANCEL is
taken instead of BYE'd (user-initiated CANCEL races still BYE).
No emergency registration, no emergency PDN, no CS fallback, no
SIM-less calling, no AML — and no carrier has confirmed the sos path
end-to-end. The README warning states exactly that.
Assisted-by: Claude:claude-fable-5
2026-08-01 22:29:12 +02:00
|
|
|
pkgver=0.3.0
|
2026-07-22 22:53:28 +02:00
|
|
|
pkgrel=0
|
|
|
|
|
pkgdesc="Userspace IMS/VoLTE daemon for mainline Linux phones"
|
|
|
|
|
url="https://forgejo.catcrafts.net/Catcrafts/imsd"
|
|
|
|
|
arch="aarch64 x86_64"
|
|
|
|
|
license="GPL-3.0-only"
|
|
|
|
|
# the media leg dlopen's the AMR-WB codecs; pw-record/pw-play drive PipeWire —
|
|
|
|
|
# none of which abuild's .so auto-scan can see
|
|
|
|
|
depends="modemmanager opencore-amr vo-amrwbenc pipewire-tools"
|
2026-08-07 21:05:33 +02:00
|
|
|
# clang/libc++ C++26 modules build (see Makefile); llvm-runtimes ships the
|
|
|
|
|
# libc++ std module sources (/usr/share/libc++/v1/std.cppm) it precompiles
|
|
|
|
|
makedepends="clang lld libc++-dev llvm-libunwind-dev llvm-runtimes glib-dev pkgconf"
|
|
|
|
|
# the versioned provides both satisfies soc-qcom-modem's 81voltd dependency
|
|
|
|
|
# and excludes the real package: 81voltd serves the modem's own ims-PDN
|
|
|
|
|
# requests, which races imsd for the PDN and flaps it with a new prefix every
|
|
|
|
|
# ~2.5 min — the two IMS stacks cannot share one PDN
|
2026-07-22 22:53:28 +02:00
|
|
|
provides="81voltd=$pkgver-r$pkgrel"
|
2026-08-07 21:05:33 +02:00
|
|
|
source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
|
|
|
|
|
builddir="$srcdir/$pkgname"
|
2026-07-22 22:53:28 +02:00
|
|
|
|
|
|
|
|
build() {
|
2026-08-07 21:05:33 +02:00
|
|
|
make
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
check() {
|
|
|
|
|
make check
|
2026-07-22 22:53:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
package() {
|
2026-08-07 21:05:33 +02:00
|
|
|
make install DESTDIR="$pkgdir"
|
2026-07-22 22:53:28 +02:00
|
|
|
}
|