diff --git a/src/channels/chan_voicemngr.c b/src/channels/chan_voicemngr.c index beb5bcbd433844e336d76a6abb8e233fed85d389..96be61a7b9670a6b1fb56d8ce27aba84daf359fc 100644 --- a/src/channels/chan_voicemngr.c +++ b/src/channels/chan_voicemngr.c @@ -946,6 +946,9 @@ static int chan_voicemngr_indicate(struct ast_channel *ast, int condition, const } else { ast_log(LOG_ERROR, "can't get the peer channel, unattended call transfer will not be proceeded\n"); } + } else if(sub->channel_state == INCALL && sub_peer->channel_state == ONHOLD) { + /* pjsip send this indication when switching between two calls, update rtp peer to have codec updated */ + ast_indicate(sub->owner, AST_CONTROL_UPDATE_RTP_PEER); } break; case AST_CONTROL_TRANSFER: