aboutsummaryrefslogtreecommitdiffstats
path: root/main/asterisk
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2016-10-04 15:10:22 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2016-10-10 12:04:04 +0000
commite1c1f94f5d5e017ee7a4d246a5da54194ae42d68 (patch)
tree32a5d49401a2ecc7d4dea0efdbbcfb174bcc95e4 /main/asterisk
parent6c73adbe1eadb7caf44971bb4b12ec0e61e596f7 (diff)
downloadaports-e1c1f94f5d5e017ee7a4d246a5da54194ae42d68.tar.bz2
aports-e1c1f94f5d5e017ee7a4d246a5da54194ae42d68.tar.xz
main/asterisk: upgrade to 14.0.2
Diffstat (limited to 'main/asterisk')
-rw-r--r--main/asterisk/APKBUILD31
-rw-r--r--main/asterisk/ASTERISK-18995.patch386
-rw-r--r--main/asterisk/ASTERISK-20527.patch43
-rw-r--r--main/asterisk/musl-glob-compat.patch31
-rw-r--r--main/asterisk/musl-libcap.patch37
5 files changed, 6 insertions, 522 deletions
diff --git a/main/asterisk/APKBUILD b/main/asterisk/APKBUILD
index 836d368935..1c58eb9fda 100644
--- a/main/asterisk/APKBUILD
+++ b/main/asterisk/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=asterisk
-pkgver=13.11.1
+pkgver=14.0.2
pkgrel=0
pkgdesc="Asterisk: A Module Open Source PBX System"
pkgusers="asterisk"
@@ -13,7 +13,7 @@ license="GPL2"
depends=
makedepends="autoconf automake libtool findutils tar wget bsd-compat-headers
ncurses-dev popt-dev newt-dev zlib-dev libedit-dev tiff-dev curl-dev
- openssl-dev lua-dev libcap-dev jansson-dev util-linux-dev
+ libressl-dev lua-dev libcap-dev jansson-dev util-linux-dev
sqlite-dev postgresql-dev unixodbc-dev freetds-dev mariadb-dev
alsa-lib-dev pjproject-dev dahdi-tools-dev libpri-dev libsrtp-dev
spandsp-dev libresample speex-dev speexdsp-dev libogg-dev
@@ -29,11 +29,7 @@ _download="http://downloads.asterisk.org/pub/telephony/asterisk/releases"
source="$_download/asterisk-$pkgver.tar.gz
http://dev.alpinelinux.org/~tteras/asterisk-addon-mp3-r201.patch.gz
- musl-libcap.patch
- musl-glob-compat.patch
musl-mutex-init.patch
- ASTERISK-18995.patch
- ASTERISK-20527.patch
asterisk.initd
asterisk.confd
asterisk.logrotate"
@@ -60,15 +56,12 @@ prepare() {
sed -i -e 's:lua5.1/::' pbx/pbx_lua.c
sed -i -e 's/int foo = res_ninit(NULL);/res_ninit_is_not_really_here();/g' configure.ac
- update_config_sub || return 1
./bootstrap.sh
}
build() {
cd "$_builddir"
- # cannot build with imap on aarch64
- [ "$CARCH" = "aarch64" ] || _imap="--with-imap"
SHA1SUM="$PWD"/build_tools/sha1sum-sh ./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -99,7 +92,7 @@ build() {
--with-libcurl \
--with-libedit \
--with-srtp \
- $_imap \
+ --with-imap=system \
|| return 1
# get default modules to build
@@ -240,33 +233,21 @@ sound_en() {
chown -R asterisk:asterisk "$subpkgdir"/var/*/asterisk
}
-md5sums="7c27d278533c5936348a412e9df5982d asterisk-13.11.1.tar.gz
+md5sums="51eae0af8eea2ee42f48e0132cac617f asterisk-14.0.2.tar.gz
126dd4fba66f4cf9aa94dfd7034e0ec4 asterisk-addon-mp3-r201.patch.gz
-7b699961171a93d7788420f518c5931e musl-libcap.patch
-9b3e6cb75464a6ef4c40d191bdfdf7ea musl-glob-compat.patch
1ca5e8326dc03c963a7ce5455d0f21ba musl-mutex-init.patch
-120deda3ccd21c905ac51fda1f696931 ASTERISK-18995.patch
-a91bf5c4fea24b3e04f02e41751aaa88 ASTERISK-20527.patch
4bdc82ba3d6bdfdedc71e5da2fde5ec2 asterisk.initd
ed31d7ba37bcf8b0346dcf8593c395f0 asterisk.confd
3e65172275684373e1a25c8a11224411 asterisk.logrotate"
-sha256sums="d1dc61b78b5e2c51a3c7b65300f2cb29470c88552fc6c30aa9ea426fef385748 asterisk-13.11.1.tar.gz
+sha256sums="22482606ed5efed5f67813369e1a304bd2a5ec44e7b08727710a9baaeb8fe7de asterisk-14.0.2.tar.gz
d32a5a695cee1699011d0e9ad02eb43af612def06f92017627194099edf98e3f asterisk-addon-mp3-r201.patch.gz
-f23aa2c03f9be1eb3c4c0ceac79ddcce7381aae46d6e6853ad20b1de5ac125d9 musl-libcap.patch
-c6a5c32646b767f09ebffccc49cac6a4ff9181498499e4453300775e75284b52 musl-glob-compat.patch
a5205ed44b57a72934baf8cde543ddb179f277494181818905110bfdcccfe7d9 musl-mutex-init.patch
-76ba70d0df5f4a788294854cf3a40c3adea711ea70fdb7750ee208afc0b13b12 ASTERISK-18995.patch
-790af610fe147d8add270e7e7e0d998e265ed78374f597844beaedd270d44b07 ASTERISK-20527.patch
10454553733e6cc52c6e9db508768a638655d99c095c5b39fb043858c088f21f asterisk.initd
d221148583b57f9c37d7160f2493f0d204ad11f7abb17e3a3534e108ad5452d7 asterisk.confd
77b253b6db71460acf9a51e87ad4c8582027a46db01a4c50fb048bada58c19d1 asterisk.logrotate"
-sha512sums="23bb5b8997426ae952017bdc6c7630ff1ca4ca401879557f14b26fd5fb83014577b487e2e0a52cc46d15b691c4e5a732aaf7baba47d566bfb676e9c5f7f472c0 asterisk-13.11.1.tar.gz
+sha512sums="aa51d7ddaf4945b67aa28a8456834f33e75e0274310b4237443b576bf40eee15d6a3e4e5baad7f28ae299d34b749554518c1c17e364b90ece9aead732392627f asterisk-14.0.2.tar.gz
aacef3f4796fb1abd33266998b53909cb4b36e7cc5ad2f7bac68bdc43e9a9072d9a4e2e7e681bddfa31f3d04575eb248afe6ea95da780c67e4829c1e22adfe1b asterisk-addon-mp3-r201.patch.gz
-31bdf1323155a9fbedf8c05183167903ff83bef4d408848368d3fab78e6c6265228ceece54375d68df6a99b9c1879431033d0a8cec875244c61ccc1f8e37fc5d musl-libcap.patch
-edf65eba44e8f1f0e78671aba312bcff2090134cf94e89ebb4b6beef7b2d57b24381ae9511cbf9fffe6b555e695a3dbe2cedcd04f1d237df822fa742bd5092ac musl-glob-compat.patch
f72c2e04de80d3ed9ce841308101383a1655e6da7a3c888ad31fffe63d1280993e08aefcf8e638316d439c68b38ee05362c87503fca1f36343976a01af9d6eb1 musl-mutex-init.patch
-e6becba58f73ffeac7831092135e9cfd5ca9029b9471061b6f20d6e98c9c4d4dcaea7d69a53c079fb5baf03963809740e5feaf8b595072229a04912bff9ff41a ASTERISK-18995.patch
-0c9f643b2b5548753bf5228ea17a2a55753ea4fdcd32c3ef105f4f27a762a0f93a4a02ba0b88d969fad8729048d357959d3f7d0fa166c2935170f0753b08d8a4 ASTERISK-20527.patch
cd5bd1c1d7db0a44b14eb10e6d098af0c6474c8fe1a57395090d6795ac00e9243d004b7d24eba2cfd5bd6d6407c271913e794551a8dfcf3cf93e89fc91349e12 asterisk.initd
ab6b6f08ff43268cbb1abb7ed7d678949991ba495682a644bbaeb017d6adbff0a43297905fd73ae8db1786a28d5b5904f1bc253209a0e388c8a27f26c6ce14ed asterisk.confd
7591d2faf539d05d9ee4e431c78a5e20686721fd79221ad94dffeeaff9282220b09cb9aec214bd7a8d12affaec0276c9c91e6e21af8b6712c0a9502b60b02f2b asterisk.logrotate"
diff --git a/main/asterisk/ASTERISK-18995.patch b/main/asterisk/ASTERISK-18995.patch
deleted file mode 100644
index 03f796dd79..0000000000
--- a/main/asterisk/ASTERISK-18995.patch
+++ /dev/null
@@ -1,386 +0,0 @@
-From 56bdf048d2c873d0ddfad3672a07e7a08f0b706e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Fri, 3 Jun 2016 09:20:39 +0300
-Subject: [PATCH] Add support for OGG/Speex file format
-
-ASTERISK-18995 #close
-
-Change-Id: I98518bd28fc8f95668b3fe27d2cab45045ff3f7a
----
- CHANGES | 7 +
- formats/format_ogg_speex.c | 345 +++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 352 insertions(+)
- create mode 100644 formats/format_ogg_speex.c
-
-diff --git a/CHANGES b/CHANGES
-index 43dc18f..175138a 100644
---- a/CHANGES
-+++ b/CHANGES
-@@ -249,6 +249,13 @@ Functions
- * The func_odbc global option "single_db_connection" default value has been
- changed to 'no'.
-
-+
-+Formats
-+------------------
-+ * New module format_ogg_speex added which supports Speex codec inside
-+ Ogg containers (filename extension .spx).
-+
-+
- CHANNEL
- ------------------
- * Added CHANNEL(onhold) item that returns 1 (onhold) and 0 (not-onhold) for
-diff --git a/formats/format_ogg_speex.c b/formats/format_ogg_speex.c
-new file mode 100644
-index 0000000..6152e9c
---- /dev/null
-+++ b/formats/format_ogg_speex.c
-@@ -0,0 +1,345 @@
-+/*
-+ * Asterisk -- An open source telephony toolkit.
-+ *
-+ * Copyright (C) 2011-2016, Timo Teräs
-+ *
-+ * See http://www.asterisk.org for more information about
-+ * the Asterisk project. Please do not directly contact
-+ * any of the maintainers of this project for assistance;
-+ * the project provides a web site, mailing lists and IRC
-+ * channels for your use.
-+ *
-+ * This program is free software, distributed under the terms of
-+ * the GNU General Public License Version 2. See the LICENSE file
-+ * at the top of the source tree.
-+ */
-+
-+/*! \file
-+ *
-+ * \brief OGG/Speex streams.
-+ * \arg File name extension: spx
-+ * \ingroup formats
-+ */
-+
-+/*** MODULEINFO
-+ <depend>speex</depend>
-+ <depend>ogg</depend>
-+ <support_level>extended</support_level>
-+ ***/
-+
-+#include "asterisk.h"
-+
-+ASTERISK_REGISTER_FILE()
-+
-+#include "asterisk/mod_format.h"
-+#include "asterisk/module.h"
-+#include "asterisk/format_cache.h"
-+
-+#include <speex/speex_header.h>
-+#include <ogg/ogg.h>
-+
-+#define BLOCK_SIZE 4096 /* buffer size for feeding OGG routines */
-+#define BUF_SIZE 200
-+
-+struct speex_desc { /* format specific parameters */
-+ /* structures for handling the Ogg container */
-+ ogg_sync_state oy;
-+ ogg_stream_state os;
-+ ogg_page og;
-+ ogg_packet op;
-+
-+ int serialno;
-+
-+ /*! \brief Indicates whether an End of Stream condition has been detected. */
-+ int eos;
-+};
-+
-+static int read_packet(struct ast_filestream *fs)
-+{
-+ struct speex_desc *s = (struct speex_desc *)fs->_private;
-+ char *buffer;
-+ int result;
-+ size_t bytes;
-+
-+ while (1) {
-+ /* Get one packet */
-+ result = ogg_stream_packetout(&s->os, &s->op);
-+ if (result > 0) {
-+ if (s->op.bytes >= 5 && !memcmp(s->op.packet, "Speex", 5)) {
-+ s->serialno = s->os.serialno;
-+ }
-+ if (s->serialno == -1 || s->os.serialno != s->serialno) {
-+ continue;
-+ }
-+ return 0;
-+ }
-+
-+ if (result < 0) {
-+ ast_log(LOG_WARNING,
-+ "Corrupt or missing data at this page position; continuing...\n");
-+ }
-+
-+ /* No more packets left in the current page... */
-+ if (s->eos) {
-+ /* No more pages left in the stream */
-+ return -1;
-+ }
-+
-+ while (!s->eos) {
-+ /* See if OGG has any pages in it's internal buffers */
-+ result = ogg_sync_pageout(&s->oy, &s->og);
-+ if (result > 0) {
-+ /* Read all streams. */
-+ if (ogg_page_serialno(&s->og) != s->os.serialno) {
-+ ogg_stream_reset_serialno(&s->os, ogg_page_serialno(&s->og));
-+ }
-+ /* Yes, OGG has more pages in it's internal buffers,
-+ add the page to the stream state */
-+ result = ogg_stream_pagein(&s->os, &s->og);
-+ if (result == 0) {
-+ /* Yes, got a new, valid page */
-+ if (ogg_page_eos(&s->og) &&
-+ ogg_page_serialno(&s->og) == s->serialno)
-+ s->eos = 1;
-+ break;
-+ }
-+ ast_log(LOG_WARNING,
-+ "Invalid page in the bitstream; continuing...\n");
-+ }
-+
-+ if (result < 0) {
-+ ast_log(LOG_WARNING,
-+ "Corrupt or missing data in bitstream; continuing...\n");
-+ }
-+
-+ /* No, we need to read more data from the file descrptor */
-+ /* get a buffer from OGG to read the data into */
-+ buffer = ogg_sync_buffer(&s->oy, BLOCK_SIZE);
-+ bytes = fread(buffer, 1, BLOCK_SIZE, fs->f);
-+ ogg_sync_wrote(&s->oy, bytes);
-+ if (bytes == 0) {
-+ s->eos = 1;
-+ }
-+ }
-+ }
-+}
-+
-+/*!
-+ * \brief Create a new OGG/Speex filestream and set it up for reading.
-+ * \param fs File that points to on disk storage of the OGG/Speex data.
-+ * \return The new filestream.
-+ */
-+static int ogg_speex_open(struct ast_filestream *fs)
-+{
-+ char *buffer;
-+ size_t bytes;
-+ struct speex_desc *s = (struct speex_desc *)fs->_private;
-+ SpeexHeader *hdr = NULL;
-+ int i, result, expected_rate;
-+
-+ expected_rate = ast_format_get_sample_rate(fs->fmt->format);
-+ s->serialno = -1;
-+ ogg_sync_init(&s->oy);
-+
-+ buffer = ogg_sync_buffer(&s->oy, BLOCK_SIZE);
-+ bytes = fread(buffer, 1, BLOCK_SIZE, fs->f);
-+ ogg_sync_wrote(&s->oy, bytes);
-+
-+ result = ogg_sync_pageout(&s->oy, &s->og);
-+ if (result != 1) {
-+ if(bytes < BLOCK_SIZE) {
-+ ast_log(LOG_ERROR, "Run out of data...\n");
-+ } else {
-+ ast_log(LOG_ERROR, "Input does not appear to be an Ogg bitstream.\n");
-+ }
-+ ogg_sync_clear(&s->oy);
-+ return -1;
-+ }
-+
-+ ogg_stream_init(&s->os, ogg_page_serialno(&s->og));
-+ if (ogg_stream_pagein(&s->os, &s->og) < 0) {
-+ ast_log(LOG_ERROR, "Error reading first page of Ogg bitstream data.\n");
-+ goto error;
-+ }
-+
-+ if (read_packet(fs) < 0) {
-+ ast_log(LOG_ERROR, "Error reading initial header packet.\n");
-+ goto error;
-+ }
-+
-+ hdr = speex_packet_to_header((char*)s->op.packet, s->op.bytes);
-+ if (memcmp(hdr->speex_string, "Speex ", 8)) {
-+ ast_log(LOG_ERROR, "OGG container does not contain Speex audio!\n");
-+ goto error;
-+ }
-+ if (hdr->frames_per_packet != 1) {
-+ ast_log(LOG_ERROR, "Only one frame-per-packet OGG/Speex files are currently supported!\n");
-+ goto error;
-+ }
-+ if (hdr->nb_channels != 1) {
-+ ast_log(LOG_ERROR, "Only monophonic OGG/Speex files are currently supported!\n");
-+ goto error;
-+ }
-+ if (hdr->rate != expected_rate) {
-+ ast_log(LOG_ERROR, "Unexpected sampling rate (%d != %d)!\n",
-+ hdr->rate, expected_rate);
-+ goto error;
-+ }
-+
-+ /* this packet is the comment */
-+ if (read_packet(fs) < 0) {
-+ ast_log(LOG_ERROR, "Error reading comment packet.\n");
-+ goto error;
-+ }
-+ for (i = 0; i < hdr->extra_headers; i++) {
-+ if (read_packet(fs) < 0) {
-+ ast_log(LOG_ERROR, "Error reading extra header packet %d.\n", i+1);
-+ goto error;
-+ }
-+ }
-+ speex_header_free(hdr);
-+
-+ return 0;
-+error:
-+ if (hdr) {
-+ speex_header_free(hdr);
-+ }
-+ ogg_stream_clear(&s->os);
-+ ogg_sync_clear(&s->oy);
-+ return -1;
-+}
-+
-+/*!
-+ * \brief Close a OGG/Speex filestream.
-+ * \param fs A OGG/Speex filestream.
-+ */
-+static void ogg_speex_close(struct ast_filestream *fs)
-+{
-+ struct speex_desc *s = (struct speex_desc *)fs->_private;
-+
-+ ogg_stream_clear(&s->os);
-+ ogg_sync_clear(&s->oy);
-+}
-+
-+/*!
-+ * \brief Read a frame full of audio data from the filestream.
-+ * \param fs The filestream.
-+ * \param whennext Number of sample times to schedule the next call.
-+ * \return A pointer to a frame containing audio data or NULL ifthere is no more audio data.
-+ */
-+static struct ast_frame *ogg_speex_read(struct ast_filestream *fs,
-+ int *whennext)
-+{
-+ struct speex_desc *s = (struct speex_desc *)fs->_private;
-+
-+ if (read_packet(fs) < 0) {
-+ return NULL;
-+ }
-+
-+ AST_FRAME_SET_BUFFER(&fs->fr, fs->buf, AST_FRIENDLY_OFFSET, BUF_SIZE);
-+ memcpy(fs->fr.data.ptr, s->op.packet, s->op.bytes);
-+ fs->fr.datalen = s->op.bytes;
-+ fs->fr.samples = *whennext = ast_codec_samples_count(&fs->fr);
-+
-+ return &fs->fr;
-+}
-+
-+/*!
-+ * \brief Trucate an OGG/Speex filestream.
-+ * \param s The filestream to truncate.
-+ * \return 0 on success, -1 on failure.
-+ */
-+
-+static int ogg_speex_trunc(struct ast_filestream *s)
-+{
-+ ast_log(LOG_WARNING, "Truncation is not supported on OGG/Speex streams!\n");
-+ return -1;
-+}
-+
-+/*!
-+ * \brief Seek to a specific position in an OGG/Speex filestream.
-+ * \param s The filestream to truncate.
-+ * \param sample_offset New position for the filestream, measured in 8KHz samples.
-+ * \param whence Location to measure
-+ * \return 0 on success, -1 on failure.
-+ */
-+static int ogg_speex_seek(struct ast_filestream *s, off_t sample_offset, int whence)
-+{
-+ ast_log(LOG_WARNING, "Seeking is not supported on OGG/Speex streams!\n");
-+ return -1;
-+}
-+
-+static off_t ogg_speex_tell(struct ast_filestream *s)
-+{
-+ ast_log(LOG_WARNING, "Telling is not supported on OGG/Speex streams!\n");
-+ return -1;
-+}
-+
-+static struct ast_format_def speex_f = {
-+ .name = "ogg_speex",
-+ .exts = "spx",
-+ .open = ogg_speex_open,
-+ .seek = ogg_speex_seek,
-+ .trunc = ogg_speex_trunc,
-+ .tell = ogg_speex_tell,
-+ .read = ogg_speex_read,
-+ .close = ogg_speex_close,
-+ .buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
-+ .desc_size = sizeof(struct speex_desc),
-+};
-+
-+static struct ast_format_def speex16_f = {
-+ .name = "ogg_speex16",
-+ .exts = "spx16",
-+ .open = ogg_speex_open,
-+ .seek = ogg_speex_seek,
-+ .trunc = ogg_speex_trunc,
-+ .tell = ogg_speex_tell,
-+ .read = ogg_speex_read,
-+ .close = ogg_speex_close,
-+ .buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
-+ .desc_size = sizeof(struct speex_desc),
-+};
-+
-+static struct ast_format_def speex32_f = {
-+ .name = "ogg_speex32",
-+ .exts = "spx32",
-+ .open = ogg_speex_open,
-+ .seek = ogg_speex_seek,
-+ .trunc = ogg_speex_trunc,
-+ .tell = ogg_speex_tell,
-+ .read = ogg_speex_read,
-+ .close = ogg_speex_close,
-+ .buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
-+ .desc_size = sizeof(struct speex_desc),
-+};
-+
-+static int load_module(void)
-+{
-+ speex_f.format = ast_format_speex;
-+ speex16_f.format = ast_format_speex16;
-+ speex32_f.format = ast_format_speex32;
-+
-+ if (ast_format_def_register(&speex_f) ||
-+ ast_format_def_register(&speex16_f) ||
-+ ast_format_def_register(&speex32_f)) {
-+ return AST_MODULE_LOAD_FAILURE;
-+ }
-+
-+ return AST_MODULE_LOAD_SUCCESS;
-+}
-+
-+static int unload_module(void)
-+{
-+ int res = 0;
-+ res |= ast_format_def_unregister(speex_f.name);
-+ res |= ast_format_def_unregister(speex16_f.name);
-+ res |= ast_format_def_unregister(speex32_f.name);
-+ return res;
-+}
-+
-+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "OGG/Speex audio",
-+ .load = load_module,
-+ .unload = unload_module,
-+ .load_pri = AST_MODPRI_APP_DEPEND
-+);
---
-2.10.0
-
diff --git a/main/asterisk/ASTERISK-20527.patch b/main/asterisk/ASTERISK-20527.patch
deleted file mode 100644
index e2095bed41..0000000000
--- a/main/asterisk/ASTERISK-20527.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 538c6415c6d255876a808d69acd9f5ebd603b286 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Fri, 3 Jun 2016 09:33:08 +0300
-Subject: [PATCH 1/1] chan_sip: Support auth username for callbackextension
- feature
-
-ASTERISK-20527 #close
-
-Change-Id: I659cf7f00836a09d09d146ad226a40477d731239
----
- channels/chan_sip.c | 2 +-
- configs/samples/sip.conf.sample | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/channels/chan_sip.c b/channels/chan_sip.c
-index 19f8aa3..03cba92 100644
---- a/channels/chan_sip.c
-+++ b/channels/chan_sip.c
-@@ -31811,7 +31811,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
- olddirectmediaacl = ast_free_acl_list(olddirectmediaacl);
- if (!ast_strlen_zero(peer->callback)) { /* build string from peer info */
- char *reg_string;
-- if (ast_asprintf(&reg_string, "%s?%s:%s@%s/%s", peer->name, peer->username, !ast_strlen_zero(peer->remotesecret) ? peer->remotesecret : peer->secret, peer->tohost, peer->callback) >= 0) {
-+ if (ast_asprintf(&reg_string, "%s?%s:%s:%s@%s/%s", peer->name, S_OR(peer->fromuser, peer->username), S_OR(peer->remotesecret, peer->secret), peer->username, peer->tohost, peer->callback) >= 0) {
- sip_register(reg_string, 0); /* XXX TODO: count in registry_count */
- ast_free(reg_string);
- }
-diff --git a/configs/samples/sip.conf.sample b/configs/samples/sip.conf.sample
-index 8f28e26..a7b74df 100644
---- a/configs/samples/sip.conf.sample
-+++ b/configs/samples/sip.conf.sample
-@@ -786,7 +786,7 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls
- ; A similar effect can be achieved by adding a "callbackextension" option in a peer section.
- ; this is equivalent to having the following line in the general section:
- ;
--; register => username:secret@host/callbackextension
-+; register => fromuser:secret:username@host/callbackextension
- ;
- ; and more readable because you don't have to write the parameters in two places
- ; (note that the "port" is ignored - this is a bug that should be fixed).
---
-2.10.0
-
diff --git a/main/asterisk/musl-glob-compat.patch b/main/asterisk/musl-glob-compat.patch
deleted file mode 100644
index 429babb573..0000000000
--- a/main/asterisk/musl-glob-compat.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- asterisk-11.7.0.orig/res/ael/ael.flex
-+++ asterisk-11.7.0/res/ael/ael.flex
-@@ -79,6 +79,12 @@
- #if !defined(GLOB_ABORTED)
- #define GLOB_ABORTED GLOB_ABEND
- #endif
-+#if !defined(GLOB_BRACE)
-+#define GLOB_BRACE 0
-+#endif
-+#if !defined(GLOB_NOMAGIC)
-+#define GLOB_NOMAGIC 0
-+#endif
-
- #include "asterisk/logger.h"
- #include "asterisk/utils.h"
-Only in asterisk-11.7.0: res/ael/ael.tab.o
---- asterisk-11.7.0.orig/res/ael/ael_lex.c
-+++ asterisk-11.7.0/res/ael/ael_lex.c
-@@ -838,6 +838,12 @@
- #if !defined(GLOB_ABORTED)
- #define GLOB_ABORTED GLOB_ABEND
- #endif
-+#if !defined(GLOB_BRACE)
-+#define GLOB_BRACE 0
-+#endif
-+#if !defined(GLOB_NOMAGIC)
-+#define GLOB_NOMAGIC 0
-+#endif
-
- #include "asterisk/logger.h"
- #include "asterisk/utils.h"
diff --git a/main/asterisk/musl-libcap.patch b/main/asterisk/musl-libcap.patch
deleted file mode 100644
index a414e05fd3..0000000000
--- a/main/asterisk/musl-libcap.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- asterisk-13.3.2.orig/configure.ac
-+++ asterisk-13.3.2/configure.ac
-@@ -181,6 +181,9 @@
- linux-gnueabi* | linux-gnuspe)
- OSARCH=linux-gnu
- ;;
-+ linux-musl*)
-+ OSARCH=linux-musl
-+ ;;
- kfreebsd*-gnu)
- OSARCH=kfreebsd-gnu
- ;;
-@@ -1328,9 +1331,11 @@
- AST_EXT_LIB_CHECK([BFD], [bfd], [bfd_check_format], [bfd.h], [-ldl -liberty -lz])
- fi
-
--if test "x${OSARCH}" = "xlinux-gnu" ; then
-+case "${OSARCH}" in
-+linux*)
- AST_EXT_LIB_CHECK([CAP], [cap], [cap_from_text], [sys/capability.h])
--fi
-+ ;;
-+esac
-
- AST_C_DEFINE_CHECK([DAHDI], [DAHDI_RESET_COUNTERS], [dahdi/user.h], [230])
- AST_C_DEFINE_CHECK([DAHDI], [DAHDI_DEFAULT_MTU_MRU], [dahdi/user.h], [220])
---- asterisk-13.3.2.orig/main/Makefile
-+++ asterisk-13.3.2/main/Makefile
-@@ -42,7 +42,7 @@
- AST_LIBS+=$(CRYPT_LIB)
- AST_LIBS+=$(AST_CLANG_BLOCKS_LIBS)
-
--ifneq ($(findstring $(OSARCH), linux-gnu uclinux linux-uclibc kfreebsd-gnu),)
-+ifneq ($(findstring $(OSARCH), linux-gnu uclinux linux-uclibc linux-musl kfreebsd-gnu),)
- ifneq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),)
- AST_LIBS+=-ldl
- endif