chan_pjsip: fix music on hold continues after INVITE with replaces

In a three party scenario with INVITE with replaces, we need to
unhold the call, otherwise one party continues to get music on
hold, and the call is not properly bridged between them.

ASTERISK-30428

Change-Id: I5675df11e739be5226b328f8828d4b8d81fbefb4
(cherry picked from commit 1c5720b802)
This commit is contained in:
Henning Westerholt 2023-03-21 07:48:38 +00:00 committed by Asterisk Development Team
parent c9aa3b0169
commit 51509309ca
1 changed files with 4 additions and 0 deletions

View File

@ -1019,6 +1019,10 @@ static int refer_incoming_invite_request(struct ast_sip_session *session, struct
ast_debug(3, "INVITE with Replaces being attempted. '%s' --> '%s'\n",
ast_channel_name(session->channel), ast_channel_name(invite.channel));
/* Unhold the channel now, as later we are not having access to it anymore */
ast_queue_unhold(session->channel);
ast_queue_frame(session->channel, &ast_null_frame);
if (!invite.bridge) {
struct ast_channel *chan = session->channel;