diff --git a/apps/app_queue.c b/apps/app_queue.c index 2c7ed2a6fa42278b3a0113e9abafc1b158ac92a9..50f90295b7d2b5d68c0ee8d203ba78e312f69d84 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -6761,6 +6761,7 @@ static int try_calling(struct queue_ent *qe, struct ast_flags opts, char **opt_a ast_channel_publish_dial(qe->chan, peer, member->interface, ast_hangup_cause_to_dial_status(ast_channel_hangupcause(peer))); ast_autoservice_chan_hangup_peer(qe->chan, peer); + pending_members_remove(member); ao2_ref(member, -1); goto out; } else if (ast_check_hangup(qe->chan)) { @@ -6771,6 +6772,7 @@ static int try_calling(struct queue_ent *qe, struct ast_flags opts, char **opt_a qe->handled = -1; ast_channel_publish_dial(qe->chan, peer, member->interface, ast_hangup_cause_to_dial_status(ast_channel_hangupcause(peer))); ast_autoservice_chan_hangup_peer(qe->chan, peer); + pending_members_remove(member); ao2_ref(member, -1); return -1; } @@ -6790,6 +6792,7 @@ static int try_calling(struct queue_ent *qe, struct ast_flags opts, char **opt_a record_abandoned(qe); ast_channel_publish_dial(qe->chan, peer, member->interface, ast_hangup_cause_to_dial_status(ast_channel_hangupcause(peer))); ast_autoservice_chan_hangup_peer(qe->chan, peer); + pending_members_remove(member); ao2_ref(member, -1); return -1; }