From f11b9db0b5f150d73e10a0c25989e2ec6300588e Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 3 Apr 2025 05:37:50 +0200 Subject: [PATCH] package/asterisk: bump to 22.3.0 For a changelog see here: https://downloads.asterisk.org/pub/telephony/asterisk/ChangeLog-22.3.0.md Changes made by the package maintainer: - add systemd service file - run asterisk as non-root user asterisk - build pjsip as bundled source code, but download it like sound files - remove unused configure options - chan_alsa was removed upstream in commit de3ce178ab0282445cf25161b49f3737ac2d20ff See here for the reason behind using the bundled pjsip: https://github.com/asterisk/asterisk/issues/671 Signed-off-by: Waldemar Brodkorb Signed-off-by: Thomas Petazzoni --- package/asterisk/asterisk.hash | 4 +++- package/asterisk/asterisk.mk | 31 ++++++++++++++++++------------- package/asterisk/asterisk.service | 23 +++++++++++++++++++++++ 3 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 package/asterisk/asterisk.service diff --git a/package/asterisk/asterisk.hash b/package/asterisk/asterisk.hash index 8c8ebddc47..7b28624921 100644 --- a/package/asterisk/asterisk.hash +++ b/package/asterisk/asterisk.hash @@ -1,6 +1,8 @@ # Locally computed -sha256 94647b3f887f7dc91df51a4f88dfc3a07cc279bef86b8d05aa72f0c49d187571 asterisk-20.11.1.tar.gz +sha256 4cc403c8885d4aed3956dfb75d315d3e5bcc129eb9cd47c156d3b12ecceed1ba asterisk-22.3.0.tar.gz +# Locally computed +sha256 58bb83cec4d431f48d006e455d821668450f8cf6b6c95f090def47062fa3a60c pjproject-2.15.1.tar.bz2 # sha1 from: http://downloads.asterisk.org/pub/telephony/sounds/releases # sha256 locally computed sha1 721c512feaea102700d5bdce952fdc0bb29dc640 asterisk-core-sounds-en-gsm-1.6.1.tar.gz diff --git a/package/asterisk/asterisk.mk b/package/asterisk/asterisk.mk index ec67632ef4..6d682f161d 100644 --- a/package/asterisk/asterisk.mk +++ b/package/asterisk/asterisk.mk @@ -4,15 +4,20 @@ # ################################################################################ -ASTERISK_VERSION = 20.11.1 +ASTERISK_VERSION = 22.3.0 # Use the github mirror: it's an official mirror maintained by Digium, and # provides tarballs, which the main Asterisk git tree (behind Gerrit) does not. ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION)) +# compilation with the external pjsip produces a non-working asterisk, which +# segfaults. The reason behind this is unclear. +# https://github.com/asterisk/asterisk/issues/671 +ASTERISK_PJSIP_URL = https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.15.1/ ASTERISK_SOUNDS_BASE_URL = http://downloads.asterisk.org/pub/telephony/sounds/releases ASTERISK_EXTRA_DOWNLOADS = \ $(ASTERISK_SOUNDS_BASE_URL)/asterisk-core-sounds-en-gsm-1.6.1.tar.gz \ - $(ASTERISK_SOUNDS_BASE_URL)/asterisk-moh-opsound-wav-2.03.tar.gz + $(ASTERISK_SOUNDS_BASE_URL)/asterisk-moh-opsound-wav-2.03.tar.gz \ + $(ASTERISK_PJSIP_URL)/pjproject-2.15.1.tar.bz2 ASTERISK_LICENSE = GPL-2.0, BSD-3-Clause (SHA1, resample), BSD-4-Clause (db1-ast) ASTERISK_LICENSE_FILES = \ @@ -76,7 +81,6 @@ ASTERISK_CONF_OPTS = \ --without-neon29 \ --without-newt \ --without-openr2 \ - --without-osptk \ --without-postgres \ --without-popt \ --without-resample \ @@ -94,10 +98,9 @@ ASTERISK_CONF_OPTS = \ --with-libjwt="$(STAGING_DIR)/usr" \ --with-libxml2 \ --with-libedit="$(STAGING_DIR)/usr" \ - --without-pjproject-bundled \ - --with-pjproject="$(STAGING_DIR)/usr" \ + --with-pjproject-bundled \ --with-sqlite3="$(STAGING_DIR)/usr" \ - --with-sounds-cache=$(ASTERISK_DL_DIR) + --with-download-cache=$(ASTERISK_DL_DIR) # avcodec are from ffmpeg. There is virtually zero chance this could # even work; asterisk is looking for ffmpeg/avcodec.h which has not @@ -135,13 +138,6 @@ else ASTERISK_CONF_OPTS += --without-gsm endif -ifeq ($(BR2_PACKAGE_ALSA_LIB),y) -ASTERISK_DEPENDENCIES += alsa-lib -ASTERISK_CONF_OPTS += --with-asound -else -ASTERISK_CONF_OPTS += --without-asound -endif - ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS),y) ASTERISK_DEPENDENCIES += bluez5_utils ASTERISK_CONF_OPTS += --with-bluetooth @@ -299,6 +295,15 @@ ASTERISK_INSTALL_TARGET_OPTS = \ LDCONFIG=true \ install samples +define ASTERISK_USERS + asterisk -1 asterisk -1 * /usr/lib/asterisk - - asterisk user +endef + +define ASTERISK_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/asterisk/asterisk.service \ + $(TARGET_DIR)/usr/lib/systemd/system/asterisk.service +endef + $(eval $(autotools-package)) #------------------------------------------------------------------------------- diff --git a/package/asterisk/asterisk.service b/package/asterisk/asterisk.service new file mode 100644 index 0000000000..802789defb --- /dev/null +++ b/package/asterisk/asterisk.service @@ -0,0 +1,23 @@ +# based on included asterisk.service, but changed +# Type to simple, comments removed +[Unit] +Description=Asterisk PBX and telephony daemon. +After=network.target + +[Service] +Type=simple +Environment=HOME=/usr/lib/asterisk +WorkingDirectory=/usr/lib/asterisk +User=asterisk +Group=asterisk +ExecStart=/usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf +ExecReload=/usr/sbin/asterisk -rx 'core reload' +RuntimeDirectory=asterisk +LimitCORE=infinity +Restart=always +RestartSec=4 +StandardOutput=null +PrivateTmp=true + +[Install] +WantedBy=multi-user.target