]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
chan_pjsip: fix music on hold continues after INVITE with replaces
authorHenning Westerholt <hw@gilawa.com>
Tue, 21 Mar 2023 07:48:38 +0000 (07:48 +0000)
committerGeorge Joseph <gjoseph@digium.com>
Mon, 10 Apr 2023 18:35:55 +0000 (13:35 -0500)
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

res/res_pjsip_refer.c

index 8890d235b5689416eb405b1301071e03ffce8c52..a20bf6ba4de04da5cc7e68fb0ef9a5a3943e515e 100644 (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;