Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
asterisk (8:23.2.0-1~wazo) wazo-dev-bookworm; urgency=medium

* asterisk 23.2.0

-- Wazo Maintainers <dev+pkg@wazo.community> Fri, 23 Jan 2026 15:14:04 -0500

asterisk (8:22.6.0-1~wazo3) wazo-dev-bookworm; urgency=medium

* create fax directory
Expand Down
6 changes: 3 additions & 3 deletions debian/patches/deb_astgenkey-security
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ Last-Update: 2009-12-19
Upstream has not accepted this patch and chose intead to document this
as a known minor issue.

Index: asterisk-22.6.0/contrib/scripts/astgenkey
Index: asterisk-23.2.0/contrib/scripts/astgenkey
===================================================================
--- asterisk-22.6.0.orig/contrib/scripts/astgenkey
+++ asterisk-22.6.0/contrib/scripts/astgenkey
--- asterisk-23.2.0.orig/contrib/scripts/astgenkey
+++ asterisk-23.2.0/contrib/scripts/astgenkey
@@ -47,7 +47,11 @@ done
rm -f ${KEY}.key ${KEY}.pub

Expand Down
10 changes: 5 additions & 5 deletions debian/patches/deb_make-clean-fixes
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ Author: Faidon Liambotis <paravoid@debian.org>
Forwarded: not-needed
Last-Update: 2009-12-19

Index: asterisk-22.6.0/Makefile
Index: asterisk-23.2.0/Makefile
===================================================================
--- asterisk-22.6.0.orig/Makefile
+++ asterisk-22.6.0/Makefile
@@ -443,7 +443,6 @@ dist-clean: distclean
--- asterisk-23.2.0.orig/Makefile
+++ asterisk-23.2.0/Makefile
@@ -447,7 +447,6 @@ dist-clean: distclean

distclean: $(SUBDIRS_DIST_CLEAN) _clean
@$(MAKE) -C menuselect dist-clean
- @$(MAKE) -C sounds dist-clean
rm -f menuselect.makeopts makeopts menuselect-tree menuselect.makedeps
rm -f config.log config.status config.cache
rm -rf autom4te.cache
@@ -453,6 +452,10 @@ distclean: $(SUBDIRS_DIST_CLEAN) _clean
@@ -457,6 +456,10 @@ distclean: $(SUBDIRS_DIST_CLEAN) _clean
rm -f doc/Doxyfile
rm -f build_tools/menuselect-deps

