aboutsummaryrefslogtreecommitdiffstats
path: root/main/asterisk
diff options
context:
space:
mode:
Diffstat (limited to 'main/asterisk')
-rw-r--r--main/asterisk/APKBUILD32
-rw-r--r--main/asterisk/ASTERISK-18995.patch49
-rw-r--r--main/asterisk/ASTERISK-19109.patch181
-rw-r--r--main/asterisk/ASTERISK-20527.patch4
-rw-r--r--main/asterisk/musl-includes.patch64
5 files changed, 167 insertions, 163 deletions
diff --git a/main/asterisk/APKBUILD b/main/asterisk/APKBUILD
index aa31af64e6..be1efb5888 100644
--- a/main/asterisk/APKBUILD
+++ b/main/asterisk/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=asterisk
-pkgver=12.6.0
+pkgver=13.0.0
pkgrel=0
pkgdesc="Asterisk: A Module Open Source PBX System"
pkgusers="asterisk"
@@ -246,42 +246,42 @@ sound_en() {
chown -R asterisk:asterisk "$subpkgdir"/var/*/asterisk
}
-md5sums="bb5a1dec86f8d9c4ee4108942adb62a6 asterisk-12.6.0.tar.gz
+md5sums="fe9f6ee8aab839cd1001a53a6c261289 asterisk-13.0.0.tar.gz
126dd4fba66f4cf9aa94dfd7034e0ec4 asterisk-addon-mp3-r201.patch.gz
a66f192623276530eeb6d722ee35bee9 musl-libcap.patch
-b4211313aae31efa8c3c1931ba47dbf9 musl-includes.patch
+2cc7068ed23ffec9e86d61e0234d21d4 musl-includes.patch
9b3e6cb75464a6ef4c40d191bdfdf7ea musl-glob-compat.patch
10b84632764a6f05ec9973c31f5e82fb musl-outofmem-handling.patch
1ca5e8326dc03c963a7ce5455d0f21ba musl-mutex-init.patch
-bc6713f5434e07b79d3afdd155461d72 ASTERISK-18995.patch
-e985bc8e25ed3e4c7a0a608bac58ba80 ASTERISK-19109.patch
-676ca42ee1859d8a7bae4345ede5eb89 ASTERISK-20527.patch
+5535ecf893134fd341cfbd9f8e1249d2 ASTERISK-18995.patch
+ba0944d05570a1076f826807598c5752 ASTERISK-19109.patch
+018f2fb1ebd31dc28bfb49919b2a0a81 ASTERISK-20527.patch
74cd25a5638a94ef51e9f4ede2fd28f2 asterisk.initd
ed31d7ba37bcf8b0346dcf8593c395f0 asterisk.confd
3e65172275684373e1a25c8a11224411 asterisk.logrotate"
-sha256sums="5de33e0f2fc46266097891e80f7d0e9d0371bf5a43ecbd7084bfc6f8fd8f9fe8 asterisk-12.6.0.tar.gz
+sha256sums="a343366b0ec57bf04b483addb35e5017d88e7449dedf7b09c812526926b325c4 asterisk-13.0.0.tar.gz
d32a5a695cee1699011d0e9ad02eb43af612def06f92017627194099edf98e3f asterisk-addon-mp3-r201.patch.gz
ba8334d855191af3fa662931244b6fea4ffc9eec84e40e1a52d6b3c0186d2005 musl-libcap.patch
-e3b7128813d0452b152d3af5015da927b07849e7f33de9f80f1d10f65907d268 musl-includes.patch
+53a7c87ec8ecbeea17d906945ab8e2140217ea7b10b5afa1108f818286113471 musl-includes.patch
c6a5c32646b767f09ebffccc49cac6a4ff9181498499e4453300775e75284b52 musl-glob-compat.patch
235b9c339793c02d1d80ac37d308cf14dc3e86fe8ccbe757e9855b186d9c164b musl-outofmem-handling.patch
a5205ed44b57a72934baf8cde543ddb179f277494181818905110bfdcccfe7d9 musl-mutex-init.patch
-7a7140156ae7fc7e833035db1e428db8d90159579cd2678c4b5cc829ded47485 ASTERISK-18995.patch
-0a9a5afbf23902f48e172cd600ca4466245e1b6ab77e6c785eb586f5eac4d668 ASTERISK-19109.patch
-1f822e618554e9962fe4599975bdcc24413e087dbd7ea4ce0305ecb7ea9bef94 ASTERISK-20527.patch
+d3f1304ddcce48f2c09cb81e924052f7eb2d36829aa1a0bf6a2e0be476333ee7 ASTERISK-18995.patch
+6e0e023b83cd197ea4ff2a536d83dcce3675c094c47d195a39d809d64199b713 ASTERISK-19109.patch
+84d21c9ef2d3a21d8cdef12034c5dcf57eb08a6a7fb76367bc839b60f7d24713 ASTERISK-20527.patch
13bcc98f2a78d4dd41e810232979eb83044e9166302bfb5b971315f2a82af36f asterisk.initd
d221148583b57f9c37d7160f2493f0d204ad11f7abb17e3a3534e108ad5452d7 asterisk.confd
77b253b6db71460acf9a51e87ad4c8582027a46db01a4c50fb048bada58c19d1 asterisk.logrotate"
-sha512sums="df340f1d4536598f3b54da55ffe2b8bd10e0ce54c1989970fdb6ff671bda92be33dfaa61dab363532c3333682220d6a588193df63bfd7e223c84494fe4a21103 asterisk-12.6.0.tar.gz
+sha512sums="62593304e8df8867848e3c8bf27d551b3a444a7186728f4756beef4d623ac6e730554a4e2ef9c55e5e42e2c71039e0ffdc9ed64f34c8ddd07bc5381d45dc9c21 asterisk-13.0.0.tar.gz
aacef3f4796fb1abd33266998b53909cb4b36e7cc5ad2f7bac68bdc43e9a9072d9a4e2e7e681bddfa31f3d04575eb248afe6ea95da780c67e4829c1e22adfe1b asterisk-addon-mp3-r201.patch.gz
d30d1be03cbc637f1d05e6897efa2e1fae560ac2c48124a9636c5ff390c81b8c07cf9cef6d930e71eb59cb932f234284a0390487ec257e0fa45ec11d294c106c musl-libcap.patch
-878b8cddc5af338a07658c388d42a7f9ddf3edcf302ca8b294adcf278b6ceacd463d279cb716b0b6b059f47eb287803bc15a7f36a403c66697f466ff3cd5a6e4 musl-includes.patch
+68ec954f24638a3056fe811a52e4af06b244a290ea5dbe58a55ee0c1016e6e82335e42adc6f4f0486325738d7d89a2d59e8430629c2a30e2009554c791a361d6 musl-includes.patch
edf65eba44e8f1f0e78671aba312bcff2090134cf94e89ebb4b6beef7b2d57b24381ae9511cbf9fffe6b555e695a3dbe2cedcd04f1d237df822fa742bd5092ac musl-glob-compat.patch
7cbbad2c16d89b0b4ea45257a44c25ea96ca6ecb1f5bf7707656dfa3957cae34d1dca404b3d62baca8b55cea6f9fa39819bef48a1f4dad0124da95d6c80a294e musl-outofmem-handling.patch
f72c2e04de80d3ed9ce841308101383a1655e6da7a3c888ad31fffe63d1280993e08aefcf8e638316d439c68b38ee05362c87503fca1f36343976a01af9d6eb1 musl-mutex-init.patch
-42b2385d88e72473fe34c63e1be8cdf7f37688649fe5bf033b5ba17627008b771aec8f0a583e9ad483a20f9e1f7c33922cb42bf5b73adc68aa43fd46c5da1daa ASTERISK-18995.patch
-6d990d95f4b26a0024893d36e6e6d7b79985b57f29021b83fbc2c84ea08130aa3eee70193fbfe03b6df9681b89e67a7253d55e9e69d55e942e30efe85a661a12 ASTERISK-19109.patch
-6edd8e0a1dce326aadf659c8bf8ed34083e8247b6c0f032d097c77df25feb93107375ba505e9076c084fe80676336d6c863e04c3c6808a850e24257fd7a7702d ASTERISK-20527.patch
+f6c1b0030225638a20e374a6f14dca23fce88e1953bec0e399e8ee2e18241f6fdebc6be0404d7ae46359f66cdb7aa9240f2a4be17d5046aedf5aa72235e9da5d ASTERISK-18995.patch
+28b2e4cc87aa94353795d6ef1f878a32d8d881e77f683ca19891fe7932c5505347b9c6fae9ea14de05d6fe4da4cb9a72fa219e40bf8365c7a0b4c5a2294af5d0 ASTERISK-19109.patch
+cdc41b50827f79194bf641782f82e5e0f15866788824002fe456e9e32bc37921ee2525baa476219c357ec35891a194ed00515a17b0ccab3a6bc4479ec52bc175 ASTERISK-20527.patch
e29477aa57d88fedc96d13751f68f302d3892c70b5ea5b5a8cc85d0439335fc1a6847648447b443a074c0877718f23295e3752056a108301d340d1e2919465b1 asterisk.initd
ab6b6f08ff43268cbb1abb7ed7d678949991ba495682a644bbaeb017d6adbff0a43297905fd73ae8db1786a28d5b5904f1bc253209a0e388c8a27f26c6ce14ed asterisk.confd
7591d2faf539d05d9ee4e431c78a5e20686721fd79221ad94dffeeaff9282220b09cb9aec214bd7a8d12affaec0276c9c91e6e21af8b6712c0a9502b60b02f2b asterisk.logrotate"
diff --git a/main/asterisk/ASTERISK-18995.patch b/main/asterisk/ASTERISK-18995.patch
index cd144847be..2613176305 100644
--- a/main/asterisk/ASTERISK-18995.patch
+++ b/main/asterisk/ASTERISK-18995.patch
@@ -1,10 +1,10 @@
---- /dev/null 2011-11-29 09:02:40.279581283 +0200
-+++ b/formats/format_ogg_speex.c 2011-12-08 15:57:12.000000000 +0200
-@@ -0,0 +1,355 @@
+--- /dev/null 2014-10-31 08:01:35.193329595 -0200
++++ asterisk-13.0.0/formats/format_ogg_speex.c 2014-10-31 09:19:34.010493106 -0200
+@@ -0,0 +1,336 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
-+ * Copyright (C) 2011, Timo Teräs
++ * Copyright (C) 2011-2014, Timo Teräs
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
@@ -36,6 +36,7 @@
+
+#include "asterisk/mod_format.h"
+#include "asterisk/module.h"
++#include "asterisk/format_cache.h"
+
+#include <speex/speex_header.h>
+#include <ogg/ogg.h>
@@ -50,7 +51,6 @@
+ ogg_page og;
+ ogg_packet op;
+
-+ int format_id;
+ int serialno;
+
+ /*! \brief Indicates whether an End of Stream condition has been detected. */
@@ -124,18 +124,17 @@
+/*!
+ * \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.
-+ * \param expected_rate The expected Speex format (sampling rate).
+ * \return The new filestream.
+ */
-+static int ogg_speex_open(struct ast_filestream *fs, int format_id, int expected_rate)
++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;
++ int i, result, expected_rate;
+
-+ s->format_id = format_id;
++ expected_rate = ast_format_get_sample_rate(fs->fmt->format);
+ s->serialno = -1;
+ ogg_sync_init(&s->oy);
+
@@ -232,13 +231,10 @@
+ if (read_packet(fs) < 0)
+ return NULL;
+
-+ fs->fr.frametype = AST_FRAME_VOICE;
-+ ast_format_set(&fs->fr.subclass.format, s->format_id, 0);
-+ fs->fr.mallocd = 0;
+ 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_get_samples(&fs->fr);
++ fs->fr.samples = *whennext = ast_codec_samples_count(&fs->fr);
+
+ return &fs->fr;
+}
@@ -274,15 +270,10 @@
+ return -1;
+}
+
-+static int ogg_speex_open_nb(struct ast_filestream *fs)
-+{
-+ return ogg_speex_open(fs, AST_FORMAT_SPEEX, 8000);
-+}
-+
+static struct ast_format_def speex_f = {
+ .name = "ogg_speex",
+ .exts = "spx",
-+ .open = ogg_speex_open_nb,
++ .open = ogg_speex_open,
+ .seek = ogg_speex_seek,
+ .trunc = ogg_speex_trunc,
+ .tell = ogg_speex_tell,
@@ -292,15 +283,10 @@
+ .desc_size = sizeof(struct speex_desc),
+};
+
-+static int ogg_speex_open_wb(struct ast_filestream *fs)
-+{
-+ return ogg_speex_open(fs, AST_FORMAT_SPEEX16, 16000);
-+}
-+
+static struct ast_format_def speex16_f = {
+ .name = "ogg_speex16",
+ .exts = "spx16",
-+ .open = ogg_speex_open_wb,
++ .open = ogg_speex_open,
+ .seek = ogg_speex_seek,
+ .trunc = ogg_speex_trunc,
+ .tell = ogg_speex_tell,
@@ -310,15 +296,10 @@
+ .desc_size = sizeof(struct speex_desc),
+};
+
-+static int ogg_speex_open_uwb(struct ast_filestream *fs)
-+{
-+ return ogg_speex_open(fs, AST_FORMAT_SPEEX32, 32000);
-+}
-+
+static struct ast_format_def speex32_f = {
+ .name = "ogg_speex32",
+ .exts = "spx32",
-+ .open = ogg_speex_open_uwb,
++ .open = ogg_speex_open,
+ .seek = ogg_speex_seek,
+ .trunc = ogg_speex_trunc,
+ .tell = ogg_speex_tell,
@@ -330,9 +311,9 @@
+
+static int load_module(void)
+{
-+ ast_format_set(&speex_f.format, AST_FORMAT_SPEEX, 0);
-+ ast_format_set(&speex16_f.format, AST_FORMAT_SPEEX16, 0);
-+ ast_format_set(&speex32_f.format, AST_FORMAT_SPEEX32, 0);
++ 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) ||
diff --git a/main/asterisk/ASTERISK-19109.patch b/main/asterisk/ASTERISK-19109.patch
index 2e812f78e0..f4399a0d4e 100644
--- a/main/asterisk/ASTERISK-19109.patch
+++ b/main/asterisk/ASTERISK-19109.patch
@@ -1,6 +1,6 @@
-diff -ru asterisk-12.6.0.orig/CHANGES asterisk-12.6.0/CHANGES
---- asterisk-12.6.0.orig/CHANGES 2014-08-05 23:10:52.000000000 -0300
-+++ asterisk-12.6.0/CHANGES 2014-09-25 09:22:51.419497839 -0300
+diff -ru asterisk-13.0.0.orig/CHANGES asterisk-13.0.0/CHANGES
+--- asterisk-13.0.0.orig/CHANGES 2014-10-31 09:25:50.097163496 -0200
++++ asterisk-13.0.0/CHANGES 2014-10-31 09:23:05.690495201 -0200
@@ -8,6 +8,10 @@
===
==============================================================================
@@ -10,12 +10,12 @@ diff -ru asterisk-12.6.0.orig/CHANGES asterisk-12.6.0/CHANGES
+ and ConfBridge DTMF actions to toggle the deaf state.
+
------------------------------------------------------------------------------
- --- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
+ --- Functionality changes from Asterisk 12 to Asterisk 13 --------------------
------------------------------------------------------------------------------
-diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_confbridge.c
---- asterisk-12.6.0.orig/apps/app_confbridge.c 2014-08-30 20:28:04.000000000 -0300
-+++ asterisk-12.6.0/apps/app_confbridge.c 2014-09-25 09:38:27.299505944 -0300
-@@ -219,6 +219,30 @@
+diff -ru asterisk-13.0.0.orig/apps/app_confbridge.c asterisk-13.0.0/apps/app_confbridge.c
+--- asterisk-13.0.0.orig/apps/app_confbridge.c 2014-10-31 09:25:50.097163496 -0200
++++ asterisk-13.0.0/apps/app_confbridge.c 2014-10-31 09:29:06.293832109 -0200
+@@ -234,6 +234,30 @@
<description>
</description>
</manager>
@@ -46,7 +46,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
<manager name="ConfbridgeKick" language="en_US">
<synopsis>
Kick a Confbridge user.
-@@ -318,6 +342,13 @@
+@@ -333,6 +357,13 @@
CONF_RECORD_STOP,
};
@@ -60,7 +60,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
/*! \brief Container to hold all conference bridges in progress */
struct ao2_container *conference_bridges;
-@@ -389,6 +420,10 @@
+@@ -404,6 +435,10 @@
return S_OR(custom_sounds->muted, "conf-muted");
case CONF_SOUND_UNMUTED:
return S_OR(custom_sounds->unmuted, "conf-unmuted");
@@ -71,24 +71,24 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
case CONF_SOUND_ONLY_ONE:
return S_OR(custom_sounds->onlyone, "conf-onlyone");
case CONF_SOUND_THERE_ARE:
-@@ -539,6 +574,16 @@
+@@ -554,6 +589,16 @@
ast_json_unref(json_object);
}
-+static void send_deafen_event(struct ast_channel *chan, struct confbridge_conference *conference)
++static void send_deafen_event(struct confbridge_user *user, struct confbridge_conference *conference)
+{
-+ send_conf_stasis(conference, chan, confbridge_deafen_type(), NULL, 1);
++ send_conf_stasis(conference, user->chan, confbridge_deafen_type(), NULL, 1);
+}
+
-+static void send_undeafen_event(struct ast_channel *chan, struct confbridge_conference *conference)
++static void send_undeafen_event(struct confbridge_user *user, struct confbridge_conference *conference)
+{
-+ send_conf_stasis(conference, chan, confbridge_undeafen_type(), NULL, 1);
++ send_conf_stasis(conference, user->chan, confbridge_undeafen_type(), NULL, 1);
+}
+
static void set_rec_filename(struct confbridge_conference *conference, struct ast_str **filename, int is_new)
{
char *rec_file = conference->b_profile.rec_file;
-@@ -1697,6 +1742,11 @@
+@@ -1734,6 +1779,11 @@
/* Set user level mute request. */
user.muted = 1;
}
@@ -100,7 +100,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
/* Look for a conference bridge matching the provided name */
if (!(conference = join_conference_bridge(args.conf_name, &user))) {
-@@ -1885,6 +1935,30 @@
+@@ -1928,6 +1978,30 @@
return 0;
}
@@ -118,9 +118,9 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
+ user->b_profile.name,
+ ast_channel_name(chan));
+ if (user->features.deaf) {
-+ send_deafen_event(chan, conference);
++ send_deafen_event(user, conference);
+ } else {
-+ send_undeafen_event(chan, conference);
++ send_undeafen_event(user, conference);
+ }
+ return ast_stream_and_wait(chan, (user->features.deaf ?
+ conf_get_sound(CONF_SOUND_DEAFENED, user->b_profile.sounds) :
@@ -131,7 +131,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
static int action_playback(struct ast_bridge_channel *bridge_channel, const char *playback_file)
{
char *file_copy = ast_strdupa(playback_file);
-@@ -2071,6 +2145,11 @@
+@@ -2115,6 +2189,11 @@
case MENU_ACTION_PARTICIPANT_COUNT:
announce_user_count(conference, user);
break;
@@ -143,7 +143,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
case MENU_ACTION_PLAYBACK:
if (!stop_prompts) {
res |= action_playback(bridge_channel, menu_action->data.playback_file);
-@@ -2446,38 +2525,65 @@
+@@ -2499,38 +2578,65 @@
}
/* \internal
@@ -171,9 +171,6 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
conference->b_profile.name,
ast_channel_name(user->chan));
- if (mute) {
-- send_mute_event(user, conference);
-- } else {
-- send_unmute_event(user, conference);
+}
+
+/* \internal
@@ -187,25 +184,26 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
+ case CONFBRIDGE_FEATURE_DEAFEN:
+ user->features.deaf = 1;
+ test_suite_feature_action_event_notify(conference, user, "CONF_DEAF", "deafened");
-+ send_deafen_event(user->chan, conference);
++ send_deafen_event(user, conference);
+ break;
+ case CONFBRIDGE_FEATURE_UNDEAFEN:
+ user->features.deaf = 0;
+ test_suite_feature_action_event_notify(conference, user, "CONF_DEAF", "undeafened");
-+ send_undeafen_event(user->chan, conference);
++ send_undeafen_event(user, conference);
+ break;
+ case CONFBRIDGE_FEATURE_MUTE:
+ user->muted = 1;
+ conf_update_user_mute(user);
+ test_suite_feature_action_event_notify(conference, user, "CONF_MUTE", "muted");
-+ send_mute_event(user->chan, conference);
+ send_mute_event(user, conference);
+- } else {
+ break;
+ case CONFBRIDGE_FEATURE_UNMUTE:
+ default:
+ user->muted = 0;
+ conf_update_user_mute(user);
+ test_suite_feature_action_event_notify(conference, user, "CONF_MUTE", "unmuted");
-+ send_unmute_event(user->chan, conference);
+ send_unmute_event(user, conference);
+ break;
}
}
@@ -225,7 +223,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
{
RAII_VAR(struct confbridge_conference *, conference, NULL, ao2_cleanup);
struct confbridge_user *user;
-@@ -2497,7 +2603,7 @@
+@@ -2550,7 +2656,7 @@
strlen(chan_name));
if (match || all
|| (participants && !ast_test_flag(&user->u_profile, USER_OPT_ADMIN))) {
@@ -234,7 +232,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
res = 0;
if (match) {
return res;
-@@ -2510,7 +2616,7 @@
+@@ -2563,7 +2669,7 @@
strlen(chan_name));
if (match || all
|| (participants && !ast_test_flag(&user->u_profile, USER_OPT_ADMIN))) {
@@ -243,7 +241,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
res = 0;
if (match) {
return res;
-@@ -2522,9 +2628,10 @@
+@@ -2575,9 +2681,10 @@
return res;
}
@@ -256,7 +254,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
if (res == -1) {
ast_cli(a->fd, "No conference bridge named '%s' found!\n", a->argv[2]);
-@@ -2537,7 +2644,24 @@
+@@ -2590,7 +2697,24 @@
}
return -1;
}
@@ -282,7 +280,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
return 0;
}
-@@ -2567,7 +2691,7 @@
+@@ -2620,7 +2744,7 @@
return CLI_SHOWUSAGE;
}
@@ -291,7 +289,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
return CLI_SUCCESS;
}
-@@ -2598,7 +2722,53 @@
+@@ -2651,7 +2775,53 @@
return CLI_SHOWUSAGE;
}
@@ -346,7 +344,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
return CLI_SUCCESS;
}
-@@ -2753,6 +2923,8 @@
+@@ -2806,6 +2976,8 @@
AST_CLI_DEFINE(handle_cli_confbridge_kick, "Kick participants out of conference bridges."),
AST_CLI_DEFINE(handle_cli_confbridge_mute, "Mute participants."),
AST_CLI_DEFINE(handle_cli_confbridge_unmute, "Unmute participants."),
@@ -355,7 +353,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
AST_CLI_DEFINE(handle_cli_confbridge_lock, "Lock a conference."),
AST_CLI_DEFINE(handle_cli_confbridge_unlock, "Unlock a conference."),
AST_CLI_DEFINE(handle_cli_confbridge_start_record, "Start recording a conference"),
-@@ -2905,10 +3077,11 @@
+@@ -2958,10 +3130,11 @@
return 0;
}
@@ -368,7 +366,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
int res = 0;
if (ast_strlen_zero(conference_name)) {
-@@ -2924,7 +3097,7 @@
+@@ -2977,7 +3150,7 @@
return 0;
}
@@ -377,7 +375,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
if (res == -1) {
astman_send_error(s, m, "No Conference by that name found.");
-@@ -2934,17 +3107,41 @@
+@@ -2987,17 +3160,41 @@
return 0;
}
@@ -422,7 +420,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
}
static int action_lock_unlock_helper(struct mansession *s, const struct message *m, int lock)
-@@ -3297,6 +3494,8 @@
+@@ -3350,6 +3547,8 @@
ast_manager_unregister("ConfbridgeListRooms");
ast_manager_unregister("ConfbridgeMute");
ast_manager_unregister("ConfbridgeUnmute");
@@ -431,7 +429,7 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
ast_manager_unregister("ConfbridgeKick");
ast_manager_unregister("ConfbridgeUnlock");
ast_manager_unregister("ConfbridgeLock");
-@@ -3366,6 +3565,8 @@
+@@ -3419,6 +3618,8 @@
res |= ast_manager_register_xml("ConfbridgeListRooms", EVENT_FLAG_REPORTING, action_confbridgelistrooms);
res |= ast_manager_register_xml("ConfbridgeMute", EVENT_FLAG_CALL, action_confbridgemute);
res |= ast_manager_register_xml("ConfbridgeUnmute", EVENT_FLAG_CALL, action_confbridgeunmute);
@@ -440,10 +438,14 @@ diff -ru asterisk-12.6.0.orig/apps/app_confbridge.c asterisk-12.6.0/apps/app_con
res |= ast_manager_register_xml("ConfbridgeKick", EVENT_FLAG_CALL, action_confbridgekick);
res |= ast_manager_register_xml("ConfbridgeUnlock", EVENT_FLAG_CALL, action_confbridgeunlock);
res |= ast_manager_register_xml("ConfbridgeLock", EVENT_FLAG_CALL, action_confbridgelock);
-diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6.0/apps/confbridge/conf_config_parser.c
---- asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c 2014-05-10 01:39:22.000000000 -0300
-+++ asterisk-12.6.0/apps/confbridge/conf_config_parser.c 2014-09-25 09:22:51.419497839 -0300
-@@ -862,6 +862,10 @@
+Binary files asterisk-13.0.0.orig/apps/app_confbridge.o and asterisk-13.0.0/apps/app_confbridge.o differ
+Binary files asterisk-13.0.0.orig/apps/app_confbridge.so and asterisk-13.0.0/apps/app_confbridge.so differ
+Binary files asterisk-13.0.0.orig/apps/app_meetme.o and asterisk-13.0.0/apps/app_meetme.o differ
+Binary files asterisk-13.0.0.orig/apps/app_meetme.so and asterisk-13.0.0/apps/app_meetme.so differ
+diff -ru asterisk-13.0.0.orig/apps/confbridge/conf_config_parser.c asterisk-13.0.0/apps/confbridge/conf_config_parser.c
+--- asterisk-13.0.0.orig/apps/confbridge/conf_config_parser.c 2014-10-31 09:25:50.097163496 -0200
++++ asterisk-13.0.0/apps/confbridge/conf_config_parser.c 2014-10-31 09:23:05.690495201 -0200
+@@ -869,6 +869,10 @@
ast_string_field_set(sounds, muted, sound_file);
} else if (!strcasecmp(sound_name, "sound_unmuted")) {
ast_string_field_set(sounds, unmuted, sound_file);
@@ -454,7 +456,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6
} else if (!strcasecmp(sound_name, "sound_there_are")) {
ast_string_field_set(sounds, thereare, sound_file);
} else if (!strcasecmp(sound_name, "sound_other_in_party")) {
-@@ -1014,6 +1018,7 @@
+@@ -1068,6 +1072,7 @@
switch (id) {
case MENU_ACTION_NOOP:
case MENU_ACTION_TOGGLE_MUTE:
@@ -462,7 +464,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6
case MENU_ACTION_INCREASE_LISTENING:
case MENU_ACTION_DECREASE_LISTENING:
case MENU_ACTION_INCREASE_TALKING:
-@@ -1304,6 +1309,9 @@
+@@ -1358,6 +1363,9 @@
ast_cli(a->fd,"Start Muted: %s\n",
u_profile.flags & USER_OPT_STARTMUTED?
"true" : "false");
@@ -472,7 +474,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6
ast_cli(a->fd,"MOH When Empty: %s\n",
u_profile.flags & USER_OPT_MUSICONHOLD ?
"enabled" : "disabled");
-@@ -1507,6 +1515,8 @@
+@@ -1562,6 +1570,8 @@
ast_cli(a->fd,"sound_kicked: %s\n", conf_get_sound(CONF_SOUND_KICKED, b_profile.sounds));
ast_cli(a->fd,"sound_muted: %s\n", conf_get_sound(CONF_SOUND_MUTED, b_profile.sounds));
ast_cli(a->fd,"sound_unmuted: %s\n", conf_get_sound(CONF_SOUND_UNMUTED, b_profile.sounds));
@@ -481,7 +483,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6
ast_cli(a->fd,"sound_there_are: %s\n", conf_get_sound(CONF_SOUND_THERE_ARE, b_profile.sounds));
ast_cli(a->fd,"sound_other_in_party: %s\n", conf_get_sound(CONF_SOUND_OTHER_IN_PARTY, b_profile.sounds));
ast_cli(a->fd,"sound_place_into_conference: %s\n", conf_get_sound(CONF_SOUND_PLACE_IN_CONF, b_profile.sounds));
-@@ -1635,6 +1645,9 @@
+@@ -1690,6 +1700,9 @@
case MENU_ACTION_TOGGLE_MUTE:
ast_cli(a->fd, "toggle_mute");
break;
@@ -491,7 +493,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6
case MENU_ACTION_NOOP:
ast_cli(a->fd, "no_op");
break;
-@@ -1932,6 +1945,7 @@
+@@ -2063,6 +2076,7 @@
aco_option_register(&cfg_info, "admin", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_ADMIN);
aco_option_register(&cfg_info, "marked", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_MARKEDUSER);
aco_option_register(&cfg_info, "startmuted", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_STARTMUTED);
@@ -499,9 +501,9 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/conf_config_parser.c asterisk-12.6
aco_option_register(&cfg_info, "music_on_hold_when_empty", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_MUSICONHOLD);
aco_option_register(&cfg_info, "quiet", ACO_EXACT, user_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct user_profile, flags), USER_OPT_QUIET);
aco_option_register_custom(&cfg_info, "announce_user_count_all", ACO_EXACT, user_types, "no", announce_user_count_all_handler, 0);
-diff -ru asterisk-12.6.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.6.0/apps/confbridge/confbridge_manager.c
---- asterisk-12.6.0.orig/apps/confbridge/confbridge_manager.c 2014-08-27 20:21:57.000000000 -0300
-+++ asterisk-12.6.0/apps/confbridge/confbridge_manager.c 2014-09-25 09:22:51.419497839 -0300
+diff -ru asterisk-13.0.0.orig/apps/confbridge/confbridge_manager.c asterisk-13.0.0/apps/confbridge/confbridge_manager.c
+--- asterisk-13.0.0.orig/apps/confbridge/confbridge_manager.c 2014-10-31 09:25:50.097163496 -0200
++++ asterisk-13.0.0/apps/confbridge/confbridge_manager.c 2014-10-31 09:23:05.690495201 -0200
@@ -189,6 +189,38 @@
</see-also>
</managerEventInstance>
@@ -629,18 +631,18 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/confbridge_manager.c asterisk-12.6
}
if (stasis_message_router_add(channel_state_router,
confbridge_talking_type(),
-diff -ru asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h asterisk-12.6.0/apps/confbridge/include/confbridge.h
---- asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h 2014-06-04 10:23:58.000000000 -0300
-+++ asterisk-12.6.0/apps/confbridge/include/confbridge.h 2014-09-25 09:22:51.419497839 -0300
-@@ -58,6 +58,7 @@
- USER_OPT_DTMF_PASS = (1 << 13), /*!< Sets if dtmf should be passed into the conference or not */
+diff -ru asterisk-13.0.0.orig/apps/confbridge/include/confbridge.h asterisk-13.0.0/apps/confbridge/include/confbridge.h
+--- asterisk-13.0.0.orig/apps/confbridge/include/confbridge.h 2014-10-31 09:25:50.097163496 -0200
++++ asterisk-13.0.0/apps/confbridge/include/confbridge.h 2014-10-31 09:23:05.690495201 -0200
+@@ -60,6 +60,7 @@
USER_OPT_ANNOUNCEUSERCOUNTALL = (1 << 14), /*!< Sets if the number of users should be announced to everyone. */
USER_OPT_JITTERBUFFER = (1 << 15), /*!< Places a jitterbuffer on the user. */
-+ USER_OPT_STARTDEAF = (1 << 16), /*!< Set if the caller should be initially set deaf */
+ USER_OPT_ANNOUNCE_JOIN_LEAVE_REVIEW = (1 << 16), /*!< modifies ANNOUNCE_JOIN_LEAVE - user reviews the recording before continuing */
++ USER_OPT_STARTDEAF = (1 << 17), /*!< Set if the caller should be initially set deaf */
};
enum bridge_profile_flags {
-@@ -70,6 +71,7 @@
+@@ -72,6 +73,7 @@
enum conf_menu_action_id {
MENU_ACTION_TOGGLE_MUTE = 1,
@@ -648,7 +650,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h asterisk-12.6
MENU_ACTION_PLAYBACK,
MENU_ACTION_PLAYBACK_AND_CONTINUE,
MENU_ACTION_INCREASE_LISTENING,
-@@ -144,6 +146,8 @@
+@@ -146,6 +148,8 @@
CONF_SOUND_KICKED,
CONF_SOUND_MUTED,
CONF_SOUND_UNMUTED,
@@ -657,7 +659,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h asterisk-12.6
CONF_SOUND_ONLY_ONE,
CONF_SOUND_THERE_ARE,
CONF_SOUND_OTHER_IN_PARTY,
-@@ -171,6 +175,8 @@
+@@ -173,6 +177,8 @@
AST_STRING_FIELD(kicked);
AST_STRING_FIELD(muted);
AST_STRING_FIELD(unmuted);
@@ -666,7 +668,7 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h asterisk-12.6
AST_STRING_FIELD(onlyone);
AST_STRING_FIELD(thereare);
AST_STRING_FIELD(otherinparty);
-@@ -346,6 +352,8 @@
+@@ -365,6 +371,8 @@
struct conf_menu_entry *menu_entry,
struct conf_menu *menu);
@@ -675,17 +677,16 @@ diff -ru asterisk-12.6.0.orig/apps/confbridge/include/confbridge.h asterisk-12.6
/*! \brief Looks to see if sound file is stored in bridge profile sounds, if not
* default sound is provided.*/
-diff -ru asterisk-12.6.0.orig/bridges/bridge_softmix.c asterisk-12.6.0/bridges/bridge_softmix.c
---- asterisk-12.6.0.orig/bridges/bridge_softmix.c 2014-05-10 01:39:22.000000000 -0300
-+++ asterisk-12.6.0/bridges/bridge_softmix.c 2014-09-25 09:22:51.419497839 -0300
-@@ -926,16 +926,23 @@
+diff -ru asterisk-13.0.0.orig/bridges/bridge_softmix.c asterisk-13.0.0/bridges/bridge_softmix.c
+--- asterisk-13.0.0.orig/bridges/bridge_softmix.c 2014-10-31 09:25:50.097163496 -0200
++++ asterisk-13.0.0/bridges/bridge_softmix.c 2014-10-31 09:23:05.690495201 -0200
+@@ -942,15 +942,21 @@
ast_mutex_lock(&sc->lock);
- /* Make SLINEAR write frame from local buffer */
-- if (sc->write_frame.subclass.format.id != cur_slin_id) {
-- ast_format_set(&sc->write_frame.subclass.format, cur_slin_id, 0);
-- }
+- ao2_t_replace(sc->write_frame.subclass.format, cur_slin,
+- "Replace softmix channel slin format");
- sc->write_frame.datalen = softmix_datalen;
- sc->write_frame.samples = softmix_samples;
- memcpy(sc->final_buf, buf, softmix_datalen);
@@ -695,9 +696,8 @@ diff -ru asterisk-12.6.0.orig/bridges/bridge_softmix.c asterisk-12.6.0/bridges/b
+ } else {
+ /* Make SLINEAR write frame from local buffer */
+ sc->write_frame.frametype = AST_FRAME_VOICE;
-+ if (sc->write_frame.subclass.format.id != cur_slin_id) {
-+ ast_format_set(&sc->write_frame.subclass.format, cur_slin_id, 0);
-+ }
++ ao2_t_replace(sc->write_frame.subclass.format, cur_slin,
++ "Replace softmix channel slin format");
+ sc->write_frame.datalen = softmix_datalen;
+ sc->write_frame.samples = softmix_samples;
+ memcpy(sc->final_buf, buf, softmix_datalen);
@@ -705,15 +705,14 @@ diff -ru asterisk-12.6.0.orig/bridges/bridge_softmix.c asterisk-12.6.0/bridges/b
- /* process the softmix channel's new write audio */
- softmix_process_write_audio(&trans_helper, ast_channel_rawwriteformat(bridge_channel->chan), sc);
+ /* process the softmix channel's new write audio */
-+ softmix_process_write_audio(&trans_helper,
-+ ast_channel_rawwriteformat(bridge_channel->chan), sc);
++ softmix_process_write_audio(&trans_helper, ast_channel_rawwriteformat(bridge_channel->chan), sc);
+ }
ast_mutex_unlock(&sc->lock);
-diff -ru asterisk-12.6.0.orig/configs/confbridge.conf.sample asterisk-12.6.0/configs/confbridge.conf.sample
---- asterisk-12.6.0.orig/configs/confbridge.conf.sample 2014-02-10 17:54:45.000000000 -0200
-+++ asterisk-12.6.0/configs/confbridge.conf.sample 2014-09-25 09:22:51.419497839 -0300
+diff -ru asterisk-13.0.0.orig/configs/samples/confbridge.conf.sample asterisk-13.0.0/configs/samples/confbridge.conf.sample
+--- asterisk-13.0.0.orig/configs/samples/confbridge.conf.sample 2014-10-31 09:25:50.100496828 -0200
++++ asterisk-13.0.0/configs/samples/confbridge.conf.sample 2014-10-31 09:23:05.693828534 -0200
@@ -20,6 +20,7 @@
;admin=yes ; Sets if the user is an admin or not. Off by default.
;marked=yes ; Sets if this is a marked user or not. Off by default.
@@ -722,7 +721,7 @@ diff -ru asterisk-12.6.0.orig/configs/confbridge.conf.sample asterisk-12.6.0/con
;music_on_hold_when_empty=yes ; Sets whether MOH should be played when only
; one person is in the conference or when the
; the user is waiting on a marked user to enter
-@@ -217,6 +218,8 @@
+@@ -222,6 +223,8 @@
;sound_kicked ; The sound played to a user who has been kicked from the conference.
;sound_muted ; The sound played when the mute option it toggled on.
;sound_unmuted ; The sound played when the mute option it toggled off.
@@ -731,7 +730,7 @@ diff -ru asterisk-12.6.0.orig/configs/confbridge.conf.sample asterisk-12.6.0/con
;sound_only_person ; The sound played when the user is the only person in the conference.
;sound_only_one ; The sound played to a user when there is only one other
; person is in the conference.
-@@ -278,6 +281,8 @@
+@@ -283,6 +286,8 @@
; using the '&' character as a delimiter.
; toggle_mute ; Toggle turning on and off mute. Mute will make the user silent
; to everyone else, but the user will still be able to listen in.
@@ -740,9 +739,9 @@ diff -ru asterisk-12.6.0.orig/configs/confbridge.conf.sample asterisk-12.6.0/con
; no_op ; This action does nothing (No Operation). Its only real purpose exists for
; being able to reserve a sequence in the config as a menu exit sequence.
-diff -ru asterisk-12.6.0.orig/include/asterisk/bridge_features.h asterisk-12.6.0/include/asterisk/bridge_features.h
---- asterisk-12.6.0.orig/include/asterisk/bridge_features.h 2014-08-07 18:19:53.000000000 -0300
-+++ asterisk-12.6.0/include/asterisk/bridge_features.h 2014-09-25 09:22:51.419497839 -0300
+diff -ru asterisk-13.0.0.orig/include/asterisk/bridge_features.h asterisk-13.0.0/include/asterisk/bridge_features.h
+--- asterisk-13.0.0.orig/include/asterisk/bridge_features.h 2014-10-31 09:25:50.100496828 -0200
++++ asterisk-13.0.0/include/asterisk/bridge_features.h 2014-10-31 09:23:05.693828534 -0200
@@ -273,6 +273,8 @@
unsigned int usable:1;
/*! TRUE if the channel/bridge is muted. */
@@ -752,10 +751,18 @@ diff -ru asterisk-12.6.0.orig/include/asterisk/bridge_features.h asterisk-12.6.0
/*! TRUE if DTMF should be passed into the bridge tech. */
unsigned int dtmf_passthrough:1;
};
-diff -ru asterisk-12.6.0.orig/main/bridge_channel.c asterisk-12.6.0/main/bridge_channel.c
---- asterisk-12.6.0.orig/main/bridge_channel.c 2014-08-13 18:21:07.000000000 -0300
-+++ asterisk-12.6.0/main/bridge_channel.c 2014-09-25 09:22:51.422831171 -0300
-@@ -903,7 +903,21 @@
+diff -ru asterisk-13.0.0.orig/main/bridge_channel.c asterisk-13.0.0/main/bridge_channel.c
+--- asterisk-13.0.0.orig/main/bridge_channel.c 2014-10-31 09:25:50.100496828 -0200
++++ asterisk-13.0.0/main/bridge_channel.c 2014-10-31 09:35:50.917169437 -0200
+@@ -43,6 +43,7 @@
+ #include "asterisk/app.h"
+ #include "asterisk/pbx.h"
+ #include "asterisk/channel.h"
++#include "asterisk/format_cache.h"
+ #include "asterisk/timing.h"
+ #include "asterisk/bridge.h"
+ #include "asterisk/bridge_channel.h"
+@@ -910,7 +911,21 @@
return 0;
}
@@ -765,11 +772,11 @@ diff -ru asterisk-12.6.0.orig/main/bridge_channel.c asterisk-12.6.0/main/bridge_
+ short buf[fr->samples];
+ struct ast_frame sframe = {
+ .frametype = AST_FRAME_VOICE,
++ .subclass.format = ast_format_slin,
+ .data.ptr = buf,
+ .samples = fr->samples,
+ .datalen = sizeof(buf),
+ };
-+ ast_format_set(&sframe.subclass.format, AST_FORMAT_SLINEAR, 0);
+ memset(buf, 0, sizeof(buf));
+ dup = ast_frdup(&sframe);
+ } else {
diff --git a/main/asterisk/ASTERISK-20527.patch b/main/asterisk/ASTERISK-20527.patch
index 42a81d8ca5..9be50ce631 100644
--- a/main/asterisk/ASTERISK-20527.patch
+++ b/main/asterisk/ASTERISK-20527.patch
@@ -13,8 +13,8 @@ index 7569bba..24a8cec 100644
}
diff --git a/configs/sip.conf.sample b/configs/sip.conf.sample
index 81ca998..812be7b 100644
---- a/configs/sip.conf.sample
-+++ b/configs/sip.conf.sample
+--- a/configs/samples/sip.conf.sample
++++ b/configs/samples/sip.conf.sample
@@ -711,7 +711,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:
diff --git a/main/asterisk/musl-includes.patch b/main/asterisk/musl-includes.patch
index 810602607e..083e1b4233 100644
--- a/main/asterisk/musl-includes.patch
+++ b/main/asterisk/musl-includes.patch
@@ -1,25 +1,18 @@
---- asterisk-11.7.0.orig/main/ast_expr2.c
-+++ asterisk-11.7.0/main/ast_expr2.c
-@@ -93,6 +93,7 @@
-
- #include "asterisk.h"
-
-+#include <sys/cdefs.h>
- #include <sys/types.h>
- #include <stdio.h>
-
---- asterisk-11.7.0.orig/main/ast_expr2.y
-+++ asterisk-11.7.0/main/ast_expr2.y
-@@ -14,6 +14,7 @@
-
- #include "asterisk.h"
-
-+#include <sys/cdefs.h>
- #include <sys/types.h>
- #include <stdio.h>
-
---- asterisk-12.1.0.orig/include/asterisk/compat.h
-+++ asterisk-12.1.0/include/asterisk/compat.h
+diff -ru asterisk-13.0.0.orig/channels/sip/include/route.h asterisk-13.0.0/channels/sip/include/route.h
+--- asterisk-13.0.0.orig/channels/sip/include/route.h 2014-02-10 20:28:35.000000000 -0200
++++ asterisk-13.0.0/channels/sip/include/route.h 2014-10-31 08:51:12.983809610 -0200
+@@ -98,7 +98,7 @@
+ * \retval NULL on failure
+ */
+ struct ast_str *sip_route_list(const struct sip_route *route, int formatcli, int skip)
+- __attribute_malloc__ __attribute_warn_unused_result__;
++ __attribute__ ((malloc, warn_unused_result));
+
+ /*!
+ * \brief Check if the route is strict
+diff -ru asterisk-13.0.0.orig/include/asterisk/compat.h asterisk-13.0.0/include/asterisk/compat.h
+--- asterisk-13.0.0.orig/include/asterisk/compat.h 2014-10-31 08:48:56.000000000 -0200
++++ asterisk-13.0.0/include/asterisk/compat.h 2014-10-31 08:49:10.163808393 -0200
@@ -68,7 +68,7 @@
#endif
@@ -29,8 +22,9 @@
#else
#include "asterisk/poll-compat.h"
#endif
---- asterisk-12.1.0.orig/include/asterisk/poll-compat.h
-+++ asterisk-12.1.0/include/asterisk/poll-compat.h
+diff -ru asterisk-13.0.0.orig/include/asterisk/poll-compat.h asterisk-13.0.0/include/asterisk/poll-compat.h
+--- asterisk-13.0.0.orig/include/asterisk/poll-compat.h 2014-10-31 08:48:56.000000000 -0200
++++ asterisk-13.0.0/include/asterisk/poll-compat.h 2014-10-31 08:49:10.163808393 -0200
@@ -83,7 +83,7 @@
#ifndef AST_POLL_COMPAT
@@ -40,3 +34,25 @@
#define ast_poll(a, b, c) poll(a, b, c)
+diff -ru asterisk-13.0.0.orig/main/ast_expr2.c asterisk-13.0.0/main/ast_expr2.c
+--- asterisk-13.0.0.orig/main/ast_expr2.c 2014-10-31 08:48:56.000000000 -0200
++++ asterisk-13.0.0/main/ast_expr2.c 2014-10-31 08:49:10.163808393 -0200
+@@ -93,6 +93,7 @@
+
+ #include "asterisk.h"
+
++#include <sys/cdefs.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+
+diff -ru asterisk-13.0.0.orig/main/ast_expr2.y asterisk-13.0.0/main/ast_expr2.y
+--- asterisk-13.0.0.orig/main/ast_expr2.y 2014-10-31 08:48:56.000000000 -0200
++++ asterisk-13.0.0/main/ast_expr2.y 2014-10-31 08:49:10.163808393 -0200
+@@ -14,6 +14,7 @@
+
+ #include "asterisk.h"
+
++#include <sys/cdefs.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+