[Buildroot] [PATCH v2] package/asterisk: update to 22.3.0
Waldemar Brodkorb
wbx at openadk.org
Thu Apr 3 03:37:50 UTC 2025
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 <wbx at openadk.org>
---
- v1 -> v2:
- add a comment about the pjsip issue to the Makefile (Arnout)
- update commit log to include link to chan_alsa removal (Arnout)
- update systemd file with a comment where it come from and
what changed to the orginal file (Arnout)
---
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
--
2.39.5
More information about the buildroot
mailing list