Expand Down
16 changes: 8 additions & 8 deletions debian/patches/expose-app-queues-mutex
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Index: asterisk-22.6.0/apps/app_queue.c
Index: asterisk-23.2.0/apps/app_queue.c
===================================================================
--- asterisk-22.6.0.orig/apps/app_queue.c
+++ asterisk-22.6.0/apps/app_queue.c
@@ -2212,6 +2212,9 @@ static int op_value_get(struct op_value
--- asterisk-23.2.0.orig/apps/app_queue.c
+++ asterisk-23.2.0/apps/app_queue.c
@@ -2172,6 +2172,9 @@ static int op_value_get(struct op_value
static void op_value_set(struct op_value *op_value, int value);
static void op_value_undef(struct op_value *op_value);

Expand All @@ -12,7 +12,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
/*! \brief sets the QUEUESTATUS channel variable */
static void set_queue_result(struct ast_channel *chan, enum queue_result res)
{
@@ -13466,6 +13469,11 @@ static void op_value_undef(struct op_val
@@ -13383,6 +13386,11 @@ static void op_value_undef(struct op_val
op_value->defined = 0;
}

Expand All @@ -24,7 +24,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
static struct ast_cli_entry cli_queue[] = {
AST_CLI_DEFINE(queue_show, "Show status of a specified queue"),
AST_CLI_DEFINE(handle_queue_rule_show, "Show the rules defined in queuerules.conf"),
@@ -13712,7 +13720,7 @@ static int load_module(void)
@@ -13627,7 +13635,7 @@ static int load_module(void)
return AST_MODULE_LOAD_SUCCESS;
}

Expand All @@ -33,10 +33,10 @@ Index: asterisk-22.6.0/apps/app_queue.c
.support_level = AST_MODULE_SUPPORT_CORE,
.load = load_module,
.unload = unload_module,
Index: asterisk-22.6.0/apps/app_queue.exports.in
Index: asterisk-23.2.0/apps/app_queue.exports.in
===================================================================
--- /dev/null
+++ asterisk-22.6.0/apps/app_queue.exports.in
+++ asterisk-23.2.0/apps/app_queue.exports.in
@@ -0,0 +1,6 @@
+{
+ global:
Expand Down
6 changes: 3 additions & 3 deletions debian/patches/fix-application-playback-update
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Index: asterisk-22.6.0/res/res_stasis_playback.c
Index: asterisk-23.2.0/res/res_stasis_playback.c
===================================================================
--- asterisk-22.6.0.orig/res/res_stasis_playback.c
+++ asterisk-22.6.0/res/res_stasis_playback.c
--- asterisk-23.2.0.orig/res/res_stasis_playback.c
+++ asterisk-23.2.0/res/res_stasis_playback.c
@@ -344,7 +344,8 @@ static void play_on_channel(struct stasi
if (!recording) {
ast_log(LOG_ERROR, "Attempted to play recording '%s' on channel '%s' but recording does not exist",
Expand Down
6 changes: 3 additions & 3 deletions debian/patches/fix-invalid-moh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Index: asterisk-22.6.0/res/res_musiconhold.c
Index: asterisk-23.2.0/res/res_musiconhold.c
===================================================================
--- asterisk-22.6.0.orig/res/res_musiconhold.c
+++ asterisk-22.6.0/res/res_musiconhold.c
--- asterisk-23.2.0.orig/res/res_musiconhold.c
+++ asterisk-23.2.0/res/res_musiconhold.c
@@ -413,7 +413,9 @@ static int moh_files_next(struct ast_cha
state->samples = 0;
}
Expand Down
58 changes: 29 additions & 29 deletions debian/patches/fix-queue-deadlock
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Index: asterisk-22.6.0/apps/app_queue.c
Index: asterisk-23.2.0/apps/app_queue.c
===================================================================
--- asterisk-22.6.0.orig/apps/app_queue.c
+++ asterisk-22.6.0/apps/app_queue.c
@@ -1991,6 +1991,15 @@ struct skills_group {
--- asterisk-23.2.0.orig/apps/app_queue.c
+++ asterisk-23.2.0/apps/app_queue.c
@@ -1951,6 +1951,15 @@ struct skills_group {

static AST_LIST_HEAD_STATIC(skills_groups, skills_group);

Expand All @@ -18,15 +18,15 @@ Index: asterisk-22.6.0/apps/app_queue.c
struct member {
char interface[AST_CHANNEL_NAME]; /*!< Technology/Location to dial to reach this member*/
char state_exten[AST_MAX_EXTENSION]; /*!< Extension to get state from (if using hint) */
@@ -2019,6 +2028,7 @@ struct member {
@@ -1979,6 +1988,7 @@ struct member {
unsigned int delme:1; /*!< Flag to delete entry on reload */
char rt_uniqueid[80]; /*!< Unique id of realtime member entry */
unsigned int ringinuse:1; /*!< Flag to ring queue members even if their status is 'inuse' */
+ struct shared_info *unique; /*!< Shared information between queues */
};

enum empty_conditions {
@@ -2172,6 +2182,18 @@ static AST_LIST_HEAD_STATIC(rule_lists,
@@ -2132,6 +2142,18 @@ static AST_LIST_HEAD_STATIC(rule_lists,

static struct ao2_container *queues;

Expand All @@ -45,7 +45,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
static void update_realtime_members(struct call_queue *q);
static struct member *interface_exists(struct call_queue *q, const char *interface);
static int set_member_paused(const char *queuename, const char *interface, const char *reason, int paused);
@@ -2736,11 +2758,11 @@ static struct ast_json *queue_member_blo
@@ -2696,11 +2718,11 @@ static struct ast_json *queue_member_blo
"StateInterface", mem->state_interface,
"Membership", (mem->dynamic ? "dynamic" : (mem->realtime ? "realtime" : "static")),
"Penalty", mem->penalty,
Expand All @@ -60,7 +60,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
"Status", mem->status,
"Paused", mem->paused,
"PausedReason", mem->reason_paused,
@@ -2822,11 +2844,11 @@ static int get_member_status(struct call
@@ -2782,11 +2804,11 @@ static int get_member_status(struct call
ast_debug(4, "%s is unavailable because he is paused'\n", member->membername);
break;
} else if ((conditions & QUEUE_EMPTY_WRAPUP)
Expand All @@ -75,7 +75,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
break;
} else {
ao2_ref(member, -1);
@@ -2926,7 +2948,7 @@ static void update_status(struct call_qu
@@ -2886,7 +2908,7 @@ static void update_status(struct call_qu
* considered done and the call finished.
*/
if (status == AST_DEVICE_NOT_INUSE) {
Expand All @@ -84,15 +84,15 @@ Index: asterisk-22.6.0/apps/app_queue.c
}

m->status = status;
@@ -2954,6 +2976,7 @@ static int is_member_available(struct ca
@@ -2914,6 +2936,7 @@ static int is_member_available(struct ca
{
int available = 0;
int wrapuptime;
+ time_t lastcall;

switch (mem->status) {
case AST_DEVICE_INVALID:
@@ -2979,7 +3002,8 @@ static int is_member_available(struct ca
@@ -2939,7 +2962,8 @@ static int is_member_available(struct ca

/* Let wrapuptimes override device state availability */
wrapuptime = get_wrapuptime(q, mem);
Expand All @@ -102,7 +102,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
available = 0;
}
return available;
@@ -3207,12 +3231,28 @@ static void destroy_queue_member_cb(void
@@ -3167,12 +3191,28 @@ static void destroy_queue_member_cb(void
if (mem->state_id != -1) {
ast_extension_state_del(mem->state_id, extension_state_cb);
}
Expand Down Expand Up @@ -132,7 +132,7 @@ Index: asterisk-22.6.0/apps/app_queue.c

if ((cur = ao2_alloc(sizeof(*cur), destroy_queue_member_cb))) {
cur->ringinuse = ringinuse;
@@ -3253,6 +3293,34 @@ static struct member *create_queue_membe
@@ -3213,6 +3253,34 @@ static struct member *create_queue_membe
ast_copy_string(cur->skills, skills, sizeof(cur->skills));
else
cur->skills[0] = '\0';
Expand Down Expand Up @@ -167,7 +167,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
}

return cur;
@@ -3413,10 +3481,10 @@ static void clear_queue(struct call_queu
@@ -3373,10 +3441,10 @@ static void clear_queue(struct call_queu
struct member *mem;
struct ao2_iterator mem_iter = ao2_iterator_init(q->members, 0);
while ((mem = ao2_iterator_next(&mem_iter))) {
Expand All @@ -182,15 +182,15 @@ Index: asterisk-22.6.0/apps/app_queue.c
ao2_ref(mem, -1);
}
ao2_iterator_destroy(&mem_iter);
@@ -5074,6 +5142,7 @@ static int member_status_available(int s
@@ -5034,6 +5102,7 @@ static int member_status_available(int s
static int can_ring_entry(struct queue_ent *qe, struct callattempt *call, int *busies)
{
struct member *memberp = call->member;
+ struct call_queue *lastqueue = get_lastqueue(memberp);
int wrapuptime;

if (memberp->paused) {
@@ -5086,14 +5155,14 @@ static int can_ring_entry(struct queue_e
@@ -5046,14 +5115,14 @@ static int can_ring_entry(struct queue_e
return 0;
}

Expand All @@ -209,7 +209,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
call->interface);
return 0;
}
@@ -5556,8 +5625,8 @@ static void rna(int rnatime, struct queu
@@ -5516,8 +5585,8 @@ static void rna(int rnatime, struct queu
struct member *mem;
ao2_lock(qe->parent);
if ((mem = interface_exists(qe->parent, interface))) {
Expand All @@ -220,7 +220,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
ao2_unlock(qe->parent);
ao2_ref(mem, -1);
return;
@@ -6397,6 +6466,141 @@ static int wait_our_turn(struct queue_en
@@ -6357,6 +6426,141 @@ static int wait_our_turn(struct queue_en
}

/*!
Expand Down Expand Up @@ -362,7 +362,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
* \brief update the queue status
* \retval 0 always
*/
@@ -6404,43 +6608,23 @@ static int update_queue(struct call_queu
@@ -6364,43 +6568,23 @@ static int update_queue(struct call_queu
{
int oldtalktime;
int newtalktime = time(NULL) - starttime;
Expand Down Expand Up @@ -415,7 +415,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
/* Member might never experience any direct status change (local
* channel with forwarding in particular). If that's the case,
* this is the last chance to remove it from pending or subsequent
@@ -6532,14 +6716,14 @@ static int calc_metric(struct call_queue
@@ -6492,14 +6676,14 @@ static int calc_metric(struct call_queue
tmp->metric = ast_random() % ((1 + penalty) * 1000);
break;
case QUEUE_STRATEGY_FEWESTCALLS:
Expand All @@ -433,7 +433,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
}
tmp->metric += penalty * 1000000 * usepenalty;
break;
@@ -7626,7 +7810,8 @@ static int try_calling(struct queue_ent
@@ -7594,7 +7778,8 @@ static int try_calling(struct queue_ent
recalc_holdtime(qe, (now - qe->start));
member = lpeer->member;
ao2_lock(qe->parent);
Expand All @@ -443,7 +443,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
ao2_unlock(qe->parent);
/* Increment the refcount for this member, since we're going to be using it for awhile in here. */
ao2_ref(member, 1);
@@ -7735,7 +7920,7 @@ static int try_calling(struct queue_ent
@@ -7703,7 +7888,7 @@ static int try_calling(struct queue_ent
/* use pbx_builtin_setvar to set a load of variables with one call */
if (qe->parent->setinterfacevar && interfacevar) {
ast_str_set(&interfacevar, 0, "MEMBERINTERFACE=%s,MEMBERNAME=%s,MEMBERCALLS=%d,MEMBERLASTCALL=%ld,MEMBERPENALTY=%d,MEMBERDYNAMIC=%d,MEMBERREALTIME=%d",
Expand All @@ -452,7 +452,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
pbx_builtin_setvar_multiple(qe->chan, ast_str_buffer(interfacevar));
pbx_builtin_setvar_multiple(peer, ast_str_buffer(interfacevar));
}
@@ -7859,8 +8044,8 @@ static int try_calling(struct queue_ent
@@ -7827,8 +8012,8 @@ static int try_calling(struct queue_ent
}

ao2_lock(qe->parent);
Expand All @@ -463,7 +463,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
ao2_unlock(qe->parent);
/* As a queue member may end up in multiple calls at once if a transfer occurs with
* a Local channel in the mix we pass the current call information (starttime) to the
@@ -9593,7 +9778,7 @@ static int queue_function_mem_read(struc
@@ -9560,7 +9745,7 @@ static int queue_function_mem_read(struc
while ((m = ao2_iterator_next(&mem_iter))) {
/* Count the agents who are logged in, not paused and not wrapping up */
if ((m->status == AST_DEVICE_NOT_INUSE) && (!m->paused) &&
Expand All @@ -472,7 +472,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
count++;
}
ao2_ref(m, -1);
@@ -10267,8 +10452,8 @@ static void reload_single_member(const c
@@ -10184,8 +10369,8 @@ static void reload_single_member(const c
/* Round Robin Queue Position must be copied if this is replacing an existing member */
newm->queuepos = cur->queuepos;
/* Don't reset agent stats either */
Expand All @@ -483,7 +483,7 @@ Index: asterisk-22.6.0/apps/app_queue.c

ao2_link(q->members, newm);
ao2_unlink(q->members, cur);
@@ -10647,7 +10832,7 @@ static void print_queue(struct mansessio
@@ -10564,7 +10749,7 @@ static void print_queue(struct mansessio
ast_str_append(&out, 0, "%s%s%s%s%s%s%s%s%s",
mem->dynamic ? ast_term_color(COLOR_CYAN, COLOR_BLACK) : "", mem->dynamic ? " (dynamic)" : "", ast_term_reset(),
mem->realtime ? ast_term_color(COLOR_MAGENTA, COLOR_BLACK) : "", mem->realtime ? " (realtime)" : "", ast_term_reset(),
Expand All @@ -492,7 +492,7 @@ Index: asterisk-22.6.0/apps/app_queue.c

if (mem->paused) {
ast_str_append(&out, 0, " %s(paused%s%s was %ld secs ago)%s",
@@ -10665,9 +10850,9 @@ static void print_queue(struct mansessio
@@ -10582,9 +10767,9 @@ static void print_queue(struct mansessio
ast_devstate2str(mem->status), ast_term_reset());
if (!ast_strlen_zero(mem->skills))
ast_str_append(&out, 0, " (skills: %s)", mem->skills);
Expand All @@ -504,7 +504,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
} else {
ast_str_append(&out, 0, " has taken no calls yet");
}
@@ -11165,7 +11350,7 @@ static int manager_queues_status(struct
@@ -11082,7 +11267,7 @@ static int manager_queues_status(struct
"%s"
"\r\n",
q->name, mem->membername, mem->interface, mem->state_interface, mem->dynamic ? "dynamic" : "static",
Expand All @@ -513,7 +513,7 @@ Index: asterisk-22.6.0/apps/app_queue.c
mem->paused, mem->reason_paused, mem->wrapuptime, mem->skills, idText);
++q_items;
}
@@ -12264,17 +12449,16 @@ static int qupd_exec(struct ast_channel
@@ -12181,17 +12366,16 @@ static int qupd_exec(struct ast_channel
if (!strcasecmp(args.status, "ANSWER")) {
oldtalktime = q->talktime;
q->talktime = (((oldtalktime << 2) - oldtalktime) + newtalktime) >> 2;
Expand Down
6 changes: 3 additions & 3 deletions debian/patches/increase-max-sdp-media
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Index: asterisk-22.6.0/third-party/pjproject/patches/config_site.h
Index: asterisk-23.2.0/third-party/pjproject/patches/config_site.h
===================================================================
--- asterisk-22.6.0.orig/third-party/pjproject/patches/config_site.h
+++ asterisk-22.6.0/third-party/pjproject/patches/config_site.h
--- asterisk-23.2.0.orig/third-party/pjproject/patches/config_site.h
+++ asterisk-23.2.0/third-party/pjproject/patches/config_site.h
@@ -87,7 +87,7 @@
#define PJMEDIA_MAX_SDP_FMT 72
#define PJMEDIA_MAX_SDP_BANDW 4
Expand Down
Loading